主要内容

使用多种仿真方案优化数据类型

此示例显示如何创建多种仿真方案,并使用方案优化系统的固定点数据类型。

打开模型。在此示例中,优化控制器子系统的数据类型。该模型设置为使用斜坡输入或​​随机输入。该模型使用断言块而不是使用信号公差来验证定点实现的数值行为。有关更多信息,请参阅指定行为约束

模型='ex_controllerharness';Open_System(型号);

创建模拟方案

创建一个金宝appsimulink.simulationInpul.包含不同方案的对象。使用斜坡输入以及随机输入的四种不同的种子。

si = 金宝appsimulink.simulationInput.empty(5,0);%扫描到随机输入的4种不同的种子RNG(1);种子= randi(1e6,[1 4]);为了SINDEX = 1:长度(种子)SI(SINDEX)= SIMULINK.金宝appSIMUTIONINPUT(型号);si(sindex)= si(sindex).setvariable('来源',2);%source == 2对应于随机输入si(sindex)= si(sindex).setblockparameter([模型'/ random / supplentrandom'],'种子',num2str(种子(sindex)));%扫描种子si(sindex)= si(sindex)。setUserstring(Sprintf('random_%我',种子(sindex))));结尾%设置源== 1对应于斜坡输入si(5)= s金宝appimulink.simulationInput(型号);Si(5)= Si(5).setvariable('来源',1);SI(5)= SI(5)。setUserstring('斜坡');

指定固定点优化选项

要指定优化选项,例如范围集合的迭代和方法的数量,请使用fxpoptimizationOptions.目的。此示例使用派生范围分析来收集系统的范围。

选项= fxpoptimizationOptions('maxtations',3e2,'耐心',50);options.AdvanceOptions.performneighborfoodsearch = false;范围集合使用派生范围分析options.AdvanceOptions.eDederivedRangeanAlysis = True
选项= fxpoptimizationOptions具有属性:MaxItrations:300 MaxTime:600宽度:50次冗长:高允许单词长度:[1x127双]目标功能:BitWidthsum使用规范:0高级选项AdvancedOptions:[1x1 DataTypeOptimization.AdvanceFXPoptimizationOptions]

将模拟输入对象指定为高级选项中的仿真方案。

选项.AdvancedOptions.simulationscenarios = si;

运行优化并探索结果

在优化期间,软件导出了在高级选项中指定的所有模拟方案的范围。该软件验证对每个模拟输入方案的解决方案。金宝搏官方网站

结果= fxpopt(型号,[模型'/控制器'], 选项)
+启动数据类型优化... +检查不支持的构造。金宝app+预处理+建模优化问题 - 构造决策变量+运行优化求解器 - 评估新解决方案:成本496,不符合行为约束。- 评估新解决方案:成本976,不符合行为约束。- 评估新解决方案:成本1936年,符合行为约束。- 更新最佳发现解决方案,成本:1936 +优化已完成。+满足发现行为约束的固定点实现。最佳发现的解决方案适用于模型。- 总成本:1936  - 使用探索方法来探索实现。结果=具有属性的优化结果:型号:'ex_controllerharness'systemunderdesign:'ex_controllerharness / controller'finaloutcome:'满足行为约束的固定点实现。最好的发现解决方案适用于模型。 OptimizationOptions: [1x1 fxpOptimizationOptions] Solutions: [1x1 DataTypeOptimization.OptimizationSolution]

您可以探索每个解决方案,因为它比较您定义的每个模拟方案。探索最佳发现的解决方案并通过斜坡仿真输入查看。斜坡输入是仿真场景五。

solutionIndex = 1;%得到最好的找到解决方案场景= 5;%得到第5个场景(斜坡)解决方案=探索(结果,解决方案,方案下降);

也可以看看

职能

班级

相关话题