首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Simulink代码生成: 延时模块及其代码

  • 23-09-22 01:02
  • 3277
  • 7063
blog.csdn.net

本文描述延时模块的建模并研究生成的代码。

文章目录

  • 1 Simulink中的延时模块
  • 2 延时模块示例模型
  • 3 延时模块代码生成

1 Simulink中的延时模块

延时模块的输出等于它的一个或几个采样周期前的输入。

在Simulink Library Browser——Commenly Used Blocks中提供的延时模块是Delay模块。该模块可以在配置面板中设置延时长度(就是延时多少个采样周期)和初始值等。
在这里插入图片描述
还有一种特殊的延时模块:Unit Delay(单位延时),该模块只延时一个采样周期。博主在工作中所用的延时模块大部分都是单位延时模块,所以后续会以该模块为例进行研究。
在这里插入图片描述

2 延时模块示例模型

本章研究一下延时模块的建模,并验证延时的效果。
1.新建一个Simulink空白模型,并配置好离散求解器,步长设为1s;
在这里插入图片描述
2.建立如下的一个简单输入输出的模型,并运行。观察到输出比输入延后了1s;
在这里插入图片描述
3.可以修改修改Unit Delay模块中的参数,指定模块输出的初始值。
在这里插入图片描述

3 延时模块代码生成

本章研究一下延时模块对应的代码。
1.建立如下模型,并配置好Embedded Coder。模型包含一个输入模块、一个输出模块和一个单位延时模块。先保持延时模块的默认设置;
在这里插入图片描述
2.Ctrl + B生成代码,并观察报告中的initialize函数和step函数;
在这里插入图片描述
软件为这个延时模块定义了一个全局变量UnitDelay_DSTATE(延时状态变量),可以将其理解成一个中间商。从step函数可以看出,这个全局变量用于存放上一个采样时间延时模块的输入信号的值,然后下一个采样时间再赋给输出信号。这样就保证了每个采样时间,输出值为上一个采样时间的输入值。

然后从initialize函数可以分析得出,这个延时状态变量的初始值设为0,对应的模型中的初始值设定。

3.假如我们想方便以后排查问题,自己给这个中间商命名,也是可以的。双击打开Unit Delay配置面板——State Attributes,定义一个State Name,然后配置一个Storage Class。当然,也可以勾选State name must resolve to Simulink signal object,从而关联sldd文件里面定义的Signal对象;
在这里插入图片描述
4.Ctrl + B生成代码,在报告中就能看到,这个状态变量被定义为了Simulink中设置的DelayState名称了。
在这里插入图片描述
>>返回个人博客总目录

注:本文转载自blog.csdn.net的chhttty的文章"https://blog.csdn.net/u013288925/article/details/106154803"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top