Using MATLAB with CANoe 快读

news/2024/10/20 17:34:38

近期领导交给了一个非常有意思的任务:尝试实现在不同工况下的HSI测试,并给了Matlab这个提示。当然我并不实现交互的具体算法,但是要懂得Matlab接口的测试调用和上层General测试框架的搭建。

资料来源:Using MATLAB with CANoe

 

1.0 Overview

目的是为了拓展CANoe的Node功能,支持节Node-Simulink嵌入。在使用前请找到CANoe的安装目录 r <...>\Installer Additional Components\Matlab\ 并安装。

这个手册是17年写的,路径说的不是很明确,找了一会没找到。然后右键CANoe桌面图标打开文件位置发现了,前提是有Matlab,要不然就跟我一样安装找不到路径。

我理解安装后应该是CANoe添加Node节点,然后在配置里面添加一些文件。新建工程,打开节点配置发现没有Simulink相关的东西,那可能是上方的软件安装后就可以看到了(或者是其他的一些dll文件)。

2.0 Connection of CANoe and Matlab/Simulink

2.1 Modelling Concept

这个模型是可以将一个模拟的ECU添加为Node进行使用,因此也支持加载.can文件,使用CAPL对里面的一些参数或者接口进行调用。详情为:

Application Layer

如果使用Matlab编译并且加载了一个Node,会生成某些文件定义了具体的ECU应用层行为,这些行为将会提供两种接口:总线信号或者Sysvar。

提示了这个Node必须被Simulink生成,由于缺少很多信息,因此不支持具体的功能模块。我理解不支持比如Autosar、诊断等等。但是可以输出一些预先配置好的信息,例如电压、霍尔、CAN信号之类的。

Middleware

中间层组件是将ECU的应用层分离。我理解这个生成的Simulink节点支持调用IL、ASRNM、Osektp等一些CANoe自己的DLL。后续可以试一试。

Interaction Layer

如果加载了数据库,那这个节点也支持CANOEIL

Network Management Layer

如果加载了数据库,支持CANoeASRNM,前提是数据库中定义了NM的Attribute属性。

Transport Layer

支持OsekTP(ISO 15765-2)

2.2 Interace Concept

如果是使用Simulink中启动CANoe将需要同步。我理解如果是CANoe直接加载Simulink生成的Node可能不需要同步。

  Offine模式:以Simulink软件时钟为主时钟

  Sync模式:CANoe中配置为Real time,将以CANoe时钟为主时钟

额外提到了:如果是使用HIL模式,可以用Simulink生成一些DLL来加载到CANoe Node,这样就可以直接使用。此时将不再依赖Simulink环境。类似于SIL测试中的Node,可以直接加载DLL进行参数的调用。

所以说Simulink和CANoe交互应该有两种模式:

第一种:Simulink为主体。Simulink中调用CANoe的Simulink Node,这需要时钟同步。

第二种:CANoe为主题。手册中称为HIL模式,需要Simulink先写好算法之类的,然后生成DLL,支持直接在Node中加载。(我想要的)

不管哪种方式,这个节点都需要创建,只是加载的文件可能不同,并且这个节点支持IL/ASRNM等一些DLL的调用。

2.3 Data Exchange

安装那个拓展软件后,介绍了Simulink中CANoe-IO模块。看图中CANoe提供的模块还挺多的,包括总线信号,系统变量,VT变量等。VC牛逼!

2.4 Execution Modes

2.4.1 Hardware-In-The-Loop (HIL) Mode

完全运行在CANoe环境。不需要和Matlab时间同步。

2.4.2 Offline Mode 

运行在Simulink环境。以Matlab时钟为主时钟。时间流逝将变为Faster and Fatser,而且不需要其他硬件进行同步,可以用来早期Debug。数据交互时MS的COM配置将被取代(不太懂)

2.4.3 Synchronized Mode 

运行在Simulink环境。需要和VN设备进行时钟同步(精度1ms)。

3.0 Model Development

浏览了下,应该是介绍了Simlink中如何使用CANoe。(我不需要,就直接跳过了)

4.0 Support for Models in HIL Mode

如果使用HIL模式,需要 Simulink模块编译一个DLL出来,这个DLL可以加载到CANoe的Node节点。CANoe提供了好几种模式来运行执行和分析,分析模块不需要Simulink许可证(存疑)

4.1 Parameterization

Simulink的每一个参数都可以在CANoe中获取,前提是Simulink编译DLL时激活以下选项:

在Simulink编译Dll,并将DLL到Node中时。CANoe将自动创建相对应的系统变量,这些参数名字可能会有些许出入。

需要注意的是,如果在测试阶段一些ECU变量发生了变化,而此时开发同事没有时间去重新做DLL。

方案一:测试人员可以在Node中添加CAN文件,在On Prestart中对改变过的变量进行修改。

方案二:创建一个CANoe Panel来管理这些系统变量。也提到了可以创建一个.net Panel,利用$(MATLABROOT)\rtw\bin\canoe\parameterization\Parameterization.dll. 可以修改这些变量(菜鸡不懂)。

4.2 Analysis of Simulink Signals

CANoe也支持调用Simulink Analysis的变量。前提是要激活相关选项:

而Analysis中的信号和CANoe的Sysvar的对应时按照功能模块名进行。例如手册中提到的:

对应到:

4.3 Calibration

支持标定。这本手册应该是基于CANoe11编写的,我21年入行后就一直用的14往上的版本,尴尬。这个Standalone mode独立模式在CANoe18 SP2已经被替代了。

好像是CANoe提供的Simulink库里应该有一个标定的模块?后续涉及到了再看看。

4.4 Model Viewer

CANoe提供了一个浏览器来查看调用的Simulink功能关系。如果已经正确加载了对应的dll和相关文件,可以点击Node的show Simulink® model来查看。

这个浏览器可以查看Simulink的功能和CANoe环境变量的关系,很是方便:

在Simulink中的Prompt提示词窗口可以输入命令 VGenerateModelViewerInformation('model name')来查看。

如您有其他理解,可以下方评论或者私信告知~欢迎交流~

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

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

相关文章

Linux宝塔面板安装Windows环境搭建企业

宝塔面板是一款非常流行的服务器管理软件,支持多种操作系统,包括Linux。以下是基于CentOS系统的宝塔面板安装步骤: 1. 检查系统环境确保您的服务器操作系统为CentOS 7.x 或更高版本。 确保服务器有公网IP地址。2. 关闭防火墙(可选) 3. 安装宝塔面板打开终端或SSH连接到您的…

CTF学习(2):Misc(你竟然赶我走)

1.查看图片的详细信息查找flag 2.查看图片是否隐藏宽高,通过修改高度使flag出现 3.根据图片的文件类型选择工具查看是否隐藏flag 4.(这道题)使用010 editor---将图片转为16进制 搜索文本获取 flag

20222302 2024-2025-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 (1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧 (2)通过组合应用各种技术实现恶意代码免杀 (3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 2.实验过程 任务一:正确使用msf编码器,veil-evasio…

mac 系统更新ruby

mac 系统更新ruby mac 系统更新遇到的机器坑爹的情况: 无法更新ruby 的情况,就是更新的时候提示版本过低无法更新 前提知晓: Homebrew Homebrew 是 macOS 和 Linux 系统上的一个流行的包管理器,用于简化软件的安装、管理和配置。它允许用户通过简单的命令行界面来安装、更新…

【蓝桥杯】C++ 第20场 小白入门赛

一、四个亲戚 题目 四个亲戚 题目分析 字面意思:Daiyu+‘kind’ 代码#include <iostream> using namespace std; int main() {cout<<"Daiyukind";return 0; }二、黛玉泡茶 题目 黛玉泡茶 题目分析 1.我们可以c 2.然后c 3.计算c,如果不能,整除后的答案…

2024-2025-1 20241314 《计算机基础与程序设计》第四周学习总结

2024-2025-1 20241314 《计算机基础与程序设计》第四周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第四周作业作业正文 正文教材学习内容总结 计算机系统计算机组成:中央处理器(CPU):负责…

【学校训练记录】10月个人训练赛4个人题解

A:要使s,t相等只要互相删除对方没有的字母即可,即找到a-z字母拥有最少的 #include <bits/stdc++.h> #define endl "\n" #define int long long using namespace std;string s1, s2; int a1[30], a2[30]; void solve(){cin >> s1 >> s2;for(int i …

CSP 模拟 50

A 小 h 的几何 简单证一下圆心,九点圆就不写了。首先画出单位圆,圆形为 \(\text{O}\),随便找到一个内接三角形 \(\triangle_{\text{ABC}}\),然后找到中点连接出四个三角形,分成的四个三角形全等,且 \(\triangle_{\text{AEF}}\) 与 \(\triangle_{\text{EFG}}\) 关于 \(\te…