# diskmargin
反馈回路的盘稳定裕度
函数库: TyRobustControl
提示
在不同操作系统运行,可能导致运行结果存在微小差异。
# 语法
DM,MM = diskmargin(L)
MMIO = diskmargin(P,C)
___ = diskmargin(___,sigma)
# 说明
DM,MM = diskmargin(L) 计算 SISO 或 MIMO 负反馈回路 feedback(L,eye(N)) 的盘稳定裕度,其中 N 是 L 中输入和输出的个数。
diskmargin 在 DM 中返回每个回路的稳定裕度,在 MM 中返回多回路共同裕度。基于磁盘的裕度分析比传统的增益和相位裕度提供了更强的稳定性保证。
MMIO = diskmargin(P,C) 计算在考虑被控对象输入和输出的独立并发变化时的稳定裕度,负反馈回路如下图所示。
___ = diskmargin(___,sigma) 指定一个额外的偏差参数,使模型增益和相位变化偏向增益增加(sigma 为正)或增益减少(sigma 为负)。该参数可以用来测试稳定裕度对增益增加与减少的相对敏感性。
# 示例
MIMO反馈环路的磁盘边界
diskmargin 计算一次回路和多次回路的盘稳定裕度。这个例子说明,一次回路的盘稳定裕度可能会对 MIMO 反馈回路的真正鲁棒性给出过于乐观的评估。单个回路的裕度对于其他回路中的小扰动很敏感,而一次回路的盘稳定裕度忽略了回路之间的相互作用。
考虑下图中的双通道 MIMO 反馈回路。
using TyRobustControl
using TyControlSystems
using TyBase
a = [0 10;-10 0]
b = eye(2)
c = [1 10;-10 1]
P = ss(a,b,c,0)
C = ss([1 -2;0 1])
计算被控对象的输出盘稳定裕度,被控对象输出端的负反馈开环响应为
Lo = P*C
DMo,MMo = diskmargin(Lo)
检查结构体数组 DM 中返回的一次回路盘稳定裕度,DM 中的每个元素都包含相应反馈通道的稳定裕度。
DMo[1]
Disk margin with:
GainMargin: [0.0, Inf]
PhaseMargin: [-90.0, 90.0]
DiskMargin: 2.0
Frequency: Inf rad/s, Inf Hz
DelayMargin: 0.0 s
Skew: 0
WorstPerturbation: Inf + 0.0im
DMo[2]
Disk margin with:
GainMargin: [0.0, Inf]
PhaseMargin: [-90.0, 90.0]
DiskMargin: 2.0
Frequency: 0.0 rad/s, 0.0 Hz
DelayMargin: Inf s
Skew: 0
WorstPerturbation: 0.0 - 0.0im
一次回路的盘稳定裕度结果非常好(无限增益裕度和 90° 相位裕度)。接下来检查多次回路的盘稳定裕度 MMo。该裕度考虑了两个反馈回路中独立的和并发的增益(相位)变化。这是一个更现实的评估,因为被控对象的不确定性通常同时影响两个通道。
MMo
Disk margin with:
GainMargin: [0.6834, 1.4633]
PhaseMargin: [-21.3031, 21.3031]
DiskMargin: 0.3762
Frequency: 0.0 rad/s, 0.0 Hz
DelayMargin: 371808.7261 s
Skew: 0
WorstPerturbation: missing
盘稳定性对开环增益增加和减少的敏感度
默认情况下,diskmargin 用于计算对称增益裕度(gmin = 1/gmax)及相位裕度。然而,在某些系统中,盘稳定性可能对开环增益的增加或减少更为敏感。使用偏斜度参数 sigma 来检查这种灵敏度。
选取三个不同的 sigma 值,分别计算一个 SISO 传递函数的盘稳定裕度。当 sigma 为负,计算倾向于增益减小;当 sigma 为正,倾向于增益增大。
using TyRobustControl
using TyControlSystems
L = tf(25,[1 10 10 10]);
DMdec = diskmargin(L,-2);
DMbal = diskmargin(L,0);
DMinc = diskmargin(L,2);
DGMdec = DMdec.GainMargin
2-element Vector{Float64}:
0.4012562915578358
1.3745088754879842
DGMbal = DMbal.GainMargin
2-element Vector{Float64}:
0.6272780054023511
1.5941894843875102
DGMinc = DMinc.GainMargin
2-element Vector{Float64}:
0.771681566500595
1.7247175840776565
综上所述,在没有相位变化的情况下,相对增益在 0.40 到 1.72 之间的变化保持稳定。
# 输入参数
L - 开环响应
TransferFunction 结构体
L 是系统模型的开环响应,可以是 SISO 或 MIMO ,只要它具有相同数量的输入和输出。
P - 被控对象
TransferFunction 结构体
P 是系统模型的被控对象环节,可以是 SISO 或 MIMO ,只要
C - 控制器
TransferFunction 结构体
C 是系统模型的控制器环节,可以是 SISO 或 MIMO ,只要
sigma - 偏差
0(默认)| Number
sigma 用于计算稳定边界,默认为 0,指定为实标量值。该参数可以用来测试稳定裕度对增益增加与减少的相对敏感性。
- 当 sigma = 0 时,使用增益变化平衡模型,范围 [gmin, gmax] 中 gmin = 1/gmax;
- 当 sigma > 0 时,使用增益变化平衡模型,范围 [gmin, gmax] 中 gmax > 1/gmin;
- 当 sigma < 0 时,使用增益变化平衡模型,范围 [gmin, gmax] 中 gmin < 1/gmax。
# 输出参数
DM - 每个反馈通道的盘稳定裕度
Diskmargin 结构体 | Diskmargin 结构体向量
计算在所有其他环路关闭时单个反馈回路的盘稳定裕度,作为具有 1 个反馈通道的 SISO 环路的结构体,或作为具有N个反馈通道的 MIMO 环路的 N × 1 结构体向量返回。Diskmargin 结构体含以下字段:
| 字段 | 值 |
|---|---|
| GainMargin | 针对相应反馈通道的、基于磁盘的幅值裕度,以向量 [gmin, gmax] 的形式输出。 |
| PhaseMargin | 针对相应反馈通道的、基于磁盘的相位裕度,以向量 [-pm, pm] 的形式输出。单位是角度值。 |
| DiskMargin | 针对相应反馈通道的、最大的兼容闭环稳定性的增益值。如果闭环系统不稳定,该值为 0。 |
| Frequency | 对应环路通道出现最小余量时的频率。单位是 rad/s 或 Hz。 |
| DelayMargin | 延迟时间,单位是 s。 |
| Skew | 偏差值 |
| WorstPerturbation | 使反馈回路不稳定的最小幅值和相位变换,此参数尚未开发完全。 |
MM - 多回路磁盘稳定裕度
Diskmargin 结构体
多回路磁盘稳定裕度,返回 Diskmargin 结构体。增益(或相位)裕度量化了系统在所有反馈通道中可以同时容忍多少增益变化(或相位变化)而保持稳定。因此,无论系统中有多少个反馈通道,MM 都是一个单一的结构体。对于 SISO 系统,MM = DM 。
Diskmargin 结构体所包含字段已经在输出参数 DM 中说明,这里不再赘述。
MMIO - 在所有输入和输出通道中独立变化的盘稳定裕度
Diskmargin 结构体
对被控对象 P 的输入和输出通道同时施加独立的变化所得的盘稳定裕度,返回 Diskmargin 结构体。
# 参考文献
[1]. Blight, James D., R. Lane Dailey, and Dagfinn Gangsaas. “Practical Control Law Design for Aircraft Using Multivariable Techniques.” International Journal of Control 59, no. 1 (January 1994): 93–137.
[2]. Seiler, Peter, Andrew Packard, and Pascal Gahinet. “An Introduction to Disk Margins [Lecture Notes].” IEEE Control Systems Magazine 40, no. 5 (October 2020): 78–95.