控制系統仿真范文
時間:2023-04-12 01:27:31
導語:如何才能寫好一篇控制系統仿真,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
1火控雷達網工作原理
火控雷達組網系統由M部火控雷達和一個融合控制中心組成,每部雷達的工作狀態和工作參數都由融合控制中心進行統一控制和協調,各部火控雷達通過通信鏈路實現與融合控制中心之間的信息傳遞,以此保證多雷達間的數據共享。任一時刻只有一部雷達處于輻射工作狀態,其余雷達進行靜默跟蹤。當此雷達停止工作后,由融合控制中心選擇另一部雷達繼續工作[6]。如圖1所示,假設在k時刻火控雷達(jj=1,2,…,M)處于間歇輻射工作狀態,其余雷達處于靜默跟蹤狀態。雷達j將其對目標的實時跟蹤測量數據送到數據融合控制,融合控制中心根據雷達的測量數據對目標的運動軌跡進行濾波和預測。處理后的數據一方面送到相關武器系統,供火力打擊使用;另一方面送到其余處于間歇狀態的雷達,供其天線調整以完成對目標的靜默跟蹤。跟蹤精度評估環節和低截獲性能評估環節則分別對當前的跟蹤精度和當前的低截獲性能進行計算和評估。通過對當前跟蹤精度的計算,采用自適應脈沖間隔策略選擇下一時刻的最優脈沖間隔,間歇輻射控制環節根據該參數控制雷達j的脈沖發射間隔。同時,通過對雷達低截獲性能的評估控制交替選通信號,以選擇下一時刻工作的雷達。當雷達j停止工作后,通過交替選通信號的控制選擇雷達j+1間歇工作以繼續跟蹤目標。以此循環,各雷達在融合控制的協同控制下,共同完成對目標的交替間歇式跟蹤。
2作戰場景想定
以3部火控雷達網為例構建仿真系統,想定場景如圖2所示。防御方的防空系統由警戒雷達、火控雷達和防空武器等組成,進攻方的戰斗機對防御方的雷達進行探測定位。當戰斗機處于防空系統中警戒雷達的探測范圍內,而處于火控雷達探測范圍之外時,火控雷達不工作,由警戒雷達對戰斗機進行前期的警戒跟蹤,并為火控雷達提供偵察機的粗略位置信息。當戰斗機進入防空系統中火控雷達的探測范圍時,火控雷達突然開機工作,依據警戒雷達提供的偵察機位置信息,在較短時間內完成對戰斗機的穩定跟蹤,同時為防空武器提供精確的戰斗機位置信息,供其火力攔截?;鹂乩走_開機工作之后,戰斗機的偵察系統在告警系統的觸發下迅速對火控雷達信號進行搜索、識別、截獲和分析,以獲得火控雷達各項工作參數,對雷達進行定位,進而發射反輻射導彈對雷達進行火力摧毀。為了避免防空火控雷達信號在短時間內被戰斗機截獲,融合控制中心控制火控雷達網,采用交替間歇輻射的工作方式完成對目標的連續跟蹤。在保證火控雷達對偵察機精確跟蹤的同時,盡量延長偵察機對雷達定位所需的時間,從而完成防空武器系統對偵察機的有效打擊。
3仿真系統設計
火控雷達網間歇式目標跟蹤原理如圖3所示。具體工作過程為:由目標模塊產生目標模擬運動航跡,融合控制中心模塊通過雷達工作參數的設定來選擇處于工作狀態的雷達,并通過對脈沖重復周期的選擇來控制雷達的輻射狀態。雷達進行間歇工作獲得目標測量數據,將測量數據傳送到融合控制中心模塊進行數據融合、跟蹤濾波等處理,并根據處理結果選擇下一時刻雷達的工作參數,以控制雷達工作,如此循環進行,交替選擇組網系統內的火控雷達進行間歇工作,以實現對目標的連續跟蹤。同時,將處理結果傳送到效能評估模塊,效能評估模塊將這些數據和來自目標模塊的雷達信號截獲判定、目標真實航跡等數據進行一系列處理,對系統的整體性能進行評估。融合控制成員對組網雷達融合控制中心的功能進行仿真。訂購雷達成員生成的量測數據信息,通過融合處理,生成目標的位置信息和雷達網跟蹤精度,并對雷達下一個周期的工作參數進行調整,向雷達成員公布目標位置、脈沖寬度、工作頻率、開關機信號、雷達信號形式等。對融合控制成員進行類劃分,將具有相同屬性的方法提取出來,并對類與類之間的關系進行分析,可分為以下8類。RTI基類:此類主要提供運行支撐環境(run-timeinfrastructure,RTI)的基本服務,包括聯邦管理、聲明管理、對象管理、時間管理、所有權管理和數據分發管理等功能。聯邦管理是指對一個聯邦執行的創建、動態控制、修改和刪除的過程。聲明管理是為聯邦成員提供類層次上的表達(公布或訂購)機制,在HLA中,聯邦成員通過聲明管理服務向聯邦表明自己可以公布或需要訂購的對象類和交互類[7]。對象管理是在聲明管理的基礎上,實現對象實例的注冊/發現、屬性值的更新/反射、交互實例的發送/接收以及對象實例的刪除/移走等功能。時間管理的主要任務是使仿真世界中事件發生的順序與真實世界中事件發生的順序一致。仿真運行過程中,聯邦成員和RTI將利用所有權管理服務來轉移實例屬性的所有權,在聯邦執行生命周期的任一時刻,一個實例屬性最多只能被一個聯邦成員擁有,只有唯一擁有實例屬性所有權的聯邦成員才有權更新該實例屬性的值[8-10]。數據分發管理是在實例屬性層次上增強聯邦成員精簡數據需求的能力,減少仿真運行過程中無用數據的傳輸和接收,提高仿真運行的效率。RTI接口類:此類是RTI基類的派生類,負責實現聯邦的具體創建工作,成員通過回調接口函數,使用RTI提供的服務。RTI接口的工作主要在仿真線程中進行,其中主要包括創建并加邦、聲明公布/訂購關系、注冊對象實例、請求時間推進、更新和反射對象屬性值、發送和接收交互、退出聯邦等。融合控制類:實現了數據的融合處理和雷達工作參數的控制。如對3部雷達的測量數據進行融合,估計偵察機對雷達信號的截獲概率和當前的目標跟蹤精度,計算出下一時刻的雷達最優脈沖間隔,控制雷達的工作時間。數據公布類:實現了對數據的公布,即表明要公布的數據類型、數據長度等,并對數據進行更新等。數據訂購類:實現了對數據的訂購,即表明要訂購的對象、數據類型、數據長度等,并對數據進行更新等。文件管理類:實現了對數據的記錄,負責創建文件,將數據寫入文件,完成讀取文件、修改文件、格式轉換和刪除文件等功能。顯示類:實現了對數據的實時顯示,如目標三坐標位置、斜距、俯仰角、方位角、雷達脈沖間隔和系統工作時間等。定時器類:實現了數據處理和更新過程中的定時功能,如啟動時鐘、停止時鐘等,負責仿真進程的開始和停止。順序圖主要描述系統各組成部分之間交互的次序,展示了對象之間的動態協作關系[11]。使用順序圖,可以描述執行特定用例,會觸發哪些交互,以及這些交互以何種次序發生。融合控制成員從整個仿真系統的啟動開始,工作流程如下:(1)運行融合控制程序,點擊“加邦”,通過調用RTI接口函數使用RTI的聲明管理、對象管理函數,將該成員加入到仿真系統中,等待開始仿真的指令。(2)開始仿真,進入主線程,通過調用RTI接口函數使用RTI的數據分發管理服務,訂購其他聯邦成員的數據。(3)對訂購的數據進行融合處理,通過調用RTI接口函數使用RTI的數據分發管理服務,把數據公布給其他聯邦成員。(4)實時顯示數據,并將相關數據進行記錄,寫入文本文檔。(5)收到停止仿真命令后停止仿真進程,融合控制成員退出聯邦。根據以上的操作流程創建順序圖如圖4所示,該圖顯示了仿真流程融合控制成員運行的動態過程。
4仿真分析
通常火控雷達對目標的跟蹤距離相對較近,對于高速運動的反輻射導彈載機來說,在有限的跟蹤距離內,持續跟蹤時間不會太長。因此,在仿真過程中設定目標跟蹤時間為t=100s。將開發的軟件加入到火控雷達網仿真聯邦中,在仿真過程中存儲對目標的測量值和濾波值進行存儲,并實時計算出3部雷達的截獲概率,都保存到文本文檔中。仿真結束后,調用Matlab讀取存儲的文本,畫出目標的測量軌跡和濾波軌跡,如圖5所示??梢钥闯觯M網系統能夠準確地對目標進行跟蹤。3部雷達的截獲概率如圖6所示。由圖可知,組網系統在有效的跟蹤目標時,能夠延長雷達被敵方偵察系統截獲的時間,提高了先敵發現目標的概率,給指揮高炮對敵方目標進行打擊提供了充足的時間。
5結束語
篇2
Abstract: The control system of constant pressure water supply system is complex and changeful, and the control parameters measurement is not accurate. The paper puts forward a PID control and adaptive fuzzy control with an adaptive fuzzy PID controller application for constant pressure water supply system, with the help of PID parameters on-line self-tuning fuzzy PID parameters, real-time modification, through Matlab simulation experiment system in in the running process is always in optimal condition. Adaptive fuzzy PID controller used in constant-pressure water supply system can not only improve the performance of the control system, and the maximum energy saving water supply system.
關鍵詞: 自適應模糊控制;PID控制;恒壓供水;系統仿真
Key words: adaptive fuzzy control;PID control;constant pressure water supply;system simulation
中圖分類號:TP273 文獻標識碼:A 文章編號:1006-4311(2014)09-0021-03
0 引言
隨著生活品質的提高,人們對生活飲用水的要求也在不斷地提高,恒壓供水系統在多層及高層住宅用水和消防供水中得到了越來越廣泛地應用?,F代的恒壓供水系統主要由水泵、變頻器及調節環節構成,整個控制系統控制復雜多變,控制參數一般不能精確測定。水泵作為一種典型的非線性負載,在運行的過程中其旋轉的速度與給定的信號之間具有滯后、慣性較大的特點。
如果采用常規的PID控制,在系統運行過程中因為不能可靠地調整PID參數而無法實現管道壓力精確恒定控制,而且響應速度比較慢。由于模糊控制不會過分依賴數學模型,因此,不需建立精確的過程模型。由于其不僅可以將人們的經驗轉化為控制措施,還會根據那些時變的、非線性的和滯后的大慣性對象而保持良好的動態特性。
本文針對上述原因提出了模糊控制系統與傳統PID控制相結合而設計了一種自適應模糊PID控制器。通過PID參數的在線模糊自整定能夠對PID參數進行實時修改,從而確保了運行過程中的系統始終處于優化狀態,不僅提高了系統的控制性能,還能夠最大限度的節約供水系統能源。
1 自適應模糊PID的概念
根據PID控制器的Kp、Ki、Kd的三個參數與偏差e、偏差的變化率ec之間的模糊關系,在運行時不斷檢測e及ec,通過事先確定的關系,利用模糊推理的方法,在線自動修改控制器PID參數。因為參數可自動調整,所以自適應模糊PID控制能解決系統的非線性問題。由于常規PID只能夠利用一組固定的參數進行控制,因此,將模糊推理引入控制系統并在PID初值的基礎上通過增加修正參數進行整定,從而對系統的動態性能進行改善。
2 自適應模糊PID控制器設計
2.1 恒壓供水系統數學模型的建立
在供水系統的二級泵房中,可以將水泵從初始狀態開始向管網供水的變頻調速恒壓控制系統分為零壓過程和壓力上升兩個過程。在零壓過程中,由于經處理的水由水泵從清水池送到管網中,因此可認為壓力基本保持零,屬于純滯后過程;由于在壓力上升過程中,水泵逐漸用水充滿整個管理,從而壓力不斷增加并達到穩定,因此是一個具有慣性的一階環節。因此,可將水泵管道系統的數學模型等效為帶有純滯后環節的一階慣性環節,而系統中繼電器控制轉換、壓力檢測等其他控制和檢測環節的時間常數和滯后時間與供水系統中水壓上升或下降的時間常數和滯后時間相比可以忽略不計,由此得到供水系統的近似
模型:
G(s)=■e■
式中:K——系統的總增益
T——系統的慣性時間常數
τ——系統的滯后時間
需要采用離線開環階躍響應的方法確定參數K、T、τ,其具體方法為:在開環控制系統中由控制器輸出一個合適幅值的階躍響應信號,從而促使水泵轉速提到一定幅值,記錄水壓的整個變化過程,然后根據記錄的輸入輸出數據進行辨認識別。
本系統的辨識結果為K=0.95,T=9.8,τ=2.55s,由此可得到供水控制系統的近似模型:
G(s)=■e■
2.2 系統總體結構設計
圖1為包含自學環節功能的參數自整定模糊PID控制系統結構框圖。PID控制器通過自學功能的模糊控制器能夠進行在線參數的自整定。
2.3 參數自整定原則
PID參數模糊自整定就是找出PID控制的三個參數與偏差e及偏差的變化ec間的模糊關系,通過不斷檢測系統運行中的e及ec,再根據模糊控制的原則來對三個參數進行在線的修改,從而滿足不同e及ec時對控制參數的不同要求,最終使被控制的對象具有良好的動態和靜態性能,模糊PID控制系統原理如圖2所示。
模糊控制器以偏差和偏差變化率作為輸入,修正參數ΔKp,ΔKi,ΔKd為輸出,則PID控制器輸出的參數Kp,Ki,Kd可按公式1-3計算,式中K'p,K'i,K'd為預整定值。
Kp=K'p+ΔKp(1)
Ki=K'i+ΔKi(2)
Kd=K'd+ΔKd(3)
參數模糊自整定機構可以視為三個雙輸入單輸出的模糊控制器(如圖2所示),其輸入量采用壓力偏差e和偏差變化率ec,參數自整定機構采用增量型調整原理,輸出變量為Kp、Ki和Kd。參數模糊自整定機構調整過程如圖3所示。
2.4 模糊控制規則表
模糊控制器輸入輸出變量的模糊子集分別為E,Ec,ΔKp,ΔKi,ΔKd,各變量語言值為:{負大,負中,負小,零,正小,正中,正大},記為{NB,NM,NS,ZO,PS,PM,PB},隸屬函數均采用靈敏度強的三角函數,模糊蘊涵關系運算采用最小運算法(Mamdan),去模糊化采用重心法。
根據專家經驗,e和ec的變化范圍為(-0.5,+0.5),模糊論域為{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。ΔKp,ΔKi和ΔKd的基本域為(-0.3,0.3),模糊論域為{-0.3,-0.25,-0.2,-0.15,-0.1,-0.05,0,0.05,0.2,0.25,0.3},比例因子Ke為12,量化因子Kec為1,通過模糊推理及試驗修正,得出ΔKp,ΔKi,ΔKd的模糊規則如表1-表3所示。
對于控制規則 IF EiAND ECi THEN Kp is Ui(i=1,2,…49)其模糊蘊含采用最小值法uU'(KP)=uE■(e)∧u■(ec)∧u■(KP);
模糊合成采用最大法,即最終結論U′是由綜合■,
■,…■得到的,推理法則為uU′(KP)=u■(KP)∨u■(KP)∨…∨u■(KP);在一次采樣時刻,KP的值可由模糊輸出U′的重心確定。
{Ei,ECi}P=■
式中u■(K■)(j=1,2,…49)是KP的隸屬度。同理可以得到輸出量KI,KD。
KP=KP0+{Ei,ECi}P
KI=KI0+{Ei,ECi}I
KD=KD0+{Ei,ECi}D
其中{Ei,ECi}P、{Ei,ECi}I、{Ei,ECi}D是模糊推理的結果,即參數的校正量。而KP0,KI0,KD0為參數設置初值。
3 實驗仿真
本文在采用對三臺供水泵、兩臺抽真空泵及兩臺反沖泵進行仿真,仿真結果如下:圖4為采用常規PID同步控制算法下系統響應曲線,圖5為采用模糊PID同步控制算法下系統響應曲線。通過對兩種仿真結果進行比較后發現,與常規PID性能相比,系統采用模糊PID方法具有更好的同步性能和抗干擾能力。
4 結論
本文結合恒壓供水系統中水泵控制的特點,設計了一種自適應模糊PID控制器,在管道壓力較大偏差范圍內采用模糊推理控制,根據e、ec對PID參數進行適時調整,并在壓力偏差范圍內采用PID精確控制輸出,從而綜合了模糊控制和PID控制的優點。仿真結果表明,這種自適應模糊PID控制器具有動態性能好、穩態精度高以及適應參數變化能力強等特點,該控制器模型規則明確,實時計算工作量小,如果采用本系統進行高樓恒壓供水完全可以替代現有的恒壓供水裝置,大大提高了恒壓供水系統中管道壓力的恒定性,節能非常明顯,極具推廣和應用價值。
參考文獻:
[1]楊凌云.PID調節器在恒壓供水系統中的應用[J].微計算機信息,1996(5).
[2]劉金錕.先進PID控制及Matlab仿真[M].北京:機械工業出版社,2005.
篇3
【關鍵詞】缸內直噴;電控系統;硬件模塊
一、引言
建立汽車懸架的動力學模型是進行整車性能分析和系統設計的基礎。建立模型基礎就是利用外界物理參數描述輸入,系統本身和系統輸出之間的關系。懸架系統是一個復雜的多自由度“質量—剛度—阻尼”振動系統,理論上講建立的模型自由度越多越接近汽車的時間情況,但對其動力學特性進行精準的描述和分析是非常困難的。
目前比較成熟的整車模型主要有三種:
(1)兩自由度1/4車輛模型;
(2)四自由度1/2車輛模型;
(3)七(八、九)自由度正常模型。1/4車輛模型雖然沒有包括汽車的整體幾何信息,也無法用它來研究汽車俯仰角振動及側傾角振動,但它包含了實際問題中的絕大部分基本特征,如負載變化和懸架系統受力的信息等,所以可以用來研究不平路面激勵引起車體的垂直振動。
二、1/4車輛懸架模型的建立
由于1/4車輛模型結構簡單,又包含了汽車平順性分析的主要特征,因此在研究電控空氣懸架控制策略中被廣泛應用。在本文中決定采用兩自由度1/4車輛模型,如圖1所示。
圖1 兩自由度1/4車輛懸架模型
根據牛頓第二定律,可以列出該模型動力學微分方程:
式中M為簧載質量,m為非簧載質量;Kt為輪胎徑向剛度系數;Ks為懸架剛度系數;Cs為減振器阻尼系數;xs、xt、xr分別代表簧載質量、非簧載質量及路面激勵的位移量。
圖2 兩自由度車輛動力學模型
根據二自由度的車輛的動力學微分方程,可以利用MATLAB/SIMULINK仿真軟件建立系統動力學模型,系統動力學模型如圖2所示。在模型中,接口in1和in2分別代表懸架剛度的實時變化和路面對系統的隨機干擾,out1則代表簧載質量垂直方向加速度響應。
三、1/4車輛模型仿真及結果分析
本文采用亞星牌YBL6891H大型客車滿載時的基本數據,所設定的約束條件是懸架的動行程,懸架的最大允許動行程為±10mm,由此可以得到對簧載質量加速度及動載荷的分析對比。在B級隨機路面上對車速50Km/h以及C級隨機路面時速80Km/h兩種工況下對比分析,然后計算出簧載質量加速度以及動載荷的均方根值和峰值,通過對比得出模糊控制算法在提高平順性方面的效果。
仿真圖形如圖3和圖4所示,加入模糊控制算法后對空氣懸架的簧載質量加速度衰減起了一定作用,對簧載加速度的分析可以通過表1來做進一步說明。
表1給出了兩種懸架系統簧載質量加速度均方根值和峰值??梢钥闯?,在行駛工況變化的情況下仍然有較好的控制效果,對于外界干擾的變化具有良好的適應能力。
根據動載荷仿真圖形5和6可知,添加模糊控制算法后對空氣懸架的動載荷衰減也起了一定作用,對動載荷的分析可以通過表2來做進一步分析說明。
表2給出了兩種懸架系統懸架動載荷的均方根值和峰值。可以看出,在引入模糊控制算法后,輪胎對地面的破壞有所降低,在行駛工況變化的情況下仍然有較好的控制效果。
在懸架的的仿真分析過程中,由于對懸架的動行程進行了約束,因此被動空氣懸架和模糊控制空氣懸架的動行程沒有太大的差別。但是通過對簧載質量加速度和動載荷的分析可知,加入模糊控制算法對簧載質量加速度和動載荷都起到了衰減作用。
四、結論
本文根據模糊控制原理對控制器進行了設計,并利用Matlab/Simulink建立了1/4半主動空氣懸架車輛模型及隨機路面模型。根據仿真結果分析可知,在以動行程為約束的條件下,空氣懸架采用了模糊控制算法后簧載質量垂直加速度和懸架動載荷均有下降,減少了對路面的損壞,同時提高了車輛行駛平順性,表明模糊控制具有良好的效果。
參考文獻
[1]張德豐著.MATLAB/Simulink建模與仿真[M].北京:電子工業出版社,2009.
[2]周品,趙新芬著.MATLAB數學建模與仿真[M].北京:國防工業出版社,2009.
[3]袁士杰著.多剛體系統動力學[M].北京:北京理工大學出版社,1992.
[4]Dave Crolla,喻凡著.車輛動力學及其控制[M].北京:人民交通出版社,2004.
篇4
【關鍵詞】MATLAB MCGS 仿真 動態數據交換
本篇文章使用MCGS組態監控軟件系統來操控薄膜厚度,實時收集數據信息,設置硬件的接入點,使人們和機器能直接對話,并且用可動畫面的形式來表現操控系統的實時情況。這個時候,把MATLAB作為在后臺運轉的平臺,達到以Back Propagation多層前饋網絡為基礎整定比例-積分-微分控制器(PID)以及進行彎曲線路創作的功效。使用者使用DDE軟件進行雙方的信息交換,感受不同角度、不同層次、不同范圍觀看仿真流程的可觀看的人員和機器的交流過程。
1 薄膜厚度操作體系的組成部分
1.1 MATLAB中的PID控制器設計
薄膜厚度控制系統是由現場設備和上位機這兩個設備組成的:現場設備中的可編程邏輯控制器對薄膜厚度施行收集,并且對控制數量進行輸出,同時對加熱控紐的功率進行改變來實現對薄膜厚度的掌控,再將厚度檢測儀器檢測到的薄膜厚度反饋到上位機器操控體系;上位機器的操控體系是以MCGS為基礎進行設計的,有著強大的功能,例如對硬件接入點進行設計,對信息進行動態搜集,實機人員和機器的交流,對信息數據進行登記等,能夠模仿操控體系實時的運行狀態,把所有變化數據的信息實時地展現出來。為了達到以Back Propagation多層前饋網絡為基礎整定比例-積分-微分控制器(PID)以及曲線制作的功效,在后臺運轉的信息操作模塊以MATLAB為開發平臺。使用Dynamic data exchange通信協議,把MCGS里需要進行測算的信息轉送至MATLAB中,由MATLAB對這些數據進行處置,然后將最后的處置結果發送回MCGS,這樣,可以提升MCGS操控PLC的本領。
1.2 MCGS組態軟件的設計
MCGS軟件研究出搜集相關數據信息,對這些數據信息進行處置并且對這個過程進行操控的相關計劃和工具,通過這些工具,能夠為使用者提供相關動畫展示和報表等內容,使用者通過使用這些工具可以完成相關的工程操作。
在MCGS組態軟件操控的窗口中,依據使用需要對“系統管理”、主要用戶界面、“系統設置”等功能進行了處理,點擊不同的菜單就能夠進入到對應的操控頁面。MCGS系統窗口能夠維系及驅動外部裝置,同時,可以在這里面加入外部硬件工具和模擬工具如PLC。在對通道進行策劃時,可以把A /D、D /A通道和動態信息庫中的信息對象對應結合起來。在使用者窗口模式中,設置了主要頁面、厚度自行調整頁面、體系配置頁面等操控頁面。
以上的頁面,都是在MCGS的使用者小窗中使用相關的測繪模具對監控平臺體系進行設計。MCGS可觀看圖像的功能能夠便捷地構造要策劃的所有頁面,再將動畫相關聯,就是構造頁面畫面對象和動態信息庫的信息變量之間的聯系。在這個窗口中需要設置一些數值可變的量,主要用于信息搜集、操作、輸出操控、動畫連合和裝備驅動,這些可變的信息量是組成動態信息庫的主要組成部分。
1.3 MATLAB和MCGS的DDE連接
MCGS提供了一個和另外一個應用程序實施信息互換的方式,這就是動態數據交換(Dynamic data exchange),所以,MATLAB也接受動態數據交換(Dynamic data exchange)通信協議。薄膜厚度仿真操控體系當中,把MCGS當作SERVER程序,把MATLAB當作CLIENT程序,經由動態數據交換協議把MCGS里設置的薄
膜厚度設計數值輸送到MATLAB,由以Back Propagation多層前饋網絡為基礎的比例-積分-微分控制器運算得出最佳比例-積分-微分控制器參數,然后把參數發送給MCGS,從而實現比例-積分-微分控制器參數能夠自行整定。
1.4 如何在MCGS中設置DDE
在MCGS和MATLAB中構造一個動態數據交換(Dynamic data exchange),必須在MCGS的“動態信息庫”的小窗里構造可改變的量,然后點組態平臺里的“工具”按紐,再選擇動態數據交換(Dynamic data exchange)連接管理,打開后,將里面的通信的厚度設置數據改成動態數據交換(Dynamic data exchange)輸出就可以了。
2 仿真控制效果
為了將以Back Propagation多層前饋網絡為基礎的比例-積分-微分控制器和原來的比例-積分-微分控制器的功能進行比較,使用這兩個系統來實行仿真操控,并且在第三百個采集樣本時間加入外加干擾d(k)=2,用來計算抵抗干擾的水平。PID相關參數的數值設定為不變的:kp=0.4,ki=0.03,kd=0.2。以Back Propagation多層前饋網絡為基礎的PID操控器選擇Back Propagation多層前饋網絡構造是4-5-3,學習效率以及慣性數值設置為:Z=0.002,T=0.0008。在MCGS的薄膜厚度自行設置頁面里把薄膜厚度設置為二十二μm,按下“測算PID參數”這一項,MATLAB經由動態數據交換(Dynamic data exchange)系統在MCGS里選中薄膜厚度信息,在運行系統中用以上兩個控制系統實行仿真操控,原來的比例-積分-微分控制器數據量為百分之四十,回應時間是一百五十秒,并且受到的干擾比較大。使用以Back Propagation多層前饋網絡為基礎整定比例-積分-微分控制器(PID)基本沒有超調,采用基于BP神經網絡的PID控制器幾乎沒有超調,回應時間是一百秒,受到的干擾比較小。運算結束后,MATLAB將以Back Propagation多層前饋網絡為基礎整定比例-積分-微分控制器(PID)整定得到的PID參數發送給MCGS。通過這樣的仿真實驗顯示,以Back Propagation多層前饋網絡為基礎的比例-積分-微分控制器的優點為超調數量比較小、回應時間短、適應性比較強等等,把其使用在MCGS組態系統中能夠增強雙向拉縮薄膜厚度操控系統的性能。
3 結語
筆者引入MATLAB設計智能操作算法,利用MCGS監控算法及控制過程,系統無需增加硬件,算法實現簡單,是智能控制算法工程實現的有益嘗試,具有較大的應用價值。
參考文獻
[1]譚元飛,王再英.基于OPC的以MATLAB為計算平臺的工業監控系統設計[J].自動化與儀器儀表,2011,(4):54-59.
篇5
關鍵詞:模糊控制;PID;MATLAB;SIMULINK
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2014)28-6719-04
底盤測功機是檢測汽車發動機功率、加速性能、滑行性能、燃油經濟性等性能的的重要設備。它是一種室內滾筒式檢測設備,主要由臺架部分和控制部分組成,通過飛輪模擬汽車慣性阻力、測功器模擬汽車道路行駛阻力來模擬真實的行駛工況以實現對汽車各種性能的檢測,目前應用最廣的測功器是電渦流機。
對底盤測功機進行控制主要有恒速控制和恒轉矩控制兩種方式,兩種控制方式的基本過程是相同的,首先將所選定的轉速或轉矩信號與單片機輸出的設定信號同時輸入給PID控制系統,由PID控制系統輸出加載控制信號(加載或減載電壓)以觸發可控硅,將可控硅的輸出加在電渦流加載裝置的兩端,使電渦流測功機的電流增大或減?。ê闼倏刂疲┗虮3植蛔儯ê戕D矩控制),對反饋回來的速度值或力值進行判斷,從而實現了對電渦流加載裝置的閉環控制,在電渦流加載的過程中,PID控制器的良好運行程度決定子恒速、恒轉矩工況的實現結果。底盤測功機控制系統組成如圖1所示。
1 模糊PID控制系統設計
由于傳統的PID控制對于非線性、時變性的系統難以達到控制精度的要求,而模糊PID控制具有自動調整的功能,所以本文采用模糊PID作為參數推理機制和調整策略。PID控制系統的標準方程為:
[u(t)=KP[e(t)+1TI0te(t)dt+TDde(t)dt]]
式中,u(t)為PID控制器的輸出,t為采樣時間,KP為控制器的比例增益;e(t)為PID控制器的偏差輸入,即給定值與測量值之差;TI 為控制器的積分時間常數;TD 為控制器的微分時間常數。模糊PID控制是以偏差e和偏差的變化率ec作為輸入,然后通過模糊控制決策求出PID控制的三個重要參數,分別是[KP、KI、KD],經過模糊PID的調整后,控制電渦流測功器的勵磁電流,從而實現對底盤測功機的閉環控制。模糊PID控制原理如圖2所示。
1.1 模糊控制器的結構
模糊控制系統的關鍵部分就是模糊控制器的設計,它的好壞直接關系到模糊控制系統的控制性能,可以說整個模糊控制系統是否能實現控制效果,完全取決于模糊控制器的設計。模糊控制器被設計為五部分組成,分別為輸入模糊化接口、數據庫、規則庫、模糊推理機和輸出量解模糊接口,其結構框圖3所示。
其中,模糊化接口作為模糊控制器的輸入,它是將輸入的確定量轉換為模糊控制器可以識別的模糊量,只有通過模糊化接口轉換的模糊量才能作為模糊控制器的輸入;數據庫是用來存放模糊控制系統器中全部模糊變量的隸屬度值或隸屬度函數的;規則庫用以存放模糊控制器中的所有模糊規則,在模糊推理過程中,為推理機提供控制規則;推理機可以說是模糊控制器最重要的部分,是進行模糊推理的機構,即根據輸入量和模糊規則得出需求輸出的模糊量。推理過程分為正向推理和逆向推理兩種,其中最基本的就是Zadeh近似推理;通過推理機推理得出的值都是模糊量,要想得到確定量就要經過解模糊接口,對模糊量進行解模糊操作,顧名思義,解模糊接口就是通過特定的方法將模糊量轉換成確定量,它與模糊化接口是互逆的關系。
1.2 比例因子和量化因子
比例因子和量化因子的作用除了能夠進行論域變換,使前后模塊相匹配,還可以在整個系統中起到一定的調節作用。因為它們的變化就相當于對實際測量信號的縮小或放大,這將會影響到采樣信號對系統的控制與調節作用。該文為了便于比較常規PID與模糊PID的控制效果,將[KP、KI、KD]這 3個因子固定,通過改變量化因子、比例因子以及模糊論域的方法去改變輸出結果。
1.3 模糊范圍及隸屬度函數的確定
E為輸入偏差e的語言變量,EC為偏差變化率ec的語言變量。{-3,-2,-1,0,1,2,3}為E和EC的取值范圍,{NB,NM,ZO,PS,PM,PB}為它們的模糊子集。[KP、KI、KD]的量化范圍為(一0.3,0.3),(-0.06,0.06),(-3,3)。各變量的隸屬度函數均采用三角形函數,其中偏差e、ec的隸屬度曲線如圖4、圖5所示,[KP、KI、KD] 的隸屬度曲線和圖3、圖4相似。只是論域范圍不同。
1.4 模糊控制規則設計
比例因子[KP]的作用是使輸入量向誤差減小的方向變化,加大[KP]可以減小靜差,但如果[KP]過大,則會導致系統超調過大;微分因子[KD]的作用是對誤差進行微分,加大[KD]可以使系統的響應加快,如果[KD]過大,會使系統抗干擾能力下降;積分因子[KI] 的作用是對誤差進行記憶并積分,有利于消除系統的靜差,由于積分運算具有滯后性,所以過大的[KI] 會影響被控制對象的動態品質。 在模糊控制規則表建立好以后,[KP、KI、KD]可查表代入下式計算:
[kp=k/p+{ei,eci}p]
[ki=k/i+{ei,eci}i]
[kd=k/d+{ei,eci}d]
其中,[k/p]、[k/i],[k/d]為設置的初始值,[{ei,eci}p]、[{ei,eci}i]、[{ei,eci}d]為通過模糊調整后的調整值。該文所采用的PID控制C程序流程圖如圖6所示。
2 PID控制仿真
同時建立恒轉速狀態下的常規PID控制、模糊PID控制仿真模型,如圖7所示,以對比觀察動態階躍響應曲線,根據相關文獻資料可知底盤測功機在恒速運轉下的系統傳遞函數為
[GS=523500S3+87.35S2+10470S] ,
其中,階躍信號作為系統的輸入,在常規PID控制中,經過調試選取[KP、KI、KD]的值分別為0.9 ,0.016, 0.0001,并將此值作為模糊PID的[KP、KI、KD]初始值的參考值,在模糊PID控制中,根據[e], [ec]來調整[KP、KI、KD]的值,使得系統的動態響應跟隨性較好,仿真結果如圖8所示,取仿真時間為0.5 s,從圖中可以看出,在常規PID控制下,響應的穩定值出現在0.3s左右,而在模糊PID的控制下,響應穩定值出現在0.17s左右,且跟隨性較明顯好于常規PID控制。
3 結束語
本文基于傳統PID基礎上設計了模糊PID控制系統,從MATLAB仿真結果可以看出.模糊PID控制比傳統PID控制超調量小、震蕩少、響應速度快,系統的控制精度得到進一步提高,仿真結果驗證了所建立模擬PID控制模型的正確性與實用性,為對底盤測功機控制系統進一步改進、完善奠定了基礎。
參考文獻:
[1] 劉金琨.先進PID控制MATLAB仿真[M].3版.北京:電子工業出版社,2011.
篇6
關鍵詞:電液伺服 位置控制 設計 仿真分析
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2011)12-0005-02
1、研究背景
電液伺服控制系統多數具有良好的控制性能,并具有一定的魯棒性,利用計算機對其進行仿真,無論對其性能分析,還是系統輔助設計,都有重要的意義[1]。
本文利用MATLAB軟件中的動態仿真工具SIMULINK,構造了電液伺服控制系統仿真模型,對其進行仿真,并詳細地對其進行系統性能分析。
2、系統的分析
圖2.1為某數控機床工作臺位置伺服系統的系統方框原理圖。由于系統的控制功率較小、工作臺行程較大,所以采用閥控液壓馬達系統。用液壓馬達驅動,通過滾珠絲杠裝置把旋轉運動變為直線運動。(如圖2.1)
工作臺負載主要由切削力、摩擦力和慣性力三部分組成。假定系統在所有負載都存在的條件下工作,則總負載力為三部分組成。則總負載力為:
=3500N (1)
伺服閥選擇液控型變量柱塞泵和電液伺服閥[3];位移傳感器選用差動式變壓器式,其增益為。放大器采用高輸出阻抗的伺服放大器,放大倍數待定。
3、系統傳遞函數
由放大器增益、電液伺服閥的傳遞函數和液壓―馬達負載的傳遞函數組成,則伺服系統的開環傳遞函數為:
4、系統仿真分析
由以上計算得到傳遞函數:
(1)通過Simulink仿真,可得到可機床工作臺液壓伺服系統的仿真模型[2],當=90時,系統的仿真輸出結果如下圖4.1所示。
從系統的單位階躍響應曲線可以看出,系統的階躍響應性能優良,系統穩定性良好,響應快速,調節時間短。
(2)繪制系統的Bode圖,求取系統的幅頻性能指標。
通過matlab運行程序得出結果如圖4.2所示。
如圖4.2所示,可以看出:=11.6dB、=52.8°,相角裕度和幅值裕度為正值,該系統穩定。
5、結語
在液壓系統設計中,利用MATLAB/SIMULINK,能夠大大簡化設計流程,在仿真過程中可以方便地模擬實際系統,反復調整各種參數,很快達到最佳設計要求,充分體現了MATLAB/SIMULINK工具的優越性[1]。通過本文的研究,可以為系統的設計和應用提供有利的理論支持[4]。
參考文獻
[1]胡良謀,李景超,曹克強.基于MATLAB/SIMULINK的電液伺服控制系統的建模與仿真研究[J].機床與液壓,2003,(3):230-232.
[2]薛定宇.基于MATLAB/Simulink的系統仿真技術與應用[M].北京:清華大學出版社,2002.
[3]王春行.液壓伺服控制系統[M]北京:機械工業出版社,1989.
[4]徐志揚.基于MATLAB的液壓伺服系統的仿真研究[J].液壓與氣動,2011(9):2-3.
篇7
【關鍵詞】蒸發器;失控事件;Labview編程
0 概述
美國對在役壓水堆核電站調查表明,核電站停堆事故的30%以上是主給水系統事故。大亞灣核電站和嶺澳核電站蒸汽發生器的水位控制系統實現了從0-100%負荷的給水自動控制,這兩座核電站在蒸發器水位控制系統設計和設備完全一樣,核電廠在運營期間,由于蒸發器水控制系統(ARE)水位失控幾乎導致跳堆,同類事故在韓國蔚珍核電站上也曾發生并導致停堆。從歷史調研信息發現蒸發器水位失控事件是現場常見事件,若操作員操作不正確或處理不及時可能造成停堆。本文針對導致蒸發器的物理特性和蒸發器水位控制系統的控制原理,以及蒸發器水位控制系統水位失控的各種情況用labview語言進行仿真建模。
1 數學建模總體設計
蒸發器水位控制系統控制原理可用如圖1所示的閉環來表示。
如圖1,對于蒸發器水位控制系統而言,輸入量有兩種,一種是水位設定值,一個為反饋量,反饋量是由蒸發器數學模型產生的被控量而產生,包括:蒸發器蒸汽流量,給水流量,蒸發器水位,汽機負荷寬量程,汽機負荷窄量程,以及溫度信號。另一個為定值信號,即水位整定值,該水位定值信號是由反饋量中的汽機負荷寬量程信號得到的,與水位實際信號進行對比產生差值信號。擾動量是由是引起被控量發生不期望變化的外部和內部因變量,在這里擾動量是指功率的擾動或水位定值的擾動。在整個水位控制過程中,蒸發器水位控制系統改變控制量不僅僅依據給定值還考慮了被控量的反饋量,形成了反饋控制機制。
蒸汽發生器水位控制系統設計總的框圖如圖2所示。
圖2 蒸汽發生器水位控制系統設計框圖
分別對蒸發器水位控制系統和蒸發器的水位進行數學建模再采用labview軟件進行模擬仿真。
2 蒸發器水位控制系統數學建模
蒸汽發生器水位取決于給水流量、給水溫度、反應堆冷卻劑溫度和蒸汽流量。大亞灣核電站蒸發器水位控制系統是由28塊具有不同功能和整定值的bailey 9020模擬板卡按照一定的邏輯關系連接在一起實現其控制功能,蒸發器水位控制系統數學模型也是基于該控制的邏輯關系進行建立的,由于保密在本論文中不提及該邏輯關系圖。
3 接口參數
蒸發器水位控制系統模型與蒸發器水位模型之間通過不同的參數進行接口構成一個閉環,進行自動控制。
接口參數有:蒸發器水位控制系統的輸入信號:蒸發器水位, 蒸汽流量, 給水流量,汽機負荷寬量程,汽機負荷窄量程,給水溫度;蒸發器水位控制系統的輸出信號:大閥開度信號,小閥開度信號。
4 蒸發器數學模型建立
蒸發器水位控制系統處于穩定狀態時,由大閥門信號和小閥門信號共同控制蒸發器的給水流量來保證蒸發器水位的正常。
水位調節器由PI組件加微分組件組成。該調節器輸入端的增益可調整,成為給水溫度(亦即汽機負荷)的函數。
這樣,最佳調節器的設定值可在每個功率水平上進行計算。
5 labview軟件實現
動態仿真系統根據控制系統給出的控制參數和邊界條件,通過對蒸汽發生器數學模型的計算,模擬蒸發器水位變化的動態過程,給出蒸發器水位調節系統的輸入信號,包括:
蒸汽發生器水位測量值,蒸汽流量,給水流量,反應堆冷卻劑溫度,汽機負荷。
控制系統輸出“蒸汽發生器調節閥的開啟和開度信號”到動態仿真系統進行控制對象的動態仿真。這樣實現整個閉環回路的動態仿真。
動態仿真系統建立如下部件的仿真及相互聯動:
蒸汽發生器:采用兩相流模型模擬一二回路間的換熱過程、汽水轉換過程、壓力變化和流動特性等
給水調節閥:模擬調節閥的特性(開度與壓差及流量的關系)
主給水泵;模擬主給水泵特性(轉速與揚程、流量的關系)
管道、彎頭等部件:模擬阻力特性
篇8
關鍵詞:魯棒性 Smith預估控制器仿真模型 模糊自適應PID控制方法
中圖分類號:TP391.9
文獻標識碼:A
文章編號:1007-3973(2012)008-075-02
1 引言
工業中的溫度對象普遍具有非線性、時變性、大慣性、純滯后性等特點,在控制中易引起系統超調和持續震蕩,而影響系統的穩定性和動態品質。如何克服滯后因子帶來的影響,就成為了一個溫度控制系統能否長期運行的關鍵所在。
在眾多的溫度控制系統中,有不少系統具有多個溫度區,當這些溫區存在相互作用和強耦合的情況下,如何對其進行協調控制就成為了一個難點。
2 PID控制器
(1)PID控制器簡介:從理論上講,PID控制器對于“一階環節與純滯后環節相結合”、“二階環節與純滯后環節相結合”的被控對象而言,是一種最優控制法。
由純滯后環節的定義可知,環節的輸出y(t)和x(t)輸入之間有如下的關系:
在工業調節系統中,廣義對象動態特性通常近似為具有純滯后的標準形式:
然而按照這種方法設計出來的PID控制器,在設定點的響應中經常會得出很強的振蕩曲線,且超調往往很大,因此通過改進,我們給出了令一種PID控制規律:
是指令信號 和過程輸出量之間的差, 是比例增益, 為積分時間或重調時間, 是微分時間。
因此PID控制律是根據對象對控制作用的歷史效果,現時變現及未來需求的總和來確定控制規律,而不是依據對象的具體數學模型來決定的。
(2)PID控制參數整定:對于調節PID控制器參數的經驗公式,這一調節器可以根據帶有時滯環節的一階近似模型的階躍響應或頻率響應數據來設定。假設對象的模型為:
其中——階響應的特征參數 K 、T 和 %m 在已知頻率響應數據情況下,可從Nyquist 圖形上直接得出剪切頻率 和該點處的幅值A (或增益)。
3 Smith預估控制器
(1)Smith預估控制算法原理:Smith控制算法是通過采用并聯補償裝置來消除純滯后對調節過程的影響,我們可以知道:
因為,所以:
由于補償的最終目的是消除純滯后 對調節過程的影響,所以滿足:
所以:
由此我們可以建立補償裝置后的系統。如果我們建立的模型非常精確的話,即 ,且不存在負荷干擾(D=0)時,易得 , 則可以使用 代替X作為第一條反饋回路,實現將純滯后環節移到控制回路的外面,消除純滯后環節對控制的影響。
如果我們建立的模型不夠精確或存在負荷擾動時,則 不成立,而 ,此時第一條反饋回路實現的控制不能使人滿意,我們可采用第二條反饋回路作為補充。
顯然,Smith控制方法的前提是必須確切地知道被控對象的是數學模型,在此基礎上才能建立精確的預估模型:
(2)Smith預估控制器性能分析:經過Smith預估控制的超前補償后,純滯后環節 已不包含在系統特征方程里,這是Smith預估控制算法的明顯優勢。閉環系統經過補償后,不受純滯后環節的影響,閉環傳輸函數分子中的 僅僅是使系統的控制過程在時間軸上延遲一個時間常數 %m 。因此,系統的補償環節完全消除了純滯后對系統控制性能的不良影響,系統的品質和沒有純滯后環節的系統完全一致,我們可以調整控制器Gc(s)的增益,提高閉環系統的動態性能。
在實際工業生產的控制系統中,我們往往難以得到精確的系統模型,即 , 此時是難以得到以上理想情況下(即 )的控制效果的。以下再對非精確模型情況下Smith預估控制器的控制效果進行簡要分析。
設 ,則系統的閉環傳輸函數為:
可以看出,在非精確模型的情況下,系統的特征方程中出現了純滯后因子,換言之系統受到了純滯后的影響,系統的動態性能下降。尤其是當 ,即系統實際的滯后時間常數和模型的滯后時間常數不相等的時候,控制會受到更大的誤差影響,系統的控制品質也會大大下降。
4 模糊自適應PID控制器
(1)模糊控制器原理簡介:模糊自適應PID控制器,是將模糊控制規則和常規PID結合,將控制規則和作用方案用模糊集表示,并存儲在計算機內。當被控對象發生變化后,計算機根據所存儲的知識自動進行判斷并修改控制參數,以達到控制精度要求。模糊自適應PID控制器的核心部分是找出PID控制三個參數 與誤差e、誤差變化率ec之間的模糊關系。在建立兩者的模糊關系的基礎上,我們就能實現PID控制參數的在線自整定,從而使控制獲得良好的動態性能和靜態性能。同時我們可以看出,模糊自適應PID控制器實際上是兩種控制方法的結合:模糊控制器+常規PID控制器=模糊自適應控制器。
(2)語言變量隸屬函數的確定:模糊控制器常常以控制查詢表的形式出現,在采用關系合成推理法中,通常將語言變量的論域從連續域轉化成有限整數的論域。若某論域X=[-x,x],把此論域轉化成整數N=[-n,-n+1,L,-1,0,1,L,n]。為此,令k為量化因子,則k= 。若在x論域中有a,則可以找到論域N中的元素y與之對應:y=ka。在本設計中,系統誤差e和誤差變化率ec的論域為{-3,-2,-1,0,1,2,3},其模糊子集為{NB,NM,NS,ZO,PS,PM,PB},子集中元素分別代表負大,負中,負小,零,正小,正中,正大。其中它們的隸屬度函數采用Z型分布、三角形分布和S型分布。
(3)建立控制規則:模糊自適應PID是在PID算法的基礎上,通過計算當前系統誤差E和誤差變化率EC,利用模糊規則進行模糊推理,查詢模糊矩陣表進行參數調整。則模糊控制設計的核心是總結工程設計人員的技術支持知識和實際操作經驗,建立合適的模糊規則表,得到針對Kp,Ki和Kd三個參數自整定的模糊控制規則表。模糊自適應PID控制使用了一種自適應性、抗干擾性更強的多溫度區控制算法,辨識控制對象的參數,通過MATLAB/SIMULINK仿真離線優化設置了PID的三個參數——比例(Kp)、積分(Ki)、微分(Kd),控制系統的多個溫度區,在盡量短調節時間內,最大動態偏差盡量小,將溫度的靜態偏差精確到0.5度,系統達到了滿意的控制效果。
參考文獻:
[1] 羅安,路甬祥.專家PID控制器及應用[J].信息與控制,1992(03):151-155.
[2] 郝連鋼,齊蓉,蔡立虹.基于PCC的神經網絡PID控制器設計[J].計算機測量與控制,2008(12).
篇9
(
2006
--
2007
年度第
2
學期)
名
稱:
計算機控制系統A
題
目:
DDC單回路PID閉環
控制系統的設計及實時仿真
院
系:
自動化系
班
級:
自動班
學
號:
學生姓名:
指導教師:
設計周數:
一
周
成
績:
日期:2007
年X月X
日
《計算機控制系統A》課程設計
任
務
書
一、目的與要求
1.
學習并了解用高級語言(C語言)實現數字PID控制算法模塊程序的方法;
2.
比較驗證理想微分PID和實際微分PID控制算法階躍響應,加深對上述兩種算法各自特點的認識;
3.
學習了解用模擬計算機使用方法;
4.
學習掌握A/D、D/A轉換接口板的使用方法;
5.
了解一種微機中斷定時的方法;
6.
學習掌握通過A/D、D/A轉換用計算機獲取被控對象動態特性的方法;
7.
通過實時仿真實驗掌握DDC單回路控制程序編制及調試方法。
二、主要內容
1.
用C語言分別編寫理想微分PID和實際微分PID控制算法模塊,在微機中調試實現,并編寫簡單的計算機繪圖程序,分別繪制并打印出上述兩種算法的單位階躍響應曲線(課外上機完成);
2.
用模擬計算機搭接成一個二階慣性環節,作為一個模擬仿真的被控對象;
3.
用C語言編寫使用HY-6060進行定時采樣、定時輸出的接口程序,并在微機中調試實現;
4.
由D/A輸出階躍信號,同時由A/D采集模擬的被控對象的響應,繪制并打印出采集獲得的飛升曲線,并初步計算出對象模型;
y
5.
由模擬計算機搭接的二階慣性環節作為系統中的被控對象,用計算機作為DDC控制器,通過HY-6060接口板實現對模擬機的實時控制。仿真實驗系統的框圖如下:
r
+
u
PID
模擬機
D/A
-
A/D
6.
整定控制器PID參數,在設定值階躍情況下,打印控制量u和被控量y的曲線。
三、進度計劃
序號
設計內容
完成時間
備注
1
編寫數字PID控制算法模塊
本設計開始前
在課程要求的8學時課外上機時間完成
2
本設計其它內容按小組分工協作完成
設計周五
3
驗收、答辯
設計周末前
四、設計(實驗)成果要求
1.
根據個人在設計小組中的分工,完成設計內容;
2.
分析實時仿真結果,每人完成設計報告。設計報告除C語言源程序及打印的結果曲線外,必須手寫完成,不得使用打印稿;
3.
提交設計報告,參加設計答辯。
五、考核方式
按小組對設計內容進行演示,由教師檢查驗收,答辯按學生個人進行,給出綜合成績。
學生姓名:
指導教師:
2007
年
X月X
日
正
文
一.設計思想
運用編程軟件Turboc2.0,開發名為Administrators的監控軟件。Administrators包含HY-6060進行定時采樣、定時輸出的接口模塊,手/自動切換模塊及控制界面顯示模塊。對PID參數進行整定后,通過HY-6060對用模擬計算機所搭接二階慣性環節數據的采集,在可視化界面中獲得直觀的響應曲線,并通過HY-6060接口板實現對模擬機的實時控制。
二.設計步驟
1.前期準備工作
(1)需要一臺具有PC插槽的微型計算機并安裝具有直接I/O能力的Windows
98系統以及Turboc2.0軟件,HY-6060及接線板一套,模擬計算機一臺。
(2)復習Turboc2.0并參照說明書學習
HY-6060的使用
2.
PID的設計:
(1)采用連續傳遞函數的離散化方法,如向后差分法及雙線性變換法,將理想微分PID算式和實際微分PID算式離散化,寫成差分方程的形式,從而便于用計算機實現。
理想微分PID:
c0=kp*(1+T/Ti+Td/T);
c1=-kp*(1+2*Td/T);
c2=kp*Td/T;
u[0]=u[0]+q0*e[2]+q1*e[1]+q2*e[0];
實際微分PID:
c0=Tf/(T+Tf);
c1=kp*T/(T+Tf)*(1+T/Ti+Td/T);
c2=-kp*T/(T+Tf)*(1+2*Td/T);
c3=kp*Td/(T+Tf);
a=c0*(u[0]-u[1])+c1*e[0]+c2*e[1]+c3*e[2]+u[0];
(4)設置死區:在實際控制系統中,并不要求被控量十分精確的與設定值相等,完全無差,而是容許偏差在一定范圍內變化,在這種情況下,計算機控制為了避免控制動作過于頻繁,以消除系統振蕩,就會采用帶死區的PID算法。
該算法是在原PID算法前加一個不靈敏區來實現,即
設置不靈敏區C值
當|e(k)|>C時,|e(k)|=|e(k)|;
當|e(k)|
(5)
手動/自動跟蹤和無擾切換
自動到手動過程:系統處于自動時,手操器實時跟蹤PID調節器的輸出,當切換到手動時,被控對象處于手操器的開環控制,調節器跟蹤手操器的輸出。
通過設置鍵盤,使的按下手動鍵H時,系統處于手動狀態,按下自動鍵A時,系統處于自動狀態,同時設置相應的功能鍵,P為暫停,E為退出。
3.二階慣性環節的搭接
利用模擬計算機中的電容電阻及運算放大器,搭接已經設計好的二階慣性環節,仿真一個被控對象。其傳遞函數為,
為使增益為1左右并且對象的慣性時間足夠大
令R1=R2=R3=R4=R=1M
R5=R6=510K,C1=C2=C=4.7uF
則K=(R2/R1)*(R4/R3)=1
T1=T2=R*C=1000000*0.0000047=4.7s
所以G(s)=1/(4.7s+1)*(4.7s+1)
將HY-6060插入微型計算機的PC插槽,用硬盤線、接線板及導線將HY-6060與所搭二階慣性環節連接,實現計算機與二階系統的硬件連接,為通信做好準備。
接線電路圖如下:(手抄)
4.
PID參數整定
通過使用matlab獲得對象的階躍響應曲線,從而確定出對象的延遲時間、時間常數T,開環增益K,根據
內模整定法得出PID調節器參數的初步整定值。再通過實驗調整初步整定值最終得出一組PID參數使系統在給定值階躍擾動下的響應曲線比較理想。
于是有:T=11.5
=2
K=1
則
Ti=T=11.5
Td=0.5*=1
=0.5*K*/T=1/11.5
Kp=11.5
Tf=0.2
5.A/D采集與D/A轉換
(1)過程:采集二階慣性環節輸出的電壓并通過HY-6060對該模擬量進行A/D轉換,然后將其送入微型計算機,將轉化后的數字信號與設定值進行比較,利用偏差進行PID控制,將PID調節器的輸出量送給HY-6060進行D/A轉換得到模擬信號,即電壓值,再送給二階慣性環節,從而得到新的二階慣性環節的輸出量,該輸出量再次由HY-6060采集并進行A/D轉換。
采樣時間取0.055s,由中斷實現。
(2)HY-6060的使用:
通過調整PID使板基地址base為260
H
Base+0為模擬輸入信號通道選擇寄存器,實驗中選用通道1
base+1為轉換完成位寄存器,最高位置1轉換完成,置0轉換未完成
base+2為轉換低8位數據寄存器
base+3為轉換高4位數據寄存器
base+4為命令字寄存器,實驗中置0從而屏蔽定時觸發和外觸發。
通過調整JP1、JP2、JP5、JP6使模擬電壓輸入范圍為單極性輸入0--+10
通過調整JP3、JP4使模擬電壓輸出范圍為單極性輸出0--+10
(3)數模標度變換
采集的模擬量A是最大范圍為0--+10的電壓,而經轉換后在電腦中的數字量D是12位二進制數,對應范圍是0—FFFH,即數字量D=A*FFFH/10。
例如0V的電壓對應數字量是000H。
6.控制界面設計
本小組使用Turboc2.0基本控制界面實現對被控對象的PID參數設置及調整,通過本控制界面可實現手/自動控制切換。
三.實驗結果
本小組采用實際PID調節器控制具有遲延的二階對象(其中二階對象由模擬計算機實現),獲得了良好的效果。其中整定的實際PID調節器參數如下:
kp=11.5
Ti=11.5
Td=1
Tf=0.2
峰值時間(s)
超調量
(%)
調節時間(s)
原系統階躍響應
30
30
整定后系統階躍響應
3.9
15.1%
14.7
原系統階躍響應曲線,整定后系統的階躍響應曲線,系統運行曲線,手/自動切換PID調節器輸出曲線見附錄。
四.實驗總結
1.實驗過程中,因本小組遇到的難點主要集中在硬件方面如HY-6060的使用、A/D通道和D/A通道連接測試等硬件方面的問題及軟件的查錯調試等,因本小組成員在這些方面經驗不足,所以在解決這些問題的過程中本小組成員虛心向老師及周圍同學請教,獲得了解決問題的基本思路后積極討論,從而使問題得到了較為圓滿的解決。
2.本小組設計最突出的創新特色是整定PID的過程中使用了內模整定法,使得整定過程非常簡潔輕松,并且整定參數在實際使用整定效果非常出色,但因時間及所學知識有限無法實現比較人性化的操作界面及其他一些較復雜的功能,使得本次設計中仍存在一些缺憾,本小組成員將以這次設計過程中獲得經驗教訓為契機在以后的學習中更加注重將所學知識與實踐結合,使以后的作品更加完善。
五.參考文獻
六.附錄
1.硬件連接圖
2.PID響應曲線
理想PID響應曲線:
實際PID響應曲線:
3.對象飛升特性曲線
4.給定值擾動曲線
5
.
程序清單
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include
#pragma
hdrstop
#include
“Unit1.h“
//---------------------------------------------------------------------------
#pragma
package(smart_init)
#pragma
resource
“*.dfm“
TForm1
*Form1;
//---------------------------------------------------------------------------
__fastcall
TForm1::TForm1(TComponent*
Owner)
:
TForm(Owner)
{
}
//---------------------------------------------------------------------------
#include
#include
static
double
e[3],u[2],y[3],sp,manual,Ucc,realstep,idealstep,tall;
int
t,t1,height,width;
double
T;
double
kp=5;
double
Ti=10;
double
Tf=10;
double
Td=3;
typedef
unsigned
char
UINT8;
typedef
unsigned
short
UINT16;
void
outportb(UINT16
Port,UINT8
x)
{
asm
mov
dx,Port
asm
mov
al,x
asm
out
dx,al
}
UINT8
inportb(UINT16
Port)
{
UINT8
r;
asm
mov
dx,Port
asm
in
al,dx
asm
mov
r,al
return
r;
}
void
pidout();
void
sample()
{
int
i,j;
float
k;
unsigned
char
h,l;
outportb(0x264,0);
for(i=0;i
outportb(0x260,0x0f);
for(i=0;i
outportb(0x261,0);
for(i=0;i
for(j=0;j
l=inportb(0x262);
for(i=0;i
h=inportb(0x263);
h=h&0x0f;
i=(int)h*256;
i=i+(int)l;
Ucc=5.0;
//y數組用于純遲延,即y[2]保存當前時刻的對象輸出的采樣值,
//經過兩拍,由y[2]變為y[1],y[1]變為y[0]才用于計算偏差信號
e[0]=sp-y[0];
y[0]=y[1];
y[1]=y[2];
//被控對象的電壓輸出范圍為-5V~+5V,
//通過該轉換公式將輸出電壓值轉換為000H~FFFH
y[2]=(i-2047)*2.0*Ucc/4095;
return;
}
void
pidout()
{
int
i;
unsigned
char
h,l;
i=(u[0]+5)*4095/10;
h=i/256;
l=i-h*256;
outportb(0x262,l);
for(i=0;i
outportb(0x263,h);
for(i=0;i
outportb(0x261,0);
return;
}
void
idealpid()
{
double
q0,q1,q2;
q0=kp*(1+T/Ti+Td/T);
q1=-kp*(1+2*Td/T);
q2=kp*Td/T;
u[0]=u[0]+q0*e[2]+q1*e[1]+q2*e[0];
e[2]=e[1];
e[1]=e[0];
return
;
}
void
realpid()
{
int
i;
double
a,k,q1,q2,q3,q4,q5,A=11,death=0.001,saturate=10;
//加死區
if(fabs(e[0])
return
;
//積分分離
if
(fabs(e[0])>A)
k=10000;
else
k=1;
Ti=Ti*k;
/*q0=Td/(Td+Kd*T);
q1=kp*Td*(1+Kd)/(Td+Kd*T);
q2=-kp*(2*Ti*Td*(1+Kd)+Td*(Kd*Ti+Td))/(Ti*(Td+Kd*T));
q3=kp*(Ti*Td*(1+Kd)+T*(Kd*Ti+Td)+Kd*T*T)/(Ti*(Td+Kd*T));
q0=Tf/(T+Tf);
q1=(kp*T+T*T*kp/Ti+Td*kp)/(T+Tf);
q2=-(2*kp*Td+T*kp)/(T+Tf);
q3=Td/(kp*T+kp*Tf);
a=u[0]+q0*(u[0]-u[1])+q1*e[2]+q2*e[1]+q3*e[0];
c0=Tf/(T+Tf);
c1=kp*T/(T+Tf)*(1+T/Ti+Td/T);
c2=-kp*T/(T+Tf)*(1+2*Td/T);
c3=kp*Td/(T+Tf);
a=c0*(u[0]-u[1])+c1*e[0]+c2*e[1]+c3*e[2]+u[0];
if(a>saturate)
{
k=10000;
Ti=Ti*k;
c0=Tf/(T+Tf);
c1=kp*T/(T+Tf)*(1+T/Ti+Td/T);
c2=-kp*T/(T+Tf)*(1+2*Td/T);
c3=kp*Td/(T+Tf);
a=c0*(u[0]-u[1])+c1*e[0]+c2*e[1]+c3*e[2]+u[0];
}
if(a>saturate)
a=saturate;
*/
//采用PID遞推算法
q1=4*Tf/(T+2*Tf);
q2=(T-2*Tf)/(T+2*Tf);
q3=(4*kp*Ti*Td+2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
q4=(2*kp*T-8*kp*Ti*Td)/(2*Ti*T+4*Ti*Tf);
q5=(4*kp*Ti*Td-2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
a=q1*u[0]+q2*u[1]+q3*e[0]+q4*e[1]+q5*e[2];
//抗積分飽和
if
(abs(a)>saturate)
{
k=10000;
Ti=Ti*k;
q1=4*Tf/(T+2*Tf);
q2=(T-2*Tf)/(T+2*Tf);
q3=(4*kp*Ti*Td+2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
q4=(2*kp*T-8*kp*Ti*Td)/(2*Ti*T+4*Ti*Tf);
q5=(4*kp*Ti*Td-2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
a=q1*u[0]+q2*u[1]+q3*e[0]+q4*e[1]+q5*e[2];
}
if
(abs(a)>saturate)
//如果出現積分飽和,對PID控制器輸出u[k]限幅
{
if
(a>saturate)
a=saturate;
else
a=(-1)*saturate;
}
u[1]=u[0];
u[0]=a;
e[2]=e[1];
e[1]=e[0];
Ti=10;
return
;
}
void
realpidstep()
{
int
i;
double
a,k,q1,q2,q3,q4,q5,A=11,death=0.001,saturate=10;
//加死區
if(fabs(e[0])
return
;
//積分分離
if
(fabs(e[0])>A)
k=10000;
else
k=1;
Ti=Ti*k;
//采用PID遞推算法
q1=4*Tf/(T+2*Tf);
q2=(T-2*Tf)/(T+2*Tf);
q3=(4*kp*Ti*Td+2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
q4=(2*kp*T-8*kp*Ti*Td)/(2*Ti*T+4*Ti*Tf);
q5=(4*kp*Ti*Td-2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
a=q1*u[0]+q2*u[1]+q3*e[0]+q4*e[1]+q5*e[2];
//抗積分飽和
if
(abs(a)>saturate)
{
k=10000;
Ti=Ti*k;
q1=4*Tf/(T+2*Tf);
q2=(T-2*Tf)/(T+2*Tf);
q3=(4*kp*Ti*Td+2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
q4=(2*kp*T-8*kp*Ti*Td)/(2*Ti*T+4*Ti*Tf);
q5=(4*kp*Ti*Td-2*Ti*kp*T+kp*T*T)/(2*Ti*T+4*Ti*Tf);
a=q1*u[0]+q2*u[1]+q3*e[0]+q4*e[1]+q5*e[2];
}
if
(abs(a)>saturate)
//如果出現積分飽和,對PID控制器輸出u[k]限幅
{
if
(a>saturate)
a=saturate;
else
a=(-1)*saturate;
}
u[1]=u[0];
u[0]=a;
e[2]=e[1];
e[1]=e[0];
Ti=10;
return
;
}
void
__fastcall
TForm1::Button1Click(TObject
*Sender)
{
//initial();
T=Timer1->Interval;
T=T/1000.;
manual=0;e[0]=0;e[1]=0;e[2]=0;u[0]=0;u[1]=0;
y[0]=0;y[1]=0;y[2]=0;Ucc=5;t=0;t1=0;tall=0;
sp=StrToFloat(Edit4->Text);
realstep=0;
idealstep=0;
pidout();
height=PaintBox2->Height;
width=PaintBox2->Width;
PaintBox1->Canvas->Pen->Color=clRed;
PaintBox2->Canvas->Pen->Color=clBlue;
PaintBox1->Canvas->MoveTo(8,height/2);
PaintBox2->Canvas->MoveTo(8,height/2);
PaintBox1->Invalidate();
PaintBox2->Invalidate();
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::Button2Click(TObject
*Sender)
{
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::BitBtn1Click(TObject
*Sender)
{
t1=t1+1;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::BitBtn2Click(TObject
*Sender)
{
t1=t1-1;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::Timer1Timer(TObject
*Sender)
{
int
ypos,upos;
tall=tall+T;
if(realstep==1)
{
realpidstep();
upos=height-(u[0]+5)*height/10;
if(t>72)
{
t=-1;
PaintBox2->Invalidate();
PaintBox2->Canvas->MoveTo(0,upos);
}
t=t+1;
PaintBox2->Canvas->LineTo(10*t+10,upos);
Edit3->Text=FloatToStr(u[0]);
Edit5->Text=FloatToStr(tall);
}
else
if
(idealstep==1)
{
idealpid();
upos=height-(u[0]+5)*height/10;
if(t>72)
{
t=-1;
PaintBox2->Invalidate();
PaintBox2->Canvas->MoveTo(0,upos);
}
t=t+1;
PaintBox2->Canvas->LineTo(10*t+10,upos);
Edit3->Text=FloatToStr(u[0]);
Edit5->Text=FloatToStr(tall);
}
else
{
int
unchange=0,s1,s2,s3,upos,ypos;
//采集A/D轉換的系統輸出數據y[k]
sample();
Edit2->Text=FloatToStr(y[0]);
//PID調節器處理偏差信號
if
(manual==MANUAL->Checked)
unchange=20;
manual=MANUAL->Checked;
if
(MANUAL->Checked)
s2=10;
else
s2=5;
if(RealPID->Checked)
s1=1;
else
s1=0;
s3=s1+s2+unchange;
switch
(s3)
{
case
5:
Form1->Edit1->Text=““;
//手動到自動
for
(int
i=0;i
e[i]=0;
u[1]=u[0];
idealpid();
break;
case
6:
for
(int
i=1;i
e[i]=0;
sample();
u[1]=u[0];
sp=StrToFloat(Edit4->Text);
realpid();
if(fabs(u[0]-u[1])>0.2)
{
Form1->Edit1->Text=“偏差太大,無法切換“;
MANUAL->Checked=true;
u[0]=u[1];
}
else
Form1->Edit1->Text=““;
break;
case
10:
u[0]=u[0]+t1;
//自動到手動
t1=0;
Form1->Edit1->Text=u[0];
break;
case
11:
u[0]=u[0]+t1;
t1=0;
Form1->Edit1->Text=u[0];
break;
case
25:
idealpid();break;
//
不切換
case
26:
realpid();
break;
case
30:
u[0]=u[0]+t1;
t1=0;
Form1->Edit1->Text=u[0];
break;
case
31:
u[0]=u[0]+t1;
t1=0;
Form1->Edit1->Text=u[0];
break;
}
//圖形顯示當前y[k]和u[k]
ypos=height-(y[0]+5)*height/10;
upos=height-(u[0]+5)*height/10;
if(t>72)
{
t=-1;
PaintBox1->Invalidate();
PaintBox2->Invalidate();
PaintBox1->Canvas->MoveTo(0,ypos);
PaintBox2->Canvas->MoveTo(0,upos);
}
t=t+1;
PaintBox1->Canvas->LineTo(10*t+10,ypos);
PaintBox2->Canvas->LineTo(10*t+10,upos);
//將u[k]通過D/A轉換輸送給被控對象
pidout();
Edit3->Text=FloatToStr(u[0]);
Edit5->Text=FloatToStr(tall);
}
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::Button4Click(TObject
*Sender)
{
realstep=1;
idealstep=0;
T=Timer1->Interval;
T=T/1000.;
e[0]=1;e[1]=0;e[2]=0;
u[0]=0;u[1]=0;t=0;
height=PaintBox2->Height;
PaintBox2->Canvas->Pen->Color=clBlue;
PaintBox2->Canvas->MoveTo(8,height/2);
tall=0;
PaintBox1->Invalidate();
PaintBox2->Invalidate();
Timer1->Interval=300;
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::BitBtn3Click(TObject
*Sender)
{
sp=sp+1.00;
Edit4->Text=FloatToStr(sp);
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::BitBtn4Click(TObject
*Sender)
{
sp=sp-1.00;
Edit4->Text=FloatToStr(sp);
}
//---------------------------------------------------------------------------
void
__fastcall
TForm1::Button3Click(TObject
*Sender)
{
idealstep=1;
T=Timer1->Interval;
T=T/1000.;
realstep=0;
e[0]=1;e[1]=0;e[2]=0;
u[0]=0;u[1]=0;t=0;
height=PaintBox2->Height;
PaintBox2->Canvas->Pen->Color=clBlue;
PaintBox2->Canvas->MoveTo(8,height/2);
tall=0;
PaintBox1->Invalidate();
PaintBox2->Invalidate();
Timer1->Interval=300;
Timer1->Enabled=true;
篇10
關鍵詞:EDA;EWB;交通信號燈;控制系統
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2007)15-30821-03
Design and Simulation on Control System of Traffic Lights Based on EWB
GENG Wen-bo1, HUANG Wei2
(1. Zhoukou Normal University, Zhoukou, 466000, China; 2. Lanzhou Jiaotong University, Lanzhou, 250014, China)
Abstract:The development of Electronic Design Automation (EDA) technique is rapid and Electronics Workbench (EWB) is one of those excellent software about analysis and design on electronic circuit. It can design, analysis and simulate digital circuit and analog circuit; Introduce a method of simulation on control system of traffic lights based on EWB.
Key words:EDA; EWB; Traffic Lights; Control System
1 引言
傳統的電子電路與系統設計方法,費時費力,效率低,周期長,耗材多,難以滿足電子技術飛速發展的要求,近年來迅速發展并日臻完善的電子設計自動化(EDA)技術,將先進的計算機技術應用于電子設計過程,它已被廣泛應用于電子電路設計、仿真、集成電路版(PCB)的設計以及可編程器件的編程等各項工作之中,EDA技術的發展,極大地提高了電子電路與系統的設計質量與效率。
Electronics Workbench(簡稱EWB)是加拿大 Interactive Image Technologies Ltd. 公司開發的電子電路計算機仿真軟件,被稱為“虛擬電子工作臺”,是EDA技術的優秀軟件之一,該軟件采用圖形方式創建電路,形象逼真,操作方便,與著名的電路分析軟件“SPICE”完全兼容。非常適合電子信息專業課程的教學和仿真實驗。目前已在電子設計和各大學的電工電子類課程教學領域內得到了廣泛的應用。本文詳細論述使用EWB這種EDA軟件設計交通信號燈控制系統的過程。
2 整體規劃與設計
2.1 系統功能要求
十字路通信號燈控制示意圖如圖1所示。設系統工作的十字路口由主、支兩條干道構成,四路口均設紅、黃、綠三色信號燈和用于顯示還剩余多少時間將改變信號燈的數碼顯示器。
要求:主、支干道交替通行,通行時間均可在0~99s內任意設定;綠燈換紅燈前,黃燈先亮較短時間(也可在0~99s內任意設定),用以等待十字路口內滯留車輛通過;主支干道通行時間和黃燈亮的時間均由同一計數器按減計數方式計數(零狀態為無效態);在減計數器回零瞬間完成十字路口通行狀態的轉換(換燈)。
圖1 十字路通信號燈控制示意圖
2.2 系統工作流程圖
設主干道通行時間為N1,支干道通行時間為N2,主、支干道黃燈亮的時間均為N3,通常主干道車流量大,支干道車流量小,通行時間設置為N1>N2>>N3。系統工作流程圖如圖2所示。
圖2系統工作流程圖
2.3 系統硬件結構框圖
根據系統要求,設計系統硬件結構框圖如圖3所示。圖中秒信號發生器產生標準的秒信號??深A置計數器進行遞減計數,根據置數控制電路的控制信號,計數的長短可作相應調整,計數完成后產生一個輸出信號到到狀態控制電路,狀態控制電路經過譯碼,驅動主干道和支干道的紅、黃、綠三色燈作相應的狀態變化??深A置計數器計數狀態通過數碼顯示電路顯示相應計數值。
圖3 系統硬件結構框圖
3 各部分單元電路設計
3.1 狀態控制及信號燈指示電路
3.1.1 狀態控制電路
由流程圖可見,系統有4種不同的工作狀態(S0~S3),選用四位二進制遞增計數器74163作狀態控制電路,可選中74163然后單擊工具欄中幫助按鈕“?”得到74163的功能表,其電路符號參見圖4,取低兩位輸出QB、QA作狀態控制電路的輸出。狀態編碼S0、S1、S2、S3分別為00、01、10、11。
3.1.2 信號燈指示電路
表1 指示燈驅動函數真值表
該電路也稱狀態譯碼器。以狀態控制電路的輸出(QB、QA)作譯碼器的輸入變量,根據4種不同通行狀態對主、支干道信號燈的控制要求,列出如表1所示的指示燈驅動函數真值表。
經化簡(可利用邏輯轉換儀)得六個指示燈驅動函數:
根據指示燈驅動函數邏輯表達式,可畫出信號燈指示電路。將狀態控制電路、信號燈指示電路及模擬三色信號燈相連接,構成狀態控制及信號燈指示電路如圖4所示。
圖4 狀態控制及信號燈指示電路
為了便于調試和簡化系統總圖,我們采用子電路圖表示法,將虛線框內的74163和組合邏輯電路放在一起定義為子電路KZDL。用子電路表示的控制及信號燈指示電路如圖5所示。雙擊KZDL后打開可以查看和修改電路。
圖5 用子電路表示的狀態控制及信號燈指示電路
3.2 計數器及數碼顯示電路
選用2片74190十進制可逆計數器構成兩位十進制可預置數的遞減計數器。為了便于控制,置數電路可根據需要改換。計數器及數碼顯示電路如圖6所示。2片計數器間采用異步級聯方式,利用個位計數器的借位輸出脈沖RCO'直接作為十位計數器的計數脈沖,接入十位計數器的CLK端;個位計數器直接接入秒脈沖信號。計數器的D1、C1、B1、A1和D0、C0、B0、A0分別為十位和個位的8421BCD碼置數輸入端,當則LOAD'端為低電平時,完成置數功能。由于計數器在零狀態時RCO'為低電平,其它時間為高電平,故當個位計數器與十位計數器的RCO′均為低電平時可作為置數控制信號和指示電路控制信號(圖6中的ZS端),從而實現計數器減至“00”狀態瞬間完成置數和指示燈轉換。通過8421碼置數輸入端,可以選擇100以內的數值,實現0~100s內自由選擇的定時要求,圖6接法預置數為99。
圖6 計數器及數碼顯示電路
為了簡化系統,同樣我們將圖6虛線框內的電路定義為子電路JSDL,用子電路表示的計數器及數碼顯示電路如圖7所示。
圖7用子電路表示的計數器及數碼顯示電路
3.3 分時置數鎖存電路
為使系統簡化,我們用同一計數器分時顯示主、支干道通行時間(即主、支干道綠燈亮的時間)和主支干道通行轉換中黃燈亮的時間,為此必須解決好分時置數問題。選用3片74465八路單向三態傳輸門(功能表可使用EWB的幫助按鈕查看)作為預置數的存儲單元來實現計數器分時置數控制電路如圖8所示。G7~G0為主干道綠燈置數端,g7~g0為支干道綠燈置數端,y7~y0為主支干道黃燈置數端;AG',Ag'和AY'為3片74465選通端,由主干道綠燈、支干道綠燈和黃燈選通;D7~D0為按由高到低排列后的輸出端,要接到計數器的置數輸入端。工作時,3片74465只能有1片選通,其它兩片輸出均處于高阻態。
圖8分時置數鎖存電路
在圖8所示的分時置數鎖存電路中,將虛線框內的電路定義為SCDL電路。用子電路表示的分時置數鎖存電路如圖9所示。
圖9用子電路表示的分時置數鎖存電路
3.4 秒信號發生器
秒信號發生器可由石英晶體多諧振蕩器構成,為簡化電路,直接選用1Hz的脈沖信號源代替秒信號發生器。
4 系統組裝與調試
在EWB主界面內,將各單元電路用粘貼的方法置于同一界面內,再按照各自對應關系相互連接構成的交通信號燈控制器的系統總電路如圖10所示。顯然,由于采用了子電路表示法,系統總電路大大減化。
在該系統中,由G7~G0設定主干道通行時間為35s,AG'由主干道綠燈亮時選通。由g7~g0設定支干道通行時間為25s,Ag'由支干道綠燈亮時選通。由y7~y0設定黃燈亮的時間為5s,AY'由主干道或支干道黃燈亮時選通。當遞減計數器回零瞬間,置數控制端產生一個窄負脈沖,經反相器變為正脈沖,送至狀態控制電路時鐘脈沖輸入端,使狀態控制電路轉換為下一個工作狀態,信號燈指示電路完成換燈的同時選通下一片74465,計數器置入新的定時值并開始新狀態下的遞減計數,當計數器再計數回零時又重復上述過程,這樣信號燈就自動按設定時間交替轉換。
圖10 交通信號燈控制器總電路
在上述系統中,置數輸入是根據定時時間的8421BCD碼將相應的輸入端接高、低電平實現的,在實際應用中,可采用BCD撥碼盤來實現計數器的預置數控制。
在系統總電路安裝調試中,首先調試好各單元電路,然后進行合理的連接,要特別注意電路之間的高、低電平配合。系統組裝完畢后,要求檢查各單元電路間連接是否正確,然后單擊仿真開關調試總電路。上述調試過程可反復進行,直到符合要求。
5 結束語
EWB的仿真手段切合實際,選用元器件和儀器與實際情形非常相近,并均可直接從屏幕上選取,而且儀器的操作開關、按鍵同實際儀器極為相似,改變了傳統的基于電路板的設計方法,從而可以大大縮短設計時間,節約開發費用,提高效率。實踐證明EWB軟件是人們設計電子電路的有效工具,是一款值得推薦的EDA軟件。
參考文獻:
[1] 閆石. 數字電子技術基礎[M]. 北京:高等教育出版社,1998.
[2] 周常森. 電子電路計算機仿真技術[M]. 濟南:山東科學技術出版社,2001.8.
[3] 錢恭斌, 張基宏. Electronics Workbench――實用通信與電子線路的計算機仿真[M]. 北京:電子工業出版社,2001.1.
[4] 包明. EDA技術與數字系統設計[M]. 北京:北京航空航天大學出版社,2002.7.