本示例说明了如何计算Simulink®中建模的控制回路的经典增益和相位裕度以及基于磁盘的增益和相位裕度。为了计算稳定裕度,对模型进行线性化,以提取一个或多个相关工作点的开环响应。然后,使用金宝appallmargin
或diskmargin
分别计算经典的或基于圆盘的稳定裕度。
对于本例,请使用Simulink模型金宝app机身MARGINEX.slx
. 此模型基于示例修剪和线性化机身(金宝appSimulink控制设计).
open_system (“机身MARGINEX.slx”)
该系统是一个双通道反馈回路。该装置是一输入两输出的子系统机身模型
控制器是一个双输入单输出系统,其输入为法向加速度阿兹
音高Q
,其输出为鳍偏转
信号。
为了计算该反馈系统的增益裕度和相位裕度,将模型线性化,得到设备输出和输入处的开环传递函数。您可以使用环传递类型的线性化分析点来实现这一点。有关线性化分析点的更多信息,请参见指定要线性化的模型部分(金宝appSimulink控制设计).
为设备输入创建一个回路传输分析点,该点是设备的第一个输出端口q控制
子系统。
ioInput=linio(“机身MARGINEX/q控制”,1,“循环转移”);
同样,为工厂输出创建分析点。由于有两个输出,请将这些分析点指定为线性化I/O对象的向量。
输出(1)=linio(“机身/机身模型”,1,“循环转移”);ioOutput(2)=linio(“机身/机身模型”2,“循环转移”);
将模型线性化,得到开环传递函数。对于本例,使用模型中指定的操作点。在工厂输入处的回路传输是SISO,而在输出处的回路传输是2 × 2。
李=线性化(“机身”,输入);%的输出Lo=线性化(“机身”, ioOutput);%多输入多输出
为了计算经典的增益裕度和相位裕度,使用allmargin
.对于开环传递函数,allmargin
假设一个负反馈回路。
系统返回的开环传递函数线性化
命令是模型在分析点的实际线性化开环响应。因此,对于开环响应L
,整个模型的闭环响应为正反馈回路。
因此,使用-L
使allmargin
计算具有正反馈的稳定裕度。计算设备输入的经典增益和相位裕度。
Si=所有边际(-Li)
Si=带字段的结构:GainMargin:[0.1633 17.6538]GMFrequency:[1.5747 47.5230]PhaseMargin:44.4551 PMFrequency:5.3929 DelayMargin:14.3871 DMFrequency:5.3929 Stable:1
结构硅
包含有关经典稳定裕度的信息。例如,Li.gm频率
给出了开环响应相位穿过–180°的两个频率。李甘马金
给出每个频率的增益裕度。增益裕度是环路增益在该频率下变化的量,同时保持闭环稳定性。
计算电厂输出时的稳定裕度。
So=所有裕度(-Lo);
因为有两个输出通道,allmargin
返回一个数组,其中包含每个通道的一个结构。每个条目包含该通道在关闭另一个反馈通道时计算的边距。结构索引所以
获得每个通道的稳定裕度。例如,检查与增益变化或相位变化相关的裕度Q
工厂的产量,即第二个产量。
So(2)
ans=带字段的结构:增益边缘:[0.3456 17.4288]GMFrequency:[3.4361 49.8461]相位边缘:[-78.2449 52.6040]PMFrequency:[1.5685 6.5428]延迟裕度:[313.5216 14.0324]DMFrequency:[1.5685 6.5428]稳定:1
与传统的增益和相位裕度相比,磁盘裕度提供了更强的稳定性保证。基于磁盘的裕度分析模型将增益和相位变化作为开环系统响应的复杂不确定性。磁盘裕度是与闭环稳定性兼容的最小不确定性。(有关磁盘裕度的一般信息,请参见利用磁盘余量进行稳定性分析.)
要计算基于磁盘的边距,请使用diskmargin
. 喜欢allmargin
这个diskmargin
命令假定为负反馈系统。因此,使用-李
计算工厂输入的基于磁盘的余量。
DMi=diskmargin(-Li)
DMi = struct with fields: GainMargin: [0.4419 2.2628] phasmargin: [-42.3153 42.3153] DiskMargin: 0.7740 LowerBound: 0.7740 UpperBound: 0.7740 Frequency: 4.2515 worst微干扰:[1x1 ss]
这个领域DMi。GainMargin
告诉你,在工厂输入的开环增益可以在约0.44和约2.26之间变化任何因素而不损失闭环稳定性。基于磁盘的保证金考虑到所有频率的变化。
对于MIMO环路传递函数,如响应瞧
在工厂产出中,有两种基于圆盘的稳定裕度。的每次循环页边距每个通道中的稳定裕度是否与另一个回路闭合多回路边距是两个通道中同时出现的增益(或相位)独立变化的裕度。diskmargin
计算两者。
(DMo, MMo) = diskmargin (lo);
每次循环的边距作为结构数组返回DMo
每个通道有一个条目。例如,检查每个通道的增益变化或相位变化裕度Q
工厂的产量随阿兹
循环闭合,并与So(2)
以上。
DMo(2)
ans = struct with fields: GainMargin: [0.3771 2.6521] phasmargin: [-48.6811 48.6811] DiskMargin: 0.9047 LowerBound: 0.9047 UpperBound: 0.9047 Frequency: 4.4982 worst扰动:[2x2 ss]
多回路的保证金,网游
,通过考虑所有反馈通道的增益(或相位)同时变化,考虑环路交互作用。这通常为多环控制系统提供最现实的稳定裕度估计。
网游
MMo=带字段的结构:GainMargin:[0.6238 1.6030]PhaseMargin:[-26.0867 26.0867]DiskMargin:0.4633下限:0.4633上限:0.4643频率:3.6830 WorstPerturation:[2x2 ss]
MMo。GainMargin
结果表明,在不影响闭环稳定性的情况下,两个输出通道的增益可以在0.62和1.60之间独立变化。相位边缘
结果表明,在每一个通道中保持了稳定的独立相位变化,最大可达±26°。使用diskmarginplot
以图形方式检查多回路边距。
diskmarginplot (lo)
这显示了作为频率函数的基于磁盘的增益和相位裕度网游
返回的值diskmargin
对应于频率范围内最弱的盘面裕度。
当你使用线性化
,您可以提供多个工作点,以生成系统的线性化阵列。allmargin
和diskmargin
可以在线性模型阵列上操作,以返回多个操作点的边界。例如,线性化机身系统在三次模拟快照时间。
Snap=[0;2;5];LiSnap=线性化(“机身”,ioInput,Snap);LoSnap=线性化(“机身”,ioOutput,Snap);
LiSnap
是一个3乘1的SISO线性模型阵列,其中一个用于在每个快照时间获得的植物输入处的环路传输。同样的,洛斯纳
是一个由2输入,2输出线性模型组成的3乘1数组,表示在每个快照时间的工厂输出处的环路传输。计算经典增益和相位裕度在工厂的输入在三个快照时间。
SiSnap = allmargin (-LiSnap);
结构数组中的每个条目西斯纳普
包含对应快照时间的经典边距信息。例如,检查第二个条目的经典边距,T
= 2。
SiSnap (2)
ans=带字段的结构:GainMargin:[0.0171 18.2441]GMFrequency:[0.0502 51.4351]PhaseMargin:93.1041 PMFrequency:2.8474 DelayMargin:57.0691 DMFrequency:2.8474 Stable:1
计算工厂输出的磁盘边距。
[DMoSnap,MMoSnap]=diskmargin(-LoSnap);
由于有两个反馈通道和三个快照时间,因此包含每次循环磁盘边距的结构阵列的维数为2×3。第一个维度用于反馈通道,第二个维度用于快照时间。换句话说,,DMoSnap(j,k)
包含频道的边距J
在快照时间K
.例如,在第三个快照时间检查第二个反馈通道中的磁盘边缘,T
=5秒。
DMoSnap(2、3)
ans = struct with fields: GainMargin: [0.1345 7.4338] phasmargin: [-74.6771 74.6771] DiskMargin: 1.5257 LowerBound: 1.5257 UpperBound: 1.5257 Frequency: 24.1993 worst扰动:[2x2 ss]
每个快照时间只有一组多循环边距,所以MMoSnap
是一个3乘1结构数组。
如前所述,还可以绘制多回路边距。现在有三条曲线,每个快照时间一条。单击曲线以确定其对应的快照时间。
diskmarginplot (-LoSnap)
allmargin
|diskmargin
|diskmarginplot
|线性化
(金宝appSimulink控制设计)