在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于結構體變量建模的介紹和原理

MATLAB ? 來源:djl ? 2019-09-12 09:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

鑒于有不少模型開發工程師缺乏 C 語言的基本概念,我這里大致說一下 C 代碼中的結構體。

首先我們需要知道有結構體類型和結構體變量。

結構體類型在 C 語言中的定義如下:

struct mystruct_T

{

uint8 a;

int16 b;

uint16 c;

};

這里 mystruct_T 就是結構體類型。結構體類型是一種組合數據類型,不同于數組,結構體的元素是可以有不同數據類型的,上面的例子中 a、b、c 的數據類型各不相同。

我們可以像使用基本數據類型一樣使用結構體類型去定義變量,使用結構體類型定義的變量是結構體變量,比如:

mystruct_T mystruct_var;

那么mystruct_var就是一個結構體變量,可以通過如下結構體變量右側加點來訪問結構體變量中的元素,比如:

mystruct_var.a = 30;

或者:

tmp = mystruct_var.c;

這樣,我們就有了結構體類型 mystruct_T 和結構體變量 mystruct_var。

我們做一個假設,如果上述結構體里面的元素 c 不是一個單個元素,而是一個結構體變量,情況將會怎么樣?比如:

struct mystruct_T

{

uint8 a;

int16 b;

substruct_T c;

};

結構體里面還套著一個結構體,于是我們就有了結構體嵌套。

我們在 C 語言中定義變量的時候,可以定義單個變量,也可以定義一個數組,比如:

int8 x[10];

結構體類型同樣也可以用于定義結構體數組,比如

mystruct_T mystruct_array[10]

這樣,我們就有了結構體數組。

下面我們一起看看如何在模型里建模或者配置,讓生成的 C 代碼里出現結構體變量、結構體嵌套和結構體數組。

開始介紹之前,請大家記住兩點:

C 代碼中的結構體變量跟模型中的 Bus 信號相對應

C 代碼中的結構體類型跟模型中的 Bus 對象相對應

一. 結構體變量的代碼實現

有模型如下:

關于結構體變量建模的介紹和原理

數據字典中有 Bus對象 myBus 定義如下:

關于結構體變量建模的介紹和原理

將 Inport 端口的數據類型設置為 myBus,Inport 的外觀發生變化,變成環形。為控制結構體變量的變量名如我們所期望,在信號線上設置信號名 x、y。然后在數據字典中分別定義信號對象 x、y。將 x、y 的數據類型設置為 myBus,如下圖:

關于結構體變量建模的介紹和原理

當然,x、y 的存儲類設置跟非結構體代碼生成一樣,這里分別設置為 ImportedExtern 和 ExportedGlobal。

除此之外,還需要把 BusCreator 的輸出數據類型設置為 myBus,如果你沒做這個設置, Embeded Coder 會提醒你設置。

做好上述設置,以及代碼生成的基本設置之后,Build 模型,代碼就有了,你會發現結構體類型 myBus 的定義如下:

typedef struct

{

real_T a;

real_T b;

real_T c;

} myBus;

變量 y 的定義如下:myBus y;

變量 x 的聲明如下:extern myBus x;

二. 結構體嵌套的代碼實現

在上述例子中的數據字典中再定義一個 Bus 對象 subBus,如下圖:

關于結構體變量建模的介紹和原理

再將 myBus 中的元素 c 的數據類型改為 subBus,模型做相應的調整如下:

關于結構體變量建模的介紹和原理

Build 模型,代碼中 myBus 的定義如下:

typedef struct

{

real_T a;

real_T b;

subBus c;

} myBus;

其中 subBus 定義如下:

typedef struct

{

real_T u;

real_T v;

} subBus;

數據字典中信號對象 x 和 y 的定義跟前面的例子一樣,結構體變量 x 和 y 在代碼中的定義也跟前面的例子一樣,整個算法的實現函數如下:

void nestStructModel_step(void)

{

y.a = K * x.a;

y.b = K * x.b;

y.c.u = K *x.c.u;

y.c.v = K *x.c.v;

}

很顯然,結構體嵌套,對應到模型中,就是 Bus 嵌套。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4899

    瀏覽量

    70599
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28932
  • 結構體
    +關注

    關注

    1

    文章

    130

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TechWiz LCD 2D應用:不同結構下的VT曲線

    我們可以在TechWiz LCD 2D軟件中調整電極的寬度,錐度,厚度和位置。 1. 案例結構 2. 建模過程 2.1在TechWiz LCD 2D中創建結構 2.2將com電極兩個掩膜的寬度均
    發表于 06-13 08:44

    滲壓計在混凝土結構中的安裝指南

    在現代土木工程和巖土工程中,滲壓計是監測混凝土結構體內孔隙水壓力變化的重要工具。南京峟思公司生產的滲壓計因其高精度和可靠性而被廣泛應用于各種工程監測項目中。一、滲壓計在混凝土結構中的應用價值滲壓計
    的頭像 發表于 05-28 10:55 ?146次閱讀
    滲壓計在混凝土<b class='flag-5'>結構</b><b class='flag-5'>體</b>中的安裝指南

    TechWiz LCD 2D應用:IPS電極仿真

    和分析,而連接功能可以同時改變兩個或兩個以上的條件,在某些數據復雜的情況下可以簡化數據,降低運算量。其含義解釋可參考下圖 本案例在一個簡化的IPS結構來使用變量和連接的功能 1. 建模任務 1.1
    發表于 05-15 09:31

    程序設計與數據結構

    《程序設計與數據結構》重點闡述了三大方向內容: 1. C語言學習中的痛點:針對當前工程師在C語言學習中的痛點,如指針函數與函數指針,如何靈活應用結構等。從變量的三要素(
    發表于 05-13 16:45

    概倫電子先進器件建模平臺BSIMProPlus介紹

    BSIMProPlus是一款技術先進的半導體器件SPICE模型建模平臺,在其多年的產品歷史中一直保持在半導體行業SPICE建模市場和技術的領先地位,被眾多集成電路制造和設計公司采用作為標準SPICE建模工具。
    的頭像 發表于 04-16 09:03 ?441次閱讀
    概倫電子先進器件<b class='flag-5'>建模</b>平臺BSIMProPlus<b class='flag-5'>介紹</b>

    TechWiz LCD 2D應用:不同結構下的VT曲線

    我們可以在TechWiz LCD 2D軟件中調整電極的寬度,錐度,厚度和位置。 1. 案例結構 2. 建模過程 2.1在TechWiz LCD 2D中創建結構 2.2將com電極兩個掩膜的寬度均
    發表于 02-06 10:18

    VirtualLab:系統建模分析器

    ,系統建模分析器。本文檔介紹該工具的使用方法。 系統建模分析器 如何運行建模分析器 系統建模分析器 例1:光束清理濾波器 示例 – 光
    發表于 01-14 09:45

    TechWiz LCD 3D應用:表面反射(底面)

    TechWiz軟件可以考慮顯示面板每層的多次反射來計算表面反射,之前我們曾介紹關于外部光源的反射,本例將介紹關于底部(即從背光源一側發出)的光源的反射的計算 使用Surface
    發表于 12-26 08:56

    VirtualLab Fusion應用:用于抑制高衍射級次的角濾波光柵

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

    結構成員的順序會影響結構的大小嗎

    相同的結構成員,如果把順序調整一下,會不會影響結構的大??? 答案是會的,這主要跟字節對齊有關。 比如這樣的結構
    的頭像 發表于 11-25 16:24 ?559次閱讀

    圖紙模板中的文本變量

    “ ?文本變量和系統自帶的內置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔心模板中的文字對象被意外修改。 ? ” 文本變量的語法 文本變量以?${VARIABLENAM
    的頭像 發表于 11-13 18:21 ?636次閱讀
    圖紙模板中的文本<b class='flag-5'>變量</b>

    C語言和C++中結構的區別

    同樣是結構,看看在C語言和C++中有什么區別?
    的頭像 發表于 10-30 15:11 ?752次閱讀

    詳細介紹三維建模的優勢和未來發展方向

    深入探討三維建模的定義、應用領域以及其與二維設計的區別,同時詳細介紹三維建模的優勢和未來發展方向。 1. 三維建模的定義 三維建模是指使用計
    的頭像 發表于 09-12 14:30 ?852次閱讀

    Python建模算法與應用

    上成為理想的腳本語言,特別適用于快速的應用程序開發。本文將詳細介紹Python在建模算法中的應用,包括常見的建模算法、Python在建模中的優勢、常用庫以及實際案例。
    的頭像 發表于 07-24 10:41 ?1221次閱讀

    ota升級的庫中,結構upgrade_server_info中pespconn的作用是什么?

    check_cb; struct espconn *pespconn; }; 這個結構中已經有ip,port,pespconn這個結構
    發表于 07-12 06:33
    主站蜘蛛池模板: 涩涩高清无乱码在线观看 | 种子搜索在线 | 一区二区三区久久 | 午夜影视网站 | 网站啪啪 | 日韩美女拍拍免费视频网站 | 88xx成人永久免费观看 | 91大神成人偷拍在线观看 | 人人草人人干 | 18年大片免费在线观看 | 亚洲第一区视频在线观看 | 女人被免费网站视频在线 | 日韩一级一片 | 黄色片 720p 黄色片链接 | 日本拍拍拍 | a久久久久一级毛片护士免费 | 久久精品免费观看久久 | 91在线免费观看网站 | 我想看一级播放片一级的 | 龙口护士门91午夜国产在线 | 亚洲精品456人成在线 | 久久精品大全 | 欧美猛交xxxx免费看 | 中文字幕久久精品波多野结 | 国产女人18毛片水真多18精品 | 嫩草黄色影院 | 国产在线一区二区三区四区 | 1000部啪啪 | 国产图片区 | 国产片翁熄系列乱在线视频 | 97久久人人 | 日本卡一卡2卡3卡4精品卡无人区 | 99热手机在线观看 | 三级视频网站 | 色批网站| 奇米影视777四色米奇影院 | 欧美性狂猛bbbbbxxxxx | 六月丁香深爱六月综合激情 | 一区二区三区视频网站 | 精品免费视在线观看 | 国内精品久久久久久久久野战 |