国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模型的嵌入式PID 控制器設(shè)計(jì)

2015-08-26 06:39:36高玉娜
電子設(shè)計(jì)工程 2015年24期
關(guān)鍵詞:代碼生成嵌入式軟件手寫

高玉娜

(上海海洋大學(xué) 工程學(xué)院, 上海 201306)

1 SCADE 軟件設(shè)計(jì)流程

SCADE[1](Safety-Critical Application Development Environ

-ment)是Esterel Technologies 公司研制的一套高安全性的嵌入式軟件開發(fā)環(huán)境, 針對(duì)嵌入式軟件的特點(diǎn), 運(yùn)用Correct By Construction[2]的設(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)過高安全性標(biāo)準(zhǔn)鑒定代碼生成器KCG,保證了軟件需求到產(chǎn)品代碼的高度同步。 軟件設(shè)計(jì)流程如圖1 所示。

圖1 基于SCADE 的軟件設(shè)計(jì)流程Fig. 1 Structure of software design procedure with SCADE

2 PID 控制器設(shè)計(jì)

在模擬控制系統(tǒng)中, 控制器最常用的規(guī)律是PID 控制。常規(guī)PID 控制系統(tǒng)由PID 控制器和被控對(duì)象組成,具體如圖2 所示。

PID 控制器是一種線性控制器,它根據(jù)給定值與實(shí)際輸出值構(gòu)成控制偏差,將偏差的比例(P),積分(I)和微分(D)通過線性組合,構(gòu)成控制量對(duì)被控對(duì)象進(jìn)行控制。 其控制規(guī)律為

圖2 常規(guī)PID 控制系統(tǒng)原理圖Fig. 2 Structure of typical PID control system

式中,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)離散化得:

工業(yè)視頻內(nèi)窺鏡檢測設(shè)備主要由光導(dǎo)纖維、插入管和視頻成像系統(tǒng)組成,從而實(shí)現(xiàn)對(duì)管材內(nèi)部視場范圍內(nèi)的監(jiān)視、記錄、存儲(chǔ)和圖像分析。

圖3 PID 控制器模塊Fig. 3 Structure of PID controller module

3 PID 控制系統(tǒng)實(shí)現(xiàn)

由式(3)在SCADE 中構(gòu)造控制對(duì)象如圖4 所示,Uk為輸入,Yk為輸出。

圖4 被控對(duì)象模塊Fig. 4 Structure of PID Controlled module

最后,由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ī)制,來確保軟件需求模型描述的正確性和安全性, 包括模型靜態(tài)檢查, 模擬仿真、覆蓋率分析,形式驗(yàn)證等等。 本文首先利用SCADE 模型靜態(tài)檢查功能,確保模型無基本語語義錯(cuò)誤后,使用SCADE Simulator 進(jìn)行仿真分析驗(yàn)證控制率,然后通過SCADE 內(nèi)置的代碼生成器生成C 代碼,進(jìn)一步對(duì)代碼進(jìn)行效率分析測試。

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)特性有影響[3]。 據(jù)此,對(duì)PID 控制參數(shù)進(jìn)行整定,得到Kp=8.0,Ki=0.0,Kd=0.5[4]。 設(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)。

圖5 控制系統(tǒng)階躍響應(yīng)曲線Fig. 5 Step response curve of control system

4.2 代碼測試

SCADE 內(nèi)置的代碼生成器KCG 可以自動(dòng)生成ANSI C的嵌入式產(chǎn)品代碼,且代碼是完全面向工程的產(chǎn)品代碼,可以直接嵌入到產(chǎn)品中去而不需要做任何修改[6]。 因?yàn)镾CADE 模型基于嚴(yán)格的數(shù)學(xué)理論, 它能保證代碼運(yùn)行的結(jié)果和仿真結(jié)果完全一致, 并且該代碼生成器通過了軍工及航空業(yè)及能源業(yè)相關(guān)標(biāo)準(zhǔn)的鑒定[1]。

此前軟件設(shè)計(jì)人員手工編寫代碼,在后期驗(yàn)證階段要花費(fèi)大量的時(shí)間來驗(yàn)證程序的正確性和規(guī)范性。 使用SCADE之后,只要模型級(jí)別仿真測試無誤,那么后續(xù)該部分的代碼單元測試可以省略。 另外,SCADE 提供了模型級(jí)別的覆蓋率分析,對(duì)于代碼的覆蓋率分析[5]也可以在模型級(jí)別完成。 這樣,勢(shì)必能在很大程度地節(jié)省驗(yàn)證工作和驗(yàn)證時(shí)間。

為了完成代碼的效率測試分析,在前面系統(tǒng)仿真結(jié)果正確的基礎(chǔ)上,通過SCADE KCG 自動(dòng)生成C 代碼。 生成的軟件代碼可以直接在VC 等C 語言開發(fā)工具下進(jìn)行正確編譯,添加主函數(shù)后,代碼即可直接運(yùn)行。 此處,在主函數(shù)內(nèi)添加clock 函數(shù),用以計(jì)算程序執(zhí)行一定步數(shù)所消耗的時(shí)間。 主函數(shù)如下:

Main()

{_C_pid c;

int i;

clock_t start,end;

c._I3_rk =1.0;

c._I0_kp=8.0;

c._I0_ki=0.0;

c._I0_kd=0.5;

start=clock();

for(i=0;i<50000;i++)

{pid(&c);

Printf(“i=%d yk=&f ”,I,c.O0_yk);

}

end =clock;

printf(“the different is %f ”,(double)(end -start));}

對(duì)代碼進(jìn)行編譯運(yùn)行,在相同環(huán)境下,將生成的代碼與手寫代碼進(jìn)行比較,得到結(jié)果如表1 所示:

表1 SCADE 生成代碼與手工編碼執(zhí)行效率比較Tab. 1 Performance Comparison with SCADE Code and Manual Code

通過表1 可以看出,SCADE 生成的代碼與手寫代碼在運(yùn)行相同步數(shù)的情況下,所耗費(fèi)的時(shí)間基本一致,代碼執(zhí)行效率略高。

通過分析SCADE 生成代碼發(fā)現(xiàn), 代碼中每個(gè)變量在作用域內(nèi)僅賦值一次,代碼內(nèi)無遞歸調(diào)用,無死循環(huán),無動(dòng)態(tài)指針,無動(dòng)態(tài)內(nèi)存分配。 因此,在同樣的測試標(biāo)準(zhǔn)下,SCADE 生成的代碼失效率比手寫代碼要小很多,相應(yīng)安全性也更高。

5 結(jié) 論

本文研究了基于模型的軟件開發(fā)環(huán)境SCADE 的技術(shù)特點(diǎn)和開發(fā)流程,在SCADE 下完成了PID 控制系統(tǒng)的設(shè)計(jì)、仿真、測試。 通過案例研究表明,采用SCADE 進(jìn)行嵌入式軟件開發(fā), 將軟件開發(fā)流程的重點(diǎn)由編碼階段提前到設(shè)計(jì)階段,這樣更易于在設(shè)計(jì)早期發(fā)現(xiàn)不足。 模型設(shè)計(jì)完成后,通過代碼生成器自動(dòng)生成代碼,可在很大程度上減少開發(fā)時(shí)間和可發(fā)成本,提高開發(fā)效率。而且,SCADE 生成的代碼滿足一系列的安全特性, 可讀性良好, 和手寫代碼效率相當(dāng)。 因此,SCADE 在高可靠性的嵌入式軟件設(shè)計(jì)領(lǐng)域,應(yīng)用前景廣泛。

[1] Berry G.The constructive semantics of pure esterel draft V3[M].Esterel Technologies,2009.

[2] Jean-Louis Camus,Bernard Dion. Efficient development of airborne software with SCADE suite[M]. Esterel Technologies,2010.

[3] 劉金琨. 先進(jìn)PID控制及MATLAB仿真[M]. 北京:電子工業(yè)出版社,2003.

[4] 王偉,張晶濤,柴天佑. PID參數(shù)先進(jìn)整定方法[J]. 自動(dòng)化學(xué)報(bào),2000,26(3):347-348.

[5] 馬金梭,張榮華,席厚金. 模型覆蓋率在嵌入式軟件開發(fā)中的應(yīng)用[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(10):83-86

[6] 劉晶晶,劉增明. 基于SCADE的軟件嵌入式軟件開發(fā)[J]. 微處理機(jī),2013,34(1):34-37.

猜你喜歡
代碼生成嵌入式軟件手寫
手寫比敲鍵盤更有助于學(xué)習(xí)和記憶
我手寫我心
抓住身邊事吾手寫吾心
Lustre語言可信代碼生成器研究進(jìn)展
基于集成學(xué)習(xí)的MINIST手寫數(shù)字識(shí)別
電子制作(2018年18期)2018-11-14 01:48:08
實(shí)時(shí)嵌入式軟件的測試技術(shù)
電子測試(2018年10期)2018-06-26 05:54:08
全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
電子制作(2017年17期)2017-12-18 06:40:56
代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
電子世界(2016年15期)2016-08-29 02:14:28
基于XML的代碼自動(dòng)生成工具
電子科技(2015年2期)2015-12-20 01:09:20
基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)
南京市| 卓尼县| 游戏| 文安县| 康乐县| 桑植县| 双城市| 甘谷县| 那坡县| 嵊泗县| 安顺市| 阳曲县| 太原市| 永和县| 通许县| 赤水市| 从江县| 巫山县| 什邡市| 巴南区| 兴安县| 辰溪县| 平江县| 岳阳县| 依安县| 昭觉县| 周宁县| 河东区| 桂阳县| 镇安县| 竹山县| 长阳| 玉环县| 浠水县| 天全县| 朝阳市| 苍溪县| 佛坪县| 奉节县| 镇平县| 邹城市|