用python建模_用Python建模线性系统

我知道这有点老了,但一次调查就引出了这个问题。当我找不到合适的模块时,我就把它组装起来了。不算多,但如果有人发现自己在这里,这是个好的开始。import matplotlib.pylab as plt

import numpy as np

import scipy.signal

def bode(G,f=np.arange(.01,100,.01)):

plt.figure()

jw = 2*np.pi*f*1j

y = np.polyval(G.num, jw) / np.polyval(G.den, jw)

mag = 20.0*np.log10(abs(y))

phase = np.arctan2(y.imag, y.real)*180.0/np.pi % 360

plt.subplot(211)

#plt.semilogx(jw.imag, mag)

plt.semilogx(f,mag)

plt.grid()

plt.gca().xaxis.grid(True, which='minor')

plt.ylabel(r'Magnitude (db)')

plt.subplot(212)

#plt.semilogx(jw.imag, phase)

plt.semilogx(f,phase)

plt.grid()

plt.gca().xaxis.grid(True, which='minor')

plt.ylabel(r'Phase (deg)')

plt.yticks(np.arange(0, phase.min()-30, -30))

return mag, phase

f=scipy.signal.lti([1],[1,1])

bode(f)

编辑:我回来是因为有人投票给了我这个答案,你应该试试Control Systems Library。他们已经用匹配的语法和所有东西实现了大部分的Matlab控制系统工具箱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值