-
实时仿真用户案例
Crank-嵌入式GUI设计和开发用户案例
021-64886750
-
实时目标机
Simulink模型库
Demo套件
info@yisuworld.com
使用Simulink Test和Speedgoat实时仿真系统进行MCU HIL的自动化测试
Simulink Test是MATLAB/Simulink中进行自动化测试的工具,具有如下特点:
- 对MATLAB/Simulink User十分友好,使用习惯上也非常相似;
- 与MATLAB/Simulink深度融合,很多功能与MATLAB/Simulink深度绑定;
- 一款轻量化的自动化测试工具,学习成本低,一周时间就可以上手;
- Simulink Test可以与MATLAB/Simulink的其他工具箱配合使用,可以满足更多测试需求;例如在Simulink Test的Test Case中嵌入Simulink Requirements的超链接,实现Test Case与测试需求的跟踪。例如通过Simulink Report Generator实现定制化测试报告;例如利用Simulink Coverage生成包含测试覆盖率信息的报告。
Speedgoat实时仿真系统是MATLAB/Simulink工具箱Simulink Real-Time推荐的实时仿真与测试的硬件系统。本文介绍如何使用Simulink Test和Speedgoat实时仿真系统进行MCU HIL的自动化测试;
——测试需求与技术规格——
测试需求来源于产品开发的技术规格,测试工程师以此编写产品测试的技术规格,由于本文是原理性的说明,因此对测试需求进行适当的简化:
- 测试需求1,搜索MTPA(Max Torque Per Ampere,最大转矩电流比)工作点:电机峰值电流100A,找到最大转矩时的d轴电流和q轴电流;
- 测试需求2,转矩精度:全速度范围内,最大转矩输出曲线的偏差在5%以内;
以上两个测试需求,测试需求1与自动化标定类似,测试需求2是MCU HIL测试的一个常规需求;
表1
项目 |
说明 |
测试名称 |
搜索MTPA工作点 |
需求来源 |
/ |
测试等级 |
/ |
应用范围 |
对于XXX项目的XXX车辆的XXX控制器 |
测试目的 |
电机峰值电流100A,找到最大转矩时的d轴电流和q轴电流; |
初始状态 |
检查目前控制器的软件版本是否正确 设置KL30为1 设置KL15为1 检查标定CAN接口的message XXX,ID 0xXXX的Rolling Counter持续5秒正常 |
测试步骤 |
设置控制器进入电流闭环模式; 设置控制器进入运行状态; 检查控制器持续工作5秒无故障; 设置电机转速1500rpm 根据电流峰值电流100A,电流角变化范围90~180,步长0.5,得到d轴电流和q轴电流的给定值,共计181组数据;数据以1秒的更新周期依次更新。并通过CAN接口以1ms的发送周期,发送给控制器; |
测试相关变量 |
输入变量: 输入的电机转速:In_Omega_mach,单位:rpm 输入的d轴电流:In_I_d_set,单位:A 输入的q轴电流:In_I_q_set,单位:A 测量参数: d轴电流给定值:I_d_set,单位:A q轴电流给定值:I_q_set,单位:A d轴电流实际值:I_d,单位:A q轴电流实际值:I_q,单位:A 电机转速实际值:Omega_mach,单位:rpm 电机实际转矩:Toq,单位:Nm |
测试结束状态 |
设置控制器进入停止状态; 设置控制器进入待机模式; |
期望结果 |
最大转矩时的d轴电流和q轴电流; |
测试文档 |
/ |
表2
项目 |
说明 |
测试名称 |
转矩精度 |
需求来源 |
/ |
测试等级 |
/ |
应用范围 |
对于XXX项目的XXX车辆的XXX控制器 |
测试目的 |
全速度范围内,最大转矩输出值的偏差在5%以内; |
初始状态 |
检查目前控制器的软件版本是否正确 设置KL30为1 设置KL15为1 检查标定CAN接口的message XXX,ID 0xXXX的Rolling Counter持续5秒正常 |
测试步骤 |
设置控制器进入电流闭环模式; 设置控制器进入运行状态; 检查控制器持续工作5秒无故障; 根据转矩给定值数据表,速度变化范围90~9000rpm,步长90rpm, d轴电流和q轴电流的给定值数据表,共计101组数据;数据以1秒的更新周期依次更新。并通过CAN接口以1ms的发送周期,发送给控制器; |
测试相关变量 |
输入变量: 输入的电机转速:In_Omega_mach,单位:rpm 电机给定转矩:Toq_set,单位:Nm 输入的d轴电流:In_I_d_set,单位:A 输入的q轴电流:In_I_q_set,单位:A 测量参数: d轴电流给定值:I_d_set,单位:A q轴电流给定值:I_q_set,单位:A d轴电流实际值:I_d,单位:A q轴电流实际值:I_q,单位:A 电机转速实际值:Omega_mach,单位:rpm 电机给定转矩:Toq_set,单位:Nm 电机实际转矩:Toq,单位:Nm |
测试结束状态 |
设置控制器进入停止状态; 设置控制器进入待机模式; |
期望结果 |
给定转矩与实际转矩的偏差在最大转矩的5%以内; |
测试文档 |
/ |
——系统组成——
搭建桌面式的MCU HIL系统,系统组成如下图所示,包括:
- Speedgoat实时仿真机和上位PC机,两者通过千兆以太网连接。Speedgoat实时仿真器包括IO334 FPGA模型,IO3XX-21数字扩展板,IO602 CAN HS/FD板卡;
- IO334的模拟信号连接到模拟接口端子,再连接到旋变调理板。
- IO3XX-21的数字信号连接到继电器接口,控制KL15和KL30信号,接收MCU Controller的PWM信号。
- IO602的CAN FD Port1连接MCU Controller的整车CAN接口。
图1 系统组成
——MCU HIL的Simulink模型——
搭建MCU HIL的Simulink模型如下所示,
序号 |
子系统模型 |
描述 |
---|---|---|
1 |
HDL_DUT与相连的子系统 |
电机的FPGA模型和CPU模型 |
2 |
MCU_CAN |
CAN通信相关的模型 |
3 |
INPUT |
用于数据的输入 |
4 |
OUTPUT |
用于数据的输出 |
5 |
DISP |
用于数据的显示 |
图2 MCU HIL的Simulink模型
——Simulink Test输入和输出——
Simulink Test的输入和输出如下图所示,包括:
- Inputs:可以输入MAT文件,Excel文件,Test Sequence;
- Parameters:可以输入MAT文件,Excel文件;
- Assessment:可以输出MAT文件,Excel文件,Test Assessment;
——开发自动化Test Case——
开发自动化Test Case的过程,就是将Inputs、Parameters和Assessments三部分完成的过程。
通过INPUTS编辑器创建EXTERNAL INPUTS,与模型顶层的input配合使用,以导入转矩,d轴和q轴电流给定值;
图4 INPUTS编辑器
通过SIMULATION OUTPUTS编辑器创建LOGGED SIGNALS,这些信号会被记录下来;
图5 SIMULATION OUTPUTS编辑器
通过Logical and Temporal Assessments编辑器创建Assessment 。详情参考Simulink Test的Help文件“Assess Temporal Logic by Using Temporal Assessments”和“Logical and Temporal Assessment Syntax”
图6 Logical and Temporal Assessments编辑器
——自动化执行Test Case——
通过SIMULATION SETTINGS OVERRIDES设置合理的仿真时长,然后点击Run按钮,执行自动化Test Case
图7 执行Test Case
——查看测试结果——
测试完成之后在Results and Artifacts查看测试结果;
图8 测试结果的树型图
图9 测试结果:设定转矩与实际转矩
图10 转矩误差(设定转矩与实际转矩)的判断
——创建测试报告——
测试完成之后在Results and Artifacts中,右键选择Create Report;
图11 测试报告
——Hardware and Software for MCU HIL——
首先利用Simulink基本模块搭建Spatial Harmonics PMSM模型,并引用JMAG、MAXWELL或者Motor-CAD导出到MATLAB Workspace中的电机磁链表格数据,再通过HCIP工具,调用HDL Coder生成HDL代码,最终编译并下载至Speedgoat IO334 FPGA 板卡中运行。整个过程所需的主要硬件和软件如下
其中Speedgoat公司产品:
- Performance Realtime Target Machine
- IO334 FPGA Module
- IO3XX-21 FPGA rear plug-ins
- IO602 CAN FD
- Speedgoat I/O Blockset
- HDL Coder Integration Package
其中MathWorks公司产品:
- MATLAB/Simulink
- MATLAB/Simulink Coder
- HDL Coder/Fixed Point Design
- Simulink Real-Time
- Simulink Test
如果对以上方案感兴趣,欢迎与我们联系。
电话:021-64886750
地址:上海市闵行区中春路7755号宝虹中心701室, 201101
-
电力电子(含控制器和被控对象模型)
凭借多年在电力电子行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
轨道交通(含控制器和被控对象模型)
凭借多年在轨道交通行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
信号调理系统
在HIL测试中,硬件在环设备起到模拟被测ECU被控对象的作用。需要根据ECU的PIN脚信息,模拟相应信号。这类设备的核心为实时系统,实时系统会提供相应IO通道,处理信号的产生和采集。但这类IO通道一般为标准规格,比如数字通道为TTL规格,模拟通道只是测电压等;这与被测ECU所需的信号规格有较大差异,故需要一套信号调理系统,负责两者之间信号的转接。¥ 0.00立即购买
-
电机控制Demo套件
使用Simulink和Speedgoat转动无刷直流电机。¥ 0.00立即购买
实时目标机
仿真测试应用场景
学习与支持
关注熠速微信公众号
仿真测试解决方案
I/O接口模块
通讯协议模块
FPGA技术
被控部件仿真
Simulink模型库
Demo套件
测量测试解决方案