【Simulink建模】电源档位模型搭建

【Simulink建模】电源档位模型搭建

  • 1. 需求分析
  • 2. 模型搭建
    • 2.1 打开Matlab,调整Matlab工作路径至模型存放路径
    • 3.1 打开Simulink,新建空白模型
    • 3.2 保存模型,并命名为KeyState
    • 3.3 修改模型配置
    • 3.4 使用Library Browser库添加Stateflow-Chart,命名为KeyStateChk
    • 3.5 修改Chart语言为C语言
    • 3.6 根据需求绘制模型
    • 3.7 修改数据类型
    • 3.8 添加输入输出Port
    • 3.9 建立数据字典
    • 3.10 模型与数据字典关联
    • 3.11 生成代码
  • 3. 代码集成

本文使用Matlab R2020b Simulink从零开始构建电源档位模型。

1. 需求分析

电源档位需求规范如下:
当ACC_SW=0,IG1_SW=0时,电源档位KeyState为KEY_OFF档(KeyState=0)。
当ACC_SW=1,IG1_SW=0时,电源档位KeyState为KEY_ACC档(KeyState=1)。
当ACC_SW=1,IG1_SW=1时,电源档位KeyState为KEY_ON档(KeyState=2)。
当ACC_SW=0,IG1_SW=1时,电源档位KeyState为KEY_START档(KeyState=3)。

ACC_SW,IG1_SW为硬线输入,接口为Get_bool_ACC_SW(),Get_bool_IG1_SW()。
KeyState为电源档位状态报文输出,接口为Set_uint8_KeyState()。
KEY_OFF、KEY_ACC、KEY_ON、KEY_START为软件中定义的常量。

2. 模型搭建

2.1 打开Matlab,调整Matlab工作路径至模型存放路径

在这里插入图片描述

“注意”:工作路径避免存在中文路径,这里仅做演示。

3.1 打开Simulink,新建空白模型

在这里插入图片描述

3.2 保存模型,并命名为KeyState

在这里插入图片描述

3.3 修改模型配置

修改模型配置,适配代码生成;
参考:Simulink代码生成常用配置项及脚本修改
运行cfg_Simulink.m,一键修改Model Configuration;
在这里插入图片描述
在这里插入图片描述

3.4 使用Library Browser库添加Stateflow-Chart,命名为KeyStateChk

在这里插入图片描述

也可以双击模型空白地方,输入chart在下拉框中选择Chart,添加Stateflow-Chart。
在这里插入图片描述

3.5 修改Chart语言为C语言

双击新建的Chart,在Chart根界面中右键,选择Properties…,在新的界面中中Action Language选择为C。
在这里插入图片描述

3.6 根据需求绘制模型

在这里插入图片描述

KeyState默认值为KEY_OFF,当逻辑满足时执行不同功能;

3.7 修改数据类型

单击MODELING->Symbols Pane,调出Symbols窗口,在该窗口修改各数据的类型及默认值;
ACC_SW、IG1_SW:输入,boolean;
KeyState:输出,uint8
KEY_OFF:常量,uint8,0
KEY_ACC:常量,uint8,1
KEY_ON:常量,uint8,2
KEY_START:常量,uint8,3
在这里插入图片描述

3.8 添加输入输出Port

Simulink空白处双击,输入in1,选择In1添加输入Port;
在这里插入图片描述

Simulink空白处双击,输入Out1,选择Out1添加输出Port;
在这里插入图片描述

将输入输出Port与Char的输入输出连接;(使用In1与Out1连接时会自动更名为Chart输入输出名称)
在这里插入图片描述

3.9 建立数据字典

点击MODELING->Model Explorer,在Model Explorer界面中新建数据字典,并命名为KeyState;
在这里插入图片描述
在这里插入图片描述

使用Excel创建输入输出信号,并生成数据字典;
参考:Simulink 从Excel自动生成数据字典
在这里插入图片描述

运行CreateSldd.m,一键修改生成数据字典;
在这里插入图片描述

3.10 模型与数据字典关联

在模型空白处右键,选择Model Properties;
在这里插入图片描述

在Model Properties中,External Data业中选择数据字典并关联;
在这里插入图片描述

在模型迁移线上添加信号;
在这里插入图片描述

选中已添加信号的迁移线,右键选择Properties;
在这里插入图片描述

在弹出Signal Properties界面中,勾选Signal name must resolve to Simulink signal object;
在这里插入图片描述

修改完成如下图
在这里插入图片描述

3.11 生成代码

修改完成后,使用快捷键Ctrl+B生成代码;
在工作路径下生成了KeyState_ert_rtw文件夹,文件夹内时生成的代码,主要是五个文件:KeyState.c、KeyState.h、KeyState_private.h、KeyState_types.h、rtwtypes.h;
在这里插入图片描述

3. 代码集成

由于输入输出信号为外部信号,需要声明输入输出接口函数;
在模型配置中配置了Custom Code,包含signal_api.h头文件;
在这里插入图片描述

需要在signal_api.h头文件中声明模型中使用的Get_bool_ACC_SW()、Get_bool_IG1_SW()、Set_uint8_KeyState(uint8 data)函数,随后集成代码就可以编译通过;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部