这个例子展示了如何使用鲁棒控制工具箱™和Simulink®控制设计™计算不确定线性化。金宝app根据Simulink的使用方式,提供了两种方便的工作流程。金宝app所得到的不确定线性化以鲁棒控制工具箱中的不确定状态空间(USS)数据结构的形式存在,可用于鲁棒控制工具箱中的分析函数。
Simulink中的图形用户界面是建模和仿真控制系统的自然环境。金宝app利用Simulink Control Design中的线性化功能和鲁棒控制工具箱金宝app中的不确定性元素,您可以在Simulink模型的特定块上指定不确定性,然后提取一个不确定的线性化模型。
在这个例子中,PID控制器的性能在存在不确定性的情况下被检查。有两种方法可用于计算不确定系统的线性化。每一种方法都是为了满足在Simulink中工作时的不同需求而设计的。金宝app下面几节将对这些方法进行总结。
当你已经在Simulink中使用不确定状态空间块作为控制系统设计过程的一部分时,第一种方法是最适用的。金宝app如示例所示Simulink中的鲁棒性分析金宝app,鲁棒控制工具箱中的不确定状态空间块可以让你在Simulink模型中指定不确定性。金宝app
在下面的例子中,设备和传感器的动力学都是不确定的。关于植物动态的不确定性包括:
真正的极unc_pole
谁的位置在-10和-4之间变化
未建模动态input_unc
(低频时25%的相对不确定度上升到130 rad/s时100%的不确定度)。
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]);
定义不确定传感器动力学为
sensor_pole =尿素的(“sensor_pole”, -20,“范围”-10年[-30]);传感器= tf(1,[1/(-sensor_pole) 1]);
的rct_ulinearize_uss
模型使用不确定状态空间块(蓝色突出显示)来建模这种不确定性:
mdl =“rct_ulinearize_uss”;open_system (“rct_ulinearize_uss”)
这个Sim金宝appulink模型可以用来计算不确定的线性化。线性模型在参考块处有一个输入rct_ulinearize_uss /参考
和植物的产量rct_ulinearize_uss /不确定工厂
.这些线性化输入和输出点是用Simulink控制设计指定的。金宝app使用以下命令可以找到线性化点:
io = getlinio (mdl);
使用该命令计算不确定线性化ulinearize
.该命令返回一个依赖于不确定变量的不确定状态空间(USS)对象input_unc
,sensor_pole
,unc_pole
:
io sys_ulinearize = ulinearize (mdl)
sys_ulinearize = 1输出,1输入,5状态的不确定连续时间状态空间模型。该模型的不确定性由以下模块组成:input_unc:不确定1x1 LTI,峰值增益= 1,1发生传感器极点:不确定真实,标称= -20,范围=[-30,-10],1发生unc_极点:不确定真实,标称= -5,范围=[-10,-4],1发生类型"sys_ulinearize。NominalValue“查看名义值”,get(sys_ulinearize)“查看所有属性”,以及“sys_ulinearize. properties”。“不确定性”与不确定因素相互作用。
这就是第一种方法。关闭Simulink金宝app模型:
bdclose (mdl)
第二种方法是使用Simulink Control Desi金宝appgn用户界面进行块线性化规范,以指定线性化的不确定性。Simulink控制设计中的块线性化规范特性允许任何Simulink块被增益、LTI对象或鲁棒控制金宝app工具箱中的不确定变量所取代。当处理不使用不确定状态空间块的模型时,这种方法最适合。这种方法的主要优点是不确定性的规范不会影响Simulink中的任何其他操作,比如simulation。金宝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控制设计命令线性化
:
io = getlinio (mdl);io sys_linearize =线性化(mdl)
sys_linearize = 1输出,1输入,5状态的不确定连续时间状态空间模型。模型不确定性由以下模块组成:input_unc:不确定1x1 LTI,峰值增益= 1,1发生传感器极点:不确定真实,标称= -20,范围=[-30,-10],1发生unc_极点:不确定真实,标称= -5,范围=[-10,-4],1发生类型"sys_linearize。NominalValue“查看名义值”,get(sys_linearize)“查看所有属性”,以及“sys_linearize. properties”。“不确定性”与不确定因素相互作用。
得到的模型是一个不确定状态空间(USS)模型,等价于使用第一种方法计算的不确定线性化。
两种线性化方法都会产生一个不确定的状态空间(USS)对象,可以用标准的鲁棒控制工具箱命令进行分析。在这个例子中,USS模型被用来找出线性化的闭环响应的最坏情况增益。
[maxg, worstun] = wcgain (sys_linearize);
由此产生的不确定变量的最坏情况值可以用来与名义响应进行比较。这一比较表明,PID性能对被控对象和传感器的不确定性不具有鲁棒性。
sys_worst = usubs (sys_linearize worstun);步骤(sys_linearize.NominalValue sys_worst)传说(“名义”,“最坏的”);
这个例子到此结束。关闭Simulink金宝app模型:
bdclose (mdl);