主要内容

利用状态空间估计降低模型阶数

减小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);

图中包含2个轴对象。坐标轴对象1包含2个类型为line的对象。这些对象表示data (y1), sys\_lin: 100%。axis对象2包含2个类型为line的对象。这些对象表示data (y2), sys\_lin: 100%。

由于数据是通过模拟线性化模型得到的,因此数据与模型线性化响应完全匹配。

确定一个状态空间模型,该状态空间模型具有适当适合数据的简化顺序。

确定最优模型顺序。

nx = 1:9;sys1 = ss(数据、nx“DisturbanceModel”“没有”);

图显示的汉克尔奇异值(SVD)的模型的命令nx出现了。

汉克尔奇异值相对较小的状态可以安全地丢弃。图中建议使用五阶模型。

在MATLAB®命令提示符,为估计的状态空间模型选择模型顺序。指定模型顺序为5,或者按输入使用默认顺序值。

将数据与估计模型进行比较。

比较(数据、sys1);

图中包含2个轴对象。坐标轴对象1包含2个类型为line的对象。这些对象表示data (y1), sys1: 98.46%。axis对象2包含2个类型为line的对象。这些对象表示data (y2), sys1: 97.81%。

图中显示了两者的匹配百分比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);

图中包含2个轴对象。坐标轴对象1包含3个类型为line的对象。这些对象表示data (y1), sys\_lin: 100%, sys2: 99.63%。axis对象2包含3个类型为line的对象。这些对象表示data (y2), sys\_lin: 100%, sys2: 98.04%。

更新后的选项集会得到更好的适合百分比sys2

另请参阅

(万博1manbetx仿真软件控制设计)|(万博1manbetx仿真软件控制设计)