当前位置: 移动技术网 > IT编程>脚本编程>Python > python工程控制论画图示李亚普洛夫稳定性

python工程控制论画图示李亚普洛夫稳定性

2020年09月28日  | 移动技术网IT编程  | 我要评论
系统状态轨迹图,图一是不稳定系统,图二是稳定系统。python代码from scipy.integrate import odeintfrom pylab import *def deriv(y,t): # 返回值是y和y的导数组成的数组 # return array([y[0]+3*y[1], -5*y[0]+2*y[1]]) # return array([4*y[0] - 2 * y[1], y[0] - 3 * y[1]]) # ret.

系统状态轨迹图,图一是不稳定系统,图二是稳定系统。

python代码

from scipy.integrate import odeint
from pylab import *

def deriv(y,t):        # 返回值是y和y的导数组成的数组
    # return array([y[0]+3*y[1], -5*y[0]+2*y[1]])
    # return array([4*y[0] - 2 * y[1], y[0] - 3 * y[1]])
    # return array([y[1], -y[0] - y[1]])
    return array([y[1]+y[0]*(2-y[0]**2-y[1]**2),-y[0]+y[1]*(2-y[0]**2-y[1]**2)])

time = linspace(0.0,50.0,1000)

figure()
for i in range(20):
    theta = i * pi / 10
    yinit = array([3*cos(theta), 3*sin(theta)])
    y = odeint(deriv,yinit,time)
    plot(y[:, 0], y[:, 1], linewidth=0.3)
    # quiver(y[:,0],y[:,1],gradient(y[:,0]),gradient(y[:,1]))

for i in range(20):
    theta = i * pi / 10
    yinit = array([0.03*cos(theta), 3*sin(theta)])
    y = odeint(deriv,yinit,time)
    plot(y[:, 0], y[:, 1], linewidth=0.3)
    # quiver(y[:,0],y[:,1],gradient(y[:,0]),gradient(y[:,1]))

show()

总结

以前做控制理论仿真,首选都是matlab,现在工作用python,发现python真是无所不能,科学计算的能力也不遑多让matlab。不过就事论事,matlab轨迹图画的还是比python漂亮一点。

本文地址:https://blog.csdn.net/u012410628/article/details/108839301

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网