



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、代碼生成中的數據管理2016-08-03 董淑成數據對象的基本概念在你的模型驗證完成之后,就可以進行代碼生成工作了,代碼生成階段最主要的工作就是數據管理。前面我們說過,我們只管理我們關心的數據,對于那些無關的數據,就任由代碼生成工具怎么處理吧。數據管理的方式有好幾種,我這里只介紹在工程化項目中被廣泛應用的使用數據對象管理數據。這里的“數據對象”里面的“對象”二字和就是我們經常聽到的“面向對象”里面的“對象”一樣。沒錯,說白了,就是使用面向對象的方式去管理數據。我們知道,在面向對象的編程模式下,有一個非常重要的概念類,類是一種抽象,抽象出某一類事物共同具有的某些屬性以及相關的操作(面
2、向對象里稱之為“方法”)。面向對象模式下,還有一個概念包,包會把相關的幾個類打包到一起,以便于管理。另外,就是對象,對象是類的實例,對象不再是抽象的,而是具體的,創(chuàng)建對象就是一個實例化過程。對象擁有類的所有屬性,同時要求我們給出屬性值。Simulink在進行數據管理的時候,提供了兩個包,一個是Simulink Package,另一個是mpt Package。下面以Simulink Package為例,介紹包、類以及屬性的結構。如圖示,Simulink包里有兩個類,一個是Signal,一個是Parameter。對于其中的每個類,都有各自的屬性和方法。數據管理基本上就是管理事先定義好的各種屬性,其
3、中,最為重要就是數據類型(DataType)和存儲類(Storage Class)。數據類型相信大家都很熟悉,這里面稍微有些麻煩的是定點數,以后我會專門介紹數據的定點化,這里就不做過多的討論;而存儲類,是影響數據存儲的重要因素。模型中的信號,我們可能定義為全局變量,也可能定義為靜態(tài)變量;模型中的參數,我們可以定義為常數型變量,也可以定義為宏定義;還有的數據,在一個模塊中定義后,在其他模塊中就不能再次定義。所有這些,都是通過定義數據對象的存儲類來實現的。代碼生成事例下面我通過一個簡單例子來介紹一下數據管理過程,模型非常簡單,輸出Out1等于兩個輸入信號In1和In2相加再乘以k,這個模型,我們的
4、目標代碼如下:z = (x+y)*k;其中, x、y在其他模塊中定義,z和k在本模塊定義。怎么做?首先,設置代碼生成工具為Embedded Coder,也就是設置系統(tǒng)目標文件(System Target File)為ert.tlc;然后,數據管理:使用信號對象管理信號1. 在信號線上定義信號名,鼠標雙擊信號線,出現編輯框之后,寫上信號的名字x、y、z;2. 在數據字典或者base workspace里定義同名的信號對象,在ModelExplorer里面,選中數據字典的Design Data,或者base workspace,然后添加三個SimulinkSignal,并命名為x、y、z,設置x、
5、y的Storage Class為ImportedExtern,z的Storage Class為Exported Global;3. 將信號對象和信號關聯起來,在信號線上,使用鼠標右鍵,選擇Properties,然后在Properties對話框里選中Signal name must resolve to Simulink signal object,關聯了信號對象的信號名前面會出現一個藍色的叉子。說明鼠標右鍵點擊信號線的方式只能對單個信號進行關聯,如果想批量關聯,可以在MATLAB窗口中使用如下命令:disableimplicitsignalresolution(mymodel),假如模型文件的
6、文件名是mymodel.slx或者mymodel.mdl。使用參數對象管理參數1. 定義參數,雙擊Gain模塊,賦值為k;2. 定義參數對象,在ModelExplorer界面下,選中數據字典或者base workspace,定義Simulink Parameter對象k,給出k的初始值為2,設置StorageClass為constVolatile;3. Inline參數,在配置參數(Configuration Parameters)的優(yōu)化選項(Optimization)里設置的信號和參數(Signals and Parameters)設置參數的inline選項。然后,就可以按下Ctrl+B生成代碼了。經過上述設置之后,我們如愿得到了我們期望的代碼: z = (x+y)*k;其中x、y為外部模塊定義好的全局變量,本模塊內只做了Extern聲明,沒有定義,z為全局變量,定義在本模塊,k為加了限定詞const和volatile的參數。說明MATLAB 從R2014b開始提供了數據字典功能,數據字典將數據對象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物料箱車行業(yè)深度研究報告
- 2025年度調味品品牌形象設計與宣傳推廣合同
- 房屋 補充合同范本
- 鄄城租房合同范本
- 2025年度防盜門行業(yè)人才培養(yǎng)與引進合同
- 2025山地租賃協議范本(山地風力發(fā)電項目)4篇
- 第18課 冷戰(zhàn)與國際格局的演變 教學設計-2023-2024學年高一下學期統(tǒng)編版(2019)必修中外歷史綱要下
- 2025年商品房退房協議(包含裝修費用退還)4篇
- 苯磺酸的行業(yè)深度研究報告
- 2025年聚四氟乙稀生料帶項目投資可行性研究分析報告
- 2024年江蘇省衛(wèi)生健康委員會所屬事業(yè)單位招聘筆試真題
- 廉潔知識培訓課件
- 小學二年級有余數的除法口算題(共300題)
- 高職院校高水平現代物流管理專業(yè)群建設方案(現代物流管理專業(yè)群)
- 2024專升本英語答題卡浙江省
- (完整版)50028-城鎮(zhèn)燃氣設計規(guī)范
- 土石壩設計畢業(yè)設計
- 一季責任制整體護理持續(xù)改進實例
- 清華抬頭信紙
- 原發(fā)性肺癌手術臨床路徑(最全版)
- 最新工程招投標實訓課程標準教案
評論
0/150
提交評論