Python全面分析系統(tǒng)的時域特性和頻率域特性
在不使用matlab的情況下,可以選擇用python來實現(xiàn)自動控制理論有關(guān)系統(tǒng)打時域分析和頻率域分析等,安裝的package是python-control,在windows的控制臺(cmd)或者linux終端下輸入pip install control 即可,注意,如果同時安裝了2.7 和 3.x(3.4或者3.5或者3.6 版本,使用pip 命令打時候需要指定版本號,如pip2 install control 或者pip3.4 install control ,當(dāng)然,常用打科學(xué)計算用的package也要安裝,numpy,scipy,sympy,matplotlib,pandas 等。
下面是自己練習(xí)時寫的代碼,寫在此作記錄和分享用,因為函數(shù)語法和matlab相差無幾,這里就沒有寫太多的注釋了,有需要打話可以去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()
# 任意輸入信號的輸出,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()
下面是運行打一些結(jié)果圖:




以上這篇Python全面分析系統(tǒng)的時域特性和頻率域特性就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python操作MongoDB的教程詳解(插,查,改,排,刪)
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。本文將詳細和大家聊聊Python操作MongoDB的方法,需要的可以參考一下2022-09-09
大語言模型的開發(fā)利器langchainan安裝使用快速入門學(xué)習(xí)
這篇文章主要為大家介紹了大語言模型的開發(fā)利器langchain安裝使用快速入門學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
Python使用pyinstaller打包成.exe文件執(zhí)行后閃退的圖文解決辦法
這篇文章主要給大家介紹了關(guān)于Python使用pyinstaller打包成.exe文件執(zhí)行后閃退的圖文解決辦法,閃退問題通常是由于程序運行過程中出現(xiàn)了未處理的異?;蝈e誤,導(dǎo)致程序崩潰,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-12-12
Linux系統(tǒng)中設(shè)置Python程序開機啟動的兩種方式
在 Linux 系統(tǒng)中設(shè)置Python 腳本開機啟動,通??梢酝ㄟ^以下幾種方式實現(xiàn), 使用 systemd(推薦方式)和使用 crontab(對于簡單任務(wù)),文章通過代碼示例給大家講解的非常詳細,需要的朋友可以參考下2024-05-05
Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法示例
這篇文章主要介紹了Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法,涉及Python網(wǎng)絡(luò)編程中使用scapy操作IP的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07

