倒立摆 python
时间: 2023-10-17 07:06:58 浏览: 45
倒立摆是一种经典的控制系统问题,可以用来研究控制系统的稳定性和控制方法。在Python中,可以使用控制系统工具箱(Control System Toolbox)来模拟倒立摆系统。
以下是一个简单的倒立摆模拟程序:
```python
import control
import numpy as np
import matplotlib.pyplot as plt
# 系统参数
m = 1.0 # 质量
l = 1.0 # 杆长
g = 9.8 # 重力加速度
# 状态空间模型
A = np.array([[0, 1], [g/l, 0]])
B = np.array([[0], [-1/(m*l**2)]])
C = np.array([[1, 0], [0, 1]])
D = np.array([[0], [0]])
sys = control.ss(A, B, C, D)
# 设计控制器
Q = np.diag([1, 1])
R = np.array([[1]])
, S, E = control.lqr(sys, Q, R)
# 模拟系统响应
t = np.linspace(0, 10, 1000)
x0 = np.array([np.pi/6, 0])
t, y, x = control.lsim(sys - control.series(control.tf(K), sys), None, t, x0)
# 绘制图形
plt.plot(t, y[:, 0], label='theta')
plt.plot(t, y[:, 1], label='theta_dot')
plt.legend()
plt.show()
```