王后能,宋杰
武漢工程大學(xué)電氣信息學(xué)院,湖北 武漢 430205
LabVIEW嵌入Matlab腳本節(jié)點(diǎn)的電機(jī)轉(zhuǎn)速控制系統(tǒng)仿真
王后能,宋杰
武漢工程大學(xué)電氣信息學(xué)院,湖北 武漢 430205
LabVIEW是一款使用圖形編程語言的開發(fā)平臺(tái),用LabVIEW編寫出的仿真程序具有友好的人機(jī)界面.以直流電機(jī)轉(zhuǎn)速控制系統(tǒng)為被控對(duì)象,基于LabVIEW軟件平臺(tái),嵌入Matlab腳本節(jié)點(diǎn),并用Matlab控制工具箱中的函數(shù)來實(shí)現(xiàn)PID控制器的設(shè)計(jì),并進(jìn)行仿真計(jì)算.另外,將系統(tǒng)的傳遞函數(shù)轉(zhuǎn)換成狀態(tài)方程,運(yùn)用龍格庫塔法求出方程的數(shù)值解.最后,針對(duì)具體的直流電機(jī)控制系統(tǒng)模型,進(jìn)行了實(shí)例分析,從所設(shè)計(jì)的界面來看,PID各參數(shù)對(duì)系統(tǒng)性能的影響一目了然,而且計(jì)算過程簡潔方便.
PID控制;可視化;直流電機(jī)控制系統(tǒng)
自從1936年英國的考倫德(A·Callender)和斯蒂文森(A·Stevenson)等人給出了PID控制器的方法以來,PID控制器作為最早實(shí)用化的控制器已有70多年歷史,現(xiàn)在仍然是工業(yè)生產(chǎn)中應(yīng)用最廣泛的控制器.文獻(xiàn)[1]基于高爐的控制系統(tǒng)模型,進(jìn)行了模糊PID控制器的設(shè)計(jì),并進(jìn)行了仿真驗(yàn)證. PID控制器的參數(shù)整定對(duì)于控制效果有直接影響,而在實(shí)際調(diào)試中,先通過理論計(jì)算和仿真,然后在實(shí)際運(yùn)行的過程中對(duì)這個(gè)初值進(jìn)行調(diào)整和完善.
LabVIEW具有強(qiáng)大的數(shù)學(xué)計(jì)算功能,采用它作為系統(tǒng)建模和仿真的工具,編寫出的仿真程序具有友好的人機(jī)界面.文獻(xiàn)[2]采用LabVIEW開發(fā)上位機(jī)監(jiān)控界面,開發(fā)了整套監(jiān)控系統(tǒng),程序運(yùn)行穩(wěn)定,傳輸數(shù)據(jù)穩(wěn)定可靠.文獻(xiàn)[3]利用LabVIEW平臺(tái)研制了家庭智能報(bào)警系統(tǒng),對(duì)部分硬件進(jìn)行軟件虛擬化,提高性價(jià)比.
用LabVIEW分析PID各參數(shù)對(duì)系統(tǒng)性能的影響顯得更加直觀,有助于PID控制器參數(shù)的理論整定及其應(yīng)用.如文獻(xiàn)[4]基于LabVIEW,設(shè)計(jì)了一種用PID控制算法對(duì)直流電機(jī)轉(zhuǎn)速的控制系統(tǒng),充分體現(xiàn)了虛擬儀器技術(shù)的靈活性.筆者在已有工作的基礎(chǔ)上,在LabVIEW仿真程序中嵌入Matlab腳本節(jié)點(diǎn),對(duì)電機(jī)轉(zhuǎn)速系統(tǒng)進(jìn)行控制,在界面友好的基礎(chǔ)上,使得計(jì)算更加簡潔方便.
PID控制器,通常由比例單元P、積分單元I和微分單元D組成,并通過比例系數(shù)KP,積分系數(shù)KI和微分系數(shù)KD三個(gè)參數(shù)分別設(shè)定.PID控制規(guī)律可描述為[5]:
式(1)中:u(t)是控制器的輸出,e(t)是測(cè)量值與設(shè)定值的偏差.常見PID控制系統(tǒng)的結(jié)構(gòu)如圖1所示,其中r是參考信號(hào),y是系統(tǒng)輸出信號(hào).
圖1 PID串聯(lián)校正系統(tǒng)方框圖Fig.1 Diagram of PID series correction system
Matlab的控制系統(tǒng)工具箱有許多成熟的仿真算法,在LabVIEW程序中調(diào)用Matlab,能使系統(tǒng)建模更為簡便.使用Matlab Script Node可以在LabVIEW中嵌入Matlab腳本.仿真程序的功能是根據(jù)圖1所示系統(tǒng)的參數(shù)繪制出階躍響應(yīng)、斜坡響應(yīng)和正弦響應(yīng)的曲線,并計(jì)算系統(tǒng)在階躍信號(hào)作用下的性能指標(biāo).
程序有以下輸入:PID參數(shù)(KP、KI、KD)、被控對(duì)象傳遞函數(shù)的分子和分母(num、den)、系統(tǒng)反饋系數(shù)(v)、系統(tǒng)輸入信號(hào)類型(R)、階躍輸入信號(hào)的幅值(RA)以及仿真起止時(shí)間(T0、Tf)和仿真步長(h).其中,num和den為向量,分別是分子分母多項(xiàng)式按降冪排列時(shí)的一組系數(shù).程序的輸出有:系統(tǒng)有無PID控制器時(shí)的響應(yīng)曲線,系統(tǒng)階躍響應(yīng)的穩(wěn)態(tài)值、超調(diào)量、上升時(shí)間和調(diào)節(jié)時(shí)間.
圖2 Matlab腳本節(jié)點(diǎn)程序流程圖Fig.2 Flow chart of Matlab Script node program
腳本程序流程圖如圖2所示.腳本中使用step(RA*sys)命令計(jì)算系統(tǒng)在幅值為RA的階躍輸入作用下的響應(yīng).對(duì)于斜坡響應(yīng)和正弦響應(yīng)則運(yùn)用lsim函數(shù)求取.需要注意的是,step和lsim函數(shù)求出的響應(yīng)值是一個(gè)列向量,不能直接賦值給LabVIEW中的數(shù)組,應(yīng)先對(duì)其進(jìn)行轉(zhuǎn)置操作,然后再將結(jié)果傳回給LabVIEW程序.另外,dcgain函數(shù)可用于求系統(tǒng)響應(yīng)的穩(wěn)態(tài)值.由階躍響應(yīng)的峰值和穩(wěn)態(tài)值即可求得超調(diào)量.再運(yùn)用循環(huán)結(jié)構(gòu)找出特定響應(yīng)值對(duì)應(yīng)的時(shí)間點(diǎn),就能計(jì)算出上升時(shí)間和調(diào)節(jié)時(shí)間.圖3是程序框圖.圖3中除了腳本節(jié)點(diǎn)外,還有一小段程序,它按照系統(tǒng)輸入信號(hào)的類型來確定是否隱藏顯示性能指標(biāo)的控件.由于仿真程序僅計(jì)算系統(tǒng)階躍響應(yīng)的性能指標(biāo),當(dāng)系統(tǒng)輸入為斜坡信號(hào)或正弦信號(hào)時(shí),應(yīng)將顯示性能指標(biāo)的控件隱藏.
3.1 PID控制系統(tǒng)狀態(tài)空間模型
如果不想借助Matlab腳本進(jìn)行仿真計(jì)算,則需要使用狀態(tài)空間法來建立系統(tǒng)模型.相對(duì)于傳遞函數(shù)而言,狀態(tài)空間描述的是系統(tǒng)的內(nèi)部模型[5].而且狀態(tài)方程是一階微分方程組形式,適宜用計(jì)算機(jī)求數(shù)值解.將圖1中的控制器與被控對(duì)象合并為G(s),并設(shè)系統(tǒng)輸出靜態(tài)反饋增益為v,可得圖4所示系統(tǒng)框圖.
其中R(s),E(s),G(s),Y(s)和B(s)分別是參考信號(hào)、誤差信號(hào)、被控對(duì)象,輸出信號(hào)和測(cè)量信號(hào)的拉斯變換,系統(tǒng)的開環(huán)傳遞函數(shù)為
令被控對(duì)象的輸入信號(hào)U(s)=E(s),按照能控標(biāo)準(zhǔn)型寫出開環(huán)狀態(tài)方程
式(3)中,
圖3 使用Matlab腳本節(jié)點(diǎn)編寫的仿真程序框圖Fig.3 Diagram of simulation program in Matlab Script node
圖4 典型閉環(huán)系統(tǒng)方框圖Fig.4 Diagram of typical closed loop system
由圖4又有,控制量u=r-vy,代人式(3)得
再由
故
即得系統(tǒng)閉環(huán)狀態(tài)方程.
3.2 LabVIEW仿真程序
為了使程序的結(jié)構(gòu)更加清晰,便于設(shè)計(jì)和維護(hù),這里采用模塊化的設(shè)計(jì)方法,自頂向下對(duì)任務(wù)進(jìn)行分解,然后用一系列子程序分別處理細(xì)分出來的小任務(wù),最后,在主程序中將各模塊結(jié)合起來.考慮到本仿真程序的功能,至少應(yīng)設(shè)計(jì)以下三個(gè)子模塊.
a.將傳遞函數(shù)轉(zhuǎn)換成狀態(tài)空間矩陣的模塊.由于仿真程序仍然以系統(tǒng)的傳遞函數(shù)形式作為輸入,而使用的仿真計(jì)算方法是基于狀態(tài)空間形式的.所以,應(yīng)設(shè)計(jì)一個(gè)子模塊將系統(tǒng)的傳遞函數(shù)模型轉(zhuǎn)換成狀態(tài)空間的形式.
進(jìn)行模型轉(zhuǎn)換時(shí),首先根據(jù)圖1中所示系統(tǒng)的PID參數(shù)和被控對(duì)象的傳遞函數(shù),求出系統(tǒng)開環(huán)傳遞函數(shù)的分子分母.具體方法是,使用信號(hào)運(yùn)算模板中的卷積函數(shù)計(jì)算PID控制器傳遞函數(shù)與電動(dòng)機(jī)傳遞函數(shù)乘積的分子分母,然后用多項(xiàng)式模板中的消除尾部零函數(shù)對(duì)求出的乘積進(jìn)行約分.得到開環(huán)傳遞函數(shù)后,將其分子分母均除以分母的最高項(xiàng)系數(shù),就得到式(3)中A、C陣的、(j=1,2,…,n;i=0,1,…,m).接著,用數(shù)組模板中的初始化函數(shù)、插入函數(shù)以及矩陣模板中的創(chuàng)建特殊矩陣函數(shù)建立式(4)的B陣和A陣除去最后一行形成的子陣,用數(shù)組插入函數(shù)在這個(gè)子陣的最后一行后面插入之前求出的(j=1,2,…,n),即可得到狀態(tài)方程的A陣.在(i=0,1,…,m)的后面插入幾個(gè)0,使其長度與B陣相同,即可得到狀態(tài)方程的C陣.最后,用矩陣模板中的矩陣相乘函數(shù)按照式(4)可求出Ab陣.
b.龍格庫塔算法模塊.將系統(tǒng)模型轉(zhuǎn)換成狀態(tài)空間形式后,就可以進(jìn)行仿真計(jì)算了,本程序采用四階龍格庫塔算法,這是因?yàn)槠渚容^高,而且能夠使用LabVIEW中數(shù)學(xué)模塊里的各函數(shù)進(jìn)行實(shí)現(xiàn).
可將式(4)看成對(duì)應(yīng)n個(gè)狀態(tài)變量x=[x1,x2,…,xn]T一階導(dǎo)數(shù)x˙的n維向量表達(dá)式.當(dāng)t=tk時(shí)刻,欲求tk+1時(shí)刻各量,需先求龍格庫塔算法的4個(gè)斜率.
此模塊中使用一個(gè)for循環(huán)來實(shí)現(xiàn)龍格庫塔算法.在循環(huán)結(jié)構(gòu)的輸入隧道上單擊鼠標(biāo)右鍵,選擇快捷菜單中的替換成移位寄存器選項(xiàng),就可以把輸入隧道轉(zhuǎn)換成移位寄存器.將移位寄存器的左端子連接到數(shù)組插入函數(shù)的輸入數(shù)組端子上,再把數(shù)組插入函數(shù)的輸出數(shù)組端子與移位寄存器的右端子相連.最后,把每次循環(huán)中需要保存的計(jì)算結(jié)果接入到數(shù)組插入函數(shù)的插入值端子上,就能將響應(yīng)曲線中的每個(gè)點(diǎn)都保存在數(shù)組中輸出了.
c.系統(tǒng)穩(wěn)態(tài)值計(jì)算模塊.要計(jì)算系統(tǒng)的超調(diào)量、上升時(shí)間和調(diào)節(jié)時(shí)間等性能指標(biāo),首先必須求出系統(tǒng)的穩(wěn)態(tài)值,而LabVIEW中沒有現(xiàn)成的函數(shù)幫助我們計(jì)算系統(tǒng)的穩(wěn)態(tài)值,因此必須設(shè)計(jì)一個(gè)子模塊計(jì)算系統(tǒng)穩(wěn)態(tài)值.
由終值定理可知,只要已知系統(tǒng)輸出的拉氏變換,就可根據(jù)其與s的乘積在s趨近于0時(shí)的極限值確定系統(tǒng)的穩(wěn)態(tài)值.設(shè)系統(tǒng)輸入是幅值為A的階躍信號(hào),系統(tǒng)的開環(huán)傳遞函數(shù)的分子分母分別為num和den,反饋系數(shù)為v,那么系統(tǒng)的穩(wěn)態(tài)值可表示為
此模塊首先使用卷積函數(shù)計(jì)算開環(huán)傳遞函數(shù)的分子分母,并由此計(jì)算出式(5)中的A*num和den+num*v.然后將式(5)表示成字符串的形式.最后用極限函數(shù)求式(5)的值.極限函數(shù)位于數(shù)學(xué)→腳本與公式→微積分模板中.
將三個(gè)子模塊結(jié)合起來,可以得到仿真主程序.
本文以電樞電壓為輸入、轉(zhuǎn)子轉(zhuǎn)速為輸出的直流電動(dòng)機(jī)轉(zhuǎn)速控制系統(tǒng)為例來進(jìn)行仿真分析,直流電機(jī)轉(zhuǎn)速控制系統(tǒng)的傳遞函數(shù)為
當(dāng)輸入為單位階躍信號(hào)時(shí),系統(tǒng)的性能指標(biāo)可歸納為:穩(wěn)態(tài)誤差小于1%,調(diào)節(jié)時(shí)間小于2 s,超調(diào)量小于5%.
圖5是主程序框圖,其中RK4是龍格庫塔算法模塊,而dcgain是系統(tǒng)穩(wěn)態(tài)值計(jì)算模塊.程序的輸入輸出與前面使用Matlab腳本節(jié)點(diǎn)的仿真程序基本相同,其前面板如圖6所示.從前面板圖6可見,可以直接通過相應(yīng)控件設(shè)置輸入信號(hào)的參數(shù)和系統(tǒng)的傳遞函數(shù),單擊循環(huán)運(yùn)行按鈕,就能在調(diào)整PID控制器各參數(shù)的同時(shí)觀察到系統(tǒng)響應(yīng)曲線和性能指標(biāo)的變化.
圖5 直流電機(jī)轉(zhuǎn)速控制系統(tǒng)仿真程序框圖Fig.5 Diagram of simulation program of DC motor speed control system
圖6 直流電機(jī)轉(zhuǎn)速控制系統(tǒng)仿真程序前面板Fig.6 Front panel of simulation program of DC motor speed control system
用LabVIEW編寫的PID控制系統(tǒng)仿真程序,具有界面直觀,結(jié)構(gòu)清晰等優(yōu)點(diǎn).在LabVIEW仿真程序中嵌入Matlab腳本節(jié)點(diǎn),在界面友好的基礎(chǔ)上,使得計(jì)算更加簡潔方便.該程序可用于PID控制器參數(shù)的理論整定,比例、積分、微分三個(gè)控制參數(shù)對(duì)系統(tǒng)響應(yīng)的影響可以直接明了的觀察得到.通過直流電機(jī)調(diào)速控制系統(tǒng)的實(shí)例來分析了方法的有效性和實(shí)用性.
致謝
感謝湖北省科技廳和武漢工程大學(xué)對(duì)本研究提供的資助.
[1]焦靈俠.基于高爐系統(tǒng)的PID控制器研究[J].電子測(cè)試,2015(5):126-130.
JIAO Ling-xia.The research of Blast PID controller system[J].ElectronicTest,2015(5):126-130.(inChinese)
[2]談宏華,潘正春,騰達(dá).基于LabVIEW的液壓站監(jiān)控系統(tǒng)[J].武漢工程大學(xué)學(xué)報(bào),2010,32(12):94-97.
TANHong-hua,PANZheng-chun,TENGDa.Lab-VIEW-based monitoring system of hydraulic station[J].Journal of Wuhan Institute of Technology,2010,32(12):94-97.(in Chinese)
[3]王會(huì)清,程勇.基于LabVIEW的家庭智能報(bào)警系統(tǒng)研究[J].武漢工程大學(xué)學(xué)報(bào),2011,33(11):78-82.
WANGHui-qing,CHENGYong.Developmentof intelligent household alarm system based on LabVIEW[J].Journal of Wuhan Institute of Technology,2011,33(11):78-82.(in Chinese)
[4]沈峰,鐘勝奎,仲兆準(zhǔn),等.基于LabVIEW的直流電機(jī)PID速度控制系統(tǒng)設(shè)計(jì)[J].機(jī)械制造與自動(dòng)化,2014,43(3):189-190,207.
SHEN Feng,ZHONG Sheng-kui,ZHONG Zhao-zhun,et al.Design of PID speed control system based on LabVIEW for DC motor[J].Machine Building& Automation,2014,43(3):189-190,207.(in Chinese)
[5]胡壽松.自動(dòng)控制原理[M].北京:科學(xué)出版社,2013.
HU Shou-song.Automatic control theory[M].Beijng:Science Press,2013.(in Chinese)
Simulation of motor speed control system based on LabVIEW embedded in Matlab Script node
WANG Hou-neng,SONG Jie
School of Electrical and Information Engineering,Wuhan Institute of Technology,Wuhan 430205,China
LabVIEW is a development platform using graphical programming language,and the simulation program based on the tool of LabVIEW has friendly interface.Speed control system for direct current(DC)motor was designed in this paper.Based on LabVIEW software platform,Matlab script node was embedded in.The functions of control toolbox in Matlab were used for constructing proportional integration derivative(PID)controller,and the simulation calculation was accomplished.Additionally the transfer function of system could be converted to state equations,and the numerical solution of the equation with Runge-Kutta method was obtained.At last,according to the definite model of DC motor speed adjusting system,the effectiveness of the control algorithm was analyzed.The effect of PID parameters on system performance is even more intuitive,and the calculating process is convenient and simple.
proportional integration differential control;visualization;direct current motor control system
TP273
A
10.3969/j.issn.1674-2869.2015.08.014
1674-2869(2015)08-0069-06
本文編輯:苗變
2015-05-19
湖北省自然科學(xué)基金(2010CHB01301);武漢工程大學(xué)科學(xué)研究項(xiàng)目(15106032)
王后能(1978-),男,湖北嘉魚人,副教授,博士.研究方向:控制理論及應(yīng)用.