Python全面分析系統(tǒng)的時(shí)域特性和頻率域特性
在不使用matlab的情況下,可以選擇用python來(lái)實(shí)現(xiàn)自動(dòng)控制理論有關(guān)系統(tǒng)打時(shí)域分析和頻率域分析等,安裝的package是python-control,在windows的控制臺(tái)(cmd)或者linux終端下輸入pip install control 即可,注意,如果同時(shí)安裝了2.7 和 3.x(3.4或者3.5或者3.6 版本,使用pip 命令打時(shí)候需要指定版本號(hào),如pip2 install control 或者pip3.4 install control ,當(dāng)然,常用打科學(xué)計(jì)算用的package也要安裝,numpy,scipy,sympy,matplotlib,pandas 等。
下面是自己練習(xí)時(shí)寫的代碼,寫在此作記錄和分享用,因?yàn)楹瘮?shù)語(yǔ)法和matlab相差無(wú)幾,這里就沒有寫太多的注釋了,有需要打話可以去python-control打官網(wǎng)查看相關(guān)文檔。
#!/usr/bin/env python2# -*- coding: utf-8 -*-'''Created on Wed Nov 16 17:48:02 2016@author: kindy'''from control import *from scipy import signal as sglfrom matplotlib import pyplot as pltimport numpy as npT=np.mgrid[0:8:0.02]U1=TU2=T**2sys1 = tf([1],[0.5,1]) # sys2 = tf([2],[1,2,4]) # # Step Responsedef step_resp(): sout1,stime1 = step(sys1) sout2,stime2 = step(sys2) plt.plot(stime1,sout1,’b’,linewidth=0.5) plt.plot(stime2,sout2,’b’,linewidth=0.5) plt.xlabel('Time') plt.ylabel('Amplitude') plt.title('Step Resopnse',fontsize=12) #plt.legend() plt.show()# Impulse Responsedef impulse_resp(): iout1,itime1 = impulse(sys1) iout2,itime2 = impulse(sys2) plt.plot(itime1,iout1,’m’,linewidth=0.8) plt.plot(itime2,iout2,’r’,linewidth=0.8) plt.show()#impulse_resp()# 任意輸入信號(hào)的輸出,lsimdef lsim_plot(): yout1,Time1, xout1 = lsim(sys1, U1, T) yout2,Time2, xout2 = lsim(sys2, U1, T) plt.plot(Time1, yout1, ’b’, linewidth=0.7) plt.plot(Time2, yout2, ’b’, linewidth=0.7) plt.show()#lsim_plot()# 波特圖def bode_plot(): bode(sys1) bode(sys2)#bode_plot()# Nyquist圖def nyquist_plot(): nyquist(sys1) nyquist(sys2)#nyquist_plot() # 根軌跡def root_locus(): rlocus(sys1) rlocus(sys2)root_locus()
下面是運(yùn)行打一些結(jié)果圖:
以上這篇Python全面分析系統(tǒng)的時(shí)域特性和頻率域特性就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Spring security 自定義過(guò)濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)2. 如何清空python的變量3. Python 如何展開嵌套的序列4. JAMon(Java Application Monitor)備忘記5. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法6. Java類加載機(jī)制實(shí)現(xiàn)步驟解析7. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析8. Python os庫(kù)常用操作代碼匯總9. Python OpenCV去除字母后面的雜線操作10. 增大python字體的方法步驟
