Bode Plot(波特图)
定义:
Bode Plot 是一种用于分析线性时不变系统频率响应的图形工具,包含两个部分:
- 幅频图(Magnitude Plot):展示系统增益(通常以分贝表示)随频率的变化。
- 相频图(Phase Plot):展示系统相位随频率的变化。
用途:
- 系统分析:用于分析系统的稳定性、带宽、增益裕度和相位裕度。
- 控制器设计:帮助设计补偿器或控制器,以满足特定性能要求。
- 滤波器设计:用于设计和分析滤波器的频率响应。
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 定义系统
# 例如:传递函数 H(s) = 1 / (s^2 + 2s + 1)
numerator = [1]
denominator = [1, 2, 1]
system = signal.TransferFunction(numerator, denominator)
# 计算频率响应
frequencies = np.logspace(-2, 2, 500) # 频率范围从 0.01 到 100 rad/s
w, mag, phase = signal.bode(system, frequencies)
# 绘制 Bode Plot
plt.figure(figsize=(10, 6))
# 幅频图
plt.subplot(2, 1, 1)
plt.semilogx(w, mag) # 对数频率轴
plt.title('Bode Plot - Magnitude')
plt.ylabel('Magnitude [dB]')
plt.grid(which='both', axis='both')
# 相频图
plt.subplot(2, 1, 2)
plt.semilogx(w, phase) # 对数频率轴
plt.title('Bode Plot - Phase')
plt.ylabel('Phase [degrees]')
plt.xlabel('Frequency [rad/s]')
plt.grid(which='both', axis='both')
plt.tight_layout()
plt.show()
Nyquist Diagram(奈奎斯特图)
定义:
Nyquist Diagram 是复平面上的极坐标图,展示系统频率响应函数的实部和虚部随频率的变化。
用途:
- 稳定性分析:通过奈奎斯特稳定性判据,判断闭环系统的稳定性。
- 系统设计:用于设计和分析控制系统的频率响应特性。
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 定义系统
# 例如:传递函数 H(s) = 1 / (s^2 + 2s + 1)
numerator = [1]
denominator = [1, 2, 1]
system = signal.TransferFunction(numerator, denominator)
# 计算频率响应
frequencies = np.logspace(-2, 2, 500) # 频率范围从 0.01 到 100 rad/s
w, H = signal.freqresp(system, frequencies)
# 绘制 Nyquist Diagram
plt.figure(figsize=(6, 6))
plt.plot(H.real, H.imag, label='Nyquist Diagram')
plt.plot(H.real, -H.imag, '--', label='Mirror Image') # 镜像部分
plt.title('Nyquist Diagram')
plt.xlabel('Real Axis')
plt.ylabel('Imaginary Axis')
plt.grid(True)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.legend()
plt.show()
区别
- 表示方式:Bode Plot 使用对数坐标,Nyquist Diagram 使用极坐标。
- 信息展示:Bode Plot 分开显示幅频和相频特性,Nyquist Diagram 同时显示实部和虚部。
总结
- Bode Plot:用于分析系统的幅频和相频特性,适合设计和分析滤波器及控制器。
- Nyquist Diagram:用于稳定性分析和系统设计,尤其在判断闭环系统稳定性时非常有用。
两者在控制系统设计和分析中都至关重要,各有其独特的应用场景。