-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Finding optimal internal cabinet volume for best acoustic response from the drivers #3
Comments
I commented on the first blogpost, but wanted to elaborate a bit, because I think there are advantages to using a structured approach for optimization and testing of the prototypes. I believe that the suggested approach of simulating the acoustic properties is a good starting point (although I have no knowledge about that). However, many physical parameters come into play when testing the real acoustic performance of various prototypes, and the interactions between the various parameters can be difficult to discern. Dynamic Design of ExperimentsThe approach I suggest is called Dynamic Design of Experiments (DoE). In contrast to Classical DoE where one sets up a factorial design and tests a predetermined number of combinations to create a model of a system, Dynamic DoE uses a Bayesian Optimization algorithm to model a system and incrementally learns about the systems performance based on its input parameters. This means that new iterations of the speaker design can be tested in iterations as small as 1, and new test parameters be determined on the basis of the newest findings. I found an article that describes the Bayesian Optimization here: https://distill.pub/2020/bayesian-optimization/ Despite being a really advanced tool, it is freely available through Brownie Bee in a publicly funded project. Danish Technological Institute recently published a brief video about on of their first case studies, describing the approach and results (https://www.youtube.com/watch?v=zHsTAhzvYYA). In this video a production company managed to optimize a production process with 20-30% of the experiments that they would normally have to perform. Suggested workflowWhat Brownie Bee offers is a methodology to optimize the speaker design in (hopefully) as few iterations as possible. It would likely be achieveable by a workflow like this:
I would be happy to discuss this approach further and help in setting up the optimization algorithm. |
Thank you for the thorough walk through walkthrough and suggested workflow @emiltb. Have you worked with this tool yourself? Maybe some practical examples would be great, or maybe you could assist with this tool when we get some data from the first cabinet? |
The three different simulation targets mentioned above can't provide the same level of SPL, but it could be interesting to see how high (in SPL) each target frequency the drivers can deliver. |
I'll be happy to help. I used the tool in a very early version, since I used to work at the Center at the Danish Technological Institute who is involved in the BOOST Væksten project that develops the tool. It has definitely matured more since then and is quite accessible once you get started. I'm open to being actively involved once data is available. I'll post an example of how it could be used with some dummy data here as soon as I have time, just to give a better feeling of how it can be used. |
I've run an optimization test using some dummy data I've created to illustrate the principle. The Python code used for my data generation is available in this Gist: https://gist.github.com/emiltb/a15c4db0598ab494a433ee138ca4bd76. Generating data for a hypothetical speakerThe Python code creates a The goal of the optimization is to approximate this equation for each response variable, so we can get an idea about how varying the input variables effects the response and use this to find an optimum. If a hypothetical speaker is created with
The reported spl is negative, because the optimization algorithm is set up to always minimize the response. Optimizing resultsBrownie Bee is started and the input variables defined as shown in the picture below. It supports both continous, discrete and categorical values. The only other parameter that needs to be set initially is Xi. It is on the same scale as our response (i.e. dB in our case). Initially it is best to start with a large value to make the algorithm more explorative. It can then be lowered later to optimize around the best results. For spl I started with Xi=30 and lowered it to 5 after 6 attempts. In order to start the optimization in Brownie Bee, I need three initial measurements. @TooDissing has mentioned in several places that they are doing simulations to determine some properties of the speaker. I will assume that this work has been used to select three promising speaker configurations that have been created and has had spl and lin measured. These numbers are filled into Brownie Bee, and the algorithm run to select the next experiment. I press Run, and then get the results of the first model estimation as well as a suggestion for the next prototype. If is is more practical to construct more speakers in one go, it is also possible to get suggestions for e.g. the next three prototypes: I can then iterate over these steps, i.e. get a suggestion for the next experiment, and run the test in my And this response model, which shows the response dependence on each input variable as well as the interaction between pairwise input variables. After 7 prototypes with SPL optimization I decided that I was satisfied with the results, and changed the input so all of the responses were the linearity meaurements instead. Assuming that all response variables of interest are measured for all prototypes, we can kickstart the new model by inputting already known data. I kept iterating over linearity measurements until 20 prototypes had been "constructed" and tested. We see, that we actually managed to find the lowest linearity value of 3.0 after 9 total prototypes, and that adding more measurements made the model more sophisticated. Comparing with the ground truthSince this is all simulated data, I can provide insight into the "true" model behind our hypothetical speaker: For sound pressure level: It turns out, that the optimization algorithm was able to find the global maximum for SPL in 7 attempts. It never found the true global minimum for response linearity in 20 tries, but came pretty close and found very low values in the parameter space given. Let me hear what you think about this approach and what aspects you wish to discuss. I hope that this could be an interesting way of working, and think that it suits this project very well since the fabrication via CNC-routing makes it possible to quickly fine-tune and iterate over designs. |
@emiltb this looks really great! And there's a lot too digest as well :-) Currently building a cabinet based on the most recent simulation that comes pretty close to the set design goals and will provide measurement data, when I have them available. There's already some very well documented models for how the acoustics works and how the cabinet volume - in theory - affects the transfer function of the speaker output. But there's many more parameters that comes in play - many are fixed in this setup, but some can be tuned. I started watching the webinar you linked above - it seems like a great approach - and will need to dig a little deeper into the subject, before I can start discussing the variable parameters and what to tune for with this approach. Something that will impact the result a lot are the room as well as the speaker placement. Will for sure look more into this, as this is a very cool approach. Let's see what is possible and how we can benefit from it. |
It's very interesting if knowledge from the existing models can be somehow be incorporated to design better experiments. I sent an e-mail last week to one of my former colleagues at Danish Technological Institute since I had some questions about the Brownie Bee app (mainly regarding producing one model with several input parameters and several output parameters, instead of having to creating a number of separate models as I illustrated above - long story short, it is implemented and possible to do). The BOOST Væksten project which is funded by The Danish Industry Foundation, is run by DTI with the goal of increasing the knowledge about the methodology and creating more cases illustrating how the tool can be used. This means that they are very interested in this project and are therefore very curious to hear more about it and discuss how it the tool could be used and how they might be able to help. They have asked for a meeting where it could be discussed - I'll definitely talk with them anyways, but I was wondering whether you @TooDissing would be interested in participating? It would be valuable to have someone with more knowledge about speaker design than me to put some perspective on the primary aspects of the optimization problem. Could you send me an email at [email protected] if you are interested? Then we can set something up. |
First cabinet is now build with the tuning created for the 80Hz target. And just merged in the PR with all the updates to the design files. Preliminary measurements and voicing have been performed and the sound is promising - yes I'm biased, but I feel that it does sound pretty decent 😎 |
Started performing further simulations using the Brownie Bee app as an assistant. It is pretty hard to get the scores calculated correctly. More testing are needed to properly evaluate this tool. |
Description
In order to make the most of the drivers, it is important to provide "enough" volume for each driver. But what is enough?
Each driver resides in its own internal cabinet - at least for now. This is done in order to minimize interference between the drivers, but does take up more room for bracing etc.
The main goal are to keep the cabinet small, but at the same time ensure that the minimum requirements for frequency range and max SPL are met; find more information here.
Definition of Done
Finding the needed volume involves the following tasks:
Documentation
We also need to describe the measurement and validation parameters and this process.
The text was updated successfully, but these errors were encountered: