You are on page 1of 59

Real-Time Testing and Simulation Software

NI VeriStand 2010 使用手册


Document Version 1.0

By 慕慕 316395914
NI VeriStand 2010 使用手册

目录
1. 概述 ........................................................................................................................................... 3

2. 创建软件模型 ............................................................................................................................ 4

2.1. 创建被控对象模型 ................................................................................................................. 4


2.2. 创建控制器模型 ..................................................................................................................... 9

3. 创建 MIL 测试环境 .................................................................................................................. 11

4. 创建测试激励信号 .................................................................................................................. 20

4.1. 使用 STIMULUS PROFILE EDITOR.................................................................................................. 20


4.2. 使用 TMDS FILE VIEWER ........................................................................................................... 26

5. VERISTAND 高级功能............................................................................................................... 28

5.1. 使用 USER CHANNELS、PROCEDURES、ALARMS ........................................................................... 28


5.2. 使用 CALCULATED CHANNELS ...................................................................................................... 33

6. 创建 HIL 测试系统 ................................................................................................................... 39

6.1. 添加实时目标机 ................................................................................................................... 39


6.2. 添加 NI DAQ 设备 .................................................................................................................. 41
6.3. 添加 NI R 系列设备 ............................................................................................................... 43
6.4. 添加 NI 故障注入模块 .......................................................................................................... 44
6.5. 添加 NI COMPACT RIO 硬件..................................................................................................... 47
6.6. 添加 NI XNET 硬件................................................................................................................. 48
6.7. 添加 TDK-LAMBDA 可编程电源 .............................................................................................. 53
6.8. 更改软硬件端口映射 ........................................................................................................... 57
6.9. 更改模型运行设置 ............................................................................................................... 58

2 / 59
NI VeriStand 2010 使用手册

1. 概述
VeriStand 2010 是美国 National Instruments 公司专门针对 HiL 仿真测试系统而开发出的
软件环境。
VeriStand 2010 是一种基于配置的软件环境,它简单易用,无需编程就完成实时测试系
统的创建,实现 HiL 测试中所需的各种功能。NI VeriStand 2010 能够配置模拟、数字和基于
FPGA 的硬件 I/O 接口;能够配置激励生成、记录数据、计算通道和事件警报;能够从 NI
LabVIEW 和 MathWorks Simulink®等建模环境中导入控制算法和仿真模型; 能够利用操作界面
实时在线监控运行任务并与之交互。

本文档介绍了 NI Veristand 2010 各项主要功能的使用方法,并按照通用的开发测试顺序


编写,主要内容包括:
 创建软件模型;
 创建 MiL 测试系统;
 实现自动化测试、记录数据;
 创建 HiL 测试系统。

3 / 59
NI VeriStand 2010 使用手册

2. 创建软件模型
NI VeriStand 2010 可以利用*.dll 文件导入由 Matlab/Simulink/Stateflow 创建的算法或仿真
模型,下图所示为 Simulink 模型导入 NI VeriStand 的过程:

The MathWorks, Inc. 在Simulink环境中


Simulink 创建模型

The MathWorks, Inc. 利用Matlab RTW, 将


Real-Time Workshop Simulink模型编译为C代码

Compiler 利用VC,将C代码编译为
Model_name.dll

在NI VeriStand中,直接添
NI VeriStand
加*.dll文件

注意:NI VeriStand 支持的编译器包括 Microsoft Visual C++ 6.0, .NET 2003, 2005
(Professional or Express), or 2008 (Professional or Express).

在本章中具体介绍了上述过程的操作步骤,将一个在 Matlab/Simulink 环境下创建的


*.mdl 文件转换为 NI VeriStand 所支持的 *.dll 文件。

下面用到的仿真模型来自 Matlab / Simulink 的 Demos:


 发动机 Engine 模型:Modeling Engine Timing Using Triggered Subsystems
 控制器 ECU 模型:Engine Timing Model with Closed Loop Control

2.1. 创建被控对象模型

下面过程将演示如何将 Simulink 中的发动机 Engine 模型,转换为 VeriStand 可用的被控


对象模型。

1. 打开 Simulink 模型: Modeling Engine Timing Using Triggered Subsystem


另存到新建工作目录中,例如 D:\NIVS_HandsOn,为避免和原有模型冲突,重命名为
Engine.mdl

4 / 59
NI VeriStand 2010 使用手册

该发动机模型要求的输入信号为
 Throttle Angle 节气门开度
 Drag Torque 拖拽扭矩(负载扭矩)
输出信号为
 Engine Speed 发动机转速

关于该模型的具体信息,请参考 Simulink 帮助文档。

5 / 59
NI VeriStand 2010 使用手册
运行后结果如下所示,上图为发动机模型所需输入信号,黄色曲线为负载扭矩,紫色曲
线为节气门开度;下图中为发动机模型计算的输出信号,黄色曲线为发动机转速。

1) 0~5s,节气门开度不变,负载扭矩在 2s 时,由 25 Nm 下降到 20 Nm,发动机转速


因负载扭矩变小而提高;
2) 5s 时,节气门开度增加,负载不变时,发动机转速快速升高;
3) 8s 时,负载扭矩再次增加,节气门开度不变,转速下降。

2. 正确安装 VeriStand 后,在 Simulink Library Browser 中会自动添加 NI VeriStand Blocks,


如下图所示:

6 / 59
NI VeriStand 2010 使用手册
3. 修改模型
1) 将模型中需要做映射的端口,用相应的 NIVeriStand In 和 NIVeriStand Out 替代;
2) 在 Simulink 模型最上层中添加 Block NIVeriStandSignalProbe,添加后下层所有模块
的参数也都可以通过 VeriStand 观测或者修改;
3) 取消原 Simulink 模型中 Signal Properties 下有关 data logging 的选项。

4) 完成修改后的发动机模型如下所示:

4. 设置编译环境并编译
1) 打开 Simulink 模型的 Configuration Parameters (快捷键:Ctrl+E),
2) 在 Real-Time Workshop 中,
指定 System target file 为 NIVeriStand.tlc,点击 OK 确认。
注意:如果实时目标机为 cRIO 系列,此处要选择 NIVeriStand_VxWorks.tlc

7 / 59
NI VeriStand 2010 使用手册

3) 回到 Solver 页面,选择定步长求解器:fixed step-size ordinary differential equation


(ODE) solver
注意:NI VeriStand 只支持使用定步长的常微分方程求解器

4) 指定步长:Fixed-step size (fundamental sample time)为 0.001,也就是 1kHz


注意:步长越小仿真模型计算越准确,但相应的会消耗更多技术资源。修改完步长
后,要再次运行仿真模型,观察结果,既要避免因步长选择过大,出现如无法收敛,
计算精度无法满足要求,又要避免过小的步长造成 cpu 运算负担过大,影响实时性。

5) 点击 Incremental Build 图标或者 Ctrl + B,开始编译

6) 编译成功后,Matlab 的 Command Windows 中出现下列提示,

### Successful completion of Real-Time Workshop build procedure for model: ModelName,

并生成与 Engine.mdl 同名的 Engine.dll 文件,保存在新生成的 Engine_niVeriStand_rtw


文件夹内。

8 / 59
NI VeriStand 2010 使用手册

2.2. 创建控制器模型

在 Simulink 提供的 Demo Engine Timing Model with Closed Loop Control 中包含了控制器
ECU 的算法。我们需要把其中的控制器(Controller)算法从闭环模型中分割出来,建立单独的
ECU 模型,并编译为对应的 *.dll 文件。
Controller 采用 PI 控制算法,可根据目标发动机转速,结合发动机模型中的负载扭矩,
计算出节气门开度,最终使发动机实际转速与目标转速一致。
下图中黄色曲线为发动机负载曲线,紫色曲线为控制器输出的节气门开度
1) 2s 时,由 25 Nm 变为 20 Nm
2) 8s 时,由 20 Nm 变为 25 Nm

下图中黄色曲线为目标转速(Speed Setpoint),在 5s 时由 2000 rpm 跳变为 3000 rpm,


紫色曲线为实际转速。

9 / 59
NI VeriStand 2010 使用手册
1. 分割、修改 ECU 模型
1) 打开所需的 Demo:Engine Timing Model with Closed Loop Control

2) 提取模型中的 Controller 子模块

3) 添加 NIVeriStand In、NIVeriStand Out 和 NIVeriStandSignalProbe,另存为 Ecu.mdl。


修改后的 ECU 模型如下所示:

2. 设置编译环境并编译,最终生成所需的 Ecu.dll 文件。具体配置过程请参考发动机模型


转换部分。

10 / 59
NI VeriStand 2010 使用手册

3. 创建 MiL 测试环境
在上一章中,我们准备好了 Engine 和 Ecu 的软件模型,在本章中,我们会将其导入到
NI VeriStand 2010 中,创建一个 MiL (Model-in-the-Loop) 测试环境,并介绍如何在 Work Space
中添加控件,控制和观察 Engine、Ecu 的行为。

1. 运行 NI VeriStand
Start » Program Files » National Instruments » NI VeriStand 2010 » NI VeriStand.

2. 新建一个项目(Create a new project).


1) 选择 File » New Project.
2) 在 Project Name 中输入项目名称:ecu hil hands on.
3) 指定项目根目录 Project Root Folder 到 <Public Documents>\National
Instruments\NI VeriStand 2010\Projects
4) 勾选 Create folder for project.
5) 点击 OK 确认.

3. 点击 Configure Project, 打开项目浏览器 Project Explorer.

项目浏览器(Project Explorer) 用于配置测试所需的全部设置。通过


Project Explorer 可以部署(Deploy)和运行(Run)系统定义文件。项目浏览器包
括所有运行和自动化测试所需关键的参数,同时也可以添加定制文件。

11 / 59
NI VeriStand 2010 使用手册
4. 展开 System Definition File 节点.

5. 鼠标右键单击 <ProjectName>.nivssdf 文件,选择 Launch System Explorer.

系统浏览器 (System Explorer) 用于创建 NI Veristand 系统定义文件。系


统定义文件是一个配置 NI Veristand 引擎特性的文件。通过添加,删除和修
改位于系统浏览器左部的各项配置可以定义各种属性,包括 NI VeriStand 引
擎的执行方式、硬件端口、计算通道、对仿真模型的控制、报警,执行顺序
以及管理通道之间的映射关系。完成系统定义文件的设置后,它将被部署到
NI VeriStand 引擎并开始运行。

6. 添加发动机 Engine 模型
1) 展开 Targets » Controller,点击 Simulation Models;
2) 添加模型 Add Simulation Model.

12 / 59
NI VeriStand 2010 使用手册
3) 将目录转换到 Engine.dll 所在目录

4) 选择 Engine.dll,单击 OK.确认

发动机模型有 2 个输入 (节气门开度和负载扭矩) 和 1 个输出(发动机输出)


7. 添加控制器 ECU 模型
1) 点击 Simulation Models,添加仿真模型 Add Simulation Model;
2) 选择 Ecu.dll,单击 OK 确认。

控制器模型包含 2 个输入(目标转速 rpm 和实际转速 rad/s)和 1 个输出(节气门位置)。


目标转速由上位机给定、实际转速来自于发动机模型,ECU 计算出的节气门位置再
传递给发动机模型。

8. 调整发动机模型和控制器模型的运行顺序
1) 在 System Explorer 左侧的树状结构中选择 Execution Order;
2) 将发动机模型的色条由 Group1 拖到 Group2

13 / 59
NI VeriStand 2010 使用手册

9. 现在需要将发动机和控制器模型的输入输出端口映射到一起
1) 从菜单中选择 Tools » Edit Mappings
2) 从 Sources 来源窗口中选择 Simulation Models » Models » Ecu » Outports » throttle
angle setpoint
3) 从 Destinations 目标窗口中选择 Simulation Models » Models » Engine » Inports »
Throttle Angle.
4) 点击 Connect,完成两个信号的相互映射

14 / 59
NI VeriStand 2010 使用手册

10. NI VeriStand 中也可以实现批量导入导出映射配置文件


1) 在 System Mapping 的工具条上点击 Open.
2) 选择文件映射文件 <Public Documents>\National Instruments\NI VeriStand
2010\Projects\ecu hil hands on\ecu hil mapping.txt.
3) 点击 Import,导入剩余的映射配置到 VeriStand 中.
4) 点击 Exit,所有的映射关系会在 Mappings 的列表中显示出来

11. 添加标定参数,实现在线标定功能
1) 展开 Models » Ecu » Parameters,里面包含了 Simulink 模型中所有 Block 的参数
2) 双击 Source 窗口中的 Proportional Gain,添加 PI 控制器的比例系数
3) 双击 Source 窗口中的 Integral Gain,添加 PI 控制器的积分系数

15 / 59
NI VeriStand 2010 使用手册

Imported 中会出现在 Source 窗口中双击选定的参数,这些参数可以进行在


线的调整参数。
添加完毕后,保存,如果出现下列错误提示。直接选择 Continue 即可,不
会影响后续操作。

12. 在 System Explorer 的树状节点中选择 Controller

13. 改变目标速率 Target Rate 为 1000 Hz (1 kHz).

16 / 59
NI VeriStand 2010 使用手册

14. 保存并且关闭系统浏览器 System Explorer

至此我们已经导入了所需的模型并且将端口映射到了一起,下面就可以将系统定义文件
部署到计算机中并开始运行。通过在 Workspace 中添加相应控件,可以设定发动机目
标转速,然后观察控制器是如何通过调整节气门开度,使发动机达到指定转速的。

15. 选择 Operate » Run, 部署和执行系统定义文件

16. 点击 Screen » Screen Properties…从中可以修改页面(screen)名称


1) Name the screen:MIL.
2) 选择 OK.

17. 切换到编辑模式,可以添加控件。选择 Screen » Edit Mode or CTRL+M.

18. 从左侧的 Workspace Controls 栏中,拖拽一个图形控件 Graph(Simple)


1) 名称 Graph Title: Engine Speed
2) 选择通道 Channel:
Controller » Simulation Models » Models » Engine » Outports » Engine Speed

3) 点击 将 Engine Speed 添加到 Graph 中


4) 选择 Format & Precision 标签
5) 修改 Y 轴的显示范围最大值 Maximum: 5000 和最小值 Minimum: 0
6) 修改 Y 轴坐标名称 scale Label: rpm
7) 修改 X 轴坐标名称 scale label: time

17 / 59
NI VeriStand 2010 使用手册
19. 从左侧的 Workspace Controls 栏中,拖拽一个数字控件 Numeric Control (Medium)
 选择通道 Channel: Controller » Simulation Models » Models » Ecu
» Inports » rpm Setpoint
 填写控件名称 Control Label: rpm Setpoint

20. 从左侧的 Workspace Controls 栏中,拖拽一个数字控件 Numeric Control (Medium)


 选择通道 Channel: Controller » Simulation Models » Models »
Engine » Inports » Load Torque
 填写控件名称 Control Label: Load Torque

21. 退出编辑模式,选择 Screen » Edit Mode (Ctrl + M).

22. 添加对 Engine 模型运行的控制,从左侧的 Workspace Controls 栏中,拖拽一个模型控件


Model (Model Control)
 Model : Controller / Ecu

23. 添加对 Ecu 模型运行的控制,从左侧的 Workspace Controls 栏中,拖拽一个模型控件


Model (Model Control)
 Model : Controller / Engine

24. 修改 Ecu 控制器中的 I 参数,从左侧的 Workspace Controls 栏中,拖拽一个模型标定控


件 Model Calibration Control (Medium)
 需要标定的通道名称 Calibration:ECU/Controller/Integral Gain/Gain
 填写控件名称 Control Label: I 参数

25. 修改 Ecu 控制器中的 P 参数,从左侧的 Workspace Controls 栏中,拖拽一个模型标定控


件 Model Calibration Control (Medium)
 需要标定的通道名称 Calibration: ECU/Controller/Proportional Gain/Gain
 填写控件名称 Control Label: P 参数

18 / 59
NI VeriStand 2010 使用手册

26. 至此基本的 MiL 测试环境创建完成,可以改变目标转速和负载,验证 Ecu 控制器中的算


法是否满足要求,也就是实际转速能否快速、稳定的跟随目标转速。并能通过修改 P、
I 参数,优化 Ecu 的控制效果,并确定出最佳数值。

19 / 59
NI VeriStand 2010 使用手册

4. 创建测试激励信号
在第 3 章中我们学习了如何用 NI VeriStand 2010 的 Workspace 建立基本的用户界面。在
本章中将介绍如何使用 Stimulus Profile Editor 创建测试激励信号,用于自动化测试。NI
VeriStand 中还集成了有许多其他工具,包括警报监控,信号错误管理,TDMS File 观测器等,
我们将在后面的章节继续介绍。

4.1. 使用 Stimulus Profile Editor

使用 NI VeriStand 2010 下的激励信号编辑器 Stimulus Profile Editor 可以创建激励信号,


常用的如正弦波、方波、三角波、阶跃信号等可直接拖拽、配置。

1. 在 Project Explorer 浏览器中,右键单击 Profiles,选择 Add » New Stimulus Profile…


1) 保存到 <Public Documents>\National Instruments\NI VeriStand 2010\Projects\ecu
hil hands on\Stimulus Profiles 文件夹

2. Header 标签栏用于指定所记录数据的存放位置 Data File Path,可设置分组存放文件夹


Group folder 和指定测试样本编号 Sample Number。

20 / 59
NI VeriStand 2010 使用手册

3. 转换到 Profile 标签栏,现在创建一个 profile,用于控制发动机的转速

4. 首先,我们分配发生器 1 用于给定目标转速 Speed Setpoint。


初始化为 2000 rpm,保持 20s,增加到 3000 rpm,保持 20s 减少到 2500 rpm,保持 10s

1) With Generator 1 选择 ed (default), 选择 Add Mappings .

21 / 59
NI VeriStand 2010 使用手册

2) 选择 Controller » Simulation Models » Models » Ecu » Inports » rpm setpoint.


3) 选择 Add » Ramp 添加一个斜坡函数作为激励.

4) 设置斜坡函数,初始 2000:
 End Point: 2000
 Ramp Mode: Fixed Duration
 seconds: 0

22 / 59
NI VeriStand 2010 使用手册

5) 选择 Add » Dwell 并设置,维持 20s:


 Duration: 20
6) 选择 Add » Ramp 并设置,增加到 3000:
 End Point: 3000
 Ramp Mode: Fixed Duration
 Duration: 0
7) 选择 Add » Dwell 并设置,维持 20s:
 Duration: 20
8) 选择 Add » Ramp 并设置,减少到 2500:
 End Point: 2500
 Ramp Mode: Fixed Duration
 Duration: 0
9) 选择 Add » Dwell 并设置,维持 10s:
 Duration: 10

我们可以并行的有多个激励发生器。我们要将同时使用 Generator 1 和
Generator 2 给控制器设定目标转速和负载

5. 我们为 Load Torque 新建一个发生器。负载初始为 25,10s 后降低到 20,维持 20s,之后


再加大到 25,并维持 20s.

1) 点击 + 按钮,添加第二个 Generator.
2) 选择 Step-based Generator (default),点击 OK
3) 选择 Add Mappings .

23 / 59
NI VeriStand 2010 使用手册

4) 选择 Controller » Simulation Models » Models » Engine » Inports » Load Troque.


5) 选择 Add » Ramp,设置初始值为 25 Nm:
 End Point: 25
 Ramp Mode: Fixed Duration
 Duration: 0
6) 选择 Add » Dwell,设置持续时间 10s:
 Duration: 10
7) 选择 Add » Ramp,设置减少到 20 Nm:
 End Point: 20
 Ramp Mode: Fixed Duration
 Duration: 0
8) 选择 Add » Dwell,设置持续时间 20s:
 Duration: 10
9) 选择 Add » Ramp,设置增加到 25 Nm:
 End Point: 25
 Ramp Mode: Fixed Duration
 Duration: 0
10) 选择 Add » Dwell,设置持续时间 20 s:
 Duration: 20
11) 点击 OK,完成全部激励设置后如下图所示:

24 / 59
NI VeriStand 2010 使用手册

6. 选择 Logging 标签栏.

7. 点击 + 按钮为记录数据添加一个新文件

8. 配置记录文件
1) 点击 browse 按钮,选择记录文件指定保存路径

9. 切换到 Channels 标签栏,选择需要记录的信号: 目标转速 rpm setpoint 以及模型计算


出的 ’实际转速’ Engine Speed
1) 切换到 Channels 标签页.
2) 单击 Add Channels.
3) 选择 Controller » Simulation Models » Models » Ecu » Inports » rpm setpoint.
4) 选择 Controller » Simulation Models » Models » Engine» Outports » Engine Speed.
5) 点击 OK 确认.

25 / 59
NI VeriStand 2010 使用手册

可以用多个文件分开记录几组不同条件下的激励信号;也可以选择不同的记录速度,
分开记录变化比较慢的信号,减少对传输线路和磁盘空间的占用。

10. 保存激励信号,点击 Save.

11. 点击 Stimulus Profile Editor 上的菜单 Window » Full Size, 隐藏编辑界面.

12. 点击 Stimulus Profile Editor 上的 Run 按钮, 运行定义好的激励文件


1) 观察发动机转速和负载扭矩的变化

4.2. 使用 TMDS File Viewer

1. 当 Stimulus Profile 运行结束后,可使用 TDMS 文件浏览器查看所记录的数据


1) 打开 TDMS 文件浏览器 (TDMS File Viewer)。 在 workspace 的菜单中选择 Tools »
TDMS File Viewer
2) 单击 File » Open.
3) 找到创建的记录文件(log file),test_case1
4) 在 File Contents 选中 test_case1.tdms.
5) 选择 Analog values (graph) 标签栏,查看整个记录的波形

26 / 59
NI VeriStand 2010 使用手册

NI DIAdem 或者 Excel 可以用来检查记录的数据。使用 NI DIAdem,可以


同时下载多个文件,交互式的自动分析,并且可以配置报告模板。
要使用 Excel 查看 TDMs 格式数据,需安装插件,下载地址及使用说明:
http://zone.ni.com/devzone/cda/tut/p/id/4906

安装成功后,右键单击 TDMs 文件,打开方式中选择 Excel Importer。

27 / 59
NI VeriStand 2010 使用手册

5. Veristand 高级功能
在上一章中,我们创建了用于自动化测试的基本激励信号。在这一章中,将先介绍 User
Channels、Procedures、Alarms 的使用方法,随后介绍如何利用 Calculated Channels 完成更
复杂的测试。

5.1. 使用 User Channels、Procedures、Alarms

在第三章“创建 MiL 测试环境”中,我们直接使用了 Work Space 中的 model control 控


件,控制仿真模型的运行、暂停、重启。本节中将使用 User Channels,Procedures 和 Alarms
为模型添加一个 Reset 按钮,同时对 Ecu 和 Engine 模型进行控制。

实现思路:创建一个 Alarm 通道“Reset has been pressed”,它用来监测 User Channel


“Reset MIL”。当这个 User Channel 执行后,Alarm 通道会发现并触发 Procedure “Reset MiL”。

1. 创建 User Channels 通道
1) 在 System Explorer 中,展开 Controller 节点,单击 User Channels
2) 添加 Add User Channel

 Name: Reset MiL


 Description: Press this button to reset the Ecu and the Engine
 Initial value: 0.

28 / 59
NI VeriStand 2010 使用手册

2. 创建 Alarms 通道,监测 User Channels


1) 在 System Explorer 中,展开 Controller 节点,单击 Alarms

2) 添加 Add Alarm

 Name: Reset has been pressed


 Channel: User Channels/Reset MiL,点击 OK 确认
 Alarm Upper Limit: Cosntant Value 0
 Alarm Lower Limit: Cosntant Value 0
 Alarm Action: 此处暂时不选

29 / 59
NI VeriStand 2010 使用手册

3. 创建 Procedures 通道,指定 Reset 按钮按下后的系统行为

1) 添加 Add Procedure
 Name:Reset MiL

2) 添加停止 Add » Set Multiple Variables


 Name: Stop Ecu and Engine
 Number of Channels to Set: 2
 Channel 1: Controller » Simulations Models » Models » Ecu » Execution »
Model Command
 Value 1: 2

30 / 59
NI VeriStand 2010 使用手册
 Channel 2: Controller » Simulations Models » Models » Engine » Execution »
Model Command
 Value 2: 2

3) 延时 Add » Dwell
 Dwell Time:勾选 Use Constant Value,0.1

4) 开始运行 Add » Set Multiple Variables


 Name: Start Ecu and Engine
 Number of Channels to Set: 2
 Channel 1: Controller » Simulations Models » Models » Ecu » Execution » Model
Command
 Value 1: 0
 Channel 2: Controller » Simulations Models » Models » Engine » Execution »
Model Command
 Value 2: 0

5) 弹起 Reset 按钮 Add » Set Variable


 Name: Pop Up Button
 Channel to Set: Controller/User Channels/Reset MiL
 Value 1: 勾选 Use Constant Value 0

6) Add » Alarm Command

31 / 59
NI VeriStand 2010 使用手册
 Name: Acknowledge Alarm
 Function: Reset Alarm & Exit Subroutine
 Alarm: Reset has been pressed

7) 点击 Controller » Alarms » Reset has been pressed


 Alarm Action:选择 Procedures/Reset MiL
 Priorit: Low
 Default State: Enabled
 Delay Duration (sec): 0.000
 Mode: Normal

4. 保存系统定义文件,Deploy 后,在 workspace 中添加布尔量控件,映射到 User Channel


» Reset MiL。当单击此按钮时 Reset MiL = 1,超出了 Alarm 通道所规定的阀值 0,
Procedures 被 Alarm 触发,Engine 模型和 Ecu 模型先停止、再运行,完成重新启动过程
后,Reset MiL = 0,按钮复位。

32 / 59
NI VeriStand 2010 使用手册

5.2. 使用 Calculated Channels

测试 Ecu 算法时,希望当发动机在某点运行稳定后,再自动进入下一工况点。这就要求
测试系统能检测出过渡工况何时结束,在本节中我们将利用 Calculated Channels 实现该功
能。

1. 创建 Calculated Channels 通道,为实现功能我们需要创建 6 个计算通道。


1) 在 System Explorer 中,展开 Controller 节点,单击 Calculated Channels

2. 创建通道 ”Rpm Low Bound”,使用 Formula 模式,设置如下图所示

33 / 59
NI VeriStand 2010 使用手册

3. 创建通道 “Rpm High Bound”,使用 Formula 模式,设置如下图所示

34 / 59
NI VeriStand 2010 使用手册
4. 创建通道 ”Rpm > Low Bound”,使用 Conditional 模式,设置如下图所示
当发动机模型计算出的 Engine Speed 大于通道 ”Rpm Low Bound” 的值时,返回常值 1,
否则为 0

5. 创建通道 ”Rpm < High Bound”,使用 Conditional 模式,设置如下图所示


当发动机模型计算出的 Engine Speed 小于通道 ”Rpm High Bound” 的值时,返回常值 1,
否则为 0。

35 / 59
NI VeriStand 2010 使用手册

6. 创建通道 ”Rpm within Range”,使用 Conditional 模式,设置如下图所示


当通道 ”Rpm > Low Bound” 和 “Rpm < High Bound” 同时成立时,”Rpm within Range”
通道返回值为 1,否则为 0

36 / 59
NI VeriStand 2010 使用手册
7. 为了避免因为信号波动造成的错误判断,创建通道 ”Rpm Pass”,使用 Average 模式,对
通道”Rpm within Range”求 200 个采样点的平均值,也就是只有当转速在允许范围内稳
定一段时间后,”Rpm Pass” 才会置 1

8. 修改测试激励信号
以第 4 章创建的激励信号为基础,加入判断条件,监测系统是否稳定。
1) 在 Project Explorer 中右键单击 Profiles,选择 Existing Stimulus Profile

2) 在测试序列中添加 Conditional
按测试序列,在 Conditional 这一步时,会对通道 ”Rpm Pass” 的值进行判断,如果
没有进入稳定状态,则返回到上一步,继续等待 Dwell,直到 “Rpm Pass” 为 1,
自动进入下一个工况点。

37 / 59
NI VeriStand 2010 使用手册

9. 运行新的激励信号,结果如下所示

38 / 59
NI VeriStand 2010 使用手册

6. 创建 HiL 测试系统
在本章中,我们会学习如何将一个 MiL 测试环境转换为 HiL 测试。主要包括添加实时目
标机(RT Target)、添加各种硬件资源、向 RT 目标机中部署系统定义文件等。同时因为 HiL 测
试使用了真实的 Ecu,对软硬件 I/O 端口也要重新进行映射。除此之外,前面提到的 VeriStand
2010 各种使用方法都可以用于 HiL 测试。

6.1. 添加实时目标机

1. 打开 Measurement and Automation Explorer (简称 MAX),它可以提供 HiL 系统中所包含


的硬件信息。
Start » All Programs » National Instruments » Measurement and Automation Explorer.

2. 点击远程系统 (Remote Systems) 下的 PXI RT Target,


1) 在”网络设置” 中,记下 IPv4 地址(IP address).

2) 如果搜索不到远程系统,请首先确认 Host PC 的 IP 地址设置是否正确,之后在


Measurement and Automation Explorer 中选择 查看 刷新

39 / 59
NI VeriStand 2010 使用手册

 Host PC 的 IP 地址应与 RT Target 在同一子网段内,例如:

3. 打开 VeriStand 2010 的系统浏览器 (System Explorer)


1) 单击 Controller 节点。

2) 选择 Operating System 为 PharLap。


注意:如选择 Windows,则 VeriStand 引擎会部署到 Host PC 中,选择 PharLap 对应
的是 PXI RT Target,选择 VxWorks 对应的是 cRIO 系列 Target。

3) 将 MAX 中显示的 IPv4 地址填写到 IP Address 中

40 / 59
NI VeriStand 2010 使用手册
4. 保存并且关闭系统浏览器(System Explorer).

5. 从菜单中选择 Operate » Run,这样系统定义文件就会被部署到 RT Target 当中。

6.2. 添加 NI DAQ 设备

NI DAQ 设备包括 M 系列多功能采集卡、计数器/计时器卡、模拟输入输出板卡以及数字


I/O 板卡。

1. 在 MAX 中确认要添加的板卡名称
例:下图中 PXI-6225 采集卡的名称为 dev1

2. 在 VeriStand 2010 的 Syetem Explorer 中,展开 Chassis 节点,单击 Add DAQ Device.

3. 在弹出窗口 ”Create DAQ Device” 中设置所需的 I/O 资源。


1) 例:对于 M 系列的多功能采集卡 PXI 6225
 Type:MIO
 Name:dev1
 注意:名称一定要与 MAX 软件中的一致,否则无法识别硬件!
 AI、AO、DI、DO、CTR(计数器)的数量可根据实际需要及板卡最大支持数量
进行设置

41 / 59
NI VeriStand 2010 使用手册

2) 对于数字板卡或计数器板卡,需要在 Type 的下拉菜单中选择 DIO 或 CTR。

4. 点击 OK 确认后,在 DAQ 节点下会显示新添加的设备,并且硬件通道按类型进行了分


组。

5. 单击某个通道,在右侧窗口内修改相关参数。

42 / 59
NI VeriStand 2010 使用手册

6.3. 添加 NI R 系列设备

NI 的 R 系列设备板载有 FPGA 芯片,因此也称作 FPGA 板卡。在 HiL 台架中装有 2 块


PXI-7842R 板卡,下面将说明如何将其添加到 VeriStand 2010 环境中。

1. 在 Syetem Explorer 中,右键单击 Chassis,选择”Add FPGA Target”,或者点击快捷按钮

2. 在弹出的对话框内选择与所安装的 FPGA 型号一致的 fpgaconfig 文件

43 / 59
NI VeriStand 2010 使用手册

3. 确定后,在 FPGA 节点下出现所有可用的 FPGA 资源

6.4. 添加 NI 故障注入模块

HiL 测试台架中装有 3 种故障注入模块,分别是 PXI-2510,PXI-2512 和 PXI-2514,下面


以 PXI-2512 为例,说明如何在 VeriStand 环境下集成。

1. 故障注入模块 FIU 属于 Custom Devices

44 / 59
NI VeriStand 2010 使用手册
2. 右键单击 Custom Devices,选择系统安装的 FIU 模块 PXI-2510,PXI-2512,PXI-2514,在
弹出对话框中填写 FIU 设备名称(名称与在 MAX 显示的一致! )

3. 关闭并且保存 System Explorer,部署到 RT Target 中

4. 打开 Workspace,选择编辑模式(菜单 Screen » Edit Mode 或者使用快捷键 Ctrl+m)

5. 将 Workspace Controls 中的 FIU Control 控件(Channel、Fault Bus)拖拽到编辑区中

6. 右键单击控件,在弹出的 Select Desired Channel 中选择需要控制的故障通道,单击 OK


确认。

45 / 59
NI VeriStand 2010 使用手册

7. 每个故障注入通道 Fault Ch 可有 6 种状态

8. 特别的,因为 PXI-2510 与 PXI-2512、PXI-2514 硬件结构不同,它有 4 条故障总线 (a0~3,


b0~3),所以需要专用的控件 Fault Bus 对其控制。

46 / 59
NI VeriStand 2010 使用手册
9. Fault Ch 中的 Default 值在添加 FIU 硬件时可以单独设置。

6.5. 添加 NI Compact RIO 硬件

HiL 测试台架中装有 cRIO 系列采集模块 9269 和 9205,他们分别安装在 2 个 9144 机箱


中,9144 机箱采用 EtherCAT 与 PXI 机箱连接。

1. EtherCAT 属于 Custom Devices

2. 在 System Explorer 中,右键单击 Custom Devices,选择 Scan Engine and EtherCAT

3. 自动搜索添加,选择 Auto-Detect EtherCAT,即可将系统连接的所有 cRIO 设备识别并添


加到 Syetem Explorer 中。

47 / 59
NI VeriStand 2010 使用手册

4. 手动添加
1) 选择 Add EtherCAT Master,Slave 0 会自动添加到列表中
2) 因为 HiL 系统装有 2 个 9144 机箱,需要再添加一个 EtherCAT Slave

3) 逐一的指定每个 Slot 中所安装的 Module 型号,完成添加

6.6. 添加 NI XNET 硬件

HiL 测试系统中装有 CAN (PXI-8513/2),LIN (PXI-8516/2) 以及 FlexRay (PXI-8517/2) 通信


板卡。他们都属于 NI XNET 设备。下面以添加 CAN 端口为例,介绍添加流程。

48 / 59
NI VeriStand 2010 使用手册
1. 添加数据库,右键单击 XNET database,选择 Add Database

2. 修改数据库,右键单击刚添加的数据库,选择 Launch XNET Database Editor

1) XNET Database Editor 可以修改 CAN 数据库中报文的定义


2) Timing Type 中有周期发送,和事件触发发送两种类型。
如选择周期发送(Cyclic Data),Transmit Time 为发送间隔,但注意此处不能为 0,
否则无数据发送。

49 / 59
NI VeriStand 2010 使用手册

3. 添加 CAN 端口,在 System Explorer 中,右键单击 NI-XNET » CAN,点击 Add CAN Port

4. 设置 CAN 端口参数
1) XNET CAN port name:要填写在 RT Hardware Configuration 中显示的 Interface Name,
从‘CAN0’开始,没有空格!

50 / 59
NI VeriStand 2010 使用手册

2) XNET CAN port address: 要选择对应的 CAN 1

5. 添加要通过 CAN 端口收发的具体报文。


1) 右键 Incoming 下的 Single-Point,单击 Import Frames 添加要接收的报文
 勾选需要收发的报文,设置 Baud rate 后,点击 OK 确认

51 / 59
NI VeriStand 2010 使用手册

2) 右键 Outgoing 下的 Event Triggered,单击 Import Frames 添加事件触发发送的报文

3) 右键 Outgoing 下的 Cyclic,单击 Import Frames 添加周期发送的报文

6. 进行映射匹配,例如将发动机模型计算出的转速信号,以周期发送的方式,通过 CAN0
发送出去。

52 / 59
NI VeriStand 2010 使用手册
1) 打开 System Configuration Mapping
2) 从 Sources 窗口中选择要发送的信息(此处是发动机转速)
3) 从 Destinations 窗口中选择 CAN 端口及定义好的数据帧
4) 点击 Connect 建立映射关系
5) 点击 OK 确认。

6.7. 添加 TDK-Lambda 可编程电源

HiL 测试台架中装有 TDK-Lambda Genesys 系列可编程电源,


它通过 RS232 接口与 RT Target
互相连接,并能集成与 Veristand 2010 集成,实现远程控制。

1. TDK-Lambda 电源属于 Custom Devices

2. 右键单击 Custom Devices,


选择 National Instruments » Lambda Genesys DC Power Supply

53 / 59
NI VeriStand 2010 使用手册

3. 参数设置
1) 在 VISA Resource 中填写 COM1 (RT 处理器只有一个串口,所以用 COM1)
2) Address 和 Baud Rate 要于电源面板显示的一致,默认值为
 Address: 6
 Baud Rate: 9600

54 / 59
NI VeriStand 2010 使用手册

4. 关闭并且保存 System Explorer,部署到 RT Target 中

5. 打开 Workspace,选择编辑模式(菜单 Screen » Edit Mode 或者使用快捷键 Ctrl+m)

1) 在 Workspace 中添加 Boolean Control (Boolean Button)


 Channel: PS_Output Enable

2) 在 Workspace 中添加 Numeric Control (Mdium)


 Channel: PS_Voltage_Limit

3) 在 Workspace 中添加 Numeric Control (Medium)


 Channel: PS_Current_Limit

55 / 59
NI VeriStand 2010 使用手册

6. 退出 Workspace 编辑模式

7. 按钮 PS_Output 用于控制 TDK-Lambda 电源是否对外输出。

1) 电源工作时,表现为恒压源,即输出电压为 PS_Voltage_Limit 中所给值,电流根据


实际负载大小而变化,最大为 PS_Current_Limit。电源前面板显示当前电压与电流
值。
 注意:只有 PS_Current Limit 不为 0 时,才能修改 PS_Voltage Limit

2) 电源关闭时,不对外输出电压和电流。电源前面板显示 OFF

56 / 59
NI VeriStand 2010 使用手册

6.8. 更改软硬件端口映射

HiL 测试与 MiL 测试最大不同就是使用了真实控制器。添加完硬件资源后,需要对软硬


件映射做相应调整。

1. 从系统定义文件中删除控制器模型, 右击 Simulation Models » Models »Ecu,单击 Delete,


出现警告对话框时点击 OK 确认。

2. 将 HiL 系统的物理硬件与软件模型的输入输出接口映射到一起。

3. 选择 Tools » Edit Mappings 或者直接点击图标,打开 ”System Configuration Mappings”


窗口,我们可以在里面设置硬件与硬件、硬件与软件之间的映射关系。

4. 由于删除了控制器模型,会出现无效的映射,选择后点击右下角的 disconnect,解除映
射关系

5. 在 VeriStand 中添加完硬件后,会出现相应的硬件资源列表。例如:发动机模型的负载
扭矩,需要用 dev1 中的模拟输入管脚采集。

1) 依次单击硬件 I/O (AI0) 与 软件模型 I/O (Load Torque)


2) 点击 Connect,完成硬件端口与软件模型端口的映射

6. 前面提到的批量导入端口映射配置的方法,此处依然适用。

57 / 59
NI VeriStand 2010 使用手册

6.9. 更改模型运行设置

1. 实时目标机的计算频率,是评价 HiL 测试台架性能重要指标,HiL 台架性能越好则可调频


率越快。原则上,实时目标机的计算频率不应低于 Simulink 模型的仿真频率,否则难以
保证仿真效果。
在 Syetem Explorer 中单击 Controller,右侧窗口中的 Target Rate 即为实时目标机的运算
频率

58 / 59
NI VeriStand 2010 使用手册

2. VeriStand 中导入的被控对象模型,有些对运算频率要求不高,则可以通过设置分频系数,
降低其运算频率,减少实时系统计算负担。例:如果 Engine 模型 500Hz 的运算频率就可
以满足精度要求,那么可以通过修改分频系数实现。

模型运算频率 = Target Rate \ Decimation。

3. 对于使用多核的 Cpu 的实时目标机,VeriStand 2010 可以指定模型运行在任一核心上运


行,选择 Manual 模式,注意:cpu 核心编号是从 0 开始,四核处理器的分别是 0,1,2,

59 / 59

You might also like