当前位置:网站首页>2837xd 代码生成——StateFlow(3)
2837xd 代码生成——StateFlow(3)
2022-07-02 06:35:00 【Quikk】
2837xd 代码生成——StateFlow(3)
11 True Table
在Chart中加入True Table模型。

然后在真值表中进行加入相应的元素:

真值表分为条件表和动作表,如条件表D1所示意思为,当shift==1时,执行动作1。而D3所示为只要shift不为1或者2都执行第三个动作。然后需要在Model Explorer中添加相应的输入和输出变量,再此之前要把True Table的名称修改,不然会报错。

然后需要为chart定义输入和输出,调用方式与函数一致:

构建外部元件进行DEBUG即可:

12 复数的使用
复数的使用和定义,跟语言的选择(m或c)有关系。比如matlab中的内置函数abs()可以接收复数求模,但是c语言中的abs则没有这个功能。此时若在c语言的编译环境下,可以借助Matlab Function进行调用matlab中的abs()函数进行求取。以下编译环境都是matlab语言。

构建外围后,DEBUG可以得到如下:

这里要注意,默认Model Explorer中complexity为off,如果所接收的数据为复数,需要自行开启(on或者inherited根据需要进行选择)。

13 输出size改变的数据
在Chart中确保勾选了,支持变数据大小:

然后搭建如下的Simulink Function进行调用:


构建外围元件,设置相关的变量参数,size一定要设置与最大输出size相同,不然会报错。


可以观测到结果如下,out输出了变size的数据:

14 隐式事件
Chart中有四个隐式事件:1)change(chg)、enter(en)、exit(ex)、tick(wakeup)
构建如下的chart,state1与state2是并行执行关系,state2中的状态转移与y的数值有关(当y发生改变时,state2状态发生改变)。

仍旧是并行关系,此时换成en与ex隐式事件:
C、D的状态切换与state1.B的状态进入和退出密切相关。

tick事件的观测:
after(5,tick)意思发生五次转换请求后才允许真正发生状态转移。

采用定步长仿真(0.5s):

可以发现每2.5s进入一次state2,每在state2中停留1.5s后进入state1。
15 结构体操作
Simulink中可以利用BUS元件构建结构体,BUS与MUX不同之处就在于BUS会生成结构体,而MUX只是让多个数据流采用一条线传输。

注意要将信号的编号进行设置,默认是Signaln。然后构建一个Chart模块:

这里mydata和indata都是结构体,其操作和结构体的点运算一模一样。重点是需要在Model Explorer中对结构体进行相应的定义:
首先选中,Base Workspace,点击Add,选中Simulink Bus加入结构体。

然后点击Launch Bus Editor

为Bus添加对象,这里我选择和Bus中的对象名称保持一致,不一致也可以通过。

然后分别设置每个对象的维数:

之后将chart中的变量(mydata、indata)改为刚刚设置好的Bus:

后面的步骤与其他chart模型搭建一致。
下面介绍用c语言引入结构体的方式:
首先建立一个.h文件放入在模型文件的保存地址:

然后在Configuration Parameters中进行定义:

构建如下的chart:


然后在Model Explorer中进行相关的定义,注意这里不需要对mydata进行定义,因为在头文件中已经进行了定义,最后输出结果如下:

如果仿真没问题,可以按Ctrl+B进行生成代码,这时候需要将输出换程端口(Out)。其中可以看到应用头文件的语句:

下面尝试着进行一下代码的管理,代码管理之前:

首先将输入和输出全部替换成端口:

然后找到如下的工具(注意在信号上面已经有了标号):


然后再生成一次代码,这部分内容之后在系统学习,目前还不是很理解。
边栏推荐
- Probability is not yet. Look at statistical learning methods -- Chapter 4, naive Bayesian method
- 逆变器simulink模型——处理器在环测试(PIL)
- Oracle modifies tablespace names and data files
- 攻防世界-Web进阶区-unserialize3
- Idea view bytecode configuration
- 个人经历&&博客现状
- 微服务实战|原生态实现服务的发现与调用
- Watermelon book -- Chapter 5 neural network
- 互联网API接口幂等设计
- Long summary (code with comments) number structure (C language) -- Chapter 4, string (Part 1)
猜你喜欢
随机推荐
Demand delineation executive summary
Matplotlib swordsman line - first acquaintance with Matplotlib
C语言之判断直角三角形
三相逆变器离网控制——PR控制
Idea view bytecode configuration
Matplotlib swordsman - a stylist who can draw without tools and code
微服务实战|Eureka注册中心及集群搭建
西瓜书--第六章.支持向量机(SVM)
图像识别-数据增广
Knife4j 2.X版本文件上传无选择文件控件问题解决
C语言之做木桶
数构(C语言--代码有注释)——第二章、线性表(更新版)
tinyxml2 读取和修改文件
微服务实战|原生态实现服务的发现与调用
MySQL error: unblock with mysqladmin flush hosts
Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedd
Long summary (code with comments) number structure (C language) -- Chapter 4, string (Part 1)
C语言之数据插入
cmake的命令-官方文档
上班第一天的报错(Nessus安装winpcap报错)









