在控制系统的学习与实践中,图形化工具的使用大大简化了复杂的理论计算和仿真过程。掌握正确的控制系统图形种类,不仅能提高工作效率,还能加深对系统特性的理解。以下是几种必备的控制系统图形,助你轻松入门。
1. 阶跃响应图(Step Response)
阶跃响应图是控制系统分析中最基础的图形之一。它展示了系统在受到阶跃输入时的输出响应。通过观察阶跃响应图,我们可以了解系统的稳定性、上升时间、超调和稳态误差等性能指标。
示例
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 定义系统参数
numerator = [1]
denominator = [1, 2, 2]
sys = signal.TransferFunction(numerator, denominator)
# 计算阶跃响应
t, y = signal.step(sys)
# 绘制阶跃响应图
plt.figure()
plt.plot(t, y)
plt.title('Step Response')
plt.xlabel('Time')
plt.ylabel('Output')
plt.grid(True)
plt.show()
2. 频率响应图(Bode Plot)
频率响应图描述了系统在不同频率下的增益和相位特性。它有助于分析系统的稳定性、带宽和相位裕度等参数。
示例
# 继续使用上例中的系统
w, mag, phase = signal.bode(sys)
# 绘制频率响应图
plt.figure()
plt.plot(w, mag, 'b', linewidth=1.5)
plt.title('Bode Plot')
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Magnitude [dB]')
plt.grid(True)
plt.show()
plt.figure()
plt.plot(w, phase, 'r', linewidth=1.5)
plt.title('Bode Phase Plot')
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Phase [deg]')
plt.grid(True)
plt.show()
3. 相平面图(Phase Plane)
相平面图用于分析二阶系统的动态特性。它通过在二维平面上绘制系统的状态变量来展示系统的运动轨迹。
示例
# 定义二阶系统参数
a = 0.1
b = 1
c = 0.1
d = 1
# 计算状态变量
t = np.linspace(0, 10, 1000)
x = b * np.sin(c * t) + d * np.cos(a * t)
# 绘制相平面图
plt.figure()
plt.plot(x, np.diff(x) / np.diff(t))
plt.title('Phase Plane')
plt.xlabel('State Variable x')
plt.ylabel('State Variable dx/dt')
plt.grid(True)
plt.show()
4. 坐标图(Numerator and Denominator Plot)
坐标图展示了系统的传递函数分子和分母的零点和极点。它有助于分析系统的稳定性和频率特性。
示例
# 继续使用上例中的系统
zeroes, poles = signal.freqz(sys, worN=1000)
# 绘制坐标图
plt.figure()
plt.plot(poles, 'ro', label='Poles')
plt.plot(zeroes, 'bo', label='Zeroes')
plt.title('Numerator and Denominator Plot')
plt.xlabel('Real Part')
plt.ylabel('Imaginary Part')
plt.grid(True)
plt.legend()
plt.show()
通过掌握这些控制系统图形,你可以更轻松地分析和设计控制系统。在实际应用中,根据具体问题选择合适的图形进行研究和仿真,将有助于你更快地掌握控制系统的核心知识。
