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ú)幾,這里就沒(méi)有寫太多的注釋了,有需要打話可以去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 sgl from matplotlib import pyplot as plt import numpy as np T=np.mgrid[0:8:0.02] U1=T U2=T**2 sys1 = tf([1],[0.5,1]) # sys2 = tf([2],[1,2,4]) # # Step Response def 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 Response def 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)的輸出,lsim def 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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python操作MongoDB的教程詳解(插,查,改,排,刪)
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。本文將詳細(xì)和大家聊聊Python操作MongoDB的方法,需要的可以參考一下2022-09-09Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm )
這篇文章主要介紹了Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09OpenCV+Python幾何變換的實(shí)現(xiàn)示例
這篇文章主要介紹了OpenCV+Python幾何變換的實(shí)現(xiàn)示例,圖像的幾何變換是指將一幅圖像映射到另一幅圖像內(nèi)。有縮放、翻轉(zhuǎn)、仿射變換、透視、重映射等操作。感興趣的可以了解一下2021-03-03如何解決jupyter?notebook中文亂碼問(wèn)題
這篇文章主要介紹了如何解決jupyter?notebook中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06大語(yǔ)言模型的開(kāi)發(fā)利器langchainan安裝使用快速入門學(xué)習(xí)
這篇文章主要為大家介紹了大語(yǔ)言模型的開(kāi)發(fā)利器langchain安裝使用快速入門學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Python使用pyinstaller打包成.exe文件執(zhí)行后閃退的圖文解決辦法
這篇文章主要給大家介紹了關(guān)于Python使用pyinstaller打包成.exe文件執(zhí)行后閃退的圖文解決辦法,閃退問(wèn)題通常是由于程序運(yùn)行過(guò)程中出現(xiàn)了未處理的異?;蝈e(cuò)誤,導(dǎo)致程序崩潰,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Linux系統(tǒng)中設(shè)置Python程序開(kāi)機(jī)啟動(dòng)的兩種方式
在 Linux 系統(tǒng)中設(shè)置Python 腳本開(kāi)機(jī)啟動(dòng),通常可以通過(guò)以下幾種方式實(shí)現(xiàn), 使用 systemd(推薦方式)和使用 crontab(對(duì)于簡(jiǎn)單任務(wù)),文章通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-05-05Python基于scapy實(shí)現(xiàn)修改IP發(fā)送請(qǐng)求的方法示例
這篇文章主要介紹了Python基于scapy實(shí)現(xiàn)修改IP發(fā)送請(qǐng)求的方法,涉及Python網(wǎng)絡(luò)編程中使用scapy操作IP的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07