基于模型的嵌入式PID控制器設(shè)計(jì)
摘要:在嵌入式控制系統(tǒng)中,PID控制器應(yīng)用廣泛。鑒于實(shí)時(shí)性和同步性的要求,傳統(tǒng)的PID控制器通常采用手工編程來(lái)實(shí)現(xiàn)。該種實(shí)現(xiàn)方式,費(fèi)時(shí)費(fèi)力,可靠性低,后期的驗(yàn)證測(cè)試過(guò)程繁雜。為解決該方法不足,本文研究了基于模型的高安全性應(yīng)用程序開發(fā)環(huán)境-SCADE,按照SCADE的軟件程序設(shè)計(jì)流程,完成了PID控制器的設(shè)計(jì)、開發(fā)與性能測(cè)試,并通過(guò)代碼的效率測(cè)試,驗(yàn)證了SCADE進(jìn)行嵌入式軟件開發(fā)的優(yōu)越性。
本文引用地址:http://m.butianyuan.cn/article/201610/307824.htm關(guān)鍵詞:SCADE;PID;建模;模擬仿真;代碼生成
在過(guò)程控制和運(yùn)動(dòng)控制系統(tǒng)中,特別是在嵌入式控制系統(tǒng)中,PID(比例-微分-積分)控制器因其結(jié)構(gòu)簡(jiǎn)單,物理意義明確,使用中不需精確的系統(tǒng)模型等先決條件應(yīng)用廣泛。鑒于嵌入式控制系統(tǒng)設(shè)計(jì)的嚴(yán)格要求,傳統(tǒng)的嵌入式PID控制器通常采用手工編程來(lái)實(shí)現(xiàn)。該種實(shí)現(xiàn)方式費(fèi)時(shí)費(fèi)力,可靠性低。為解決傳統(tǒng)設(shè)計(jì)方法不足,本文研究了基于模型的高安全性應(yīng)用程序開發(fā)環(huán)境-SCADE的技術(shù)特點(diǎn),在該環(huán)境下完成了PID控制器的設(shè)計(jì)與仿真,并對(duì)生成的代碼進(jìn)行了分析和效率測(cè)試。最終表明,該設(shè)計(jì)方法切實(shí)有效。
1 SCADE軟件設(shè)計(jì)流程
SCADE(Safety-Critical Application Develooment Environment)是Esterel Teclmologies公司研制的一套高安全性的嵌入式軟件開發(fā)環(huán)境,針對(duì)嵌入式軟件的特點(diǎn),運(yùn)用Correct By Construction的設(shè)計(jì)理念,提供了一種基于模型的圖形化開發(fā)方式,覆蓋了從需求分析到代碼實(shí)現(xiàn)的整個(gè)軟件開發(fā)流程。
SCADE提供了一系列的開發(fā)工具套件,實(shí)現(xiàn)了直觀的圖形化需求建模,基于模型的仿真驗(yàn)證,標(biāo)準(zhǔn)C代碼自動(dòng)生成、開發(fā)文檔自動(dòng)生成等多種功能。其嚴(yán)謹(jǐn)?shù)慕@碚摵徒?jīng)過(guò)高安全性標(biāo)準(zhǔn)鑒定代碼生成器KCG,保證了軟件需求到產(chǎn)品代碼的高度同步。軟件設(shè)計(jì)流程如圖1所示。
2 PID控制器設(shè)計(jì)
在模擬控制系統(tǒng)中,控制器最常用的規(guī)律是PID控制。常規(guī)PID控制系統(tǒng)由PID控制器和被控對(duì)象組成,具體如圖2所示。
PID控制器是一種線性控制器,它根據(jù)給定值與實(shí)際輸出值構(gòu)成控制偏差,將偏差的比例(P),積分(I)和微分(D)通過(guò)線性組合,構(gòu)成控制量對(duì)被控對(duì)象進(jìn)行控制。其控制規(guī)律為
式中,u(t)為進(jìn)入受控對(duì)象的控制變量;e(t)為誤差信號(hào),e(t)=r(t)-y(t),r(t)為給定參考輸入值。由于計(jì)算機(jī)控制是一種采樣控制,根據(jù)采樣時(shí)刻的偏差值直接計(jì)算控制量,必須進(jìn)行離散處理,用求和的形式代替積分,用增量的形式代替微分。式(1)離散化得:
由式(2)在SCADE中構(gòu)造PID控制器,其結(jié)果如圖3所示,其中控制參數(shù)Kp、Ki、Kd和誤差ek為輸入,uk為輸出,t為采樣時(shí)間。
3 PID控制系統(tǒng)實(shí)現(xiàn)
本控制系統(tǒng)中,被控制對(duì)象傳遞函數(shù)
,其中J=0.0067,D=0.10經(jīng)離散化后得:
由式(3)在SCADE中構(gòu)造控制對(duì)象如圖4所示,Uk為輸入,Yk為輸出。
最后,由PID控制器和被控制對(duì)象,按照?qǐng)D2所示的結(jié)構(gòu)圖,構(gòu)造閉環(huán)控制系統(tǒng)。
4 仿真分析
利用SCADE Editor完成系統(tǒng)建模后,進(jìn)入到模型的仿真分析階段。SCADE提供了一系列的驗(yàn)證機(jī)制,來(lái)確保軟件需求模型描述的正確性和安全性,包括模型靜態(tài)檢查,模擬仿真、覆蓋率分析,形式驗(yàn)證等等。本文首先利用SCADE模型靜態(tài)檢查功能,確保模型無(wú)基本語(yǔ)語(yǔ)義錯(cuò)誤后,使用SCADESimulator進(jìn)行仿真分析驗(yàn)證控制率,然后通過(guò)SCADE內(nèi)置的代碼生成器生成C代碼,進(jìn)一步對(duì)代碼進(jìn)行效率分析測(cè)試。
4.1 模型仿真
根據(jù)PID的特性,Kp影響系統(tǒng)的響應(yīng)速度和精度,Ki影響系統(tǒng)的穩(wěn)態(tài)精度,Kd會(huì)對(duì)系統(tǒng)的動(dòng)態(tài)特性有影響。據(jù)此,對(duì)PID控制參數(shù)進(jìn)行整定,得到Kp=8.0,Ki=0.0,Kd= 0.5。設(shè)階躍響應(yīng)r=1.0,采樣時(shí)間為0.005秒。輸入相應(yīng)的控制參數(shù),調(diào)用SCADE Simulator仿真環(huán)境,得到的系統(tǒng)階躍響應(yīng)仿真曲線如圖5所示(橫坐標(biāo)單位ms)。
4.2 代碼測(cè)試
SCADE內(nèi)置的代碼生成器KCG可以自動(dòng)生成ANSI C的嵌入式產(chǎn)品代碼,且代碼是完全面向工程的產(chǎn)品代碼,可以直接嵌入到產(chǎn)品中去而不需要做任何修改。因?yàn)镾CADE模型基于嚴(yán)格的數(shù)學(xué)理論,它能保證代碼運(yùn)行的結(jié)果和仿真結(jié)果完全一致,并且該代碼生成器通過(guò)了軍工及航空業(yè)及能源業(yè)相關(guān)標(biāo)準(zhǔn)的鑒定。
此前軟件設(shè)計(jì)人員手工編寫代碼,在后期驗(yàn)證階段要花費(fèi)大量的時(shí)間來(lái)驗(yàn)證程序的正確性和規(guī)范性。使用SCADE之后,只要模型級(jí)別仿真測(cè)試無(wú)誤,那么后續(xù)該部分的代碼單元測(cè)試可以省略。另外,SCADE提供了模型級(jí)別的覆蓋率分析,對(duì)于代碼的覆蓋率分析也可以在模型級(jí)別完成。這樣,勢(shì)必能在很大程度地節(jié)省驗(yàn)證工作和驗(yàn)證時(shí)間。
為了完成代碼的效率測(cè)試分析,在前面系統(tǒng)仿真結(jié)果正確的基礎(chǔ)上,通過(guò)SCADE KCG自動(dòng)生成C代碼。生成的軟件代碼可以直接在VC等C語(yǔ)言開發(fā)工具下進(jìn)行正確編譯,添加主函數(shù)后,代碼即可直接運(yùn)行。此處,在主函數(shù)內(nèi)添加clock 函數(shù),用以計(jì)算程序執(zhí)行一定步數(shù)所消耗的時(shí)間。主函數(shù)如下:
對(duì)代碼進(jìn)行編譯運(yùn)行,在相同環(huán)境下,將生成的代碼與手寫代碼進(jìn)行比較,得到結(jié)果如表1所示:
通過(guò)表1可以看出,SCADE生成的代碼與手寫代碼在運(yùn)行相同步數(shù)的情況下,所耗費(fèi)的時(shí)間基本一致,代碼執(zhí)行效率略高。
通過(guò)分析SCADE生成代碼發(fā)現(xiàn),代碼中每個(gè)變量在作用域內(nèi)僅賦值一次,代碼內(nèi)無(wú)遞歸調(diào)用,無(wú)死循環(huán),無(wú)動(dòng)態(tài)指針,無(wú)動(dòng)態(tài)內(nèi)存分配。因此,在同樣的測(cè)試標(biāo)準(zhǔn)下,SCADE生成的代碼失效率比手寫代碼要小很多,相應(yīng)安全性也更高。
5 結(jié)論
本文研究了基于模型的軟件開發(fā)環(huán)境SCADE的技術(shù)特點(diǎn)和開發(fā)流程,在SCADE下完成了PID控制系統(tǒng)的設(shè)計(jì)、仿真、測(cè)試。通過(guò)案例研究表明,采用SCADE進(jìn)行嵌入式軟件開發(fā),將軟件開發(fā)流程的重點(diǎn)由編碼階段提前到設(shè)計(jì)階段,這樣更易于在設(shè)計(jì)早期發(fā)現(xiàn)不足。模型設(shè)計(jì)完成后,通過(guò)代碼生成器自動(dòng)生成代碼,可在很大程度上減少開發(fā)時(shí)間和可發(fā)成本,提高開發(fā)效率。而且,SCADE生成的代碼滿足一系列的安全特性,可讀性良好,和手寫代碼效率相當(dāng)。因此,SCADE在高可靠性的嵌入式軟件設(shè)計(jì)領(lǐng)域,應(yīng)用前景廣泛。
評(píng)論