chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

MATLAB ? 來源:djl ? 作者:董淑成 ? 2019-09-12 09:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

結(jié)構(gòu)體變量建模之終極解決方案—上篇中提到:

C 代碼中的結(jié)構(gòu)體變量跟模型中的 Bus 信號是對應(yīng)的;

C 代碼中的結(jié)構(gòu)體類型跟模型中的 Bus 對象相對應(yīng)。

下面我們來看看結(jié)構(gòu)體數(shù)組。

三. 結(jié)構(gòu)體數(shù)組的代碼實(shí)現(xiàn)

從前面結(jié)構(gòu)體變量和結(jié)構(gòu)體嵌套的兩個例子,我們也可以很清楚的體會到這兩點(diǎn)。所以,結(jié)構(gòu)體數(shù)組,對應(yīng)到模型中,自然也就是多維的 Bus 信號了。

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

對圖中 Inport 端口的 Data type 設(shè)置為 Bus: myBus,Port dimensions 設(shè)置為 2;數(shù)據(jù)字典中和信號 x 對應(yīng)的信號對象 x 做同樣的設(shè)置,即 Datatype為Bus: myBus,Dimensions 為2。Selector 模塊分別選中兩維信號的第一維和第二維。兩組信號經(jīng)過運(yùn)算之后,再次通過 Bus Creator 模塊組合成 Bus 信號,再把兩路 Bus 信號使用 Vector Concatenate 模塊連成維數(shù)為 2 的 Bus 信號 y。

信號對象 x、y 除了數(shù)據(jù)類型設(shè)置為 Bus: myBus 之外,Storage Class 均設(shè)置為 ExportedGlobal。

由此,就有了如下結(jié)構(gòu)體類型的定義:

typedefstruct

{

real_T a;

real_Tb;

real_T c;

} myBus;

和結(jié)構(gòu)體數(shù)組的定義:

myBus x[2];

myBus y[2];

或許你已經(jīng)注意到幾個增益模塊的參數(shù)值被設(shè)置為 k.a,k.b,k.c,沒錯,既然 myBus 作為結(jié)構(gòu)體類型是一種組合數(shù)據(jù)類型,同樣也可以使用這個 myBus 設(shè)置參數(shù) k 的數(shù)據(jù)類型,只是,一旦參數(shù)對象 k 的數(shù)據(jù)類型被設(shè)置為 myBus,那么參數(shù)的初始化就不像以前那么簡單的。本例設(shè)置如下:

k.Value = struct(‘a(chǎn)’,2, ‘b’,3, ‘c’,4);

如果參數(shù)k的存儲類設(shè)置為 ConstVolatile,那么代碼中參數(shù) k 的定義如下:

const volatilemyBus k =

{

2.0,

3.0,

4.0

};

四. For-Each和結(jié)構(gòu)體數(shù)組的結(jié)合

上例中 Bus 信號的維數(shù)為 2,所以我們很輕松的使用了 Selector 模塊,把兩維數(shù)據(jù)分別取出來實(shí)現(xiàn)后續(xù)算法,而現(xiàn)實(shí)中,我們可能面臨幾十甚至上百維的 Bus 信號,而后續(xù)的處理算法,對于每一維來講都是一致的,這種情況下怎么辦?我們可以想象得見,代碼中是可以通過一個 For 循環(huán)去實(shí)現(xiàn)的,模型當(dāng)然也可以,這就是 For-Each 子系統(tǒng)。

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

雙擊上圖中的 For-Each 子系統(tǒng),得到下圖:

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

這個模型中 Inport 和 x、y 信號對象的 Dimensions 為 100。生成代碼之后,除了 x、y 兩個結(jié)構(gòu)體數(shù)組的維數(shù)變成 100 之外,算法中有如下代碼:

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

結(jié)合 For-Each 模塊,讓我們的結(jié)構(gòu)體數(shù)組建模更為方便。本想就此結(jié)束本篇,想到還會有人惦記另外一些結(jié)構(gòu)體相關(guān)的話題,就再說一說:

五.位域結(jié)構(gòu)體的代碼實(shí)現(xiàn)

Simulink 參數(shù)對象和信號對象的存儲類(Storage Class)里面都有 BitField (Custom) 選項(xiàng),必須要說明的是,如果你的數(shù)據(jù)類型設(shè)置為 boolean,并且存儲類選擇為 BitField,是可以生成位域結(jié)構(gòu)體變量的,只是,正如上一篇微文有網(wǎng)友留言所說,這樣做沒法指定結(jié)構(gòu)體元素的順序,當(dāng)然也沒有 Bus 與之對應(yīng)。

如果我們想得到我們期望的結(jié)構(gòu)體變量,比如:

typedef struct

{

unsigned char a:1;

unsigned char a1:1 ;

unsigned char a2:1;

unsigned char a3:1;

unsigned char a4:1;

unsigned char a5:1;

unsigned char a6:2;

}myBitFieldBus;

或者:此結(jié)構(gòu)體類型中,前 6 個元素各占 1 個 bit,而第 7 個元素占 2 個 bit。模型如下:

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

顯然,Inport 端口的數(shù)據(jù)類型應(yīng)該為 myBitFieldBus,信號對象 input 也一樣。

數(shù)據(jù)字典中定義了 myBitFieldBus 如下:

關(guān)于結(jié)構(gòu)體變量建模的分析和解讀

不難看出:

myBitFieldBus 內(nèi)的元素 a,a1,a2,a3,a4,a5,均為 boolean 類型,a6 為 uint8;

Bus 對象 myBitFieldBus 的 Data scope 為 Imported,并且定義在頭文件。

mybitfieldstruct.h 文件中,也就是說,結(jié)構(gòu)體類型 myBitFieldBus 不在這個模塊中定義,為了能夠生成代碼,需要提供 mybitfieldstruct.h 文件。

做完上述設(shè)置之后,生成代碼,如下:

typedef struct

{

boolean_T Out1;

boolean_T Out2;

boolean_T Out3;

boolean_T Out4;

boolean_T Out5;

boolean_T Out6;

unit8_TOut7;

}ExtY_bitfieldstruct_T;

myBitFieldBus input;

xtY_bitfieldstruct_T bitfieldstruct_Y;

void bitfieldstruct_step(void)

{

bitfieldstruct_Y.Out1 = input.a;

bitfieldstruct_Y.Out1 = input.a1;

bitfieldstruct_Y.Out1 = input.a2;

bitfieldstruct_Y.Out1 = input.a3;

bitfieldstruct_Y.Out1 = input.a4;

bitfieldstruct_Y.Out1 = input.a5;

bitfieldstruct_Y.Out1 = input.a6;

}

還要什么?指向結(jié)構(gòu)體變量的指針?那就把前面幾個例子里的 x、y、input 等信號對象的存儲類設(shè)置為 ImportedExternPointer 就可以了,沒什么特別的。

最后:

C 代碼中的結(jié)構(gòu)體變量跟模型中的 Bus 信號是對應(yīng)的;

C 代碼中的結(jié)構(gòu)體類型跟模型中的 Bus 對象相對應(yīng)。

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

    關(guān)注

    8

    文章

    7292

    瀏覽量

    93411
  • 結(jié)構(gòu)體
    +關(guān)注

    關(guān)注

    1

    文章

    131

    瀏覽量

    11248
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    定義IO初始化結(jié)構(gòu)

    由上述IOPORT相關(guān)功能的枚舉類型我們可以知道,在對IOPORT模塊進(jìn)行初始化時需要根據(jù)情況配置它們。因此我們定義一個IOPORT初始化的結(jié)構(gòu)類型IOPORT_Init_t,它的成員包括了由上述所有枚舉類型所聲明的變量,因此
    的頭像 發(fā)表于 07-16 16:26 ?958次閱讀

    TechWiz LCD 2D應(yīng)用:不同結(jié)構(gòu)下的VT曲線

    我們可以在TechWiz LCD 2D軟件中調(diào)整電極的寬度,錐度,厚度和位置。 1. 案例結(jié)構(gòu) 2. 建模過程 2.1在TechWiz LCD 2D中創(chuàng)建結(jié)構(gòu) 2.2將com電極兩個掩膜的寬度均
    發(fā)表于 06-13 08:44

    Techwiz LCD 2D應(yīng)用:二維LC透鏡建模分析

    Techwiz LCD 2D新的Lens掩膜結(jié)構(gòu) 1. 摘要 Techwiz LCD 2D新增Lens掩膜結(jié)構(gòu),可以方便快捷的對LC 透鏡進(jìn)行建模分析。LC透鏡由于體積小、焦距可變等優(yōu)
    發(fā)表于 05-30 08:47

    VirtualLab應(yīng)用:亞波長結(jié)構(gòu)偏振光柵的深入分析

    性和熱穩(wěn)定性是至關(guān)重要的,該方法比傳統(tǒng)的基于雙折射晶體或多層系統(tǒng)的方法具有明顯的優(yōu)勢。 在本周的時事通訊中,我們對快速物理光學(xué)建模和設(shè)計(jì)軟件虛擬實(shí)驗(yàn)室融合中的這種結(jié)構(gòu)進(jìn)行了詳細(xì)的分析,使用了文獻(xiàn)[J.
    發(fā)表于 05-26 08:45

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》重點(diǎn)闡述了三大方向內(nèi)容: 1. C語言學(xué)習(xí)中的痛點(diǎn):針對當(dāng)前工程師在C語言學(xué)習(xí)中的痛點(diǎn),如指針函數(shù)與函數(shù)指針,如何靈活應(yīng)用結(jié)構(gòu)等。從變量的三要素(
    發(fā)表于 05-13 16:45

    VirtualLab Fusion應(yīng)用:亞波長結(jié)構(gòu)偏振光柵的深入分析

    性和熱穩(wěn)定性是至關(guān)重要的,該方法比傳統(tǒng)的基于雙折射晶體或多層系統(tǒng)的方法具有明顯的優(yōu)勢。在本周的時事通訊中,我們對快速物理光學(xué)建模和設(shè)計(jì)軟件虛擬實(shí)驗(yàn)室融合中的這種結(jié)構(gòu)進(jìn)行了詳細(xì)的分析,使用了文獻(xiàn)[J.
    發(fā)表于 04-28 10:09

    Adams多動力學(xué)仿真解決方案全面解析

    Adams/Controls機(jī)電液控系統(tǒng)聯(lián)合仿真機(jī)器人、航空航天 Adams/Flex柔性動力學(xué)分析輕量化結(jié)構(gòu)設(shè)計(jì) Adams/View參數(shù)化建模與可視化前處理概念設(shè)計(jì)階段驗(yàn)證 三
    發(fā)表于 04-17 17:24

    TechWiz LCD 2D應(yīng)用:不同結(jié)構(gòu)下的VT曲線

    我們可以在TechWiz LCD 2D軟件中調(diào)整電極的寬度,錐度,厚度和位置。 1. 案例結(jié)構(gòu) 2. 建模過程 2.1在TechWiz LCD 2D中創(chuàng)建結(jié)構(gòu) 2.2將com電極兩個掩膜的寬度均
    發(fā)表于 02-06 10:18

    VirtualLab:系統(tǒng)建模分析

    ,系統(tǒng)建模分析器。本文檔介紹該工具的使用方法。 系統(tǒng)建模分析器 如何運(yùn)行建模分析器 系統(tǒng)
    發(fā)表于 01-14 09:45

    VirtualLab Fusion:系統(tǒng)建模分析

    ,系統(tǒng)建模分析器。本文檔介紹該工具的使用方法 系統(tǒng)建模分析器 如何運(yùn)行建模分析器 系統(tǒng)
    發(fā)表于 01-04 08:45

    仿真分析誤差來源及減少建模誤差的方法

    一、建模誤差 建模誤差是仿真分析中最常見的誤差來源之一。它主要源于物理系統(tǒng)與其數(shù)學(xué)模型之間的差異。在建模過程中,為了簡化計(jì)算,往往會對實(shí)際物理系統(tǒng)進(jìn)行一定的抽象和假設(shè),如忽略小洞和其他
    的頭像 發(fā)表于 12-24 09:52 ?2305次閱讀
    仿真<b class='flag-5'>分析</b>誤差來源及減少<b class='flag-5'>建模</b>誤差的方法

    VirtualLab:系統(tǒng)建模分析

    ,系統(tǒng)建模分析器。本文檔介紹該工具的使用方法。 系統(tǒng)建模分析器 如何運(yùn)行建模分析器 系統(tǒng)
    發(fā)表于 12-19 12:36

    VirtualLab Fusion應(yīng)用:用于抑制高衍射級次的角濾波光柵

    ,以抑制不需要的高衍射階數(shù)。為此,首先分析光柵的角度靈敏度。 最后,通過使用 VirtualLab Fusion 進(jìn)行仿真,顯示了對不期望的高衍射級次的抑制效果。 建模任務(wù) volume
    發(fā)表于 12-09 12:51

    結(jié)構(gòu)成員的順序會影響結(jié)構(gòu)的大小嗎

    相同的結(jié)構(gòu)成員,如果把順序調(diào)整一下,會不會影響結(jié)構(gòu)的大?。?答案是會的,這主要跟字節(jié)對齊有關(guān)。 比如這樣的結(jié)構(gòu)
    的頭像 發(fā)表于 11-25 16:24 ?752次閱讀

    電流模式轉(zhuǎn)換器的建模、分析和補(bǔ)償

    電子發(fā)燒友網(wǎng)站提供《電流模式轉(zhuǎn)換器的建模、分析和補(bǔ)償.pdf》資料免費(fèi)下載
    發(fā)表于 10-23 09:31 ?0次下載
    電流模式轉(zhuǎn)換器的<b class='flag-5'>建模</b>、<b class='flag-5'>分析</b>和補(bǔ)償