python求连续时间系统状态方程式的解

例:求状态方程   eq?%5Cdot%7Bx%7D%28t%29%20%3D%20%5Cbegin%7Bbmatrix%7D%200%261%260%20%5C%5C%200%260%261%20%5C%5C%20-6%26-11%26-6%20%5Cend%7Bbmatrix%7Dx%28t%29   在初始条件   eq?x%280%29%20%3D%20%5Cbegin%7Bbmatrix%7D%201%5C%5C1%20%5C%5C1%20%5Cend%7Bbmatrix%7D   下的解。

import numpy as np
import matplotlib.pyplot as plt
from scipy.linalg import expm

A = np.array([[0,1,0], [0,0,1], [-6,-11,-6]])
x0 = np.array([1,1,1])

x = np.zeros((3,10))
t = np.arange(0,10,0.1)

m0 = np.zeros((100,1),float)
m1 = np.zeros((100,1),float)
m2 = np.zeros((100,1),float)

for i in range(0,100):
    x = expm(A * t[i]) @ x0
    m0[i] = x[0]
    m1[i] = x[1]
    m2[i] = x[2]

plt.plot(t,m0)
plt.plot(t,m1)
plt.plot(t,m2)
plt.show()

运行结果:

408e2ebf6b104a2c8aea765496445d48.png

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值