• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Simulink浮點(diǎn)模型和定點(diǎn)模型的問(wèn)題研究

      2019-10-21 10:22:07鄒凡朱宏翔袁凱
      汽車實(shí)用技術(shù) 2019年4期
      關(guān)鍵詞:浮點(diǎn)定點(diǎn)

      鄒凡 朱宏翔 袁凱

      摘 要:文章介紹了MATLAB/Simulink的自動(dòng)代碼生成的實(shí)現(xiàn)方法和過(guò)程。以某新能源汽車油門控制模型為例,重點(diǎn)解釋了浮點(diǎn)模型和定點(diǎn)模型之間的區(qū)別,并通過(guò)自動(dòng)生成的代碼和CodeWarrior編譯生成的可執(zhí)行文件證明定點(diǎn)模型相對(duì)于浮點(diǎn)模型所占內(nèi)存少。

      關(guān)鍵詞:MATLAB/Simulink;自動(dòng)代碼生成;浮點(diǎn);定點(diǎn)

      中圖分類號(hào):U462? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):1671-7988(2019)04-131-03

      前言

      隨著電動(dòng)汽車的快速發(fā)展,企業(yè)對(duì)電子控制系統(tǒng)的性能與開(kāi)發(fā)效率提出了越來(lái)越高的要求,傳統(tǒng)手寫代碼的開(kāi)發(fā)方式周期長(zhǎng)、調(diào)試難度大,已經(jīng)很難適用于現(xiàn)代電控系統(tǒng)的開(kāi)發(fā)。在新型電子控制系統(tǒng)的發(fā)展中,出現(xiàn)了一套成熟的汽車電控系統(tǒng)開(kāi)發(fā)模式—V模式開(kāi)發(fā)。利用MATLAB/Simulink工具搭建控制模型,在設(shè)計(jì)初期就可以直觀地反映設(shè)計(jì)需求,進(jìn)行系統(tǒng)設(shè)計(jì),便于閱讀和修改,使模型的更新與代碼保持一致,而且沒(méi)有實(shí)施過(guò)程中產(chǎn)生的錯(cuò)誤,并且可以處理很復(fù)雜的模型系統(tǒng)。其中,自動(dòng)代碼生成技術(shù)可以直接從圖形模型生成目標(biāo)處理器上的代碼,不僅保證了代碼與模型的高度一致性,也使得控制器開(kāi)發(fā)更加高效有序。

      1 Simulink建模及代碼生成

      1.1 Simulink建模

      近幾年來(lái),在汽車電子控制領(lǐng)域,Simulink已經(jīng)成為動(dòng)態(tài)系統(tǒng)建模和仿真領(lǐng)域中應(yīng)用最為廣泛的軟件之一。由于Simulink是采用模塊組合方式來(lái)建模,從而可以使得用戶能夠快速、準(zhǔn)確地創(chuàng)建動(dòng)態(tài)系統(tǒng)的計(jì)算機(jī)仿真模型,特別是對(duì)復(fù)雜的不確定非線性系統(tǒng)更為方便。

      1.2 自動(dòng)代碼生成技術(shù)

      在Simulink模型中要進(jìn)行自動(dòng)代碼生成,至少有3部分需要配置:解算器(solver);目標(biāo)硬件設(shè)置(hardware imple mentation);系統(tǒng)目標(biāo)文件(system target file)。

      一般情況下,Simulink的模型只生成應(yīng)用層代碼,其應(yīng)用層軟件與底層軟件結(jié)合只能通過(guò)手動(dòng)集成。現(xiàn)基于Freescale的一款芯片自主開(kāi)發(fā)出一鍵式自動(dòng)代碼生成技術(shù),通過(guò)編程自動(dòng)集成應(yīng)用層軟件與底層軟件,即可將控制模型自動(dòng)生成可執(zhí)行代碼。

      對(duì)于解算器(solver),其類型需設(shè)置為固定步長(zhǎng)。由于模型是用于生產(chǎn)嵌入式代碼,并下載到單片機(jī)中運(yùn)行,而單片機(jī)總是以時(shí)鐘源提供的穩(wěn)定頻率運(yùn)行,無(wú)法進(jìn)行變步長(zhǎng)運(yùn)算,所以兩采樣點(diǎn)間的時(shí)間間隔要設(shè)為固定。步長(zhǎng)的大小取決于對(duì)計(jì)算精度和速度的平衡,步長(zhǎng)越小,精度越高,而計(jì)算的速度越慢。在目標(biāo)硬件為通用的情況下,對(duì)代碼生成沒(méi)有影響,當(dāng)前設(shè)置為0.01s。

      其次在目標(biāo)硬件設(shè)置(hardware implementation)中,設(shè)備供應(yīng)商(Device vendor)選擇為Freescale,設(shè)備類型(Device type)選擇為對(duì)應(yīng)的芯片型號(hào)。因?yàn)槟壳笆褂玫恼嚳刂破餍酒脚_(tái)已經(jīng)達(dá)到成熟量產(chǎn)的狀態(tài),所以目標(biāo)硬件設(shè)置將所選芯片設(shè)置為默認(rèn)狀態(tài)。

      再次在Code Generation界面中,將系統(tǒng)目標(biāo)文件選擇為Embedded Coder對(duì)應(yīng)芯片的.tlc文件。Embedded Coder是可生成用于嵌入式單片機(jī)的實(shí)時(shí)C代碼的編譯器。TLC文件的作用是將模型編譯出的RTW文件轉(zhuǎn)換為支持某平臺(tái)或硬件的代碼,其Template makefile選擇targetcoder.tmf。取消勾選Generate code only,否則編譯只能生成C代碼,無(wú)法生成可執(zhí)行文件。

      完成以上設(shè)置后,點(diǎn)擊Build Model或者Ctrl+B快捷鍵即可生成C代碼和可執(zhí)行文件。

      2 浮點(diǎn)數(shù)模型和定點(diǎn)數(shù)模型

      2.1 浮點(diǎn)數(shù)模型

      Simulink建立的模型默認(rèn)情況下以double型變量定義,并且參數(shù)和信號(hào)都以結(jié)構(gòu)體形式生成代碼,這會(huì)使得參數(shù)和信號(hào)在調(diào)用時(shí)都產(chǎn)生冗長(zhǎng)的代碼,降低可讀性,并加重RAM的儲(chǔ)存和單片機(jī)的計(jì)算負(fù)擔(dān)。

      2.2 定點(diǎn)數(shù)模型

      Simulink定點(diǎn)軟件支持整型數(shù)和定點(diǎn)數(shù),它們之間的主要區(qū)別是小數(shù)點(diǎn)。在定點(diǎn)型硬件中,數(shù)據(jù)是以二進(jìn)制的形式進(jìn)行存儲(chǔ)。定點(diǎn)數(shù)和它們的數(shù)據(jù)類型以字長(zhǎng)、二進(jìn)制小數(shù)點(diǎn)、有符號(hào)還是無(wú)符號(hào)為特征。目前整車控制器使用的為Freescale的16位芯片,其支持的是定點(diǎn)型數(shù)據(jù),所以整車控制模型是以整數(shù)形式建模,但是其中的查表模塊(Lookup Table)因條件限制,其中的數(shù)據(jù)類型為single形式,隨著整車控制軟件功能的增加,其中的查表模塊使用的頻次增多,生成的代碼會(huì)加大對(duì)芯片內(nèi)存的占用,導(dǎo)致整車控制程序運(yùn)行效率降低。所以通過(guò)使用Fixed-Point工具,對(duì)查表模塊的數(shù)據(jù)進(jìn)行定點(diǎn)化(fixdt)處理。

      對(duì)整車控制模型中的油門控制算法進(jìn)行定點(diǎn)化:

      3 生成結(jié)果分析

      基于MATLAB/Simulink生成的浮點(diǎn)型代碼和定點(diǎn)化后生成的代碼數(shù)據(jù)如下:

      定點(diǎn)數(shù)是用整數(shù)表達(dá)的小數(shù),在單片機(jī)存儲(chǔ)上面的數(shù)據(jù)時(shí),是以整數(shù)來(lái)存儲(chǔ),如圖7所示,數(shù)據(jù)都為uint16_T類型,此數(shù)據(jù)類型在單片機(jī)中占用2個(gè)字節(jié),而如圖6所示,數(shù)據(jù)都為real32_T類型數(shù)據(jù),此數(shù)據(jù)類型在單片機(jī)內(nèi)存中占據(jù)4個(gè)字節(jié);如圖6所示,查表的浮點(diǎn)數(shù)據(jù)總共是22個(gè)數(shù)據(jù),定點(diǎn)化后是整數(shù)類型是33個(gè)數(shù)據(jù)。浮點(diǎn)型的存儲(chǔ)會(huì)占用的內(nèi)存是22*4=88個(gè)字節(jié);如果定點(diǎn)化后存儲(chǔ)數(shù)據(jù)占用的內(nèi)存是33*2=66個(gè)字節(jié)。

      而現(xiàn)在我們采用的是Freescale的16位單片機(jī)是定點(diǎn)處理器;這樣會(huì)大大的減少數(shù)據(jù)在單片機(jī)中存儲(chǔ)。

      在CodeWarrior編譯器的右下方顯示(2.000000MHZ),表示晶振是2MHz,晶振后面就是時(shí)間。由圖8和圖9對(duì)比,圖8顯示的運(yùn)行時(shí)間是1197,圖9顯示的運(yùn)行時(shí)間是2780,定點(diǎn)化后運(yùn)行同樣一個(gè)算法所使用的時(shí)間只占到了浮點(diǎn)模型運(yùn)行時(shí)間的一半不到。

      綜上所述,Simulink模型經(jīng)過(guò)定點(diǎn)化處理后,其代碼占用的內(nèi)存變小,程序運(yùn)行的時(shí)間也大大縮短,從而可以提高整車控制器整個(gè)程序的運(yùn)行效率和質(zhì)量。

      4 結(jié)束語(yǔ)

      本文介紹了MATLAB/Simulink的自動(dòng)代碼生成技術(shù),并著重介紹了浮點(diǎn)模型和定點(diǎn)模型生成代碼的區(qū)別。后期建立的Simulink模型可以朝定點(diǎn)數(shù)方向發(fā)展,進(jìn)一步高效的利用單片機(jī)的資源。

      參考文獻(xiàn)

      [1] 孫忠瀟,Simulink仿真及代碼生成技術(shù)入門到精通[M],北京:北京航空航天大學(xué)出版社,2015:350-374.

      [2] 劉杰,翁公羽,周宇博,基于模型的設(shè)計(jì)-MCU篇[M],北京,北京航空航天大學(xué)出版社,2011:458-465.

      猜你喜歡
      浮點(diǎn)定點(diǎn)
      例談圓錐曲線中的定點(diǎn)定值問(wèn)題
      LEO星座增強(qiáng)GNSS PPP模糊度浮點(diǎn)解與固定解性能評(píng)估
      定點(diǎn)幫扶讓村民過(guò)上美好生活
      解析幾何中定點(diǎn)問(wèn)題的處理策略
      直線過(guò)定點(diǎn)的5種特優(yōu)解法
      從一道模擬題談圓錐曲線的一類定點(diǎn)問(wèn)題
      圓錐曲線中的定點(diǎn)、定值問(wèn)題
      基于浮點(diǎn)DSP的鐵路FSK信號(hào)檢測(cè)
      基于FPGA的浮點(diǎn)FIR濾波器設(shè)計(jì)
      改進(jìn)的Goldschmidt雙精度浮點(diǎn)除法器
      马龙县| 涞源县| 赤城县| 嘉禾县| 大竹县| 泽州县| 信宜市| 侯马市| 岳西县| 嫩江县| 绩溪县| 鄄城县| 安图县| 新闻| 新昌县| 武陟县| 年辖:市辖区| 吉木乃县| 叙永县| 营山县| 炎陵县| 安丘市| 莲花县| 丰镇市| 化隆| 理塘县| 丰都县| 涿鹿县| 萍乡市| 嘉荫县| 沙雅县| 汉川市| 新乡县| 栾城县| 靖西县| 巨野县| 会泽县| 隆化县| 闸北区| 涪陵区| 揭西县|