0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于使用Simulink.AliasType数据对象的分析和应用介绍

MATLAB 来源:djl 2019-09-17 17:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

虽然说基于模型的设计(Model Based Design,MBD)就是未来嵌入式控制开发的主流方法,但是很多工程师都是C代码的高手,对Simulink并不是很熟悉,尤其是自动代码生成。在进行Simulink模型代码自动生成的时候,也会习惯性的去想生成的代码如何匹配脑子里所想的C代码。

那么,Let's Go!
Typedef

要得到:typedef double float_64;

怎么做:用Simulink.AliasType数据对象。

实例一

因为是第一个例子,过程会稍微介绍得详细一些。

1. 建一个简单的Simulink模型

信号分别命名为u1和y1,Gain模块的参数设置为k。

关于使用Simulink.AliasType数据对象的分析和应用介绍

2. 代码生成基本配置

求解器:定步长—离散求解器

系统目标文件:ert.tlc

这时候Ctrl+B,可以生成代码了。只不过此时u1,y1以及k都不是我们想要的定义方式。

3. 新建数据对象

打开Model Explorer,点击菜单的Add,在base workspace里定义如图三个数据对象。

新建Simulink.AliasType,名字为float_64,并把Base type设置为double。这样,在生成代码的时候,就会出现这一句:typedef double float_64。

新建Simulink.Signal,名字为u1;新建Simulink.Parameter命名为k。注意它们Data Type与Storage class的定义。

关于使用Simulink.AliasType数据对象的分析和应用介绍

4. 将Simulink信号线与workspace的数据对象关联

在信号线u1上右键,设置它的属性,勾选Signal name must resolve to Simulink signal object,信号线上会出现如后图的蓝色小叉子。这样这个信号u1就会使用它所关联的数据对象u1所定义的方式来生成代码。

除了这种关联的方式之外,还可以直接设置信号的属性。比如右键单击信号y1,设置它的属性如图。

关于使用Simulink.AliasType数据对象的分析和应用介绍

参数k不需要手动关联。

显示模块端口的数据类型,得到如下图的显示。( 点击模型的菜单Display -> Signal&Ports -> Ports Data Type)

关于使用Simulink.AliasType数据对象的分析和应用介绍

5. 生成代码查看结果

Ctrl+B生成代码。

代码生成报告打开,在模型名_types.h文件里,看得到了这句typedef。这是之前定义Simulink.AliasType得到的结果。

关于使用Simulink.AliasType数据对象的分析和应用介绍

里面的real_T是E-Coder默认的对double的typedef:

关于使用Simulink.AliasType数据对象的分析和应用介绍

同时,可以看到模型中的u1,y1以及k的定义,这是之前将信号和参数绑定到数据对象而得到的结果。

关于使用Simulink.AliasType数据对象的分析和应用介绍

总结

要得到:typedef double float_64;

怎么做:用Simulink.AliasType数据对象

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7364

    浏览量

    95162
  • 信号
    +关注

    关注

    12

    文章

    2950

    浏览量

    80512
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多种储能技术在MATLAB和Simulink中的建模与仿真

    面对这些实际需求,MATLAB & Simulink 展现出了强大的优势。它不仅支持对各种储能技术进行灵活建模,更为“多种储能技术”提供了统一的仿真与分析平台。无论是电池储能、超级电容,还是
    的头像 发表于 05-12 13:48 190次阅读
    多种储能技术在MATLAB和<b class='flag-5'>Simulink</b>中的建模与仿真

    FRED 应用:光束足迹分析

    位于对象树的分析面文件夹中,如下图所示。 让我们来看看对于“光源平面”探测器实体详细的控制。对于该探测器实体,平面X和Y尺寸范围明确的限制为+-3,网格沿着A和B轴(X和Y)的分辨率设置为201,沿着
    发表于 05-07 16:26

    集成Simulink 与 NXP S32 Design Studio (S32DS)使用基于模型的设计工具箱,关于版本兼容性的疑问求解

    我正在努力集成Simulink 与 NXP S32 Design Studio (S32DS)使用基于模型的设计工具箱 (MBDT 1.6.0 版本),我正在为版本兼容性而苦苦挣扎。 这是我的情况
    发表于 04-16 07:41

    关于MT6901的直线DEMO介绍

    关于MT6901的直线DEMO介绍
    的头像 发表于 01-30 10:54 914次阅读
    <b class='flag-5'>关于</b>MT6901的直线DEMO<b class='flag-5'>介绍</b>

    淘宝数据API:竞争对手分析,战略调整!

    ​ 在电商领域,竞争对手分析是企业制定有效战略的关键。淘宝作为中国领先的电商平台,提供了丰富的数据API接口,帮助企业获取市场信息并进行深度分析。本文将逐步介绍如何使用淘宝
    的头像 发表于 01-16 17:12 795次阅读
    淘宝<b class='flag-5'>数据</b>API:竞争对手<b class='flag-5'>分析</b>,战略调整!

    matlab的算法部署在simulink

    有没有哪位大佬能提供一下思路,遇到一个问题matlab得不到神经网络fitcnet模型的权重参数,所以simulink没办法部署,那遇到这种情况该如何处理
    发表于 12-08 15:27

    关于NFC镍锌铁氧体片的介绍

    关于NFC镍锌铁氧体片的介绍
    的头像 发表于 12-04 10:52 631次阅读
    <b class='flag-5'>关于</b>NFC镍锌铁氧体片的<b class='flag-5'>介绍</b>

    MXAM常见问题解答:从配置到报告生成#simulink模型测试 #simulink

    Simulink
    北汇信息POLELINK
    发布于 :2025年11月14日 11:48:38

    关于系统链接脚本的介绍

    起来后所处于的地址,程序中的相对寻址都会遵从此虚拟地址。 四、关于ITCM和DTCM(若使用FLASH下载模式) (1) 代码段上载到ITCM,ITCM起始地址(0x80000000)存储的代码就是主函数的入口。 (2)数据段上载到DTCM,DTCM起始地址(0x
    发表于 10-30 08:26

    使用Simulink自动生成浮点运算HDL代码(Part 1)

    ,生成的HDL代码与目标无关。可以在任何通用FPGA或ASIC上部署该设计。 下面介绍如何在Simulink中创建单精度浮点乘法 直接使用乘法模块即可,并将输入口改为单精度浮点 使用Ctrl + g
    发表于 10-22 06:48

    CANopen转Profient网关协议介绍

    层次,通过对象字典实现设备参数配置,包含网络管理(NMT)、服务数据对象(SDO)和过程数据对象(PDO)等核心协议,支持主从、客户端/服务
    的头像 发表于 09-25 17:31 989次阅读
    CANopen转Profient网关协议<b class='flag-5'>介绍</b>

    求助:simulink里面是否有带负端的变压器

    simulink里面是否有每相都带负端的三相变压器,最近做HDT的仿真,simulink里面的三相变压器好像都没有负端,怎么才能用三相变压器像图中这样连接?
    发表于 09-24 09:05

    canopen如何通过对象字典控制外设?

    各位大佬好,我在移植canopen的时候碰到一个疑问。比如我修改对象字典2000,子索引为0这个目录下的值,如何这个对象映射的是某个led灯的亮灭,输入1为亮,0为灭。 问题就是我发送报文之后会进入
    发表于 09-11 06:04

    simulink只要运行就会死机

    在卸载了2345安全卫士之后,电脑就突然黑屏死机,然后再打开电脑,打开simulink后会有照片里的弹窗,就会退出MATLAB,之后再打开simulink只要运行就会死机,怎么解决(求高手解疑)
    发表于 07-24 17:11

    三相异步电机在SIMULINK下的建模与仿真

    摘要:异步电动机三相原始动态数学模型相当复杂,分析和求解这组非线性方程十分困难,因此,要简化数学模型,必须从简化磁链关展入手,简化的基本方法就是坐标变换。以异少电动机坐标变换为基础推导出同步旋转
    发表于 06-16 21:48