减小Simulink的顺序万博1manbetx®通过线性化模型和估计一个保持模型动态的低阶模型来建模。
这个例子需要Simulink和万博1manbetx万博1manbetx仿真软件控制设计™工具箱。
考虑Simulink模型万博1manbetxidF14Model
.线性化这个模型得到一个九阶模型。然而,使用低阶模型可以捕获模型的动态,而不会过多地影响拟合质量。
得到线性化模型。
load_system (“idF14Model”);io = getlinio (“idF14Model”);sys_lin =线性化(“idF14Model”io);
sys_lin
是一个具有两个输出和一个输入的九阶状态空间模型。
模拟线性化模型的阶跃响应,并使用数据创建iddata
对象。
t = 0.0444;t = (0: Ts: 4.44);y =步骤(sys_lin t);data = iddata([0(20日2);y], [0 (20, 1);(101,1)], Ts);
数据
是一个iddata
对象的步长响应sys_lin
.
将数据与模型线性化进行比较。
比较(数据、sys_lin);
由于数据是通过模拟线性化模型得到的,因此数据与模型线性化响应完全匹配。
确定一个状态空间模型,该状态空间模型具有适当适合数据的简化顺序。
确定最优模型顺序。
nx = 1:9;sys1 = ss(数据、nx“DisturbanceModel”,“没有”);
图显示的汉克尔奇异值(SVD)的模型的命令nx
出现了。
汉克尔奇异值相对较小的状态可以安全地丢弃。图中建议使用五阶模型。
在MATLAB®命令提示符,为估计的状态空间模型选择模型顺序。指定模型顺序为5
,或者按输入使用默认顺序值。
将数据与估计模型进行比较。
比较(数据、sys1);
图中显示了两者的匹配百分比sys1
输出。模型序的四状态降低导致拟合百分比相对较小的降低。
检查搜索算法的停止条件。
sys1.Report.Termination.WhyStop
ans = '达到的最大迭代次数。'
创建一个评估选项集。指定“lm”
搜索方法。将搜索迭代的最大次数从默认的20次增加到50次。
选择= ssestOptions (“SearchMethod”,“lm”);opt.SearchOptions.MaxIterations = 50;opt.Display =“上”;
使用估计选项集和确定状态空间模型sys1
作为估计初始化模型。
sys2 = ss(数据、sys1选择);
比较线性化模型和估计模型的响应。
比较(数据、sys_lin sys2);
更新后的选项集会得到更好的适合百分比sys2
.