主要内容

不确定性Simulink模型的线性金宝app化

此示例显示如何使用鲁棒控制工具箱™和Simulink®ControlDesign™计算不确定的线性化。金宝app有两种方便的工作流程,具体取决于使用Simulink如何使用。金宝app由此产生的不确定线性化是鲁棒控制工具箱中不确定的状态空间(USS)数据结构的形式,可以通过鲁棒控制工具箱中的分析函数使用。

介绍

Simulink中的图形用户界面是对控制系统进行建模和仿真的自然金宝app环境。利用Simulink控制设计中的线性化能力和鲁棒控制工具箱中的不确定性元素,您可金宝app以在Simulink模型中指定特定块的不确定性,然后提取一个不确定的线性化模型。

在这个例子中,PID控制器的性能是在不确定性存在的情况下检查的。有两种方法可以计算不确定系统的线性化。每种方法都是为了满足在Simulink中工作时的不同需求而设计的。金宝app下面的部分将对这些方法进行总结。

方法#1:使用不确定状态空间块

当您已经使用不确定的状态空间块作为控制系统设计过程中的一部分时,这首先方法是最适用的。金宝app如图所示Simulink中的鲁棒性分析金宝app,鲁棒控制工具箱中的不确定状态空间块允许您指定Simulink模型中的不确定性。金宝app

在以下示例中,植物和传感器动力学都不确定。植物动态的不确定性包括:

  • 真杆子unc_pole谁的位置在-10到-4之间变化

  • 未建模动态input_unc.(在130 rad / s的低频上升到100%不确定性的25%的相对不确定性)。

Unc_pole =尿尿('unc_pole',-5,'范围', -10 [4]);工厂= ss (unc_pole 5 1,0);,130 wt =补足重量的东西(0.25,2.5);input_unc = ultidyn (“input_unc”,[1 1]);

不确定的传感器动态被定义为

sensor_pole =尿素的(“sensor_pole”, -20,'范围',[ -  30 -10]);传感器= TF(1,[1 /( -  SENSOR_POLE)1]);

rct_ulinearize_uss模型使用不确定状态空间块(蓝色突出显示)来建模这种不确定性:

mdl ='rct_ulinearize_uss';Open_System('rct_ulinearize_uss'

这个Sim金宝appulink模型可以用来计算不确定的线性化。线性模型在参考块处有一个输入rct_ulinearize_suss /参考以及工厂的产量rct_ulinearize_uss /不确定工厂.这些线性化的输入和输出点是用Simulink控制设计指定的。金宝app线性化点可以使用以下命令找到:

io = getlinio (mdl);

不确定线性化的计算使用命令鲁莽.此命令返回不确定的状态空间(USS)对象,该对象取决于不确定的变量input_unc.sensor_pole, 和unc_pole

io sys_ulinearize = ulinearize (mdl)
sys_ulinearize =不确定的连续时间 - 空间模型,1个输出,1个输入,5个状态。模型不确定性由以下块组成:Input_unc:不确定1x1 lti,峰值增益= 1,1出现Sensor_pole:不确定的真实,标称= -20,范围= [-30,-10],1个发生Unc_pole:不确定的真实,标称= -5,范围= [-10,-4],1次出现“sys_ulinearize.nominalvalue”,以查看标称值,“get(sys_ulinearize)”查看所有属性,以及“sys_ulinearize.unctiallaintaint”与不确定互动元素。

这就结束了第一种方法。关闭Simulink金宝app模型:

BdClose(MDL)

方法#2:使用内置Simulink块金宝app

第二种方法使用Simulink Control Desig金宝appn的块线性化规范用户界面来指定线性化的不确定性。Simulink Control Design中的块线性化规范功能允许任何Simulink块被增益金宝app、LTI对象或鲁棒控制工具箱不确定变量所取代。这种方法最适合使用不使用Uncertain State Space块的模型。这种方法的主要优点是不确定度的规定不会影响Simulink中的任何其他操作,比如仿真。金宝app

仅使用内置Simulink块的原始模型的修改版本如下所示。金宝app

mdl ='rct_ulinearize_builtin';open_system (mdl);

单击rct_ulinearize_builtin /植物阻止并选择菜单项线性分析- >指定线性化,你可以指定这个块应该线性化成什么值。如果输入表达式植物* (1 + wt * input_unc)在下面的对话框中,“Plant”块将线性化为相应的不确定状态空间模型(USS对象)。

同样,你可以指定不确定模型传感器作为块的线性化rct_ulinearize_builtin /传感器增益

你现在可以线性化rct_ulinearize_builtin使用Simulink金宝app Control Design命令线性化

io = getlinio (mdl);sys_linearize =线性化(mdl,io)
sys_linearize = 1个输出,1个输入,5个状态的不确定连续时间状态空间模型。模型的不确定性由以下块组成:input_unc:不确定1x1 LTI,峰值增益= 1,1出现sensor_pole:不确定实,标称= -20,range =[-30,-10], 1出现unc_pole:不确定实,标称= -5,范围=[-10,-4],1出现Type "sys_linearize。“名义值”查看名义值,“get(sys_linearize)”查看所有属性,以及“sys_linearize”。“不确定性”与不确定元素相互作用。

得到的模型是一种不确定的状态空间(USS)模型,其等于使用第一方法计算的不确定线性化。

利用不确定的线性化结果

这两个线性化方法都产生了一个不确定的状态空间(USS)对象,可以用标准的强大控制工具箱命令分析。在此示例中,该USS模型用于找到线性化闭环响应的最坏情况增益。

[maxg, worstun] = wcgain (sys_linearize);

然后可以使用所得到的不确定变量的最坏情况值来与标称响应进行比较。该比较表明PID性能对工厂和传感器不确定性不稳定。

sys_worst = usubs (sys_linearize worstun);步骤(sys_linearize.NominalValue sys_worst)传说(“名义”“最坏的”);

示例到此结束。关闭Simulink金宝app模型:

bdclose (mdl);

另请参阅

功能

相关话题