999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PYTHON在自動控制原理課程仿真中的應用

2022-04-25 17:31:35郭玉祥周函張慶平李彥梅
關鍵詞:仿真

郭玉祥 周函 張慶平 李彥梅

【摘? ?要】? ?自動控制原理課程常常需要運用軟件繪制圖形,而MATLAB又存在價格昂貴、關鍵代碼被隱藏和可移植性不高等諸多不便。基于此,給出了PYTHON軟件在自動控制原理課程仿真中的應用和一些具體實例的仿真程序代碼。首先使用ANACONDA開源軟件,安裝第三方開源包SLYCOT和CONTROL以搭建環境,然后基于PYTHON語言環境開展系統的時域、復域和頻域仿真以及系統的校正與設計仿真,并與相關參考文獻里的MATLAB仿真結果進行比較,結果表明二者的仿真效果并無明顯區別,為系統的仿真和繪圖提供了一種新方式。

【關鍵詞】? ?PYTHON;自動控制;傳遞函數;仿真

Application of PYTHON in the Simulation of Automatic

Control Principle Course

Guo Yuxiang, Zhou Han, Zhang Qingping, Li Yanmei*

( Anqing Normal University, Anqing 246011, China)

【Abstract】? ? The course of automatic control principle usually needs to use software to draw graphics while MATLAB exists a number of inconveniences such as high cost, hidden critical code, the lack of portability, and so on. Based on these statements, the paper shows the applications of PYTHON software in the course of automatic control principle and gives many simulated codes of the relevant examples.It employs thefree software of ANACONDA and installsthe third-partyopen source package of SLYCOT and CONTROL at first, in order to set up the environment.And then itis based on the PYTHON language environment to simulate the system in the time domain, the complex domain, the frequency domain and the calibration and design of plant. Further compared with the MATLAB simulations of the related references, the results show that there is no obvious difference between PYTHON and MATLAB on the simulation of the system, and it offers a new way for simulations and plots of system.

【Key words】? ? ?PYTHON; automatic control; transfer function; simulation

〔中圖分類號〕? TP273? ? ? ? ? ? ? ? ? ? ? ? 〔文獻標識碼〕? A ? ? ? ? ? ? ?〔文章編號〕 1674 - 3229(2022)01- 0120 - 06

0? ? ?引言

自動控制原理[1-2]是自動化及相近專業本科生的必修課,其內容主要包含控制系統數學模型建立,用時域法、根軌跡法和頻域法對已建立的模型系統進行分析和校正,使系統達到性能指標要求。系統的時域法是在時間域內分析和校正系統的方法,可以直接在時間上給出系統響應的全部信息。在時間域里,繪制典型輸入信號系統的響應曲線,以便直觀、準確地計算和分析系統的動態性能和穩態性能,對改善和校正系統性能提供指引。線性系統的根軌跡法是在不便計算閉環系統特征根或某一參數發生變化時為系統提供一種非常便捷的圖解方法。結合仿真軟件,繪制系統的根軌跡,可以形象直觀地分析閉環系統的穩態性能和暫態性能,還可以為滿足某一性能指標要求而改變參數來改造和校正系統的性能。線性系統的頻域法也是一種圖解的方法,它是基于頻域響應或頻域特性來分析、校正以及綜合設計控制系統。在使用線性系統的頻域法時,需要繪制系統的幅相頻率特性曲線、對數幅頻相頻曲線和對數幅相曲線。其優點是在系統難以建模或傳遞函數難以確定時,以實驗的方式來確定頻域特性,繼而開展控制系統的分析、校正以及綜合設計。因此,利用仿真軟件對系統展開分析、校正以及綜合設計是研究自動控制系統的重要手段。可現今大多數使用的系統仿真軟件是MATLAB(一款商業軟件),在使用時需向MATHWORKS公司購買,并且價格昂貴,一些關鍵代碼被隱藏,難以更改算法的細節,可移植性不高,對大多數自動控制原理的學習者來說有著許多不便。4A02A196-6C83-430C-8B2B-6CDFDD91B1EA

PYTHON是一門與MATLAB軟件一樣有著悠久歷史的高級程序設計語言。PYTHON語言是一門面向對象的語言,其中的模塊、函數等都是對象并且它們都支持繼承、重載等特性[3]。與JAVA、C、C++、JAVASCRIPT等語言不同,PYTHON語言在語法上不支持以花括號為模塊的界限而是以每行字母在該行的位置來確定模塊的界限。控制類語句如IF、WHILE等的使用方式與JAVA語言、C語言之間無明顯區別,但是PYTHON語言創建了新的一些關鍵字,如IN,IMPORT,IMPORT AS等。其中IN關鍵詞是用來判斷一個對象是否在另一個對象之中,IMPORT關鍵字用來導入文件需要使用的模塊或包,IMPORT AS被用來賦予導入對象新的名字。PYTHON的設計定位與其他主流編程語言也不同[4-5],PYTHON堅持“面對具體問題只要有一種最優解法即可”,不再堅持同其他語言的“多種解法”風格。在科學計算領域PYTHON語言扮演著重要角色,其語言的三個經典第三方開源庫(即NUMPY、SCIPY以及MATPLOTLIB)分別是為數組處理、數值運算、繪圖三個功能而產生的,可以通過IMPORT函數導入進行使用。近年來隨著人工智能技術、區塊鏈技術、大數據技術的發展,PYTHON的受歡迎程度也越來越高。可是將PYTHON應用于控制系統的仿真中,已有的文獻鮮有報道。李琴等[6]僅僅提出在LABACT自控原理試驗機上結合PYTHON語言完成實驗任務,并沒有完整給出PYTHON用于時域、復數域和頻域對控制系統開展分析、校正以及綜合設計的過程和相關程序代碼,沒有體現PYTHON在控制系統仿真中的靈活性和可移植性,也不利于自動控制原理學習者模仿學習、科學地更改算法細節,并將其應用于將來的系統開發和科學研究中。本文利用ANACONDA開源軟件,安裝第三方開源包SLYCOT和CONTROL來搭建環境,然后基于PYTHON語言環境對時域法、根軌跡法和頻域法進行不同對象的計算和仿真,得到圖形與相關教材的內容相比較,并給出實例程序代碼。下面從時域、復域、頻域以及控制系統的校正幾個方面給出PYTHON語言的仿真。

1? ? ?控制系統的時域仿真

在自動控制原理教材里,無源網絡是課程講解舉例時的重要內容,現以兩個直接相連接的RC網絡為對象建立數學模型。系統的傳遞函數為[Gs=ω2n/(s2+2ξωn+ω2n)],其中[ωn=4],[ξ=1]。若分別對這兩個直接相連接的RC網絡施加單位階躍信號和脈沖信號,對控制系統使用PYTHON語言進行仿真得到圖1和圖2,與《自動控制原理基礎教程》書中[7]的第132頁圖3-43和圖3-44的對比,發現PYTHON語言的控制系統仿真與MATLAB仿真無本質區別,均可以刻畫系統在時域內的變化過程。

※基于PYTHON的系統階躍響應代碼為:

from scipy.signal import lti,step2,impulse2

import matplotlib.pyplot as plt

s1=lti([16],[1,5.656,16]) #創建傳函's1=16/(1s^2+5.656s+16)'

t1,y1=step2(s1) #系統階躍輸出

plt.plot(t1,y1,color='black',linewidth=1.0) #繪制響應曲線

plt.axhline(y=1,color='green',linewidth=1.0,linestyle='--')

plt.grid()

plt.xlim((0,2.5))

plt.ylim((0,1.2))

plt.show()

※基于PYTHON的系統脈沖響應代碼為:

from scipy.signal import lti,step2,impulse2

import matplotlib.pyplot as plt

s=lti([16],[1,5.656,16]) #創建傳函's1=16/(1s^2+5.656s+1)'

t,y1=impulse2(s) #系統脈沖輸出

plt.plot(t,y1,color='red',linewidth=1.0) #繪制響應曲線

plt.axhline(y=0,color='blue',linewidth=1.0,linestyle='--')

plt.grid()

plt.xlim((0,2.5))

plt.ylim((-0.2,1.85))

plt.show()

2? ? ?控制系統的復域仿真

在現實生活中存在著很多高階的控制系統,如航空航天中的衛星姿態控制、多旋翼無人機控制以及柴油汽車的柴油發動機控制[8],面對一個高階的控制系統如何快速判斷系統的穩定性成為重要問題,但是系統的閉環極點卻很難求解。通過自動控制原理的學習,我們知道可以通過繪制系統傳遞函數零極點圖,觀察控制系統傳遞函數零極點的分布情況來快速判斷控制系統的穩定性。當系統某參數發生變化時,也可以通過繪制系統的根軌跡圖,判斷系統的穩定性,假定系統的傳遞函數為[Gs=Kj=1m(s-zj)/i=1n(s-pi)],以硬盤讀寫磁頭為對象[9]建立模型確定傳遞函數,假定傳遞函數有一個零點[z1=-4],兩個極點[p1=-2+4j],[p2=-2-4j],使用PYTHON語言進行控制系統仿真,分別繪制零極點圖和根軌跡圖,得到圖3和圖4。與《自動控制原理基礎教程》[7]中的第162頁圖4-23和圖4-24進行對比發現是一樣的,都清晰地反映出系統的零極點分布和參數變化下的根軌跡走向。4A02A196-6C83-430C-8B2B-6CDFDD91B1EA

※基于PYTHON的系統零極點圖代碼為:

from control.matlab import *

import matplotlib.pyplot as plt

import numpy as np

num = [1,4] #分子

den = [1,4,20] #分母

sys = tf(num,den) #創建傳遞函數'(s+4)/(s^2+4s+20)'

pzmap(sys)

plt.axhline(y=0,color='blue',linewidth=1.0,linestyle='--')

plt.axvline(x=0,color='red',linewidth=1.0,linestyle='--')

plt.show()

※基于PYTHON的系統根軌跡圖代碼為:

from control import *

from matplotlib import pyplot as plt

sy1 = tf([1,4],[1,4,20]) #創建開環傳函'k(s+4)/(s^2+4s+20)'

rlocus(sy1,grid=True)

plt.xlim(-10, 0)

plt.show()

3? ? ?控制系統的頻域仿真

3.1? ?控制系統的幅相頻率特性曲線(奈奎斯特曲線)

在實際工程的控制系統設計與分析中常常使用頻域圖解法,幅相頻率特性曲線在其中扮演重要角色,在面對一些復雜的控制系統時,如何判斷系統的穩定是必須要面對的問題,要解決這一問題除了上文提到的零極點圖和根軌跡圖,還可以通過奈奎斯特判據來解決這一問題。因此對系統繪制其幅相頻率特性曲線是有必要的。以雕刻機為對象抽象出傳遞函數。選取系統的傳遞函數為[Gs=k/(T1s+1)],其中[k=5,T1=3]。

※基于PYTHON的系統幅相頻率特性曲線代碼如下:

from control.matlab import *

from matplotlib import pyplot as plt

import numpy as np

num=[5]

den=[3,1]

sy1 = tf(num,den) #創建傳遞函數'sy1=1/(3s+1)′

nyquist(sy1) #繪制系統的Nyquist響應曲線

plt.xlim((0,10))

plt.ylim((-5,5))

plt.axhline(y=0,color='red',linewidth=3.0,linestyle=′-′)

plt.show()

分析圖5發現與王正林等[10]所著《MATLAB/Simulink與控制系統仿真》中第188頁圖7.9仿真效果一致,能反映出幅頻與相頻之間的關系。

3.2? ?控制系統的對數幅頻相頻曲線(伯德圖)

在現代控制系統的設計中,對數幅頻相頻曲線有著及其重要的應用。對數幅頻相頻曲線由對數幅頻曲線和對數相頻曲線組成。若以空間機器人系統為研究對象,建立數學模型,抽象出系統的傳遞函數為[GsHs=kT1s+1ω2n/sT2s+1s2+2ωnξs+ω2n],選定[k=2],[T1=1],[T2=0.2],[ωn=10],[ξ=10-1/2],繪制系統的對數幅頻和對數相頻曲線得到圖6,與《自動控制原理基礎教程》[6]中第207頁圖5-43進行比較,發現兩圖仿真效果相同。

※基于PYTHON的系統伯德圖代碼如下:

from control.matlab import *

import matplotlib.pyplot as plt

import numpy as np

num = [20,20] #分子

den = [1,7,20,70,20] #分母

sys = tf(num,den) #建傳函'(20s+20)/(s^4+7s^3+20s^2+70s+20)′

bode (sys) #繪制系統的Bode圖

plt.show()

3.3? ?對數幅相曲線(尼科爾斯曲線)

對數幅相曲線在控制系統的實際分析中同樣扮演著重要角色,依據系統的開環函數和閉環函數之間的關系,畫出閉環幅頻和相頻特性的等M簇、等[α]簇曲線,再以設計者給出的頻域指標要求校正控制系統,可以極大地降低控制系統的設計難度[1]。現以電加熱爐為對象建立溫度和電壓的傳遞函數。假定系統的傳遞函數為[Gs=1/(Ts+1)],其中[T=0.5],通過PYTHON語言對系統進行仿真得到其對數幅相曲線圖7。將圖7與文獻[1]第183頁圖5-8對比,發現兩者的區別僅僅在于圖5-8是圖7的放大版,其他均無明顯區別。

※基于PYTHON的系統Nichols曲線代碼:

from control.matlab import *

import matplotlib.pyplot as plt

import numpy as np

num=[1]

den=[0.5,1]

sys = tf(num,den) #構建的傳遞函數′1/(0.5s+1)′4A02A196-6C83-430C-8B2B-6CDFDD91B1EA

nichols(sys) #繪制系統的Nichols曲線

plt.show()

4? ?控制系統的校正

4.1? ?前饋校正

為了提高系統的性能,可以在系統中增加一個校正網絡[Gc=(s+z)/(s+p)],但是新增的極點可能會降低系統的性能,為了消除這種影響,可以再增加一個前置濾波器。以兩相伺服電動機為研究對象,抽象出數學表達式,假定被控的傳遞函數為[Gs=k/s],其中[k=1],要求系統的阻尼比為0.707,階躍響應的超調量[σ≤5%],調節時間[ts≤0.6]s(秒),系統的閉環傳遞函數為[Φs=(k1s+k2)Gp(s)/(s2+k1s+k2)],求得參數[k1=16],[k2=128],[Gps=8/(s+8)]。在無前置濾波器時對系統進行仿真得到圖8,對有前置濾波器的控制系統使用PYTHON語言進行仿真得到圖9。從圖8和圖9可以明顯地看出系統響應曲線的變化。

※基于PYTHON的無前置濾波器系統階躍響應代碼如下:

from scipy.signal import lti,step2,impulse2

import matplotlib.pyplot as plt

s1=lti([16,128],[1,16,128]) #傳函′s1=(16s+128)/(s^2+16s+128)′

t1,y1=step2(s1) #系統階躍輸出

plt.plot(t1,y1,color=′red′,linewidth=1.0) #繪制響應曲線

plt.axhline(y=1,color=′green′,linewidth=1.0,linestyle=′--′)

plt.grid()

plt.xlim((0,0.8))

plt.ylim((0,1.3))

plt.show()

※基于PYTHON的有前置濾波器系統階躍響應代碼如下:

from scipy.signal import lti,step2,impulse2

import matplotlib.pyplot as plt

s1=lti(128,[1,16,128]) #創建傳函′s1=128/(s^2+16s+128)′

t1,y1=step2(s1) #系統階躍輸出

plt.plot(t1,y1,color=′blue′,linewidth=1.0) #繪制響應曲線

plt.axhline(y=1,color=′green′,linewidth=1.0,linestyle=′--′)

plt.grid()

plt.xlim((0,0.8))

plt.ylim((0,1.2))

plt.show()

4.2? ?控制系統PID

PID控制被廣泛地應用于航天器的姿態控制、衛星的導航以及工業生產實際生活中[11]。以無源網絡為目標對象,假定傳遞函數為[Gs=k/(T1s+1)v],[k=1],[T1=1],[v=3],在參數[Ti=1],[Pi=1],[Td]分別取0.2,0.5,0.8時,使用PYTHON語言仿真得到圖10。

※基于PYTHON的系統PID控制代碼如下:

from control.matlab import *

from matplotlib import pyplot as plt

import numpy as np

k1=1

Ti=1

Td=0.2

for i in range(1,4):

num=[1]

den1=[1,3,3,1]

sys1=tf(num,den1)

sys2=tf(k1*[Ti*Td,Ti,1],[Ti,0])

sys3=feedback(sys1*sys2,1,-1)

yout,t1=step(sys3)

plt.grid()

if Td==0.2:

plt.plot(t1,yout,color=′red′,label=′Td=0.2′)

if Td==0.5:

plt.plot(t1,yout,color=′blue′,label=′Td=0.5′)

if? Td==0.8:

plt.plot(t1,yout,color=′black′,label=′Td=0.8′)

plt.legend()

plt.xlim((0,45))

plt.ylim((0,1.5))

Td=Td+0.3

5? ? ?結論

對控制系統從時域、復域、頻域以及系統的校正四個方面,分別選用不同的線性系統模型進行仿真。通過與參考文獻中的仿真圖進行比較,發現PYTHON語言能夠勝任自動控制原理仿真的需求,為大多數《自動控制原理》課程的學習者提供了另一種系統仿真的方式。但是PYTHON語言與MATLAB相比,在圖形化編程中還是處于弱勢地位,特別是MATLAB軟件中圖形化編程模塊Simulink可以快速幫助沒有基礎的學習者建立對控制系統的感性認識,這是PYTHON語言目前無法做到的,這也是未來PYTHON在控制系統仿真領域的發展方向。

[參考文獻]

[1] 胡壽松. 自動控制原理(第6版)[M]. 北京: 科學出版社, 2013.

[2] 肖理慶. 基于《自動控制原理》期末考試軟件的課程考核改革[J]. 廊坊師范學院學報(自然科學版), 2020, 20(3): 120-122+125.

[3] Liang Y D. Python語言程序設計[M]. 李娜, 譯, 北京: 機械工業出版社, 2013.

[4] 嵩天,禮欣,黃天羽. Python語言程序設計基礎(第2版)[M]. 北京: 高等教育出版社, 2017.

[5] 張若愚.Python科學計算[M]. 北京: 清華大學出版社, 2012.

[6] 李琴, 彭祖群, 楊鈞. Python在自動控制原理實驗中的應用[J]. 信息周刊, 2019(36):138-139.

[7] 胡壽松.自動控制原理基礎教程(第4版)[M]. 北京: 科學出版社, 2017.

[8] 宋申民, 陳興林. 自動控制原理典型例題解析與習題精選[M]. 北京: 高等教育出版社, 2004.

[9] Franklin G F, Powell J D, Emami-Naeini A. 自動控制原理與設計(第5版)[M]. 李中華, 張雨濃, 譯, 北京: 人民郵電出版社, 2007.

[10] 王正林,王勝開,陳國順, 等. MATLAB/Simulink與控制系統仿真(第4版)[M]. 北京: 電子工業出版社, 2017.

[11] 張德豐. MATLAB自動控制系統設計[M]. 北京: 機械工業出版社, 2010.4A02A196-6C83-430C-8B2B-6CDFDD91B1EA

猜你喜歡
仿真
一種幫助幼兒車內脫險應急裝置的仿真分析
科技資訊(2016年18期)2016-11-15 20:09:22
Buck開關變換器的基本參數設計及仿真分析
試析PLC控制下的自動化立體倉庫仿真情況分析
基于MADYMO的航空座椅約束系統優化設計
科技視界(2016年18期)2016-11-03 21:44:44
中國體態假人模型與FAA Hybrid Ⅲ 型假人模型沖擊差異性分析
科技視界(2016年18期)2016-11-03 20:31:49
機械加工仿真技術研究
企業導報(2016年6期)2016-04-21 17:56:19
主站蜘蛛池模板: 好吊妞欧美视频免费| 免费日韩在线视频| 九色视频线上播放| 欧美日韩午夜| 91精品亚洲| 日本五区在线不卡精品| 日韩精品成人网页视频在线| 久久伊人操| 夜精品a一区二区三区| 99精品免费欧美成人小视频| 欧美一级大片在线观看| 亚洲欧洲日韩综合| 色综合天天娱乐综合网| 色综合狠狠操| 男人天堂伊人网| 成人年鲁鲁在线观看视频| 久久这里只有精品8| 日韩免费毛片| 亚洲国产成人无码AV在线影院L| 91午夜福利在线观看精品| 欧美日韩导航| 成人韩免费网站| 国产亚洲欧美日韩在线一区二区三区| 欧美日韩精品在线播放| 亚洲国产综合精品中文第一| 精品無碼一區在線觀看 | 国产欧美综合在线观看第七页| 国产成人盗摄精品| 91破解版在线亚洲| 不卡国产视频第一页| 丁香婷婷激情网| 亚洲美女AV免费一区| 精品久久综合1区2区3区激情| 激情影院内射美女| 浮力影院国产第一页| 国产小视频a在线观看| 欧美一级高清片欧美国产欧美| 一级一毛片a级毛片| 成年午夜精品久久精品| 亚洲成人在线播放 | 久久人体视频| AV无码国产在线看岛国岛| 国产精品自在线天天看片| 欧美日本激情| 54pao国产成人免费视频| 亚洲啪啪网| 乱人伦99久久| 区国产精品搜索视频| 中文字幕欧美日韩高清| 538国产视频| 亚洲国产成人自拍| 国产精品一区二区在线播放| 亚洲高清日韩heyzo| 91网址在线播放| 性69交片免费看| 日韩欧美中文| 色婷婷国产精品视频| 国产麻豆福利av在线播放 | 在线观看国产精美视频| 美女视频黄频a免费高清不卡| 自拍亚洲欧美精品| 福利在线不卡| 国产精品jizz在线观看软件| 在线亚洲精品自拍| 国产人免费人成免费视频| 午夜三级在线| 无码中文字幕精品推荐| 国产精品亚洲一区二区三区z| 亚洲性影院| 中文国产成人久久精品小说| 中文字幕第1页在线播| 欧美精品啪啪一区二区三区| 国产va在线| 亚洲欧洲一区二区三区| 亚洲综合专区| 亚洲国产中文综合专区在| 亚洲精品色AV无码看| 激情五月婷婷综合网| 天天摸夜夜操| 在线中文字幕日韩| 亚洲日本www| 99久久精品久久久久久婷婷|