浙江理工大學(xué)(浙江 杭州310018) 朱石林 潘海鵬
交流電機(jī)具有結(jié)構(gòu)簡單、堅(jiān)固耐用、動(dòng)態(tài)響應(yīng)好、價(jià)格低廉、沒有機(jī)械換向器等一系列優(yōu)點(diǎn),由交流電機(jī)構(gòu)成的交流變頻調(diào)速系統(tǒng)已成功地應(yīng)用于工程實(shí)踐[1]。計(jì)算機(jī)和電子技術(shù)的高度發(fā)展,促使交流調(diào)速逐步從模擬化向數(shù)字化轉(zhuǎn)變[2],在工業(yè)控制中,變頻調(diào)速按偏差的比例 kp、積分 ki和微分 kd進(jìn)行控制的PID調(diào)節(jié)器已得到廣泛的應(yīng)用。隨著單片機(jī)控制技術(shù)不斷發(fā)展,浮點(diǎn)運(yùn)算能力和運(yùn)算速度都有很大提高,采用軟件技術(shù)實(shí)現(xiàn)PID算法,縮短了開發(fā)周期,降低了成本。針對普通交流調(diào)速中過大超調(diào)、響應(yīng)較慢的現(xiàn)象,本文設(shè)計(jì)了一種基于積分分離PID算法的變頻調(diào)速系統(tǒng),以滿足一些高性能的調(diào)速要求。
整個(gè)調(diào)速系統(tǒng)如圖1所示,主要由微處理器AT89C52、D/A轉(zhuǎn)換電路、隔離放大電路、變頻器驅(qū)動(dòng)電路、測速電路以及看門狗電路等組成。鍵盤和LCD顯示接口是人機(jī)交流的部分:鍵盤用來輸入電機(jī)轉(zhuǎn)速的設(shè)定值,LCD顯示電機(jī)的運(yùn)行狀態(tài),出現(xiàn)過壓、短路等狀況及時(shí)報(bào)警,直到人為清除故障。如圖2所示是電機(jī)轉(zhuǎn)速閉環(huán)控制原理框圖。在電機(jī)轉(zhuǎn)速閉環(huán)控制中,由光電編碼器采集到的脈沖信號經(jīng)過計(jì)算得到反饋值 u(k)與設(shè)定值 r(k)進(jìn)行比較,其差值經(jīng)積分分離PID算法進(jìn)行處理,改變單片機(jī)P0口輸出值并通過執(zhí)行機(jī)構(gòu)變頻器控制電機(jī)轉(zhuǎn)速,以達(dá)到給定數(shù)字 r(k)。
系統(tǒng)采用變頻器對交流電機(jī)轉(zhuǎn)速進(jìn)行實(shí)時(shí)控制。
變頻器的接口電路如圖3所示,變頻器U/V/W端子接三相交流電機(jī)(電機(jī)定子繞組采用Y接法)。當(dāng)人為設(shè)定轉(zhuǎn)速時(shí),單片機(jī)發(fā)出數(shù)字信號給DAC0832,放大隔離后變成0-10V的模擬量送到變頻器的AVI端口,變頻器U/V/W輸出頻率隨AVI端的電壓而變化,AT89C52可對DAC送入不同的二進(jìn)制數(shù)值,在DAC0832的AVI端口得到相應(yīng)的電壓,所以只要改變單片機(jī)輸出的數(shù)字量就可以改變電機(jī)轉(zhuǎn)速。此部分中采用線性光耦HCNR200芯片進(jìn)行信號隔離,其中R1為100K!,R2為500!,R3為100K!。系統(tǒng)還有一些外圍電路控制電機(jī)的起停、正反轉(zhuǎn)等輔助功能:P2.2用來控制電機(jī)的正轉(zhuǎn)/停止,P2.2發(fā)出一個(gè)數(shù)字信號“0”時(shí),在74HC537的1Q端形成一個(gè)低電平,光耦發(fā)光二極管發(fā)光,變頻器的FWD端口和公共端DCM接通,電機(jī)正轉(zhuǎn);P2.2發(fā)出一個(gè)數(shù)字信號“1”時(shí),F(xiàn)WD端口和公共端DCM斷開,電機(jī)停轉(zhuǎn);同理用P2.3來控制電機(jī)的反轉(zhuǎn)/停止,P2.4來控制點(diǎn)動(dòng),此部分采用普通光耦PC817芯片進(jìn)行信號隔離。
電路采用光電編碼器對交流電機(jī)進(jìn)行實(shí)時(shí)速度檢測。
如圖4所示,編碼器信號A、編碼器信號B經(jīng)過隔離電路傳送到單片機(jī)的P3.4、P3.2口。編碼器的兩相輸出信號經(jīng)隔離放大,送到處理器為兩路相角相差90°的方波,根據(jù)軟件判斷電機(jī)旋轉(zhuǎn)的方向,在單位時(shí)間內(nèi)檢測方波個(gè)數(shù),就可以檢測出電機(jī)的轉(zhuǎn)速。
控制規(guī)律的實(shí)現(xiàn)是由計(jì)算機(jī)軟件完成的。
軟件設(shè)計(jì)基于KeilC51編寫的,采用模塊化結(jié)構(gòu)設(shè)計(jì),各個(gè)功能子塊獨(dú)立。在結(jié)構(gòu)上由1個(gè)主程序和6個(gè)子程序組成。本系統(tǒng)主要模塊有主程序、INT0中斷子程序、T0中斷子程序、T1中斷子程序、積分分離PID算法子程序和顯示、鍵盤處理子程序。主程序進(jìn)行一系列的初始化等待中斷。外部中斷INT0服務(wù)子程序?qū)怆娋幋a器輸出的轉(zhuǎn)速脈沖計(jì)數(shù)。T0產(chǎn)生5Oms定時(shí)中斷,T0中斷服務(wù)子程序?qū)χ袛啻螖?shù)計(jì)數(shù),每20次中斷讀出轉(zhuǎn)速脈沖計(jì)數(shù)值,計(jì)算出轉(zhuǎn)速并保存到顯示緩沖區(qū)。T1產(chǎn)生采樣周期T定時(shí)中斷,每間隔T秒中斷一次,完成一次PID控制計(jì)算,同時(shí)調(diào)用積分分離PID子程序?qū)y試轉(zhuǎn)速和設(shè)定轉(zhuǎn)速進(jìn)行差值計(jì)算得出輸出,并由P0送出二進(jìn)制數(shù)調(diào)整電機(jī)轉(zhuǎn)速。
在實(shí)現(xiàn)對速度、溫度、壓強(qiáng)等物理量的控制中,PID是一種較成熟的算法[3]。在普通的PID控制中引入積分環(huán)節(jié)的目的,主要是為了消除靜差,提高控制精度。積分分離控制思想是:當(dāng)控制量與設(shè)定值接近設(shè)定值時(shí),取消積分作用;當(dāng)被控量接近設(shè)定值時(shí),引入積分作用[4]。
控制實(shí)現(xiàn)步驟為:
(1)根據(jù)實(shí)際情況,人為設(shè)定閥值 e>0;
(2)當(dāng)|e(k)> e|,采用 PD 控制;
(3)當(dāng)|e(k)&e|,采用 PID 控制。積分分離控制算法可表示為
經(jīng)典增量式數(shù)字PID的控制算法為:
在實(shí)際編程中,可以對積分分離PID進(jìn)行改進(jìn),采用分段積分分離的方式:根據(jù)誤差絕對值的不同,采用不同的積分強(qiáng)度。
普通的PID控制算法中,由于積分系數(shù) ki是常數(shù),在整個(gè)控制過程中,積分增量不變。而變頻調(diào)速系統(tǒng)是一個(gè)多變量、強(qiáng)耦合的非線性系統(tǒng)[5],根據(jù)控制要求,系統(tǒng)偏差大時(shí)積分作用應(yīng)減弱,在式(1)中,令 b=0,在偏差小時(shí)則應(yīng)加強(qiáng),令 b=1。
本設(shè)計(jì)采用增量式PID算法,只需保持前兩個(gè)時(shí)刻的偏差,從而避免了位置式PID算法中極易產(chǎn)生較大的積累誤差。
結(jié)合圖2的轉(zhuǎn)速閉環(huán)控制原理圖,可以編制出積分分離PID算法程序,圖5是算法模塊的程序流程圖。
AT89C52單片機(jī)內(nèi)部有256字節(jié)的RAM,根據(jù)它的運(yùn)算能力和設(shè)計(jì)精度要求,運(yùn)算過程中所有參數(shù)和計(jì)算值均以多字節(jié)浮點(diǎn)數(shù)表示。系統(tǒng)運(yùn)行中,通過定時(shí)器T1每間隔T秒中斷一次,完成一次PID控制計(jì)算,每次采集到的 u(k)都保存到單片機(jī)RAM當(dāng)中,在單片機(jī)內(nèi)存中不斷更新前兩個(gè)時(shí)刻的 u(k-1),u(k-2)的值,再利用u(k-1),u(k-2)的值計(jì)算 e(k-1)和 e(k-2),得到現(xiàn)在時(shí)刻的 u(k)的值,從而不斷調(diào)整被控參數(shù),完成電機(jī)轉(zhuǎn)速控制,其中參數(shù)更新可由單片機(jī)自動(dòng)完成,也可以由鍵盤輸入。
在變頻調(diào)速系統(tǒng)中,控制效果的好壞與數(shù)字控制器的參數(shù)緊密相關(guān),正確選擇 kp、ki、kd參數(shù)是提高控制效果的一項(xiàng)重要技術(shù)措施。工程中通常采用經(jīng)驗(yàn)法整定PID控制器的參數(shù),其措施是根據(jù)經(jīng)驗(yàn)先給定PID參數(shù),然后閉環(huán)運(yùn)行觀察系統(tǒng)響應(yīng)情況,再調(diào)節(jié)相應(yīng)參數(shù)比例,反復(fù)試湊直到控制質(zhì)量滿意為止。這種措施損耗了大量的時(shí)間和精力,延長了系統(tǒng)調(diào)試時(shí)間。
借助開發(fā)工具可以節(jié)約大量的人力和物力,本系統(tǒng)中采用MATLAB語言仿真系統(tǒng)整定PID控制參數(shù)的方法,使得PID控制參數(shù)的整定變得簡單。根據(jù)本系統(tǒng)的PID控制器模型,采用M文件的形式設(shè)計(jì)出PID控制器,改變輸入指令信號 r(k)并可以得到控制器的階躍響應(yīng)曲線。在M文件中可以方便地修改 kp、ki、kd的值,通過仿真比較選擇PID控制器參數(shù),得到合適的 kp、ki、kd值后固化到單片機(jī)中運(yùn)行。
針對本設(shè)計(jì)的變頻調(diào)速系統(tǒng)進(jìn)行MATLAB仿真,取 r(k)=50,如圖7所示。圖中實(shí)線為采用普通PID響應(yīng)仿真曲線,虛線為采用改進(jìn)的積分分離PID階躍響應(yīng)仿真曲線,通過比較得出:積分分離PID控制方法優(yōu)于普通PID控制。用積分分離PID控制的系統(tǒng)響應(yīng)時(shí)間非常快,只需要0.23s就可以使系統(tǒng)過渡到穩(wěn)定狀態(tài),它有效地減小了超調(diào)量,提高了控制精度,證明了在變頻調(diào)速中積分分離PID控制方法調(diào)節(jié)質(zhì)量更佳。
在變頻調(diào)速系統(tǒng)中采用積分分離PID算法,能實(shí)現(xiàn)精確的變頻調(diào)速閉環(huán)控制,調(diào)節(jié)質(zhì)量好。積分分離PID控制算法的工程實(shí)踐性很強(qiáng),但要根據(jù)具體的系統(tǒng)特點(diǎn)來選擇修正策略,在實(shí)際應(yīng)用當(dāng)中可根據(jù)誤差絕對值的不同采用不同的積分強(qiáng)度。經(jīng)MATLAB快速整定PID控制參數(shù)后固化到單片機(jī)運(yùn)行,利用單片機(jī)實(shí)時(shí)運(yùn)算和控制功能與軟件的靈活性,實(shí)現(xiàn)快速穩(wěn)定的變頻調(diào)速功能。本設(shè)計(jì)提高了變頻調(diào)速的調(diào)節(jié)質(zhì)量,降低了系統(tǒng)造價(jià)成本,有一定的推廣應(yīng)用價(jià)值。
[1]李發(fā)海,王巖.電機(jī)與拖動(dòng)基礎(chǔ)[M].北京:清華大學(xué)出版社,2004,215~216.
[2]包松,鮑可進(jìn),余景華.基于單片機(jī)PID算法的電機(jī)測控系統(tǒng)[J].微機(jī)發(fā)展,2003,13(8):72 ~ 74.
[3]劉金琨.先進(jìn)PID控制及其MATLAB仿真[M].北京:電子工業(yè)出版社,2003,1~2.
[4]夏瑋,李朝暉,常春藤.控制系統(tǒng)仿真與實(shí)例詳解[M].北京:人民郵電出版社,2008,274~275.
[5]侯向遠(yuǎn),吳小蘭.異步電動(dòng)機(jī)矢量控制調(diào)速系統(tǒng)的MATLAB/SIMULINK 仿真[J].工礦自動(dòng)化,2005,(11):55 ~ 58.
[6]劉叔軍,蓋曉華.控制系統(tǒng)應(yīng)用與實(shí)例[M].北京:機(jī)械工業(yè)出版社,2006,1~13.
[7]何濟(jì)民.轉(zhuǎn)速閉環(huán)變頻調(diào)速系統(tǒng)的建模與調(diào)節(jié)器參數(shù)設(shè)計(jì)[J].電器傳動(dòng)自動(dòng)化,2000,22(1):15 ~ 16.
[8]董鋒斌.閉環(huán)變頻調(diào)速系統(tǒng)的一種簡易設(shè)計(jì)方法[J].電氣時(shí)代,2007,(3):124.