- Open the Response Optimizer.
- Go to the Optimization Settings.
- Look for settings like Step Tolerance, Function Tolerance, and Optimization Algorithm. Different algorithms and tolerances can lead to different optimization behaviors.
change search range of response optimization
    7 views (last 30 days)
  
       Show older comments
    
I am trying to use the Responce Optimizer package in simulink. I set up the search range for my all my tuning design varibles.
IT seems to be working as in hte varibles are change by some amount but it seems to be vey small. 
For example if my initlal varible is lets say 500.0 it is changing by  0.1-1.0
My varibles are if different magnitudes, so i dont want them all change by 10-100 increaments 
some of my varibles are of the magnitude of 1.0 or 10.0 this should not change by 100s 
how cam I make the make the tunning of the varbiles by different increaments?  
EDIT:
I am using R2021a, I dont know why its not letting me select this verison.  
0 Comments
Answers (1)
  Shubham
      
 on 17 May 2024
        Hi Nathaniel,
In Simulink's Response Optimizer, the step size or increment by which  the variables change during optimization depends on various factors, including the optimization algorithm's settings, the scale of the  problem, and the sensitivity of the objective function to changes in  each variable. If you're finding that the optimization process is making very small adjustments to your variables, and you want to control the  step size or influence how significantly each variable can change, there are a few approaches you can consider:
1. Scaling of Variables
One common approach is to scale your variables such that they are of a similar magnitude. This doesn't mean changing the variables themselves  but rather how they are represented in the optimization problem. For  variables that are naturally on the order of hundreds or thousands, you  could divide them by a scaling factor so that an increment of, say, 0.1  after scaling corresponds to a larger actual change.
However, you mentioned that you do not want all variables to change  by the same increments due to their differing magnitudes, which makes  direct scaling less applicable.
2. Custom Optimization Settings
You can customize the optimization settings in the Response  Optimizer. By adjusting parameters such as the step tolerance, you might be able to influence the optimization algorithm to make larger  adjustments to the variables. Here's how you can access and modify these settings in MATLAB R2021a:
3. Normalization within the Objective Function
Another approach is to normalize the changes within the objective or  cost function itself. This involves manually adjusting how the  optimization algorithm perceives the significance of changes to each  variable. For instance, if you have a cost function that sums errors  across different variables, you could weight these errors by the inverse of the desired step size for each variable. This would make the  optimizer "see" larger errors when there are small changes in variables  that you want to be more sensitive and smaller errors for variables that are less sensitive.
4. Use of Constraints
If you're not already doing so, consider using constraints to limit  the range of your variables explicitly. While this doesn't directly  control the increment size, it does allow you to specify a more targeted search space for the optimization, potentially leading to more  meaningful adjustments within that space.
5. Manual Tuning of Variables
In cases where automatic optimization doesn't yield the desired  control over variable adjustments, a hybrid approach might be necessary. You could manually adjust the more sensitive variables to a ballpark  range based on your domain knowledge and then let the optimizer  fine-tune them within that narrower range.
Given the complexity of optimization problems and the nuances of  Simulink's Response Optimizer, there might not be a one-size-fits-all  solution. It may require some experimentation with the above strategies  to find the right balance for your specific model and optimization  goals.
If you're experiencing limitations with the GUI or if certain options aren't available, consider scripting your optimization task using  MATLAB code. The sdo.optimize function can provide more flexibility by allowing you to specify custom optimization options programmatically.
I hope this helps!
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
