第一篇:數(shù)字PID控制器設(shè)計
數(shù)字PID控制器設(shè)計
設(shè)計任務(wù):
設(shè)單位反饋系統(tǒng)的開環(huán)傳遞函數(shù)為:
設(shè)計數(shù)字PID控制器,使系統(tǒng)的穩(wěn)態(tài)誤差不大于0.1,超調(diào)量不大于20%,調(diào)節(jié)時間不大于0.5s。采用增量算法實現(xiàn)該PID控制器。
具體要求:
1.采用Matlab完成控制系統(tǒng)的建立、分析和模擬仿真,給出仿真結(jié)果。
2.設(shè)計報告內(nèi)容包含數(shù)字PID控制器的設(shè)計步驟、Matlab仿真的性能曲線、采樣周期T的選擇、數(shù)字控制器脈沖傳遞函數(shù)和差分方程形式。
3.設(shè)計工作小結(jié)和心得體會。4.列出所查閱的參考資料。
數(shù)字PID控制器設(shè)計報告
一、設(shè)計目的 了解數(shù)字PID控制算法的實現(xiàn);
掌握PID控制器參數(shù)對控制系統(tǒng)性能的影響;
能夠運用MATLAB/Simulink 軟件對控制系統(tǒng)進行正確建模并對模塊進行正確的參數(shù)設(shè)置;
加深對理論知識的理解和掌握; 5 掌握計算機控制系統(tǒng)分析與設(shè)計方法。
二、設(shè)計要求
1采用增量算法實現(xiàn)該PID控制器。
2熟練掌握PID設(shè)計方法及MATLAB設(shè)計仿真。
三、設(shè)計任務(wù)
設(shè)單位反饋系統(tǒng)的開環(huán)傳遞函數(shù)為:
設(shè)計數(shù)字PID控制器,使系統(tǒng)的穩(wěn)態(tài)誤差不大于0.1,超調(diào)量不大于20%,調(diào)節(jié)時間不大于0.5s。采用增量算法實現(xiàn)該PID控制器。
四、設(shè)計原理
1.數(shù)字PID原理結(jié)構(gòu)框圖
2.增量式PID控制算法
?u?k??KPe?k??KI?e?i??KD??e?k??e?k?1??i?0?
=u(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)] =u(k-1)+(Kp+Ki+Kd)e(k)-(Kp+2Kd)e(k-1)+Kde(k-2)所以Δu(k)=u(k)-u(k-1)
=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]
=(Kp+Ki+Kd)e(k)-(Kp+2Kd)e(k-1)+Kde(k-2)整理:
Δu(k)= Ae(k)-Be(k-1)+Ce(k-2)A= Kp+Ki+Kd
B=-(Kp+2Kd)C=Kd
五、Matlab仿真選擇數(shù)字PID參數(shù)
(擴充臨界比例度法/擴充響應(yīng)曲線法 具體整定步驟)
利用擴充臨界比例帶法選擇數(shù)字PID參數(shù),擴充臨界比例帶法是以模擬PID調(diào)節(jié)器中使用的臨界比例帶法為基礎(chǔ)的一種數(shù)字PID參數(shù)的整定方法。其整定步驟如下:; 1)選擇合適的采樣周期T;
2)在純比例的作用下,給定輸入階躍變化時,逐漸加大比例作用Kp(即減小比例帶?),直至系統(tǒng)出現(xiàn)等幅震蕩,記錄比例增益Kc,及振蕩周期Tc。Kc成 為臨界振蕩比例增益(對應(yīng)的臨界比例帶?),Tc成為臨界振蕩周期。
=1/150S^3+6/25S^2+37/30S+1 在MATLAB下輸入如下程序:
num=[1];
den=[1/150,6/25,37/30,1];sys=tf(num,den);p=[20:2:45];for i=1:length(p)
Gc=feedback(p(i)*sys,1);step(Gc)hold on end;grid
title('Kp變化時系統(tǒng)的階躍響應(yīng)曲線')axis([0,3,0,2.3])仿真階躍響應(yīng)如下圖:
調(diào)整參數(shù):p=[35:2:45] 程序如下: num=[1];
den=[1/150,6/25,37/30,1];sys=tf(num,den);p=[35:2:45];for i=1:length(p)
Gc=feedback(p(i)*sys,1);step(Gc)hold on end;grid title('Kp變化時系統(tǒng)的階躍響應(yīng)曲線')axis([0,3,0,2.3])仿真階躍響應(yīng)如下圖:
由圖像可知:當Kp在40~45之間時,系統(tǒng)會出現(xiàn)等幅振蕩。為進一步得到準確的Kp,調(diào)整程序參數(shù)p=[40:1:45],程序如下: num=[1];
den=[1/150,6/25,37/30,1];sys=tf(num,den);p=[40:1:45];for i=1:length(p)
Gc=feedback(p(i)*sys,1);step(Gc)hold on end;grid
title('Kp變化時系統(tǒng)的階躍響應(yīng)曲線')axis([0,3,0,2.3])仿真階躍響應(yīng)如下圖:
由圖像進一步精確得Kc約為43時,系統(tǒng)出現(xiàn)等幅震蕩,震蕩周期Tc約為0.5s。
擴充臨界比例帶法選擇數(shù)字PID參數(shù)的計算公式如下表所示:
3)選擇控制度??刂贫鹊亩x為數(shù)字調(diào)節(jié)器和模擬調(diào)節(jié)所對應(yīng)的過度過程的誤差平方積分之比,即控制度=?0??2eDdt?0edt2式中,eD為數(shù)字調(diào)節(jié)器的控制誤差;e為模擬調(diào)節(jié)器的控制誤差.當控制度為1.05時,數(shù)字調(diào)節(jié)器魚模擬調(diào)節(jié)器的控制效果相當;當控制度為2時,數(shù)字調(diào)節(jié)器比模擬調(diào)節(jié)器的控制效果差一倍;在此選控制度為1.05。按選擇的控制度指標及Tc,Kc實驗測得值,由查表選擇相應(yīng)的計算公式計算采樣周期:T=0.007,Kp=27,Ti=0.245,Td=0.07;KI?KiT?KPT=0.77,KD?Kd?KPTD=270,Ki=0.23
TITTTc=0.5 則T=Tc*0.014=0.5*0.014=0.007;
Kp=Kc*0.63=43*0.63=27.09;
Ti=Tc*0.49=0.5*0.49=0.245;
Td=Tc*0.14=0.5*0.14=0.07;
Kp=27.09;
Ki=Kp*T/Ti=27.09*0.007/0.245=0.774;
Kd=Kp*Td/T=27.09*0.07/0.007=270.09;
六、Matlab/Simulink 控制系統(tǒng)建模 1.控制器
ΔU(Z)=(Kp+Ki+Kd)E(Z)-(Kp+2Kd)/Z*E(Z)+Kd/Z^2*E(Z)則D(Z)=ΔU(Z)/E(Z)=(Kp+Ki+Kd)-(Kp+2Kd)/Z+Kd/Z^2 =[(Kp+Ki+Kd)Z^2-(Kp+2Kd)Z+Kd]/Z^2 2.仿真模型圖
將 Kp=27.09;
Ki=Kp*T/Ti=27.09*0.007/0.245=0.774;
Kd=Kp*Td/T=27.09*0.07/0.007=270.09帶入,得:
Kp+Ki+Kd=27.09+0.774+270.09=297.95 Kp+2Kd=27.09+2*270.09=567.27 Kd=270.09
即D(Z)=[297.95*Z^2-567.27*Z+270.09]/Z^2
G0(S)=43/[0.00667S^3+0.24S^2+1.2333S+1] 3.輸出階躍響應(yīng)曲線
Scope中得到階躍響應(yīng)曲線如下所示:
4、試湊法微調(diào)參數(shù) 由階躍響應(yīng)圖像可得:
Y(∞)=0.96,則穩(wěn)態(tài)誤差Ess=1-0.96=0.04 超調(diào)量
=(1.1-0.96)/0.96*100%=14.6% 調(diào)整時間Ts=0.27s
系統(tǒng)有少量的穩(wěn)態(tài)誤差,則適當增大KI參數(shù),使得KI參數(shù)由0.774變?yōu)?.774;
Scope中得到階躍響應(yīng)曲線如下所示:
由圖像可知:此時穩(wěn)態(tài)誤差Ess減為1-0.98=0.02,超調(diào)量=(1.1-1)/1*100%=10%,調(diào)整時間減少為Ts=0.15s,但該曲線不夠平滑,調(diào)整:Kp=36.08,Ki=2.770,Kd=270.08,降低傳遞函數(shù)的K值為36
Scope中得到階躍響應(yīng)曲線如下所示:
此時穩(wěn)態(tài)誤差幾乎為0,調(diào)整時間Ts為0.3s,超調(diào)量為(1.05-1)/1*100%=5%,基本符合要求
5.最終PID參數(shù)及輸出響應(yīng)曲線 當Kp=36.08 Ki=2.770 Kd=270.08時
最終輸出階躍響應(yīng)曲線為:
七、設(shè)計心得體會
通過這次設(shè)計,重新認識了計算機控制系統(tǒng)的數(shù)字PID控制,基本掌握了數(shù)字PID控制的基本規(guī)律,也認識到計算機控制系統(tǒng)的復(fù)雜性,檢驗了我所學(xué)的知識,體會了控制系統(tǒng)三大指標“穩(wěn),準,快”的意義.加深了我對自動控制系統(tǒng)的了解,同時也對比例、積分、微分控制有了更進一步的認識。
比例系數(shù)的加大,將使系統(tǒng)的響應(yīng)速度加快,在系統(tǒng)穩(wěn)定的前提下,加大比例系數(shù)可以減少穩(wěn)態(tài)誤差。但不能消除穩(wěn)態(tài)誤差。積分控制通常影響系統(tǒng)的穩(wěn)定性,有助于消除穩(wěn)態(tài)誤差,提高系統(tǒng)的控制精度。而微分作用的增加則可以改善系統(tǒng)的動態(tài)特性,但也可能降低系統(tǒng)的抗干擾能力。比例+積分控制器可以使系統(tǒng)進入穩(wěn)態(tài)后無穩(wěn)態(tài)誤差。而比例+微分控制器能改善系統(tǒng)在調(diào)節(jié)過程中的動態(tài)特性。
這次設(shè)計過程讓我們把理論知識付諸于實踐,這對以后的學(xué)習(xí)帶來了更大的 幫助!
八、參考文獻
1.陳懷琛.MATLAB及在電子信息課程中的應(yīng)用.北京:電子工業(yè)出版社,2009 2.趙廣元.MATLAB與控制系統(tǒng)仿真實踐.北京:北京航空航天大學(xué)出版社,2009
第二篇:AB PLC PID控制器總結(jié)
針對AB PLC里的PID控制器的研究
首自信熱軋作業(yè)區(qū)
張余海
借鑒熱軋1580的稀油泵站的出口壓力控制,期望壓力為4.0bar,電機為異步變頻電機,變頻器為AB變頻器,PLC和變頻器的通訊通過Device Net進行數(shù)據(jù)交換。
一、控制器里的變量介紹--------
各變量名解釋:(各變量只是顯示用,他們的值時根據(jù)里面的參數(shù)設(shè)定而來)PID :PID控制器的名字(自己命名)
Process Variable :過程變量的輸入源設(shè)定也就是反饋值(直接連到壓力反饋的輸入點)Tieback:手動控制時的牽引信號,因為在手動控制中,輸出(OUTPUT=SETOUTPUT是人為設(shè)定的,這個Tieback有個對應(yīng)的值,也就是手動設(shè)定為0,Tieback為0,如果手動設(shè)定為100%,那么Tieback輸出就是4095)具體見后面的參數(shù)設(shè)定。
Control Variable:控制變量(最關(guān)鍵的一個參數(shù))的輸出源設(shè)定,自己命令的一個中間變量作為轉(zhuǎn)換或者直接接到給到執(zhí)行器的輸出信號上(例如閥的開口度、電機的轉(zhuǎn)速給定)。PID控制器計算得到的是一個百分數(shù),但是百分數(shù)無法輸出給執(zhí)行機構(gòu),必須轉(zhuǎn)換成為數(shù)字量,這個控制變量(CV)就是依照對應(yīng)關(guān)系轉(zhuǎn)換得到的數(shù)字量(例如OUTPUT=0,CV=0,OUTPUT=100%,CV=16384,具體見后面參數(shù)設(shè)定)
PID Master Loop:PID的主循環(huán),就是PID控制使用串級控制,如果是就會顯示為1,如果為從就為0,但是有一個前提就是選用了串級控制(看后面的參數(shù)設(shè)定)
Ihhold Bit :初始化保持位,來自1756模擬量輸出通道的數(shù)據(jù)讀出值,用于支持無沖擊在啟動,如果用戶不想用此參數(shù),可以設(shè)置為0。
Inhold Value:初始化保持值,來自1756模擬量輸出通道的數(shù)據(jù)讀出值,用于支持無沖擊在啟動,如果用戶不想用此參數(shù),可以設(shè)置為0。
這兩個值是為了防止系統(tǒng)已運行,過程變量和設(shè)定偏差太大,PID控制器輸出肯定是100%,帶來很大的沖擊,如果設(shè)置此參數(shù),系統(tǒng)先不讓PID控制器工作,輸出一直用Inhold Value(初始化保持值),這個值可以人為的設(shè)定慢慢的變大,等到系統(tǒng)壓力差不多達到設(shè)定壓力后,然后將Ihhold Bit(初始化保持位)置0,這樣系統(tǒng)輸出就會采用PID控制器的輸出了。
SetPoint:設(shè)定值,Process Variable :過程變量的實際值顯示
OUTPUT:PID控制器經(jīng)過計算得到的輸出,百分數(shù)形式。
二、參數(shù)設(shè)置:
1、調(diào)節(jié)方式參數(shù)設(shè)置
2、PID功能塊的配置參數(shù)設(shè)置
注:(1)如果控制動作選用的是E=SP-PV那么PID的輸出就可以直接給到執(zhí)行器進行動作,如果選用的是E=PV-SP那么輸出就需要變方向,(2)控制變量上下限為了防止輸出過大,導(dǎo)致沖擊,下限是為了防止停轉(zhuǎn)等。
(3)設(shè)置死區(qū)時間是為了防止實際值在設(shè)定值附近的時候,PID進行微調(diào),導(dǎo)致系統(tǒng)來回的振蕩。
3、PID控制器的報警參數(shù)設(shè)置
注:(1)PV上限值報警和下限值報警時為了報出實際值的過大變化,這里的40.0實際上是4.0bar,因為在AB PLC里有一個工程量的變換,一般是10倍關(guān)系(見相關(guān)的比例定標配置)
4、相關(guān)的比例定標配置
注:(1)PV未定標(unscaled)的最大值就是現(xiàn)場實際的壓力反饋值,這里設(shè)定是16bar,而工程量單元(Engineering)是實際值的10倍關(guān)系,所以是160,而在PID功能塊里用的都是工程量,所以不管是設(shè)定值和反饋值都是放大十倍關(guān)系的。
(2)控制變量的定標就是將PID控制器的輸出0—100%和數(shù)字量0—16384(一個整形數(shù))進行對應(yīng),所以在PID控制器里,OUTPUT是百分數(shù),而Control Variable 是整形數(shù),就是在這里進行了轉(zhuǎn)換。
(3)Tieback牽引值是為了在手動模式下,手動輸入Setoutput的大小之后,那個百分數(shù)就不按照0—16384進行轉(zhuǎn)換,而是按照0—4095進行轉(zhuǎn)換。
5、標簽參數(shù)設(shè)置
設(shè)置此PID控制器的名字和相關(guān)描述。
二、PID的公式計算
我們就拿上面的工程進行計算PID計算。
參數(shù)設(shè)置的是PI控制,P=2.5,Ti=0.08,Td=0,BIAS=0,對PV進行微分,采樣周期為0.4s,實際值數(shù)據(jù)是0.01S,那么如果現(xiàn)在PV=2.0BAR,那么輸出應(yīng)該是多少,E=SP-PV=4-2=2
具體的計算要進行分時間進行計算,因為PID控制器的周期是0.4S,但是PV數(shù)據(jù)采集周期可能是0.1S,那就是E的計算會很快,例如0.1S時為2,0.2S時為1,0.3S時為0.5,0.4S時為0.2,但是輸出計算只能是0.4S輸出一次,那樣的話,系統(tǒng)只會要0.4S的那個時候的誤差,在0-0.4S之間變化的誤差時不考慮的,也就是輸出應(yīng)該為。
CV=2.5[2+1/0.08*0.2(0.4-0)]=7.5%(控制器的掃描周期是0.1s,IO的刷新周期是0.01s,那么中間掃描進來的 IO都不會被使用到)并不是下面的公式:
CV=2.5[2+1/0.08*2(0.1-0)]+2.5[1+1/0.08*1(0.2-0.1)]+2.5[0.5+1/0.08*0.5(0.3-0.2)]+2.5[0.2+1/0.08*0.2(0.4-0.3)]=2.5*4.5+2.5*2.25+2.5*1.125+2.5*0.45=20%
第三篇:最少拍數(shù)字控制器的設(shè)計
離散控制系統(tǒng)最少拍控制
摘要
本次設(shè)計針對一階慣性積分系統(tǒng)在單位速度信號輸入作用下進行最少拍數(shù)字控制器的設(shè)計,驗證了最少拍控制器的優(yōu)點,并對最少拍算法進行理論分析,分別設(shè)計出最少拍有紋波和無紋波數(shù)字控制器,利用 MATLAB 仿真平臺對設(shè)計的最少拍數(shù)字控制器進行系統(tǒng)仿真研究,并對有紋波和無紋波系統(tǒng)進行對比研究。
關(guān)鍵詞
最少拍控制;無紋波控制器;有紋波控制器;Matlab仿真
離散控制系統(tǒng)最少拍控制
目錄
摘要……………………………………………………………………………………1 第一章 最少拍有紋波控制器設(shè)計………………………………………………….3 1.1 設(shè)計原理……………………………………………………………………3 1.2 設(shè)計舉例……………………………………………………………………5 第二章 最少拍無紋波控制器設(shè)計………………………………………………….5 2.1 設(shè)計原理……………………………………………………………………5 2.2 設(shè)計舉例……………………………………………………………………6 第三章 基于Matlab的最少拍控制的實現(xiàn)…………………………………………7 3.1 輸入單位階躍信號…………………………………………………………7 3.2 輸入單位速度信號…………………………………………………………8 3.3 輸入單位加速度信號……………………………………………………9 參考文獻………………………………………………………………………………10 致謝……………………………………………………………………………………11
離散控制系統(tǒng)最少拍控制
離散控制系統(tǒng)最少拍控制
最少拍系統(tǒng)控制設(shè)計是指系統(tǒng)在典型輸入信號(如單位階躍輸入信號、單位速度輸入信號、單位加速度輸入信號等)作用下,經(jīng)過最少拍(有限拍),使系統(tǒng)輸出的穩(wěn)態(tài)誤差為零。最少拍控制系統(tǒng)也稱為最少拍無差系統(tǒng)、最少拍隨動系統(tǒng),實際上是時間最優(yōu)控制系統(tǒng),系統(tǒng)的性能指標就是系統(tǒng)的調(diào)節(jié)時間最短或者盡可能的短??梢钥闯?,這種系統(tǒng)對閉環(huán)脈沖傳遞函數(shù)的要求是快遞性和準確性。最少拍控制系統(tǒng)的設(shè)計與被控對象的零極點位置有很密切的關(guān)系。
第一章 最少拍有紋波控制器設(shè)計
1.1設(shè)計原理
由系統(tǒng)閉環(huán)脈沖傳遞函數(shù)可以看出,在Φ(z)中,D(z)和G(z)總是成對出現(xiàn)的。只有當廣義對象穩(wěn)定[即G(z)在z平面單位圓上和單位圓外沒有極點]且不包含純滯后環(huán)節(jié)時,上述方法才是可行的,否則,不允許D(z)與G(z)發(fā)生零極點對消。這是因為,簡單地利用D(z)的零點去對消G(z)不穩(wěn)定極點,雖從理論上來說可以得到一個穩(wěn)定的閉環(huán)系統(tǒng),但這種穩(wěn)定是建立在零極點完全對消的基礎(chǔ)上的。當系統(tǒng)參數(shù)產(chǎn)生飄逸,或者對象辨識有誤差時,這種零極點對消就不可能準確實現(xiàn),從而引起閉環(huán)系統(tǒng)不穩(wěn)定。座椅建立在零極點對消基礎(chǔ)上的穩(wěn)定系統(tǒng)實際上是不可能穩(wěn)定工作的,沒有實用價值。
當G(z)含有單位圓上或單位圓外零極點時,為保證D(z)與G(z)不會發(fā)生零極點對消,在選擇Φ(z)時,必須附加一個穩(wěn)定性約束條件。
設(shè)廣義脈沖傳遞函數(shù)G(z)為
u?G(z)?i?1vi?1(1?bizz?1)G'(z)
?(1?a?1i)式中,b1、b2、…、bu 為G(z)的u個不穩(wěn)定零點,a1、a2、…、av 為G(z)的v個不穩(wěn)定極點,G'(z)為G(z)中不包含單位圓上或單位圓外的零極點部分。當對象不包含延遲環(huán)節(jié)時,m=1;當對象包含延遲環(huán)節(jié)時,m>1。
為避免發(fā)生D()與G()的不穩(wěn)定零極點發(fā)生對消,Φ(z)應(yīng)該滿足如下穩(wěn)定性條件:
①在?e(z)的零點中,必須包含G(z)在z平面單位圓外或單位圓上的所有極點,即:
v?e(z)?1??(z)??i?1(1?aiz?1)F1(z)
F1(z)為z-1的多項式,且不包含G(z)中的不穩(wěn)定極點ai。
②)在?(z)的零點中,必須包含G(z)在z平面單位圓外或單位圓上的所有零點,即:
離散控制系統(tǒng)最少拍控制
u?(z)??i?1(1?biz?1)F2(z?1)
式中,F(xiàn)2(z)為z-1的多項式,且不包含G(z)中的不穩(wěn)定零點bj。因此,滿足了上述穩(wěn)定性條件后
?11?(z)F2(z)D(z)??,?1?1 G(z)(1??(z)G'(z)F1(z)即D(z)不在包含G(z)的z平面單位圓上或單位圓外零極點。
1.2 設(shè)計舉例
對于給定一階慣性加積分環(huán)節(jié),時間常數(shù)為1S,增益為10,采樣周期T為1S的對象,其傳遞函數(shù)為:Gc(S)=10/S(S+1),針對單位階躍信號輸入,設(shè)計最少拍系統(tǒng)如下: 被控對象的脈沖傳遞函數(shù)為:
?1?e?Ts??G(s)c??s?H(s)?Gc(s)???G(z)=Z=Zz?1??1?2?s(s?1)?-1?=10(1-z)Z
(1?0.717z?1?1)?1=3.68×(1?z)(1?0.368z)
(1)由(1)式知 d=0,u=0,v=1,j=1,q=2,且j≤q,則有:
m=u+d=0 n=v-j+q=2 對單位速度輸入信號,選擇
v?j?e(z)?1??(z)?[?(1?aizi?1u?1)](1?z?1)F1(z)q?(1?z?1)2
?(z)?z?d[?(1?bizi?1?1)]F2(z)?f21z?1?f22z?2
結(jié)合得 ?e(z)?1??(z)1?f21z?1
?(1?z?1?f22z?2)2
f21?2,f22??1根據(jù)多項式相等,其系數(shù)相等的的性質(zhì),有所以,?(z)?2z?1
?z?
2?F2(z)?1q?jD(z)?1?(z)G(z)1??(z)
G'(z)(1?z)F1(z),j?q
?1?(1?0.368z3.68z?1)(2z?1?z?2)?
1(1?0.718z?1)(1?z)
離散控制系統(tǒng)最少拍控制
?0.543(1?0.5z?1)(1?0.368z)(1?z?1?1)
從而,E(z)?R(z)?e(z)?1?1(1?0.718z?1)(2)
?Tz(1?zTz)2(1?z?1)2?z?1
?1?1
Y(z)?R(z)?(z)?(1?z)2(2z?1?z?2)?2z?2?3z?3?4z?4?...U(z)?E(z)D(z)?z.?10.543(1?0.5z?1)(1?0.368z)(1?z?1?1)(1?0.718z?0.54z?1)
?0.40z?
3?1?0.32z?2?0.12z?4?0.25z?5?...其控制器輸出與系統(tǒng)輸出如下圖所示:
u y0.5 012345t/T 1
012345t/T
最少拍控制器設(shè)計是采用z變化進行的,僅在采樣點處是閉環(huán)反饋控制,在采樣點間實際上是開環(huán)運行的。因此,在采樣點處的誤差是零,并不能保證采樣點之間的誤差也為零。事實上,按前面的方法設(shè)計的最少拍控制器的輸出響應(yīng)在采樣點間存在波紋。
如上圖所示,經(jīng)過2拍后,在采樣時刻系統(tǒng)誤差為零,輸出跟蹤上了輸出的變化,但在非采樣時刻,輸出有波紋存在,原因在于數(shù)字控制器的輸出u(kT)經(jīng)過2拍后不為零或常值,而是振動收斂。波紋不僅造成誤差,同時也消耗功率、浪費能量,增加機械磨損,因此,設(shè)計時應(yīng)考慮加以消除。
第二章 最少拍無紋波控制器設(shè)計
2.1設(shè)計原理
①設(shè)計最少拍無紋波控制器的必要條件 很明顯,為使被控對象在穩(wěn)態(tài)時的輸出和輸入同步,要求被控對象必須具有相應(yīng)的能力。例如,如輸入為等速輸入函數(shù),被控對象G()的穩(wěn)態(tài)輸出也應(yīng)為等速函數(shù)。因此就要求G()中至少有一個積分環(huán)節(jié)。再如,若輸入為等加速度輸入函數(shù),則被控對象G()的穩(wěn)態(tài)輸出也應(yīng)為等加速函數(shù),要求G()中至少有兩個積分環(huán)節(jié)。所以最少拍無紋波控制器能夠?qū)崿F(xiàn)的必要條件是被控對象G()中含有與輸入信號相對應(yīng)的積分環(huán)節(jié)數(shù)。
離散控制系統(tǒng)最少拍控制
②最少拍無紋波系統(tǒng)確定Ф(z)的約束條件
要使系統(tǒng)的穩(wěn)態(tài)輸出無紋波,就要求穩(wěn)態(tài)時的控制信號u(k)為常值(包括0)。由Y(z)??(z)R(z)?G(z)U(z)可知
U(z)= ?(z)R(z)/G(z)要使u(kT)在穩(wěn)態(tài)時無波動,就意味著U(z)與R(z)之比為的有限項多項式。而這要求?(z)R(z)包含G(z)的所有零點。即
w?(z)??i?1(1?biz?1)F(z?1)
2.2 設(shè)計舉例
仍然按照有紋波控制器的設(shè)計步驟設(shè)計 同樣的,由(1)式知
被控對象不含純滯后z-d,d=0;共包含一個零點b1 =-0.718, w=1;包含一個單位圓外或單位圓上的極點,v=1,且一個極點在單位圓上,j=1; 輸入信號為單位速度,q=2,且j m=w+d=1 n=v-j+q=2 因此:F1(z)?1?f11z?1 F2(z)?f21z?1?f22z?2 對單位速度輸入信號,選擇 v?j?e(z)?1??(z)?[?(1?aizi?1?1)](1?z?1)F1(z),q?jq ?12?1) ?(1?zw)(1?f11z?(z)?z?d[?(1?bizi?1?1)]F2(z)?(1?0.718z?1)(f21z?1?f22z?2) 由?e(z)?1??(z)得 ?1(1?z)(1?f11z2?1)?1?(1?0.718z?1)(f21z?1?f22z?2) ?3展開有 : 1?(f11?2)z?1?(1?2f11)z?2?f11z?3?1?f21z?1?(f22?0.718f21)z?2?0.718f22z 對應(yīng)系數(shù)相等,得:f11?0.592,f21?1.408,f22??0.825 離散控制系統(tǒng)最少拍控制 故有 ?e(z)?(1?z?1)(1?0.592z?12?1) ?0.825z?2?(z)?(1?0.718z)(1.408z?1) 最后,求得數(shù)字控制器的脈沖函數(shù)為 D(z)?1?(z)G(z)1??(z)?0.383?(1?0.5859z(1?0.592z?1?1)(1?0.368z?1?1))(1?z)(3) 閉環(huán)系統(tǒng)的輸出序列為 Y(z)?R(z)?(z)?Tz(1?z?3?1?1)2(1?0.718z?1)(1.408z?1?0.825z?2) ?...?1.41z?2?3z?4z?4 ?1E(z)?R(z)?e(z)Y(z)G(z)?Tz(1?z?1?1)2(1?z)(1?0.592z2?1)?z?1?0.592z?2 U(z)??R(z)?(z)G(z)?0.38z?1?0.02z?2?0.09z?3?0.09z?4?...其控制器輸出與系統(tǒng)輸出如下圖所示: u0.4y4321012345t/T012345t/T 第三章 基于Matlab的最少拍控制的實現(xiàn) 3.1輸入單位階躍信號 計算可得到最少拍數(shù)字控制器為 離散控制系統(tǒng)最少拍控制 檢驗誤差序列: 運用Simulink 對其控制結(jié)果進行仿真,系統(tǒng)Simulink 仿真模型框圖如下圖所示: 將示波器的數(shù)據(jù)存為矩陣形式,命名為y1 在Matlab 命令窗口輸入: >> plot(tout(:,1),y1(:,2:4));>> hold on,legend(' 輸入','誤差','輸出')可得輸入、輸出和誤差三條曲線仿真結(jié)果如下圖所示: 3.2輸入單位速度信號 原理同上 D(Z)??(z)G(z)(1??(z))?0.5434(1?0.5(1?z?1)(1?0.3679z?1)z?1)(1?0.718z?1) 檢驗誤差: z 控制系統(tǒng)Simulink 框圖如下圖所示: E(z)?(1??(z))R(z)??1 離散控制系統(tǒng)最少拍控制 輸入、輸出和誤差三條曲線仿真結(jié)果如下圖所示: 3.3輸入單位加速度信號 原理同上 檢驗誤差: 控制系統(tǒng)Simulink 框圖如下圖所示: 輸入、輸出和誤差三條曲線仿真結(jié)果如下圖所示: 離散控制系統(tǒng)最少拍控制 參考文獻 [1] 李元春.計算機控制系統(tǒng).高等教育出版社.133-145 [2] 畢效輝.自動控制理論.中國輕工業(yè)出版社.321-327 離散控制系統(tǒng)最少拍控制 致謝 一種是利用PLC的固定模塊來實現(xiàn)(PLC400的現(xiàn)成模塊);一種是自己編程實現(xiàn)(TDC) 自動化控制系統(tǒng)的核心是控制器。控制器的任務(wù)是按照一定的控制規(guī)律,產(chǎn)生滿足工藝要求的控制信號,以輸出驅(qū)動執(zhí)行器,達到自動控制的目的。在傳統(tǒng)的模擬控制系統(tǒng)中,控制器的控制規(guī)律或控制作用是由儀表或電子裝置的硬件電路完成的,而在計算機控制系統(tǒng)中,除了計算機裝置以外,更主要的體現(xiàn)在軟件算法上,即數(shù)字控制器的設(shè)計上。 1、王琦,計算機控制技術(shù) 1)p19 模擬系統(tǒng)和數(shù)字系統(tǒng)的區(qū)別; 2)p166 PID工程整定方法。 3)p196安裝調(diào)試步驟等。 2、李江全,計算機控制技術(shù)項目教程(見PPT電子文檔) 1)P185計算機控制系統(tǒng)的設(shè)計原則; 2)P194 計算機控制系統(tǒng)的總統(tǒng)方案設(shè)計; 3)P205計算機控制系統(tǒng)的硬件設(shè)計; 4)P208 計算機控制系統(tǒng)的軟件設(shè)計; 5)P226計算機控制系統(tǒng)的調(diào)試與運行; 6)P229 計算機控制系統(tǒng)的可靠性設(shè)計 3、嚴海穎 計算機控制技術(shù) 1)p96 數(shù)字濾波技術(shù)和線性化處理等 4、《計算機控制》-鄔學(xué)禮 趙瑩琳等 控制器的實現(xiàn)問題 5、ta 1.滿足工藝要求 在設(shè)計計算機測控系統(tǒng)時,首先應(yīng)滿足生產(chǎn)過程所提出的各種要求及性能指標。因為計算機測控系統(tǒng)是為生產(chǎn)過程自動化服務(wù)的,因此設(shè)計之前必須對工藝過程有一定的熟悉和了解,系統(tǒng)設(shè)計人員應(yīng)該和工藝人員密切結(jié)合,才能設(shè)計出符合生產(chǎn)工藝要求和性能指標的測控系統(tǒng)。設(shè)計的測控系統(tǒng)所達到的性能指標不應(yīng)低于生產(chǎn)工藝要求,但片面追求過高的性能指標而忽視設(shè)計成本和實現(xiàn)上的可能性也是不可取的。 2.可靠性要高 系統(tǒng)的可靠性是指系統(tǒng)在規(guī)定的條件下和規(guī)定的時間內(nèi)完成規(guī)定功能的能力。在現(xiàn)代生產(chǎn)和管理中,計算機測控系統(tǒng)起著非常重要的作用,其安全可靠性,直接影響到生產(chǎn)過程連續(xù)、優(yōu)質(zhì)、經(jīng)濟運行。計算機測控系統(tǒng)通常都是工作在比較惡劣的環(huán)境之中,各種干擾會對系統(tǒng)的正常工作產(chǎn)生影響,各種環(huán)境因素(如粉塵、潮濕、震動等)也是對系統(tǒng)的考驗。而計算機測控系統(tǒng)所控制的對象往往都是比較重要的,一旦發(fā)生故障,輕則影響生產(chǎn),造成產(chǎn)品質(zhì)量不合格,帶來經(jīng)濟損失;重則會造成重大的人身傷亡事故,產(chǎn)生重大的社會影響。所以,計算機測控系統(tǒng)的設(shè)計總是應(yīng)當將系統(tǒng)的可靠性放在第一位,以保證生產(chǎn)安全、可靠和穩(wěn)定地運行。 3.操作性能要好 一個好的計算機測控系統(tǒng)應(yīng)該人機界面好、方便操作、運行,易于維護。 操作方便主要體現(xiàn)在操作簡單、顯示畫面形象直觀,有較強的人機對話能力,便于掌握。在考慮操作先進性的同時,設(shè)計時要真正做到以人為本,盡可能地為使用者考慮,兼顧操作人員的習(xí)慣,降低對操作人員專業(yè)知識的要求,使他們能在較短時間內(nèi)熟悉和掌握操作方法,不要強求操作人員掌握計算機知識后才能操作。對于人機界面可以采用CRT、LCD或者是觸摸屏,使得操作人員可以對現(xiàn)場的各種情況一目了然。 維護方便主要體現(xiàn)在易于查找故障、排除故障。為此,需要在硬件和軟件設(shè)計中綜合考慮。在硬件方面,宜采用標準的功能模板式結(jié)構(gòu),并能夠帶電插拔,便于及時查找并更換故障模板;模板上應(yīng)配置工作狀態(tài)指示燈和監(jiān)測點,便于檢修人員檢查與維護。在軟件方面,設(shè)置檢測、診斷與恢復(fù)程序,用于故障查找和處理。 從軟件角度而言,要配置查錯程序和診斷程序,以便在故障發(fā)生時能用程序幫助查找故障發(fā)生的部位,從而縮短排除故障的時間;在硬件方面,從零部件的排列位置,部件設(shè)計的標準化以及能否帶電插拔等諸多因素都要通盤考慮,系統(tǒng)設(shè)計要盡量方便用戶,簡化操作規(guī)程,如面板上的控制開關(guān)不能太多、太復(fù)雜等。 4.實時性要強 計算機測控系統(tǒng)的實時性,表現(xiàn)在對內(nèi)部和外部事件能及時地響應(yīng),并作出相應(yīng)的處理,不丟失信息,不延誤操作。計算機處理的事件一般分為兩類:一類是定時事件,如數(shù)據(jù)的定時采集,運算控制等,對此系統(tǒng)應(yīng)設(shè)置時鐘,保證定時處理;另一類是隨機事件,如事故報警等,對此系統(tǒng)應(yīng)設(shè)置中斷,并根據(jù)故障的輕重緩急預(yù)先分配中斷級別,一旦事故發(fā)生,保證優(yōu)先處理緊急故障。 5.通用性要好 通用性是指所設(shè)計出的計算機測控系統(tǒng)能根據(jù)各種不同設(shè)備和不同控制對象的控制要求,靈活擴充、便于修改。工業(yè)控制的對象千差萬別,而計算機測控系統(tǒng)的研制開發(fā)又需要有一定的投資和周期。一般來說,不可能為一臺裝置或一個生產(chǎn)過程研制一臺專用計算機,常常是設(shè)計或選用通用性好的計算機測控裝置靈活地構(gòu)成系統(tǒng)。當設(shè)備和控制對象有所變更時,或者再設(shè)計另外一個控制系統(tǒng)時,通用性好的系統(tǒng)一般稍作更改或擴充就可適應(yīng)。 計算機測控系統(tǒng)的通用靈活性體現(xiàn)在兩方面:一是硬件設(shè)計方面,首先應(yīng)采用標準總線結(jié)構(gòu),配置各種通用的功能模板或功能模塊,并留有一定的冗余,當需要擴充時,只需增加相應(yīng)功能的通道或模板就能實現(xiàn)。二是軟件方面,應(yīng)采用標準模塊結(jié)構(gòu),用戶使用時盡量不進行二次開發(fā),只需按要求選擇各種功能 模塊,靈活地進行控制系統(tǒng)組態(tài)。 6.經(jīng)濟效益要高 在滿足計算機測控系統(tǒng)的技術(shù)性能指標的前提下,盡可能地降低成本,保證為用戶帶來更大的經(jīng)濟效益。經(jīng)濟效益表現(xiàn)在兩方面:一是系統(tǒng)設(shè)計的性能價格比要盡可能的高,在滿足設(shè)計要求的情況下,盡量采用物美廉價的元器件;二是投入產(chǎn)出比要盡可能的低,應(yīng)該從提高生產(chǎn)的產(chǎn)品質(zhì)量與產(chǎn)量、降低能耗、消除污染、改善勞動條件等方面進行綜合評估。另外,要有市場競爭意識,盡量縮短開發(fā)設(shè)計周期,以降低整個系統(tǒng)的開發(fā)費用,使新產(chǎn)品盡快進入市場。 7.開發(fā)周期要短 如果計算機測控系統(tǒng)的開發(fā)時間太長,會使用戶無法盡快地收回投資,影響了經(jīng)濟效益的提高;而且,由于計算機技術(shù)發(fā)展非???,只要幾年的時間原有的技術(shù)就會變得過時。設(shè)計與開發(fā)時間過長,等于縮短了系統(tǒng)的使用壽命。因此,在設(shè)計時,如何盡可能地使用成熟的技術(shù),對于關(guān)鍵的元部件或軟件,不是萬不得已就不要自行開發(fā)。 計算機測控系統(tǒng)的設(shè)計與實施步驟 1.可行性研究階段 開發(fā)者要根據(jù)被控對象的具體情況,按照企業(yè)的經(jīng)濟能力、未來系統(tǒng)運行后可能產(chǎn)生的經(jīng)濟效益、企業(yè)的管理要求、人員的素質(zhì)、系統(tǒng)運行的成本等多種要素進行分析。可行性分析的結(jié)果最終是要確定:使用計算機控制技術(shù)能否給企業(yè)帶來一定經(jīng)濟效益和社會效益。這里要指出的是,不顧企業(yè)的經(jīng)濟能力和技術(shù)水平而盲目地采用最先進的設(shè)備是不可取的。 2.初步設(shè)計階段 也可以稱為總體設(shè)計。系統(tǒng)的總體設(shè)計是進入實質(zhì)性設(shè)計階段的第一步,也是最重要和最為關(guān)鍵的一步。總體方案的好壞會直接影響整個計算機測控系統(tǒng)的成本、性能、設(shè)計和開發(fā)周期等。在這個階段,首先要進行比較深入的工藝調(diào)研,對被控對象的工藝流程有一個基本的了解,包括要測控的工藝參數(shù)的大致數(shù)目和測控要求、測控的地理范圍的大小、操作的基本要求等。然后初步確定未來測控系統(tǒng)要完成的任務(wù),寫出設(shè)計任務(wù)說明書,提出系統(tǒng)的控制方案,畫出系統(tǒng)組成的原理框圖,作為進一步設(shè)計的基本依據(jù)。 3.詳細設(shè)計階段 詳細設(shè)計是將總體設(shè)計具體化。首先要進行詳盡的工藝調(diào)研,然后選擇相應(yīng)的傳感器、變送器、執(zhí)行器、I/O通道裝置以及進行計算機系統(tǒng)的硬件和軟件的設(shè)計。對于不同類型的設(shè)計任務(wù),則要完成不同類型的工作。如果是小型的計算機測控系統(tǒng),硬件和軟件都是自己設(shè)計和開發(fā);此時,硬件的設(shè)計包括電氣原理圖的繪制、元器件的選擇、印刷線路板的繪制與制作;軟件的設(shè)計則包括工藝流程圖的繪制、程序流程圖的繪制、將一個個模塊編寫成對應(yīng)的程序等。 4.系統(tǒng)實施階段 要完成各個元器件的制作、購買、安裝;進行軟件的安裝和組態(tài)以及各個子系統(tǒng)之間的連接等工作。 5.系統(tǒng)的調(diào)試(測試)階段 通過整機的調(diào)試,發(fā)現(xiàn)問題,及時修改,例如檢查各個元部件安裝是否正確,并對其特性進行檢查或測試;檢驗系統(tǒng)的抗干擾能力等。調(diào)試成功后,還要進行考機運行,其目的是通過連續(xù)不停機的運行來暴露問題和解決問題。 6.系統(tǒng)運行階段 該階段占據(jù)了系統(tǒng)生命周期的大部分時間,系統(tǒng)的價值也是在這一階段中得到體現(xiàn)。在這一階段應(yīng)該有高素質(zhì)的使用人員,并且嚴格按照章程進行操作,盡可能地減少故障的發(fā)生。 計算機測控系統(tǒng)的總體方案設(shè)計 確定計算機測控系統(tǒng)總體方案是進行系統(tǒng)設(shè)計的關(guān)鍵而重要的一步??傮w方案的好壞,直接影響到整個測控系統(tǒng)的成本、性能、實施細則和開發(fā)周期等。總體方案的設(shè)計主要是根據(jù)被控對象的工藝要求確定。為了設(shè)計出一個切實可行的總體方案與實施方案,設(shè)計者必須深入了解生產(chǎn)過程,分析工藝流程及工作環(huán)境,熟悉工藝要求,確定系統(tǒng)的測控目標與任務(wù)。盡管被控對象多種多樣,工藝要求各不相同,在總體方案設(shè)計中還是有一定共性。 1.工藝調(diào)研 1)調(diào)研的任務(wù) 2)形成調(diào)研報告和初步方案 3)形成總體設(shè)計技術(shù)報告 2.硬件總體方案設(shè)計 1)確定系統(tǒng)的結(jié)構(gòu)和類型 2)確定系統(tǒng)的構(gòu)成方式 3)現(xiàn)場設(shè)備選擇 4)其他方面的考慮 3.軟件總體方案設(shè)計 軟件總體方案設(shè)計的內(nèi)容主要是確定軟件平臺、軟件結(jié)構(gòu),任務(wù)分解,建立系統(tǒng)的數(shù)學(xué)模型、控制策略和控制算法等。在軟件設(shè)計也應(yīng)采用結(jié)構(gòu)化、模塊化、通用化的設(shè)計方法,自上而下或自下而上地畫出軟件結(jié)構(gòu)方框圖,逐級細化,直到能清楚地表達出控制系統(tǒng)所要解決的問題為止。 在確定系統(tǒng)總體方案時,對系統(tǒng)的軟件、硬件功能的劃分要做統(tǒng)一的綜合考慮,因為一些控制功能既能由硬件實現(xiàn),也可用軟件實現(xiàn),如計數(shù)、邏輯控制等。 采用何種方式比較合適,應(yīng)根據(jù)實時性要求及整個系統(tǒng)的性能價格比綜合比較后確定。 5.系統(tǒng)總體方案 系統(tǒng)總體方案是硬件總體方案和軟件總體方案的組合體。 系統(tǒng)的總體方案反映了整個系統(tǒng)的綜合情況,要從正確性、可行性、先進性、可用性和經(jīng)濟性等角度來評價系統(tǒng)的總體方案。 作為總體方案的一部分,設(shè)計者還應(yīng)提供對各子系統(tǒng)功能檢測的一些測試依據(jù)或標準。對于較大的系統(tǒng),還要編制專門的測試規(guī)范。 東南大學(xué) 《數(shù)字系統(tǒng)課程設(shè)計》 設(shè)計報告 項目名稱: 交通燈控制器 姓 名: 學(xué) 號: 專 業(yè): 實 驗 室: 電工電子實驗中心 組 別: 無 同組人員: 無 設(shè)計時間: 2016 年月 26 日 —— 2016 年 9 月 20日 評定成績: 審閱教師: 目錄 一.設(shè)計方案及論證……………………………………………… 3 二.模塊設(shè)計……………………………………………………… 5 三.總體設(shè)計與仿真……………………………………………… 10 四.總結(jié)…………………………………………………………… 12 一.設(shè)計方案及論證 1.設(shè)計使用環(huán)境 本交通燈控制系統(tǒng)設(shè)計利用Verilog HDL語言進行設(shè)計編程,利用Cyclone EP1C6Q240C8芯片和一些外圍器件組成硬件電路,利用Quartus II軟件將編寫好的程序進行編譯和仿真,并將調(diào)試完成的程序下載到Cyclone EP1C6Q240C8芯片上,通過觀測電路板上的紅綠信號燈以及數(shù)碼管顯示來分析系統(tǒng)的性能。 2.設(shè)計任務(wù)分析 主干道與鄉(xiāng)村公路十字交叉路口在現(xiàn)代化的農(nóng)村星羅棋布,為確保車輛安全、迅速地通過,在交叉路口的每個入口處設(shè)置了紅、綠、黃三色信號燈。紅燈禁止通行;綠燈允許通行;黃燈亮則給行駛中的車輛有時間行駛到禁行線之外。主干道和鄉(xiāng)村公路都安裝了傳感器,檢測車輛通行情況,用于主干道的優(yōu)先權(quán)控制。 設(shè)計要求: 1)當鄉(xiāng)村公路無車時,始終保持鄉(xiāng)村公路紅燈亮,主干道綠燈亮。2)當鄉(xiāng)村公路有車時,而主干道通車時間已經(jīng)超過它的最短通車時間時,禁止主干道通行,讓鄉(xiāng)村公路通行。主干道最短通車時間為25s。 3)當鄉(xiāng)村公路和主干道都有車時,按主干道通車25s,鄉(xiāng)村公路通車16s交替進行。4)不論主干道情況如何,鄉(xiāng)村公路通車最長時間為16s。 5)在每次由綠燈亮變成紅燈亮的轉(zhuǎn)換過程中間,要亮5s時間的黃燈作為過渡。6)用開關(guān)代替?zhèn)鞲衅髯鳛闄z測車輛是否到來的信號。用紅、綠、黃三種顏色的發(fā)光二極管作交通燈。7)數(shù)碼管倒計時顯示 3.測量控制原理 1)通過乒乓開關(guān)來控制FPGA輸入信號的電平,從而控制交通燈工作。 2)利用FPGA輸出的電平信號去驅(qū)動靜態(tài)數(shù)碼管及三色小燈來模擬交通燈。 4.頂層設(shè)計方案框圖及說明 1)交通燈控制器框圖 C表示鄉(xiāng)村道路是否有車到來,1表示有,0表示無;SET用來控制系統(tǒng)的開始及停止;RST是復(fù)位信號,高電平有效,當RST為1時,恢復(fù)到初始設(shè)置;CLK是外加時鐘信號;MR、MY、MG分別表示主干道的紅燈、黃燈和綠燈;CR、CY、CG分別表示鄉(xiāng)村道路的紅燈、黃燈和綠燈,1表示亮,0表示滅。 2)流程圖 MGCR表示主干道綠燈,鄉(xiāng)村道路紅燈;MYCR表示主干道黃燈,鄉(xiāng)村道路紅燈;MRCG表示主干道紅燈,鄉(xiāng)村道路綠燈;MRCY表示主干道紅燈,鄉(xiāng)村道路黃燈;T0=1表示主干道最短通車時間到,T1=1表示5秒黃燈時間到,T2=1表示鄉(xiāng)村道路最長通車時間到。二.模塊設(shè)計 1.模塊功能及端口說明 1)分頻模塊 輸入端為clk_in,即實驗箱自帶脈沖輸入信號,輸出端為clk,即想得到的頻率。2)主控制模塊 輸入端為CLK、RST、C。其中c為鄉(xiāng)村道路開關(guān),為1時表示鄉(xiāng)村道路有車;rst為初始化開關(guān),為1時表示初始化為主干道綠燈,鄉(xiāng)村道路紅燈的狀態(tài)。 輸出端為MG、MY、MR、CG、CY、CR分別表示主干道和鄉(xiāng)村道路的紅黃綠燈,與LED燈相連;mh、ml、ch、cl分別表示主干道和鄉(xiāng)村道路倒計時顯示的高低位,與數(shù)碼管相連。 3)數(shù)碼管顯示模塊 輸入端為clk和count,輸出端為LED。 2.主要功能的設(shè)計方法 1)分頻模塊 試驗箱可選晶振有2M和50M,選擇使用2M后,設(shè)置分頻系數(shù)為2000000,每計數(shù)到1000000,則輸出取反,最終可得到1HZ的時鐘信號。 2)主控制模塊 設(shè)置兩個外部控制條件:初始化(RST);鄉(xiāng)村干道是否有車(C); 設(shè)置一個內(nèi)部計數(shù)變量:NUM,通過相關(guān)運算取余取整得到數(shù)碼管顯示高低位; 通過有限狀態(tài)機實現(xiàn)四個狀態(tài)的循環(huán)切換。 3.Verilog設(shè)計程序及說明 1)分頻模塊 module fre(clk_in,clk);input clk_in;output clk;reg clk;reg [31:0]k;always @(negedge clk_in)begin if(k>=1000000)//1000000分頻 begin clk<=~clk;//取反 k<=0;end else k<=k+1;//計數(shù) end endmodule 2)主控制模塊 module traffic(CLK,RST,C,MG,MY,MR,CG,CY,CR,mh,ml,ch,cl);input CLK,RST,C;output [3:0]mh,ml,ch,cl;output MG,MY,MR,CG,CY,CR;reg [3:0] mh,ml,ch,cl;reg MG,MY,MR,CG,CY,CR;reg [31:0] COUNT;reg [5:0]state;parameter s1=6'b100001,s2=6'b010001,s3=6'b001100,s4=6'b001010;always @(posedge CLK)if(RST)//初始化 begin state = s1;//最初狀態(tài),主通行,鄉(xiāng)村不通行 MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;COUNT = 0; mh=2;//主干道綠燈25s,鄉(xiāng)村道路紅燈5s ml=5; ch=3; cl=0; end else case(state)s1: begin COUNT = COUNT+1; if((COUNT>=25)&&(C==1))//25s已計完且鄉(xiāng)村道路來車,跳轉(zhuǎn)到s2狀態(tài) begin state = s2;//主干道黃燈,鄉(xiāng)村道路紅燈 MG=0;MY=1;MR=0;CG=0;CY=0;CR=1;COUNT = 0;mh=0;ml=5;ch=0;cl=5;end else if(COUNT<25)//25s沒有計完,保持s1狀態(tài) begin state = s1; MG=1;MY=0;MR=0;CG=0;CY=0;CR=1; mh=(25-COUNT)/10;//取整取余換算,倒計時顯示 ml=(25-COUNT)%10;ch=(30-COUNT)/10;cl=(30-COUNT)%10;end else if(COUNT >= 25 && C == 0)//25s計完,鄉(xiāng)村道路仍然沒有車 begin state = s1;//保持s1 MG=1;MY=0;MR=0;CG=0;CY=0;CR=1;mh=0;//數(shù)碼管顯示0 ml=0; ch=0; cl=0; end end s2: begin COUNT = COUNT+1; if(COUNT==5)//5s黃燈已計完 begin state = s3;//主干道紅燈,鄉(xiāng)村道路綠燈 MG=0;MY=0;MR=1;CG=1;CY=0;CR=0;COUNT = 0; mh=2;//主干道21s紅燈,鄉(xiāng)村道路16s綠燈 ml=1; ch=1; cl=6; end else begin state = s2;//5s黃燈未計完時,保持s2狀態(tài) MG=0;MY=1;MR=0;CG=0;CY=0;CR=1; mh=0; ml=5-COUNT; ch=0; cl=5-COUNT; end end s3: begin COUNT = COUNT+1; if(((COUNT>=16)&&(C==1))||(C==0))//鄉(xiāng)村道路16s通行時間已結(jié)束,不管有無來車,均跳轉(zhuǎn)s4狀態(tài) begin state = s4;//主干道紅燈,鄉(xiāng)村道路黃燈 MG=0;MY=0;MR=1;CG=0;CY=1;CR=0; COUNT = 0; mh=0; ml=5; ch=0; cl=5; end else begin state = s3;//16s未結(jié)束,仍保持s3狀態(tài) MG=0;MY=0;MR=1;CG=1;CY=0;CR=0; mh=(21-COUNT)/10; ml=(21-COUNT)%10; ch=(16-COUNT)/10; cl=(16-COUNT)%10; end end s4: begin COUNT = COUNT+1;if(COUNT==5)//5s黃燈時間結(jié)束 begin state = s1;//回到s1狀態(tài) MG=1;MY=0;MR=0;CG=0;CY=0;CR=1; COUNT = 0; mh=2; ml=5; ch=3; cl=0; end else begin state = s4;//否則保持s4狀態(tài) MG=0;MY=0;MR=1;CG=0;CY=1;CR=0; mh=0; ml=5-COUNT; ch=0; cl=5-COUNT; end end default: begin state = s1; MG=1;MY=0;MR=0;CG=0;CY=0;CR=1; COUNT = 0; mh=0; ml=5-COUNT; ch=0; cl=5-COUNT; end endcase endmodule 3)數(shù)碼管顯示模塊 module led(clk,count,LED);input clk;input [3:0]count;output [7:0]LED;reg [7:0]LED;always @(posedge clk)begin case(count) 4'b0000:LED=8'b00000011; 4'b0001:LED=8'b10011111; 4'b0010:LED=8'b00100101; 4'b0011:LED=8'b00001101; 4'b0100:LED=8'b10011001; 4'b0101:LED=8'b01001001; 4'b0110:LED=8'b01000001; 4'b0111:LED=8'b00011111; 4'b1000:LED=8'b00000001; 4'b1001:LED=8'b00001001; default:LED=8'b00000001;endcase end endmodule 4.仿真圖及說明 (1)分頻模塊 由于實際應(yīng)用中分頻較大,仿真時為方便觀察,將分頻頻數(shù)設(shè)置為20。輸入為clk_in,周期為10ns;輸出為clk,其周期為200ns,與理論值相符。(2)主控制模塊 與總體仿真相同,在此不再贅述。 三.總體設(shè)計與仿真 1.頂層設(shè)計圖及說明 fre為分頻模塊,traffic為主控制模塊,led為數(shù)碼管顯示模塊。輸入端有clk_in、c和rst,輸出端有MG、MY、MR、CG、CY、CR和mh、ml、ch、cl。 2.仿真圖及說明 輸入有:C、CLK和RST 輸出有:CG、CR、CY、MG、MR、MY、ch、cl、mh和ml C為鄉(xiāng)村道路是否來車,1表示來車,0表示無車;CLK為時鐘信號;RST為初始化功能,1有效;CG、CR、CY、MG、MR、MY分別表示鄉(xiāng)村道路綠燈、紅燈、黃燈,主干道綠燈、紅燈、黃燈;ch、cl、mh、ml分別表示鄉(xiāng)村道路和主干道紅綠燈倒數(shù)顯示高低位。 3.實驗結(jié)果 (1)鄉(xiāng)村道路無車時 鄉(xiāng)村道路無車時,主干道25s倒數(shù),鄉(xiāng)村道路30s倒數(shù)結(jié)束后,保持0,且主干道綠燈亮,鄉(xiāng)村道路紅燈亮。(2)鄉(xiāng)村道路有車時 若鄉(xiāng)村道路一直有車,主干道25s(即S1狀態(tài))倒計時結(jié)束后,主干道切換黃燈,鄉(xiāng)村道路保持紅燈(即S2狀態(tài));5s黃燈倒計時結(jié)束后,主干道切換紅燈,時間21s,鄉(xiāng)村道路切換綠燈,時間16s(即S3狀態(tài));鄉(xiāng)村道路16s綠燈結(jié)束后,切換黃燈,主干道保持紅燈(即S4狀態(tài)),5s黃燈結(jié)束后,回到S1狀態(tài),即主干道25s綠燈,鄉(xiāng)村道路30s紅燈,若一直有車,則循環(huán)進行。 四.總結(jié) 1.實驗結(jié)果分析 (1)輸入與輸出 兩個開關(guān):一個初始化控制開關(guān),一個鄉(xiāng)村道路開關(guān)。初始化開關(guān)打開后復(fù)位,交通燈開始工作,鄉(xiāng)村道路打開表示鄉(xiāng)村公路上有車。 輸出:四個數(shù)碼管,兩個顯示主干道交通燈時間,兩個顯示鄉(xiāng)村道路時間;六個led燈,兩紅兩黃兩綠分別表示主干道和鄉(xiāng)村公路的紅黃綠燈。(2)運行過程 1)初始狀態(tài)(S1) 左側(cè)為主干道倒計時,右側(cè)為鄉(xiāng)村道路倒計時;主干道綠燈亮,鄉(xiāng)村道路紅燈亮。K1為初始化按鍵,K2為鄉(xiāng)村道路有無來車。 2)主干道25s綠燈結(jié)束后切換黃燈,鄉(xiāng)村道路紅燈(S2) 3)主干道5s黃燈結(jié)束,切換紅燈21s,鄉(xiāng)村道路切換綠燈16s(S3) 4)鄉(xiāng)村道路16s綠燈結(jié)束,切換黃燈,主干道紅燈(S4) 5s黃燈倒計時結(jié)束,回到S1狀態(tài),若一直有車,則循環(huán)S1-S2-S3-S4-S1。 2.問題解決方法 問題1:數(shù)碼管顯示與紅綠燈切換不同時。 解決方法:紅綠燈輸出后面增加一延時模塊,延時一個CLK,使其與數(shù)碼管顯示同步。問題2:理解錯題意,在S3狀態(tài)(即主干道紅燈,鄉(xiāng)村道路綠燈)時,此時若鄉(xiāng)村道 路無車通過,應(yīng)立即切換為S4狀態(tài)(即主干道紅燈,鄉(xiāng)村道路黃燈),而不是等當前計數(shù)結(jié)束再切換。 解決方法:將代碼修改為if(((COUNT>=16)&&(C==1))||(C==0)),修改后符合要求,解決了問題。 3.心得體會 通過此次系統(tǒng)設(shè)計,我對verilog HDL語言有了初步了解,并對利用quartus來進行系統(tǒng)設(shè)計有了更加深入的理解,操作也更加熟練。在設(shè)計過程中應(yīng)該先設(shè)計好總體架構(gòu),再進行模塊的具體設(shè)計,通過分析每個模塊要實現(xiàn)的功能來寫代碼,并注意編寫注釋,便于以后的理解修改。編譯時要注意設(shè)置頂層文件,先進行仿真觀察結(jié)果是否正確,對代碼進行修改,仿真結(jié)果正確后再下載到硬件,測試系統(tǒng)功能。 參考書目: [1] 夏宇聞,《Verilog數(shù)字系統(tǒng)設(shè)計教程》,北京,北京航空航天大學(xué)出版社,2013年 [2] 王金明,《數(shù)字系統(tǒng)設(shè)計與Verilog HDL》,北京,電子工業(yè)出版社,2011年第四篇:數(shù)字控制器工程實現(xiàn)
第五篇:數(shù)字系統(tǒng)課程設(shè)計交通燈控制器