用margin计算裕度:
using ControlSystems
步骤2.1:定义系统传递函数(以连续时间系统为例)
num = [1.0] # 分子系数,例如 K=1
den = [1.0, 1.0, 0.0] # 分母系数,对应 s(s+1)
sys = tf(num, den) # 创建传递函数模型
步骤2.2:计算稳定裕度
使用margin函数计算增益裕度和相位裕度
gm, pm, wcg, wcp = margin(sys) # gm: 增益裕度(dB), pm: 相位裕度(度), wcg/wcp: 对应频率
步骤2.3:输出结果
println("增益裕度 (GM): ", gm, " dB")
println("相位裕度 (PM): ", pm, " 度")
println("增益交越频率 (Wcg): ", wcg, " rad/s")
println("相位交越频率 (Wcp): ", wcp, " rad/s")
结果如下:
julia> println("增益裕度 (GM): ", gm, " dB")
增益裕度 (GM): [NaN;;] dB
julia> println("相位裕度 (PM): ", pm, " 度")
相位裕度 (PM): [Inf;;] 度
julia> println("增益交越频率 (Wcg): ", wcg, " rad/s")
增益交越频率 (Wcg): [0.7863810025174541;;] rad/s
julia> println("相位交越频率 (Wcp): ", wcp, " rad/s")
相位交越频率 (Wcp): [51.819162097635825;;] rad/s
请问如何理解?用bodeplot绘制频率特性:
using Plots
bodeplot(sys) # 绘制Bode图
结果如下: