Simulink 模型生成 C 代码(四):比较模型仿真和生成代码的结果

news2024/11/16 22:09:04

接下来将验证生成的代码执行时在数值上等效于 Simulink 中建模的算法。您使用测试框架模型在普通模式下对 RollAxisAutopilot 进行仿真,并在 SIL 模式下进行仿真,然后使用仿真数据检查器比较这两个仿真。

要测试生成的代码,您可以运行软件在环 (SIL) 和处理器在环 (PIL) 仿真。SIL 仿真在开发计算机上编译并运行生成的代码。PIL 仿真在开发计算机上交叉编译源代码,然后,PIL 仿真在目标处理器或等效的指令集仿真器上下载并运行目标代码。您可以使用 SIL 和 PIL 仿真:

  • 验证代码的数值行为。
  • 收集代码覆盖率和执行时间度量。
  • 优化代码。
  • 推动 IEC 61508、IEC 62304、ISO 26262、EN 50128 或 DO-178 认证的进展。

检查并配置测试框架模型

模型 RollAxisAutopilotHarness 通过 Model 模块引用待测模型 RollAxisAutopilot。框架模型为引用的模型生成测试输入。还可以轻松地在普通、SIL 或 PIL 仿真模式之间切换 Model 模块。

        1.通过键入以下命令打开模型 RollAxisAutopilotHarness

openExample('RollAxisAutopilotHarness');

        2. 如果您关闭了您的 RollAxisAutopilot 模型副本,请重新打开它。

        3. 在 RollAxisAutopilotHarness 模型中,右键点击 Model 模块并选择子系统和模型引用 > 刷新所选模型模块

        4. 在当前工作文件夹中保存 RollAxisAutopilotHarness 的副本。

        5. 打开 RollAxisAutopilotHarness 和 RollAxisAutopilot 的“配置参数”对话框。

        6. 要运行 SIL 和 PIL 仿真,请在代码生成窗格中,确认已清除参数仅生成代码。对两个模型均执行此操作。

        7. 对于这两个模型,在硬件实现窗格中展开设备详细信息。确认已选择支持 long long

        8. 点击确定。然后保存模型。

在普通模式下仿真模型

在普通模式下运行框架模型,并在仿真数据检查器中捕获结果。

  1. 在 RollAxisAutopilotHarness 模型中,打开模型数据编辑器。在建模选项卡上,点击模型数据编辑器
  2. 在模型数据编辑器中,选择信号选项卡。
  3. 更改视图列表设置为“插桩”。
  4. 在数据表中,选择所有行。
  5. 要将信号配置为将仿真数据记录到仿真数据检查器,请选中记录数据列中的复选框。完成后,确保该列中的所有复选框都处于选中状态。
  6. 右键点击 Model 模块 Roll Axis Autopilot。从上下文菜单中选择模块参数
  7. 在“模块参数”对话框中,验证为仿真模式选择了“普通”选项。点击确定
  8. 仿真 RollAxisAutopilotHarness
  9. 完成仿真后,在仿真数据检查器中查看仿真结果。如果仿真数据检查器尚未打开,请在仿真选项卡上,点击数据检查器
  10. 对于最近(当前)运行,请双击运行名称字段并将运行重命名为 roll_harness: Normal mode
  11. 选择 Ail_Cmd 以绘制信号。

在 SIL 模式下仿真模型

SIL 仿真在开发计算机上生成、编译和执行代码。仿真数据检查器记录结果。

  1. 在 RollAxisAutopilotHarness 模型窗口中,右键点击 Roll Axis Autopilot 模型模块,然后选择模块参数
  2. 在“模块参数”对话框中,将仿真模式设置为 Software-in-the-loop (SIL),将代码接口设置为 Top model。点击确定
  3. 从编译过程中排除外部代码文件。在模型 RollAxisAutopilot 的“配置参数”对话框中,将代码生成 > 自定义代码 > 代码信息 > 源文件设置为默认值,即为空。保存模型。
  4. 仿真 RollAxisAutopilotHarness 模型。

最小化代码生成报告窗口,以便在本教程中的后面部分进行浏览。

        5. 在仿真数据检查器中,双击运行名称字段并将新运行重命名为 roll_harness: SIL mode

        6. 选择 Ail_Cmd 以绘制信号。

        7. 重新配置模型 RollAxisAutopilot 的编译过程以包括外部源文件 roll_input_data.c 和 roll_heading_mode.c。在“模型配置参数”对话框中,将代码生成 > 自定义代码 > 代码信息 > 源文件设置为 roll_input_data.c roll_heading_mode.c。点击应用,关闭对话框,然后保存模型。

比较仿真结果

在仿真数据检查器中:

  1. 点击比较选项卡。
  2. 基线字段中,选择 roll_harness: Normal mode
  3. 比较项字段中,选择 roll_harness: SIL mode
  4. 点击比较

仿真数据检查器显示普通模式和 SIL 模式的结果相匹配。使用 SIL 和 PIL 仿真比较普通模式仿真的结果可以帮助您验证生成的应用程序是否按预期执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1891997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验六 智能停车系统设计 (综合类)含源码 福利

某停车场停车费用计算规则如下: ①每小时 10 元,不足 1 小时的部分按照 1 小时计算; ②超过 8 小时,未超过 24 小时的按照 8 小时计算; ③超过 24 小时,超过部分按照上述标准重新计算。 本程序的任务是模拟一个智能停车管理系统,…

qt5.15关于qradiobutton遇到的坑

前言 不知道是只有我遇到了,还是qt本身就存在这个bug 当将2个qradiobutton放入到一个布局内,然后进行来回切换,若无数据刷新的情况下,切换无异常,当窗体内有数据开始刷新了,则点击其中一个qradiobutton&am…

考PMP一定要报培训班么?

曾有自学PMP想法学员分享:不如选择性价比高通过率高的PMP项目管理培训机构威班PMP 其实参加PMP考试如果非要自学也能参加考试的,只是需要找一个能卖给你35学时的机构,也只有PMI授权的PMP机构能开具35学时证明,这种生意也只有小机…

工厂自动化相关设备工业一体机起到什么作用?

在当今的制造业领域,工厂自动化已成为提高生产效率、保证产品质量和降低成本的关键。在这一进程中,工业一体机作为一种重要的设备,发挥着不可或缺的作用。 工业一体机是自动化生产线上的控制中心。它能够整合和处理来自各个传感器、执行器和其…

Hadoop3:集群压测-读写性能压测

一、准备工作 首先,我们要知道,平常所说的网速和文件大小的MB是什么关系。 100Mbps单位是bit;10M/s单位是byte ; 1byte8bit,100Mbps/812.5M/s。 测试 配置102、103、104虚拟机网速 102上用Python开启一个文件下载服务&#x…

没有找到openslide-win64xxxx文件 ! ! ! (openslide-python安装教程)

各位小伙伴大家好,今天给大家带来教程:openslide-python安装 说实话这个库我之前也没有用到过,然后今天代码需要,就安装了一下 但是在import openslide的时候报错,找了很多教程 说句心里话:那些教程都是…

又一个被催的相亲对象!家庭不和,是因为智慧不够?——早读(逆天打工人爬取热门微信文章解读)

你相亲过吗? 引言Python 代码第一篇 洞见 家庭不和,是因为智慧不够第二篇 口播结尾 引言 yue 昨天居然忘记了 正事:拍视频j 居然忘记了 别着急 让我找下理由(借口) 前天我妈给我介绍了个相亲对象 推给我了她的微信 我…

基于opencv-python开发的长度测量-角度测量算法

使用OpenCV-Python进行长度和角度测量的项目可以应用于多个领域,如工业自动化、机器人视觉、测绘、教育等。这类项目的核心是利用计算机视觉技术从图像或视频中提取有用的信息,进而计算出物体的尺寸或角度。以下是一个基于OpenCV-Python进行长度和角度测…

软考《信息系统运行管理员》-2.4信息系统运维管理标准

2.4信息系统运维管理标准 信息系统运维的相关标准 ITIL信息技术基础设施库 基于服务生命周期主要包含五个方面:服务战略(轴心)、服务设计、服务转换、服务运营及服务改进 COBIT信息系统和技术控制目标 考法1:概念 在ITILv3基于…

开源 复刻GPT-4o - Moshi;自动定位和解决软件开发中的问题;ComfyUI中使用MimicMotion;自动生成React前端代码

✨ 1: Moshi 法国 AI 实验室 Kyutai 刚刚推出了开源 复刻GPT-4o - Moshi Moshi是一款现代化聊天平台,旨在提供用户友好和高效的即时通讯体验。它整合了多种功能,包括文本消息、语音和视频通话、文件共享等,为个人用户和团队协作提供了强大的…

grid布局下的展开/收缩过渡效果【vue/已验证可正常运行】

代码来自GPT4o&#xff1a;国内官方直连GPT4o <template><div class"container"><button class"butns" click"toggleShowMore">{{ showAll ? 收回 : 显示更多 }}</button><transition-group name"slide-fade&…

Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作

章节内容 上一节我们完成了&#xff1a; MapReduce的介绍Hadoop序列化介绍Mapper编写规范Reducer编写规范Driver编写规范WordCount功能开发WordCount本地测试 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学…

【10年有效】阿里云域名,出阿里云私人子域名

出&#xff1a;阿里云私人子域名&#xff0c;主要是帮助没域名的&#xff0c;又需要使用域名绑定程序的人。 有效期十年&#xff0c;就只要几块&#xff0c;简直是薅羊毛薅到家了~~ 本域名已经备案了。 目标&#xff1a;https://h5.m.goofish.com/item?id811115711415 ---…

【楚怡杯】职业院校技能大赛 “Python程序开发”赛项样题二

Python程序开发实训 &#xff08;时量&#xff1a;240分钟&#xff09; 中国XX 实训说明 注意事项 1. 请根据提供的实训环境&#xff0c;检查所列的硬件设备、软件清单、材料清单是否齐全&#xff0c;计算机设备是否能正常使用。 2. 实训结束后&#xff0c;将各试题代码整合…

QQ录屏文件保存在哪里?一键教你快速查询

无论是记录重要的工作内容&#xff0c;还是分享生活中的点滴&#xff0c;屏幕录制都发挥着至关重要的作用。在众多屏幕录制工具中&#xff0c;qq录屏以其简单易用、功能丰富的特点&#xff0c;受到了广大用户的喜爱。本文将为您揭示qq录屏文件保存在哪里&#xff0c;帮助大家更…

DAY18-力扣刷题

1.从前序与中序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树…

C# 实现位比较操作

1、目标 对两个字节进行比较&#xff0c;统计变化位数、一位发生变化的位数、二位发生变化的位数、多位发生变化的位数。 2、代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Lin…

大模型时代数据库技术创新

本文整理自 2024 年 6 月 ArchSummit&#xff08;深圳站&#xff09; Data4AI 和 AI4Data 方面的探索和实践案例专题的同名主题分享。 大家好&#xff0c;我今天讲的内容总共分为三部分&#xff0c;先是数据库和大模型的演变历程&#xff0c;尤其是两者的结合的过程。然后在分别…

高浓度锡回收的工艺流程

高浓度锡回收的工艺流程是一个复杂而精细的过程&#xff0c;它旨在从废旧锡制品或含锡废料中高效、环保地提取出高纯度的锡。以下是对该工艺流程的详细阐述&#xff1a; 一、收集与预处理 收集&#xff1a;高浓度锡回收的第一步是收集废旧锡制品或含锡废料&#xff0c;这些材料…

【分布式系统】监控平台Zabbix自定义模版配置

目录 一.添加Zabbix客户端主机 1.服务端跟客户端配置时间同步 2.安装 zabbix-agent2 3.修改 agent2 配置文件 4.服务端安装 zabbix-get验证客户端数据的连通性 5.Web 页面中添加 agent 主机 6.监控模板 二.自定义监控内容 1.客户端创建自定义key 1.1.明确需要执行的 …