Simulink_怎样生成我想要的C代码系列.pdf

所需积分/C币:44 2019-08-10 19:45:54 11.4MB PDF
56
收藏 收藏
举报

matlab代码自动化生成技术,怎样自动生成我想要的C代码,包括自定义变量名,结构体等等。共17篇。
Pa Signal Properties: y1 Signal name: y1 a Signal name must resolve to Simulink signal object L Show propagated signals f accessibility Code Generation Documentation b Signal object class: Simulink Signal Storage class:ExportedGlobal Al las Alignment: OK Cancel Help Appiy 参数k不需要手动关联。 显示模块端口的数据类型,得到如下图的显示。(点击模型的菜单 Display-> Signal ports -> Ports data Type Phex get typedef-Simulink 回‖3 File Edit View Display Diagram Simulation Analysis Code Tools Help 圆中中合围:D区· exget.typedef float 64 float 64 -Eu1 Gain y Ready 205% Fixedstep Discrete 5.生成代码查看结果 Ctr+B生成代码。 代码生成报告打开,在模型名_ types.h文件里,看得到了这句 typedef。这是之前 定义 Simulink alias type得到的结果。 Model files 17 #define RTW HEADER ex get typedef types 18 #include "rtwtypes h" ex get typedef. c 19 #ifndef DEFINed TYPEDEF FoR float 64 ex get typedef,h 20 #define DEFINED TYPEDEF FoR float 64 21 ex get typedef private, h 22 typedef real T float 64: ex get typedef types. h 23 typedef creal T float 64: Simulink 里面的rea是E- Coder默认的对 double的 typedef 55 ex get typedef,c 56/*= ex get typedef, h 57* Generic type definitions: boolean real ex_get typedef priva 59 ex_get _typedef_ type 60 typedef double real T [- Utility files 61 typedef double time Ti 62 typedef unsigned char boolean T: rtwtypesh 63 typedef intint Ti a. Simulink 64 typedef unsigned int uint Ti 同时,可以看到模型中的u1y1以及k的定义,这是之前将信号和参数绑定到数据 对象而得到的结果。 Static Code Metrics 19/* Exported block signals Report 20 float 64 ul: Code replacements 21 float 64 y1: Report 23/* Exported block parameters * Generated Code 26 in tlle ert main. c 28/*Real-time modeI * [-IModel files 29 RT MODEL ex get typedef T ex get typedef_i 30 RT MODEL ex get typedef T *const ex get type get typedef. c ex get typedef, h 32/* Model step function 33 void ex get typedef step(void) ex_ get typedef_privE 34 ex_get typedef_type 35/ Gain:'<Boat>/Gain'incorporates 36 r Inport:'<R。t2/n I-I Utility files rtwtypesh 1=k*口1; 总结 要得到: typedef double float64; 怎么做:用 Simulink. AliasType数据对象 阅读1751 在看1 怎样生成我想要的C代码系列(2) Simscape Simulink 2016-07-11 在自动生成代码时, Simulink模型里的两类数据是我们需要考虑的:信号 ( signa)和参数( parameter)。信号对应于 Simulink模块连线,仿真时一般都会变 化;而参数则对应于双击模块时所设置的变量,仿真时一般保持不变 如何控制这些变量在生成的代码里的实现? (点击末尾的“阅读原文”下载本文的案例模型。) 信号和参数的声明和定义 要得到 模型参数p1定义为 int32p1=3; extern int32 p 1 模型信号 mySia定义为 int1 6 mySig extern int16 mySig 怎么做:用 Data Object 举个例子 1.新建个简单的 Simulink模型 "ex get sigpara- Simulink ‖回‖」 File Edit view Display Diagram Simulation Analysis Code loots Help ·中心合·“唱D区·· ex- get_ separa (1) (1) Sig u1 Gain Ready 205% Fixedstep Discrete 2代码生成基本配置 求解器:定步长-离散求解器 系统目标文件: ert. tlc 3.新建数据对象 打开 Model Explorer,点击菜单的Add,在 Base Workspace里定义参数数据对象p1,进行 如 图 设 A翼田回·国+户回本副一 这样在生成代码的时候,参数p1就会定义为 int32的数据类型,并且声明为 extern。而且它的 声明和定义代码会分别写入 mhD:h以及 S ySrC.C。 类似的,新建一个 Simulink.Sgna,命名为 my Sig,设置如图。它的定义和声明就会默认的在 模型名.c和模型名h里 show Detals sbs 7. ba bpm 4.信号关联 在信号线上右键,将信号与 Base Workspace 的数据对象关联在一起。 ec oet spore Signal name: mySig Signal name must resolve to simulink signal object Show propagated signals -EmySig Logging and accessibility Code GenerationDoc'I a Log signal data Test point Logging name 参数不需要关联。 5.生成代码 Ctrl+B,生成代码。 如前面所设置的,得到参数p1的定义如图, 写到自定义的ch文件里去了 [- Data file 21/* Exported data dec laration * myHdrh 22 23/* Declaration for cus tom storage mySrc.c 24 extern int32 T pli [-]Data files 19 / Exported data definition * myAll 21 /* Definition for custom arggpigHats mySrc. c 22 int32 T pl-3i 信号 mySia的声明和定义如图,在模型名.C 和模型名h文件里: Model files 56. these signals and export their symbol. ex_get separa. c ex get sigpara, h 59 extern int16 T mysig: ex get separa_priv I Model files 16 #include "ex get sigpara h" 17 #include ex get sigpara private h" ex get separa.c 28 ex_get sigpara,h 20 int16 T mysia: Simulink ex_get_sigpara_priva 21 E- Coder里对数据的默认定义 ex get sigpara. h 46 ex get sigpara 47 typedef signed char int8 Ti 48 typedef unsigned char uint8 Ti ex-get-sigpara- 49 typedef short int16 T: [-J Data files 50 typedef unsigned short uintl6 T; 51 typedef int int 32 T: myHdr. h 52 typedef unsigned int uint32 Ti mySrc.c 53 typedef float real32 T; 54 typedef double real64 Ti -】 Utility files rtwtypes h Tvpe: int16 T 6.总结 所以说,可以使用数据对象( Data Object)来 定义数据在所生成的代码里的表达方式 阅读原文阅读824 在看 怎样生成我想要的C代码系列(3 Simscape Simulink 2016-07-12 C代码中经常会写到数据类型强制转换的语句,那么在 Simulink模型里,是如何表 达的?而又是如何配置,才能生成强制数据类型转换代码? 点击末尾的“阅读原文”下载本文的案例模型。) 数据类型转换 要得到: y1=(double)u1; 怎么做 Simulink模型里有三种建模元素: Simulink框图、 State升low流程图以及 MATLAB FUnctionη模块里的m脚本。在 Simulink框图模型里使用 Data Type Conversion模块来实现强制数据类型转换;在后两种则使用强制类型转换语句:out double(in 1) 举个例子 1.新建个简单的 Simulink模型 a demo3-Simulink 回 File Edit View Display Diagram Simulation Analysis Code Tools Help demo sIngle double double y Data Tvpe Conversion y MATLAB Function double Eu3 ty3 Chart Ready View diagnostics 100% FixeauepDiscrete 双击上图中 Data Type Conversion模块设置 输出数据类型为 double。 MATLAB Function以 及 Chart里的内容如下图 1 E function y fen(u) %=codegen y= double (u) Stateflow(chart)demos/Chart-Simulink x File Edit View Display Chart Simulation Analysis Code Tools Help ·“φ“”娼⑨·囚…◎·崗 Chart K out1=double(in 1): 3 命令 view diagnostics 250% Fixe step Discrete 2.代码生成基本配置: 求解器:定步长-离散求解器 系统目标文件: ert.tlc 3.新建数据对象 打开 Model Explorer,点击菜单的Ad,在 Base Workspace里定义输入输出信号的数据对 象,如图设置输入为 single类型,输出为 dobule 类型: H Model Explorer File Edit View Tools Add Help 鸟口的田·回@回4本 Search: by Name Name: Search Model Hierarchy Contents of: Base Workspace (only) Flter Contents Simulink Root Column View: Data Objects Show Detalls object(s) Base Workspace demo Name Value DataType Min Max Dimensions StoragedlassComplexot Model Workspace sne[][1-1 ExportedGlobalauto Configuration(Active) single xportedGlobalauto Code for demo single[][]-1 Exported Globall auto Simulink Design Verifier ADvice for demo 园y double[1[]. ExportedGlobalauto Chart ty2 double[][3-1 Expor lloballasto 也 MATLAB Functon double [1】-1 Exporteaurobalauto

...展开详情
试读 93P Simulink_怎样生成我想要的C代码系列.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    Simulink_怎样生成我想要的C代码系列.pdf 44积分/C币 立即下载
    1/93
    Simulink_怎样生成我想要的C代码系列.pdf第1页
    Simulink_怎样生成我想要的C代码系列.pdf第2页
    Simulink_怎样生成我想要的C代码系列.pdf第3页
    Simulink_怎样生成我想要的C代码系列.pdf第4页
    Simulink_怎样生成我想要的C代码系列.pdf第5页
    Simulink_怎样生成我想要的C代码系列.pdf第6页
    Simulink_怎样生成我想要的C代码系列.pdf第7页
    Simulink_怎样生成我想要的C代码系列.pdf第8页
    Simulink_怎样生成我想要的C代码系列.pdf第9页
    Simulink_怎样生成我想要的C代码系列.pdf第10页
    Simulink_怎样生成我想要的C代码系列.pdf第11页
    Simulink_怎样生成我想要的C代码系列.pdf第12页
    Simulink_怎样生成我想要的C代码系列.pdf第13页
    Simulink_怎样生成我想要的C代码系列.pdf第14页
    Simulink_怎样生成我想要的C代码系列.pdf第15页
    Simulink_怎样生成我想要的C代码系列.pdf第16页
    Simulink_怎样生成我想要的C代码系列.pdf第17页
    Simulink_怎样生成我想要的C代码系列.pdf第18页
    Simulink_怎样生成我想要的C代码系列.pdf第19页

    试读结束, 可继续读1页

    44积分/C币 立即下载 >