Simulink优化工具箱Simulink优化工具箱有五个基本功能:1.参数校准2.系统响应优化3.优化灵敏度分析4.基于优化技术的控制系统设计5.自动生成查表表格通常来说灵敏度分析是说系统各个不确定性源对系统输出的影响。在优化工具箱里所进行的优化灵敏度分析是指各个优化参数对优化目标的costfunction的影响。所以可以在优化之前进行灵敏度分析,评价各个参数对优化目标的权重。还可以在优化之后,分析优化结果对优化参数的鲁棒性。基于优化技术的控制系统设计其实也就是优化控制参数。下面举例来说明参数校准,系统响应优化以及自动生成查表表格。参数校准顾名思义,也就是使用参考数据来自动估算模型的参数或者仿真初始状态。1.模型打开这个内置模型msd_system。示波器Positions里显示三路信号:当前仿真信号pos,第一次实验结果exp1,第二次实验结果exp2。这里的m,b,k是保存在模型的workspace(注意不是baseworkspace,而是modelworkspace。2.初步估算我们现在来利用实验结果来自动估算m,k,b的值。双击模型左下角的橘红色模块,打开预先配置好的参数估算页面。点击视图标签页调整为左右布局,如下图,同时显示两次的实验结果。点击红圈内的图标,把当前的仿真结果也同时显示在两张图上,如下图。点击SelectParameters,看到已选中的估算的参数及其初始值:点击SelectExperiments,选择同时使用这两组已经导进来的实验数据进行参数估算(如何导入实验数据参见后面的自动生成查表表格案例:CostFunction,可以看到还可以选择绝对值误差。MoreOption菜单页,还可以选择优化算法以及使用并行运算加快估算过程。点击绿色的按钮开始自动估算,会自动跳出这两张图:参数估算结果:估算效果:从前面的步骤应该能“猜”到这里的原因:模型仿真的初始值设定为-0.1,而我们两次实验数据的初始位置均不是-0.1。这也就是说,我们在利用这一组实验数据做估算的时候,应该把初始值也考虑进去。3.添加估算仿真初始状态值分别在这两个Experiments下面右键编辑,添加位置初始参数,如下图:这时候点击SelectParameters看到这一轮估算所考虑的参数。再次估算,收敛后得到的参数:估算效果如图:系统响应优化1.模型打开模型sldo_model1:设计参数:Kp,Ki,Kd设计要求:系统响应吻合指定曲线:y=1−exp(−0.1×t当前初始响应:2.响应优化打开系统响应优化工具:a.选择待优化控制参数:对应的是PID模块里设置的参数:同样,也可以根据需要限制参数范围:这时候,可以看到新增加的设计参数高亮显示:b.设置目标函数可以看到可以设置时域以及频域的优化目标函数:填入刚才的目标曲线表达式:如果设置了多个优化目标,可以同时选择:查看优化前响应:点击优化:控制参数已经自动更新,仿真原模型:自动生成查表表格1.模型加载估算与验证所需要的数据。已知y数据是通过x查表得到的,但现在不知道具体的表格数据。loadlookup_regular.matsubplot(2,1,1;plot(time1,xdata1;title('xdata1';subplot(2,1,2;plot(time1,ydata1;title('ydata1';打开lookup_regular2.表格参数估算打开参数估算工具箱:选择待估算参数:添加参考数据:点击优化开始估算:3.使用独立数据验证导入另一组独立数据:设置数据用于验证:验证:Simulink优化工具箱2015版V1.0打开刚才的Simulink模型,运行模型,对比原始数据与Simulink查表仿真的结果:sim('lookup_regular'figure(2;plot(xdata2,ydata2,'m*',xout,yout,'b^'holdon;plot(linspace(0,6.5,10,table,'k','LineWidth',2可以看到其实原始的x,y是近似sin函数关系。