Skip to content

Latest commit

 

History

History

5.simulink-Co-develope

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

simulink hardware-in-the-loop(HIL) Demo

该例程使用simulink对STM32F4进行在环开发,功能实现分为以下几个步骤:

一、simulink在环开发

1.在matlab下载STM的硬件支持包,这里还有很多搭建环境的步骤就不一一说明了

step1
step2
**2.配置好所有环境后,创建simulink工程和cubemx工程。注意这里需要先配置好CubeMx和cubeprogramer**
step3
step4

3.在库中找到STM,搭建好模型,再在simulink进行设置,并指定刚才cubemx工程的路径

step5
step6
step7
step8

4.编译+部署。有可能会出现一些cubemx的报错,按照提示排除就好

step9

二、附加内容:simulink生成算法代码,嵌入到设备

1.创建文件夹在D盘或者其他盘的目录下,我这里创建了如下文件夹

step21
step22

2.在Simulink中创建一个新的仿真图,PI等种种模块,都需要改成离散的!以下图的简单算法作为例子。

step23
**3.打开设置,如下这两处需要更改,step size可以尝试一下设置,还没试出什么影响。**
step24
**3.打开code generation,更改system target file为ert.tlc,此为embedded coder,语言设置成想要的(一般都是C吧)。**
step25

4.打开code Generation 的Report选项,把如下两个选项勾选,到时生成代码会弹出弹窗给你方便看一点。

step26

5.现在就已经可以点击生成代码,如下图所示。

step27
step28

6.但是现在的代码还很乱,可以选择性进行如下操作,首先将算法部分封装起来。

step29
**7.然后,再双击数据线命名,不然到时候全是结构体,很难受。**
step210

8.而后进入Model Explorer,点击Add,然后点击Add Custom。

step211
step212

9.添加备注的信号线等,设置为mpt.signal。

step213
step214

10.添加x,y,z信号对象后,须要关联信号名,关联信号名,在信号线上右键,点击Signal Properties…,点击Signal Properties…后,按下图勾选Signal name must resolve to Simulink signal object ,让信号名解析到信号对象上去 ,x,y,z都按以下设置,保存。

step215
step216
step217

11.把模块单独出来做为一个子系统,能够把算法单独放在一个文件中当做一个函数使用,选中你的封装好的算法,在菜单栏点击Diagram->Block Parameter (Subsystem )。

step218
step219

12.按ctrl+B或者点击代码生成,最终代码预览如下。

step220

13.最后生成的代码自动创建如下子目录。

step221

14.上机测试部分。把需要的.c和.h文件全复制到你的工程文件下。

step222
step223
**15.测试**
step224
step225
step226