C代碼中經(jīng)常會(huì)寫到數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的語(yǔ)句,那么,
在Simulink模型里如何表達(dá)?
又如何配置,才能生成強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換代碼?
點(diǎn)擊末尾的 “閱讀原文” 下載本文的案例模型
數(shù)據(jù)類型轉(zhuǎn)換
要得到:
y1 = (double)u1;
怎么做:
Simulink模型里有三種建模元素:Simulink框圖、Stateflow流程圖以及MATLAB Function模塊里的m腳本。
在Simulink框圖模型里使用Data Type Conversion模塊來(lái)實(shí)現(xiàn)強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換;在后兩種則使用強(qiáng)制類型轉(zhuǎn)換語(yǔ)句:out1 = double(in1)。
實(shí)例三
1. 建一個(gè)簡(jiǎn)單的Simulink模型

雙擊上圖中Data Type Conversion模塊設(shè)置輸出數(shù)據(jù)類型為double。MATLAB Function以及Chart里的內(nèi)容如下圖:

2. 代碼生成基本配置
求解器:定步長(zhǎng)—離散求解器
系統(tǒng)目標(biāo)文件:ert.tlc
3. 新建數(shù)據(jù)對(duì)象
打開(kāi)Model Explorer,點(diǎn)擊菜單的Add,在Base Workspace里定義輸入輸出信號(hào)的數(shù)據(jù)對(duì)象,如圖設(shè)置輸入為single類型,輸出為dobule類型:

4. 信號(hào)關(guān)聯(lián)
在信號(hào)線上右鍵,將信號(hào)與Base Workspace的數(shù)據(jù)對(duì)象關(guān)聯(lián)在一起。鼠標(biāo)操作的方式,可以參考之前的帖子里的菜單截圖。因?yàn)檫@里的信號(hào)略多,所以可以使用命令的方式來(lái)實(shí)現(xiàn):

此時(shí),第一張模型截圖中信號(hào)名前方的藍(lán)色小叉子就會(huì)出現(xiàn)。
5. 生成代碼
Ctrl+B,生成代碼。
如前面所設(shè)置的,輸入為real32,輸出為real類型:

但此時(shí)從上圖可以看到,由于是single轉(zhuǎn)double,隱式轉(zhuǎn)換,并沒(méi)有想要的顯示轉(zhuǎn)換的代碼。
在代碼配置頁(yè)面里,配置代碼風(fēng)格,Casting modes為Standards,符合MISRA的風(fēng)格:Generate code that casts data types to conform to MISRAstandards

再次生成代碼,得到如圖:

總結(jié)
所以說(shuō),在Simulink框圖模型里使用Data Type Conversion模塊來(lái)實(shí)現(xiàn)強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換;在后兩種則使用強(qiáng)制類型轉(zhuǎn)換語(yǔ)句:out1 = double(in1)。
Tips:可以使用Model Advisor ,來(lái)檢查模型的配置,以便生成的代碼符合MISRA C的風(fēng)格。
其它:保持y1信號(hào)名不變,數(shù)據(jù)類型設(shè)置為整形,并相應(yīng)的設(shè)置Data Type Convers輸出為整形。生成代碼,會(huì)看到比較有意思的錯(cuò)誤提示。
-
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
74001 -
數(shù)據(jù)類型
+關(guān)注
關(guān)注
0文章
237瀏覽量
14190
發(fā)布評(píng)論請(qǐng)先 登錄
PyTorch 中RuntimeError分析
基于凌羽派的OpenHarmony北向應(yīng)用開(kāi)發(fā):ArkTS語(yǔ)法-數(shù)據(jù)類型和變量聲明
睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(十五):數(shù)據(jù)類型詳解
嵌入式中的浮點(diǎn)型數(shù)據(jù)轉(zhuǎn)換為字節(jié)類型的三種方法
LabVIEW 變體:萬(wàn)能數(shù)據(jù)容器的藝術(shù)
C語(yǔ)言主要特點(diǎn)
請(qǐng)問(wèn)如何實(shí)現(xiàn)C語(yǔ)言訪問(wèn)MCU寄存器?
枚舉類型的講解
電能質(zhì)量在線監(jiān)測(cè)裝置的監(jiān)測(cè)數(shù)據(jù)如何存儲(chǔ)和分析?
C語(yǔ)言自動(dòng)類型轉(zhuǎn)換
C語(yǔ)言強(qiáng)制類型轉(zhuǎn)換
匯編程序段的定義介紹
SQL 通用數(shù)據(jù)類型
IEC101協(xié)議可以傳輸什么類型的數(shù)據(jù)
詳解Prometheus的數(shù)據(jù)類型
關(guān)于數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的分析和應(yīng)用
評(píng)論