主要内容

实时编辑器中的模型缩减

这个例子展示了如何使用减少模型的顺序任务生成代码,通过平衡截断、模式选择和零极点简化执行模型简化。的减少模型的顺序Task允许您交互式地计算高阶模型的降阶近似,同时保留对您的应用程序很重要的模型特征。

打开这个示例,可以看到一个包含减少模型的顺序的任务。有关实时编辑器任务的详细信息,请参见向活动脚本添加交互式任务

在Live Editor中,加载您想要缩减到MATLAB®工作空间中的模型。

负载构建G大小(G)
状态空间模型,包含1个输出,1个输入和48个状态。

线性时不变模型G是一个包含48个状态的状态空间模型。其中一些状态可以在保留相关动力学的同时被丢弃。为了实验减少模型,打开减少模型的顺序住编辑任务。在住编辑器选项卡上,选择任务>减少模型的顺序

平衡截断

平衡截断法通过去除能量贡献相对较小的状态来计算模型的低阶近似。有关平衡截断的更多信息,请参见平衡截断模型缩减

控件中为平衡截断生成代码减少模型的顺序任务,选择G作为简化模型。指定平衡截断随着方法

指定目标减少订单简化模型。你可以使用汉克尔奇异值图帮助选择目标订单。这张图显示了原始模型中每个状态的相对能量贡献。任务丢弃的状态的能量低于您在此图中选择的状态。

响应图为原模型和降阶模型的Bode图。通过在汉克尔奇值图上选择不同的阶数进行不同的降阶模型实验,利用响应图观察降阶模型的变化情况。(要查看原始模型和简化模型之间的绝对或相对误差,请使用模型响应菜单。)

选择最小的模型顺序,以充分保留对应用程序很重要的动态。如果你只对特定频率范围内的动力学感兴趣,你可以将能量贡献的计算限制在这个范围内。去做,选择频率范围.然后,输入最小和最大频率或使用响应图上的垂直滑块指定范围。(选择频率范围扫清了保持直流增益选项,因为0 rad/s不在默认频率范围内。)

该任务生成计算您指定的简化模型的代码。要查看生成的代码,请单击在任务的底部。任务展开以显示生成的代码。为平衡截断,减少模型的顺序使用balred使用指定的选项balredOptions.(要包含生成响应图的代码,请在输出图菜单,选择您想要的响应。)

默认情况下,生成的代码使用sysReduced作为输出变量的名称。要指定不同的输出变量名,请在任务顶部的摘要行中输入新的名称。

该任务更新生成的代码以反映新的变量,一个降阶状态空间模型出现在MATLAB®工作空间的新名称中。

模式选择

您可以在MATLAB工作空间中使用降阶模型,就像您将使用任何其他LTI模型进行分析和控制设计一样。对于本例,将简化模型响应与使用不同的模型简化方法创建的简化模型进行比较,模式选择.模式选择通过丢弃位于指定频率区域之外的动态来减少模型。

将输出变量的名称更改为G_mr,这样就不会覆盖使用平衡截断创建的模型。然后,设置还原方法为模式选择.使用绘图上的垂直滑块选择要保持动态的频率范围,或输入频率范围截止频率

对于模式选择,Reduce Model Order生成使用freqsep.在降阶模型中添加极点-零图来观察哪些极点和零被消除是有用的。要做到这一点,就在输出图菜单中,选择Pole-Zero.这个选择生成一个图,显示原始模型和简化模型的极点和零点。它还将用于创建该图的代码添加到生成的代码中。

Pole-Zero简化

零极点简化通过消除零极点对或消除对整体模型响应没有影响的状态来精确地降低模型的阶数。例如,在构建闭环体系结构时,可以引入极点-零对。与数值计算相关的普通小误差可以将这种对消对转换为近似对消对。去除这些状态保留了模型响应特性,同时简化了分析和控制设计。

的零点化简方法减少模型的顺序自动消除:

  • 从传递函数中抵消或接近抵消极点零对

  • 状态空间模型中不可观察或不可控制的状态

  • 在结构上与输入或输出断开连接的状态。

将输出变量的名称更改为G_pz,这样就不会覆盖使用其他方法创建的模型。然后,设置还原方法为Pole-Zero取消.使用宽容参数来调整必须消除的极零对的接近程度。将滑块移动到更多的为了抵消更多的零极对,将模型降低到更小的阶数。在输出图中,选择Pole-Zero并利用图观察哪些极点和零点被从简化模型中消除。

使用降维模型

减少模型的顺序任务在MATLAB工作空间中自动创建降阶模型。您可以像使用任何其他LTI模型一样使用这些模型进行进一步的分析或控制设计。例如,在一个图上比较原始模型和所有降阶模型的频率响应。

波德(G, G_bt G_mr G_pz,{0.1, 1000})传奇

另请参阅

应用程序

住编辑任务

功能

相关的话题