Simulink 自动代码生成电机控制:软件在环测试(SIL)步骤总结

本文主要是介绍Simulink 自动代码生成电机控制:软件在环测试(SIL)步骤总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

模型配置

SIL模型生成

模型仿真对比

总结


前言

电机模型仿真可以叫做模型在环测试(MIL),至于SIL就是软件在环仿真测试,说白了就是验证生成的代码有没有问题,如果有问题那在模型里面修复,不要着急在硬件上测试,Simulink通过生成代码再把生成的代码打包成模型的形式,验证生成代码是否可靠,可以测试代码覆盖率,验证生成代码之后数据是否失真啥的。有时候模型仿真没问题,但是生成代码在系统上运行就表现不一样了,之前踩过坑,所以上机前做一下SIL也是有必要的。接下来就介绍下如何实现SIL的具体步骤

模型配置

配置模型参数,展开Code Generation找到Verification, 再找到Advanced parameters,就是最下方的三个小点点,选中SIL。

2aced8679d034b6bac03d0a390e3d053.png

 既然选了SIL,就不能勾选 Generate code only, 这里的Toolchain默认自动选也没问题,要对C代码进行调试的话装一个Visual_studio,这里我们不需要就不安装了,基本没有用到对C代码进行调试的必要,实测用MinGW64也是可以的。9af4e50067224829b8ef86810e9a4fe4.png

 到这里准备工作就做好了

SIL模型生成

点开主模型,对子模型进行生成SIL模型的操作,右键点开C/C++ Code,选择Build This subsystem.

5d0843207e5f4335b7ee42d362510c75.png

 弹出如下窗口,点Build56556ff5190d465da2cba73304690847.png

 等一会儿就会弹出如下窗口,这个就是生成代码后再打包得到的SIL模型44500584f9a94ed7ae2d251dde533cb1.png

 可以对其进行保存,方便追溯9346855e9d234e308b8c35e730101675.png

 拷贝到主模型界面,如下:0eb74c44ddd34ea4b20bb151c4432368.png

 SIL模型生成,准备仿真对比

模型仿真对比

注释掉SIL模型,先对原来的模型进行仿真验证,如下图:

7bdfd438ec9544b3948b550ec2d096e2.png

 再把原来的模型剪切出来,替换成SIL模型,并对其进行仿真验证

ae101492c384454b833c8fdf06e17713.png

 仿真结束后,点开Data Inspector, 如下所示:

12d48307877e4fa2ad81dc55bbf2c4c3.png

 对比两次仿真的结果,不出意外几乎一致,这表示生成的代码没有问题

 29a1402412d648849dafecd5b3aecbff.png

 设置容差进行比较

b7202a3fdc1640acbb49c441d28aeab1.png

总结

简单介绍了SIL软件在环测试的步骤,非常简单,更深层次的东西可以根据流程需要再去挖掘,先总结到这里。 

这篇关于Simulink 自动代码生成电机控制:软件在环测试(SIL)步骤总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408021

相关文章

C# List.Sort四种重载总结

《C#List.Sort四种重载总结》本文详细分析了C#中List.Sort()方法的四种重载形式及其实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录1. Sort方法的四种重载2. 具体使用- List.Sort();- IComparable

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

Java 操作 MinIO详细步骤

《Java操作MinIO详细步骤》本文详细介绍了如何使用Java操作MinIO,涵盖了从环境准备、核心API详解到实战场景的全过程,文章从基础的桶和对象操作开始,到大文件分片上传、预签名URL生成... 目录Java 操作 MinIO 全指南:从 API 详解到实战场景引言:为什么选择 MinIO?一、环境

python3中正则表达式处理函数用法总结

《python3中正则表达式处理函数用法总结》Python中的正则表达式是一个强大的文本处理工具,用于匹配、查找、替换等操作,在Python中正则表达式的操作主要通过内置的re模块来实现,这篇文章主要... 目录前言re.match函数re.search方法re.match 与 re.search的区别检索

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL