0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于代碼生成中的數(shù)據(jù)管理的分析和研究

MATLAB ? 來(lái)源:djl ? 作者:董淑成 ? 2019-09-17 16:02 ? 次閱讀

請(qǐng)記得:

1. 拿正確的模型去生成代碼;
2. 只對(duì)你關(guān)心的數(shù)據(jù)進(jìn)行數(shù)據(jù)管理。

M數(shù)據(jù)對(duì)象的基本概念

在你的模型驗(yàn)證完成之后,就可以進(jìn)行代碼生成工作了,代碼生成階段最主要的工作就是數(shù)據(jù)管理。

前面我們說(shuō)過(guò),我們只管理我們關(guān)心的數(shù)據(jù),對(duì)于那些無(wú)關(guān)的數(shù)據(jù),就任由代碼生成工具怎么處理吧。

數(shù)據(jù)管理的方式有好幾種,我這里只介紹在工程化項(xiàng)目中被廣泛應(yīng)用的使用數(shù)據(jù)對(duì)象管理數(shù)據(jù)。這里的“數(shù)據(jù)對(duì)象”里面的“對(duì)象”二字和就是我們經(jīng)常聽(tīng)到的“面向?qū)ο蟆崩锩娴摹皩?duì)象”一樣。沒(méi)錯(cuò),說(shuō)白了,就是使用面向?qū)ο蟮姆绞饺ス芾頂?shù)據(jù)。

我們知道,在面向?qū)ο蟮?a target="_blank">編程模式下,有一個(gè)非常重要的概念——類。類是一種抽象,抽象出某一類事物共同具有的某些屬性以及相關(guān)的操作(面向?qū)ο罄锓Q之為“方法”)。面向?qū)ο竽J较?,還有一個(gè)概念——包,包會(huì)把相關(guān)的幾個(gè)類打包到一起,以便于管理。另外,就是對(duì)象,對(duì)象是類的實(shí)例,對(duì)象不再是抽象的,而是具體的,創(chuàng)建對(duì)象就是一個(gè)實(shí)例化過(guò)程。對(duì)象擁有類的所有屬性,同時(shí)要求我們給出屬性值。

Simulink在進(jìn)行數(shù)據(jù)管理的時(shí)候,提供了兩個(gè)包,一個(gè)是Simulink Package,另一個(gè)是mpt Package。下面以Simulink Package為例,介紹包、類以及屬性的結(jié)構(gòu)。

關(guān)于代碼生成中的數(shù)據(jù)管理的分析和研究


如圖示,Simulink包里有兩個(gè)類,一個(gè)是Signal,一個(gè)是Parameter。對(duì)于其中的每個(gè)類,都有各自的屬性和方法。

數(shù)據(jù)管理基本上就是管理事先定義好的各種屬性,其中,最為重要就是數(shù)據(jù)類型(Data Type)和存儲(chǔ)類(Storage Class)。數(shù)據(jù)類型相信大家都很熟悉,這里面稍微有些麻煩的是定點(diǎn)數(shù),以后我會(huì)專門(mén)介紹數(shù)據(jù)的定點(diǎn)化,這里就不做過(guò)多的討論;而存儲(chǔ)類,是影響數(shù)據(jù)存儲(chǔ)的重要因素。模型中的信號(hào),我們可能定義為全局變量,也可能定義為靜態(tài)變量;模型中的參數(shù),我們可以定義為常數(shù)型變量,也可以定義為宏定義;還有的數(shù)據(jù),在一個(gè)模塊中定義后,在其他模塊中就不能再次定義。所有這些,都是通過(guò)定義數(shù)據(jù)對(duì)象的存儲(chǔ)類來(lái)實(shí)現(xiàn)的。

M代碼生成示例

下面我通過(guò)一個(gè)簡(jiǎn)單例子來(lái)介紹一下數(shù)據(jù)管理過(guò)程,模型非常簡(jiǎn)單,輸出Out1等于兩個(gè)輸入信號(hào)In1和In2相加再乘以k。這個(gè)模型,我們的目標(biāo)代碼如下:

z = ( x + y ) * k ;

其中, x、y在其他模塊中定義,z和k在本模塊定義。

關(guān)于代碼生成中的數(shù)據(jù)管理的分析和研究

怎么做?

首先,設(shè)置代碼生成工具為Embedded Coder,也就是設(shè)置系統(tǒng)目標(biāo)文件(System Target File)為ert.tlc;

然后,數(shù)據(jù)管理:

使用信號(hào)對(duì)象管理信號(hào)

在信號(hào)線上定義信號(hào)名:鼠標(biāo)雙擊信號(hào)線,出現(xiàn)編輯框之后,寫(xiě)上信號(hào)的名字x、y、z;

在數(shù)據(jù)字典或者Base Workspace里定義同名的信號(hào)對(duì)象:在Model Explorer里面,選中數(shù)據(jù)字典的Design Data,或者Base Workspace,然后添加三個(gè)Simulink Signal,并命名為x、y、z,設(shè)置x、y的Storage Class為Imported Extern,z的Storage Class為Exported Global;

將信號(hào)對(duì)象和信號(hào)關(guān)聯(lián)起來(lái):在信號(hào)線上,使用鼠標(biāo)右鍵,選擇Properties,然后在Properties對(duì)話框里選中Signal name must resolve to Simulink signal object,關(guān)聯(lián)了信號(hào)對(duì)象的信號(hào)名前面會(huì)出現(xiàn)一個(gè)藍(lán)色的叉子。

說(shuō)明

鼠標(biāo)右鍵點(diǎn)擊信號(hào)線的方式只能對(duì)單個(gè)信號(hào)進(jìn)行關(guān)聯(lián),如果想批量關(guān)聯(lián),可以在MATLAB窗口中使用如下命令:disableimplicitsignalresolution(‘mymodel’),假如模型文件的文件名是mymodel.slx或者mymodel.mdl。

使用參數(shù)對(duì)象管理參數(shù)

定義參數(shù):雙擊Gain模塊,賦值為k;

定義參數(shù)對(duì)象:在Model Explorer界面下,選中數(shù)據(jù)字典或者Base Workspace,定義Simulink Parameter對(duì)象k,給出k的初始值為2,設(shè)置Storage Class為constVolatile;

Inline參數(shù):在配置參數(shù)(Configuration Parameters)的優(yōu)化選項(xiàng)(Optimization)里設(shè)置的信號(hào)和參數(shù)(Signals and Parameters)設(shè)置參數(shù)的inline選項(xiàng)。

然后,就可以按下Ctrl+B生成代碼了。經(jīng)過(guò)上述設(shè)置之后,我們?nèi)缭傅玫搅宋覀兤谕拇a:

z = ( x + y ) * k ;

其中x、y為外部模塊定義好的全局變量,本模塊內(nèi)只做了Extern聲明,沒(méi)有定義,z為全局變量,定義在本模塊,k為加了限定詞const和volatile的參數(shù)。

說(shuō)明

MATLAB從R2014b開(kāi)始提供了數(shù)據(jù)字典功能,將數(shù)據(jù)對(duì)象通過(guò)獨(dú)立的文件進(jìn)行管理。如果使用數(shù)據(jù)字典管理數(shù)據(jù)的話,數(shù)據(jù)對(duì)象需要定義在數(shù)據(jù)字典里面,并且還要有一個(gè)將數(shù)據(jù)字典和模型關(guān)聯(lián)的過(guò)程,如果使用Base Workspace管理數(shù)據(jù),和以前版本的MATLAB沒(méi)有區(qū)別。

上面是一個(gè)簡(jiǎn)單的例子,更多的代碼生成相關(guān)的設(shè)置,可以留意MATLAB公眾號(hào)中柚籽的系列文章《怎樣生成我想要的C代碼》(也可以在公眾號(hào)中回復(fù)【柚籽】查看),也可以在今天的第二條圖文中觀看我錄制的代碼生成視頻。

最后,讓我再次重復(fù):拿正確的模型去生成代碼只對(duì)你關(guān)心的數(shù)據(jù)進(jìn)行數(shù)據(jù)管理

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SOLIDWORKS 2025數(shù)據(jù)管理新增功能

    隨著SOLIDWORKS 2025的發(fā)布,這款旗艦軟件在數(shù)據(jù)管理領(lǐng)域?qū)崿F(xiàn)了重大突破,為用戶帶來(lái)了更有效、更智能的設(shè)計(jì)體驗(yàn)。
    的頭像 發(fā)表于 10-16 15:03 ?124次閱讀

    SOLIDWORKS 2025:更有效的協(xié)作和數(shù)據(jù)管理

    在當(dāng)今快速變化的商業(yè)環(huán)境,有效的協(xié)作和數(shù)據(jù)管理已成為企業(yè)成功的關(guān)鍵。作為CAD領(lǐng)域的領(lǐng)軍者,SOLIDWORKS始終致力于為用戶提供優(yōu)越的三維設(shè)計(jì)與工程解決方案。隨著SOLIDWORKS?2025的發(fā)布,這款旗艦軟件在協(xié)作和數(shù)據(jù)管理
    的頭像 發(fā)表于 10-08 16:52 ?156次閱讀

    數(shù)據(jù)無(wú)界,管理有道:圖為技術(shù)T-Plant OS的數(shù)據(jù)管理之道

    在工廠全生命周期的管理,數(shù)據(jù)作為貫穿始終的核心資產(chǎn),高效且精準(zhǔn)的數(shù)據(jù)管理,不僅能優(yōu)化工廠運(yùn)營(yíng)流程、提升生產(chǎn)效率,還能激發(fā)企業(yè)內(nèi)在創(chuàng)新潛能、強(qiáng)化市場(chǎng)競(jìng)爭(zhēng)優(yōu)勢(shì)。雖然隨著計(jì)算機(jī)性能和大容量
    的頭像 發(fā)表于 07-16 14:54 ?194次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>無(wú)界,<b class='flag-5'>管理</b>有道:圖為技術(shù)T-Plant OS的<b class='flag-5'>數(shù)據(jù)管理</b>之道

    工業(yè)設(shè)備數(shù)據(jù)管理的關(guān)鍵要素

    在這個(gè)信息爆炸的時(shí)代,設(shè)備數(shù)據(jù)管理已成為企業(yè)運(yùn)營(yíng)的核心環(huán)節(jié)之一。它不僅是信息技術(shù)的基石,更是企業(yè)發(fā)展的重要保障。設(shè)備數(shù)據(jù)管理是指通過(guò)一系列技術(shù)手段和管理措施,對(duì)各類設(shè)備產(chǎn)生的海量數(shù)據(jù)進(jìn)
    的頭像 發(fā)表于 07-15 15:41 ?195次閱讀
    工業(yè)設(shè)備<b class='flag-5'>數(shù)據(jù)管理</b>的關(guān)鍵要素

    鴻蒙開(kāi)發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedData (分布式數(shù)據(jù)管理)】

    分布式數(shù)據(jù)管理為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)庫(kù)的分布式協(xié)同能力。通過(guò)調(diào)用分布式數(shù)據(jù)各個(gè)接口,應(yīng)用程序可將數(shù)據(jù)保存到分布式數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 06-07 09:30 ?805次閱讀
    鴻蒙開(kāi)發(fā)接口<b class='flag-5'>數(shù)據(jù)管理</b>:【@ohos.data.distributedData (分布式<b class='flag-5'>數(shù)據(jù)管理</b>)】

    食品檢測(cè)LIMS如何實(shí)現(xiàn)數(shù)據(jù)管理

    LIMS系統(tǒng)通過(guò)數(shù)據(jù)采集、處理與分析、存儲(chǔ)與管理、安全與保密、共享與協(xié)作、質(zhì)量控制以及報(bào)告生成等多個(gè)方面的功能實(shí)現(xiàn)數(shù)據(jù)管理,為食品檢測(cè)實(shí)驗(yàn)室
    的頭像 發(fā)表于 05-29 13:47 ?472次閱讀

    HarmonyOS開(kāi)發(fā)實(shí)例:【分布式數(shù)據(jù)管理

    eTS中分布式數(shù)據(jù)管理的使用,包括KVManager對(duì)象實(shí)例的創(chuàng)建和KVStore數(shù)據(jù)流轉(zhuǎn)的使用。
    的頭像 發(fā)表于 04-11 09:57 ?848次閱讀
    HarmonyOS開(kāi)發(fā)實(shí)例:【分布式<b class='flag-5'>數(shù)據(jù)管理</b>】

    廣立微和坤銳電子在良率數(shù)據(jù)管理分析業(yè)務(wù)領(lǐng)域達(dá)成合作

    近日,半導(dǎo)體數(shù)據(jù)分析領(lǐng)域的佼佼者廣立微(Semitronix)與RFID硬件解決方案的領(lǐng)先企業(yè)上海坤銳電子(Quanray)達(dá)成戰(zhàn)略合作。此次合作旨在良率數(shù)據(jù)管理分析領(lǐng)域,共同推動(dòng)半導(dǎo)體行業(yè)的技術(shù)進(jìn)步和效率提升。
    的頭像 發(fā)表于 03-12 11:30 ?812次閱讀

    安達(dá)發(fā)APS排產(chǎn)軟件之PDM產(chǎn)品工藝數(shù)據(jù)管理

    PDM(Product Data Management,產(chǎn)品數(shù)據(jù)管理)是一種用于管理產(chǎn)品全生命周期內(nèi)所有與產(chǎn)品相關(guān)的信息和數(shù)據(jù)的技術(shù)。在制造業(yè),PDM系統(tǒng)被廣泛應(yīng)用于產(chǎn)品工藝
    的頭像 發(fā)表于 01-08 16:00 ?350次閱讀
    安達(dá)發(fā)APS排產(chǎn)軟件之PDM產(chǎn)品工藝<b class='flag-5'>數(shù)據(jù)管理</b>

    如何通過(guò)能源數(shù)據(jù)管理挖掘智慧樓宇的節(jié)能空間

    性能的同時(shí)優(yōu)化能耗,對(duì)此我們需要了解建筑內(nèi)各種能源的使用結(jié)構(gòu)、使用時(shí)間等信息。對(duì)此,物通博聯(lián)提供智慧樓宇的能源數(shù)據(jù)管理系統(tǒng),實(shí)現(xiàn)樓宇內(nèi)各種能源的數(shù)據(jù)采集與可視化監(jiān)控,并建立能源全面數(shù)據(jù)視圖,幫助確定可以挖掘
    的頭像 發(fā)表于 12-23 15:55 ?689次閱讀
    如何通過(guò)能源<b class='flag-5'>數(shù)據(jù)管理</b>挖掘智慧樓宇的節(jié)能空間

    下一代無(wú)線網(wǎng)絡(luò)基于區(qū)塊鏈的透明數(shù)據(jù)管理

    由于數(shù)據(jù)利益相關(guān)者之間缺乏相互信任,因此數(shù)據(jù)管理過(guò)程應(yīng)該是透明且可驗(yàn)證的。數(shù)據(jù)擁有者應(yīng)該知道執(zhí)行在他們數(shù)據(jù)上的任何操作。出于管理的目的,參與
    的頭像 發(fā)表于 12-13 16:14 ?543次閱讀
    下一代無(wú)線網(wǎng)絡(luò)<b class='flag-5'>中</b>基于區(qū)塊鏈的透明<b class='flag-5'>數(shù)據(jù)管理</b>

    可視化數(shù)據(jù)管理平臺(tái)的主要功能有哪些?#可視化 #電路知識(shí)

    數(shù)據(jù)管理
    光點(diǎn)科技
    發(fā)布于 :2023年12月04日 17:32:09

    可視化數(shù)據(jù)管理平臺(tái)有哪些常見(jiàn)的功能模塊?#數(shù)據(jù)管理平臺(tái) #光點(diǎn)科技

    數(shù)據(jù)管理可視化
    光點(diǎn)科技
    發(fā)布于 :2023年12月01日 09:42:31

    HarmonyOS數(shù)據(jù)管理與應(yīng)用數(shù)據(jù)持久化(一)

    一. 數(shù)據(jù)管理概述 功能介紹 數(shù)據(jù)管理為開(kāi)發(fā)者提供數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)管理能力,比如聯(lián)系人應(yīng)用數(shù)據(jù)可以保存到數(shù)
    發(fā)表于 11-01 16:27