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

?

火炮內(nèi)彈道仿真模型嵌入式開發(fā)研究

2019-04-17 04:09張寶棟
科學與財富 2019年22期
關鍵詞:代碼生成彈道代碼

張寶棟

摘 要:結(jié)合對火炮初速減退量進行準確修正的迫切需求,本文對基于Simulink仿真模型的MBD開發(fā)流程進行了研究,根據(jù)已建立好的火炮燒蝕磨損內(nèi)彈道仿真模型,對自動生成代碼進行了參數(shù)配置,實現(xiàn)了仿真模型代碼的自動生成,減少了系統(tǒng)開發(fā)周期,為模型的工程化應用奠定了基礎。

關鍵詞:內(nèi)彈道模型;自動代碼生成

1引言

基于模型設計的開發(fā)流程,開發(fā)人員在Simulink環(huán)境下建立仿真模型并進行仿真,進行早期設計的驗證,當仿真結(jié)果符合開發(fā)要求時,使用Embedded Coder技術可自動生成嵌入式的產(chǎn)品級代碼,應用于硬件平臺上??朔藗鹘y(tǒng)手工編碼開發(fā)周期長、實現(xiàn)復雜且經(jīng)常引入錯誤以及不易于保持MATLAB參考代碼與C代碼的一致性等缺點,并且可對代碼進行非實時與實時環(huán)境下的驗證與測試,保證了工程的可靠性和實時性,大大提高了嵌入式開發(fā)的效率,加快了開發(fā)進程。

2模型參數(shù)配置

以某型125mm高膛壓坦克炮穿甲彈,標準條件下新炮起動壓力約為30MPa,常溫初速小于1740m/s,平均最大膛壓小于等于470.4MPa,發(fā)射藥為“**/**H花高”,基于MATLAB中的Simulink庫建立內(nèi)彈道仿真模型,根據(jù)坦克炮(新炮)的內(nèi)彈道相關參數(shù),對模型進行仿真,得到在標準條件下坦克炮內(nèi)彈道的仿真結(jié)果如圖1所示。

圖1 某型坦克炮穿甲彈彈丸速度、膛壓仿真曲線

從上圖中可以看出,該型坦克炮穿甲彈彈丸初速約為1721m/s,起動壓力約為30MPa,約在3.51ms處達到最大膛壓464.7MPa,與該炮標準數(shù)據(jù)相吻合,證明了內(nèi)彈道模型的可靠性。

3模型代碼生成

建立磨損火炮的內(nèi)彈道仿真模型之后,為實現(xiàn)模型的工程化應用,將內(nèi)彈道模型應用硬件系統(tǒng)當中,完成射彈初速的計算功能,需要生成嵌入式代碼。MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,提供了三種代碼的自動生成工具:MATLAB Coder,Simulink Coder和Embedded Coder,其中,MATLAB Coder可以自動實現(xiàn)MATLAB代碼生成C/C++代碼;Simulink Coder可以自動從Simulink/Stateflow模型生成C/C++代碼,但以上兩種工具生成的代碼均不能直接用于嵌入式系統(tǒng),而Embedded Coder可以自動生成可重用、結(jié)構(gòu)緊湊且執(zhí)行快速的實時C代碼,故本文利用Embedded Coder工具完后模型代碼的生成工作[1]。

在進行代碼生成之前,必須對模型的參數(shù)進行配置,為生成嵌入式代碼,至少需要配置3部分:模型的解算器solver,模型的系統(tǒng)目標文件(如ert.tlc或其他自定義的嵌入式系統(tǒng)目標文件),硬件實現(xiàn)規(guī)定(Hardware Implenmatation)[1]。

求解器solver的設置,主要包括仿真時間范圍、起始和停止時間、仿真步長和選擇合適的仿真解法[2]。具體操作如下:按下Ctrl+E打開模型的Configuration Parameter對話框,解算器類型選擇固定點解算器,長度為0.01s,求解算法選擇為Runge-Kutta法。對目標硬件規(guī)格(Hardware Implementation)進行設置,在這個選項卡中可以配置芯片的廠商和類型,設置芯片的字長、字節(jié)順序等。最后一個關鍵的配置是控制整個代碼生成過程的系統(tǒng)目標文件System Target File,ert.tlc文件是Embedded Coder提供的能夠生成專門用于嵌入式系統(tǒng)C代碼的系統(tǒng)目標文件,代碼格式是一種專為生成產(chǎn)品級代碼而設計的緊縮型代碼格式,占用的內(nèi)存較少[3]。

4代碼驗證

為了驗證用于代碼生成的模型與自動生成代碼的一致性,在代碼移植在底層驅(qū)動前,需要對代碼進行驗證,主要是為了避免代碼生成過程中可能引入的錯誤,錯誤主要來源于兩方面,一是來自于代碼生成工具本身,代碼生成工具作為一款軟件,和其它軟件一樣,都可能存在一定的bug;二是來自于代碼生成用戶,代碼生成過程是一個可以定制化的過程,如果定制化的過程沒有經(jīng)過嚴格、充分的驗證,也很容易引入bug。因此,為了防止這類bug生成不正確的代碼,在MBD開發(fā)流程中,常用軟件在環(huán)測試(Software-in-the-Loop,SIL)進行模型代碼驗證。

5結(jié)論

本文通過對MBD開發(fā)流程進行分析,依據(jù)MBD開發(fā)流程,建立了內(nèi)彈道仿真模型,仿真結(jié)果與標準數(shù)據(jù)相符,證明了模型的準確性,然后對模型參數(shù)進行配置,自動生成嵌入式代碼,利用SIL軟件在環(huán)仿真,對代碼進行了一致性檢驗,為火炮領域仿真模型的工程化應用奠定了基礎。

參考文獻:

[1]孫君瀟,Simulink仿真及代碼生成技術入門到靜通[M],北京:北京航空航天大學出版社,2015.

[2]陳亮,郝洪濤,倪凡凡等,雙離合自動變速器系統(tǒng)建模與代碼自動生成的研究[J].傳動技術,2018,32(2):3-12.

[3]邱寶梅,左文英,王鳳娟.基于Simulink/RTW的汽車電子控制系統(tǒng)的研究[J].計算機測量與控制,2011,19(5):1086-1088.

猜你喜歡
代碼生成彈道代碼
彈道——打勝仗的奧秘
Lustre語言可信代碼生成器研究進展
一維彈道修正彈無線通信系統(tǒng)研制
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
代碼生成技術在軟件開發(fā)中的應用
基于PID控制的二維彈道修正彈仿真
基于XML的代碼自動生成工具
苍南县| 桑植县| 扎囊县| 宁河县| 乐东| 全州县| 秭归县| 澜沧| 绍兴县| 兰州市| 连云港市| 耒阳市| 土默特右旗| 大厂| 滨海县| 贵阳市| 云龙县| 津南区| 辽阳市| 清徐县| 囊谦县| 廊坊市| 韩城市| 庆云县| 霍邱县| 闻喜县| 安国市| 文山县| 商水县| 霍林郭勒市| 通州区| 宜阳县| 伊宁县| 汶上县| 会泽县| 隆化县| 尼木县| 庄浪县| 林芝县| 贞丰县| 新田县|