Python绘制奈奎斯特图(nyquist plot)
文章目录
简介绘图nyquist_plot
简介
奈奎斯特图,是一种线性控制系统的频率特性图,对于连续时间的线性非时变系统,将其频率响应的增益及相位以极坐标的方式绘出。奈奎斯特图常在控制系统或信号处理中使用,可以用来判断一个有反馈的系统是否稳定。
奈奎斯特图可以根据开环传递函数的频率响应在复平面上的轨迹,来判断闭环系统是否稳定,具体来说,可通过曲线是否顺时针包围、逆时针包围
−
1
-1
−1点,来判断其稳定性
顺时针包围:如果奈奎斯特图顺时针包围点
−
1
+
j
0
-1 + j0
−1+j0,则闭环系统不稳定。包围的次数等于闭环系统不稳定极点的个数。逆时针包围:如果奈奎斯特图逆时针包围点
−
1
+
j
0
-1 + j0
−1+j0,则闭环系统稳定。不包围:如果奈奎斯特图不包围点
−
1
+
j
0
-1 + j0
−1+j0,则闭环系统稳定。
绘图
对于响应函数为
2
s
2
+
5
s
+
1
s
2
+
2
s
+
3
\frac{2 s^{2} + 5 s + 1}{s^{2} + 2 s + 3}
s2+2s+32s2+5s+1的系统而言,其奈奎斯特图如下
此图显示了传递函数在复平面上的轨迹,从左下方开始,向右上方移动,然后围绕原点附近旋转,最后回到左下方,由于此图未包含
−
1
-1
−1点,故而系统稳定。
绘图代码为
from sympy.abc import s
from sympy.physics.control.lti import TransferFunction
from sympy.physics.control.control_plots import nyquist_plot
tf1 = TransferFunction(2*s**2 + 5*s + 1, s**2 + 2*s + 3, s)
nyquist_plot(tf1)
nyquist_plot
【nyquist_plot】即为sympy中绘制奈奎斯特图的函数,其完整定义为
control_plots.nyquist_plot(
system,
initial_omega=0.01,
final_omega=100,
show=True,
color='b',
**kwargs,
)
其中各参数含义为以下是翻译内容:
system:要生成奈奎斯特图的线性时不变单输入单输出(LTI SISO)系统。initial_omega:起始频率值。默认值为 0.01。final_omega:结束频率值。默认值为 100。show:如果为 True,则显示图形。默认值为 True。color:奈奎斯特图的颜色。默认值为‘b’(蓝色)。grid:如果为 True,则显示网格线。默认值为 False。