NI VeriStand 使用手册概述 建模 创建MiL环境.docx

上传人:b****8 文档编号:27733554 上传时间:2023-07-04 格式:DOCX 页数:19 大小:579.90KB
下载 相关 举报
NI VeriStand 使用手册概述 建模 创建MiL环境.docx_第1页
第1页 / 共19页
NI VeriStand 使用手册概述 建模 创建MiL环境.docx_第2页
第2页 / 共19页
NI VeriStand 使用手册概述 建模 创建MiL环境.docx_第3页
第3页 / 共19页
NI VeriStand 使用手册概述 建模 创建MiL环境.docx_第4页
第4页 / 共19页
NI VeriStand 使用手册概述 建模 创建MiL环境.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

NI VeriStand 使用手册概述 建模 创建MiL环境.docx

《NI VeriStand 使用手册概述 建模 创建MiL环境.docx》由会员分享,可在线阅读,更多相关《NI VeriStand 使用手册概述 建模 创建MiL环境.docx(19页珍藏版)》请在冰豆网上搜索。

NI VeriStand 使用手册概述 建模 创建MiL环境.docx

NIVeriStand使用手册概述建模创建MiL环境

NIVeriStand使用手册(概述|建模|创建MiL环境)

1.概述3

2.创建软件模型4

2.1.创建被控对象模型4

2.2.创建控制器模型9

3.创建MIL测试环境11

4.创建测试激励信号20

4.1.使用STIMULUSPROFILEEDITOR20

4.2.使用TMDSFILEVIEWER26

5.VERISTAND高级功能28

5.1.使用USERCHANNELS、PROCEDURES、ALARMS28

5.2.使用CALCULATEDCHANNELS33

6.创建HIL测试系统39

6.1.添加实时目标机39

6.2.添加NIDAQ设备41

6.3.添加NIR系列设备43

6.4.添加NI故障注入模块44

6.5.添加NICOMPACTRIO硬件47

6.6.添加NIXNET硬件48

6.7.添加TDK-LAMBDA可编程电源53

6.8.更改软硬件端口映射57

6.9.更改模型运行设置58

1.概述

VeriStand是美国NationalInstruments公司专门针对HiL仿真测试系统而开发出的软件环境。

VeriStand是一种基于配置的软件环境,它简单易用,无需编程就完成实时测试系统的创建,实现HiL测试中所需的各种功能。

NIVeriStand能够配置模拟、数字和基于FPGA的硬件I/O接口;能够配置激励生成、记录数据、计算通道和事件警报;能够从NILabVIEW和MathWorksSimulink®等建模环境中导入控制算法和仿真模型;能够利用操作界面实时在线监控运行任务并与之交互。

  本文介绍了NIVeristand各项主要功能的使用方法,并按照通用的开发测试顺序编写,主要内容包括:

@创建软件模型;

@创建MiL测试系统;

@实现自动化测试、记录数据;

@创建HiL测试系统。

2.创建软件模型

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

注意:

NIVeriStand支持的编译器包括MicrosoftVisualC++6.0,.NET2003,2005(ProfessionalorExpress),or2008(ProfessionalorExpress).

在本章中具体介绍了上述过程的操作步骤,将一个在Matlab/Simulink环境下创建的*.mdl文件转换为NIVeriStand所支持的*.dll文件。

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

•发动机Engine模型:

ModelingEngineTimingUsingTriggeredSubsystems

•控制器ECU模型:

EngineTimingModelwithClosedLoopControl

2.1.创建被控对象模型

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

1.打开Simulink模型:

ModelingEngineTimingUsingTriggeredSubsystem

另存到新建工作目录中,例如D:

\NIVS_HandsOn,为避免和原有模型冲突,重命名为Engine.mdl

该发动机模型要求的输入信号为

•ThrottleAngle节气门开度

•DragTorque拖拽扭矩(负载扭矩)

输出信号为

•EngineSpeed发动机转速

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

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

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

2)5s时,节气门开度增加,负载不变时,发动机转速快速升高;

3)8s时,负载扭矩再次增加,节气门开度不变,转速下降。

2.正确安装VeriStand后,在SimulinkLibraryBrowser中会自动添加NIVeriStandBlocks,如下图所示:

3.修改模型

1)将模型中需要做映射的端口,用相应的NIVeriStandIn和NIVeriStandOut替代;

2)在Simulink模型最上层中添加BlockNIVeriStandSignalProbe,添加后下层所有模块的参数也都可以通过VeriStand观测或者修改;

3)取消原Simulink模型中SignalProperties下有关datalogging的选项。

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

4.设置编译环境并编译

1)打开Simulink模型的ConfigurationParameters(快捷键:

Ctrl+E),

2)在Real-TimeWorkshop中,指定Systemtargetfile为NIVeriStand.tlc,点击OK确认。

注意:

如果实时目标机为cRIO系列,此处要选择NIVeriStand_VxWorks.tlc

3)回到Solver页面,选择定步长求解器:

fixedstep-sizeordinarydifferentialequation(ODE)solver

注意:

NIVeriStand只支持使用定步长的常微分方程求解器

4)指定步长:

Fixed-stepsize(fundamentalsampletime)为0.001,也就是1kHz

注意:

步长越小仿真模型计算越准确,但相应的会消耗更多技术资源。

修改完步长后,要再次运行仿真模型,观察结果,既要避免因步长选择过大,出现如无法收敛,计算精度无法满足要求,又要避免过小的步长造成cpu运算负担过大,影响实时性。

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

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

###SuccessfulcompletionofReal-TimeWorkshopbuildprocedureformodel:

ModelName,

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

2.2.创建控制器模型

在Simulink提供的DemoEngineTimingModelwithClosedLoopControl中包含了控制器ECU的算法。

我们需要把其中的控制器(Controller)算法从闭环模型中分割出来,建立单独的ECU模型,并编译为对应的*.dll文件。

Controller采用PI控制算法,可根据目标发动机转速,结合发动机模型中的负载扭矩,计算出节气门开度,最终使发动机实际转速与目标转速一致。

下图中黄色曲线为发动机负载曲线,紫色曲线为控制器输出的节气门开度

1)2s时,由25Nm变为20Nm

2)8s时,由20Nm变为25Nm

1.分割、修改ECU模型

1)打开所需的Demo:

EngineTimingModelwithClosedLoopControl

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

3)添加NIVeriStandIn、NIVeriStandOut和NIVeriStandSignalProbe,另存为Ecu.mdl。

2.设置编译环境并编译,最终生成所需的Ecu.dll文件。

具体配置过程请参考发动机模型转换部分。

3.创建MiL测试

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

1.运行NIVeriStand

Start»ProgramFiles»NationalInstruments»NIVeriStand»NIVeriStand.

2.新建一个项目(Createanewproject).

1)选择File»NewProject.

2)在ProjectName中输入项目名称:

ecuhilhandson.

3)指定项目根目录ProjectRootFolder到\NationalInstruments\NIVeriStand\Projects

4)勾选Createfolderforproject.

5)点击OK确认.

3.点击ConfigureProject,打开项目浏览器ProjectExplorer.

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

通过ProjectExplorer可以部署(Deploy)和运行(Run)系统定义文件。

项目浏览器包括所有运行和自动化测试所需关键的参数,同时也可以添加定制文件。

4.展开SystemDefinitionFile节点.

5.鼠标右键单击.nivssdf文件,选择LaunchSystemExplorer.

系统浏览器(SystemExplorer)用于创建NIVeristand系统定义文件。

系统定义文件是一个配置NIVeristand引擎特性的文件。

通过添加,删除和修改位于系统浏览器左部的各项配置可以定义各种属性,包括NIVeriStand引擎的执行方式、硬件端口、计算通道、对仿真模型的控制、报警,执行顺序以及管理通道之间的映射关系。

完成系统定义文件的设置后,它将被部署到NIVeriStand引擎并开始运行。

6.添加发动机Engine模型

1)展开Targets»Controller,点击SimulationModels;

2)添加模型AddSimulationModel.

3)将目录转换到Engine.dll所在目录

4)选择Engine.dll,单击OK.确认;发动机模型有2个输入(节气门开度和负载扭矩)和1个输出(发动机输出)。

7.添加控制器ECU模型

1)点击SimulationModels,添加仿真模型AddSimulationModel;

2)选择Ecu.dll,单击OK确认。

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

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

8.调整发动机模型和控制器模型的运行顺序

1)在SystemExplorer左侧的树状结构中选择ExecutionOrder;

2)将发动机模型的色条由Group1拖到Group2

9.现在需要将发动机和控制器模型的输入输出端口映射到一起

1)从菜单中选择Tools»EditMappings

2)从Sources来源窗口中选择SimulationModels»Models»Ecu»Outports»throttleanglesetpoint

3)从Destinations目标窗口中选择SimulationModels»Models»Engine»Inports»ThrottleAngle.

4)点击Connect,完成两个信号的相互映射

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

1)在SystemMapping的工具条上点击Open.

2)选择文件映射文件\NationalInstruments\NIVeriStand\Projects\ecuhilhandson\ecuhilmapping.txt.

3)点击Import,导入剩余的映射配置到VeriStand中.

4)点击Exit,所有的映射关系会在Mappings的列表中显示出来

11.添加标定参数,实现在线标定功能

1)展开Models»Ecu»Parameters,里面包含了Simulink模型中所有Block的参数

2)双击Source窗口中的ProportionalGain,添加PI控制器的比例系数

3)双击Source窗口中的IntegralGain,添加PI控制器的积分系数

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

添加完毕后,保存,如果出现下列错误提示。

直接选择Continue即可,不会影响后续操作。

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

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

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

至此我们已经导入了所需的模型并且将端口映射到了一起,下面就可以将系统定义文件部署到计算机中并开始运行。

通过在Workspace中添加相应控件,可以设定发动机目标转速,然后观察控制器是如何通过调整节气门开度,使发动机达到指定转速的。

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

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

1)Namethescreen:

MIL.

2)选择OK.

17.切换到编辑模式,可以添加控件。

选择Screen»EditModeorCTRL+M.

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

1)名称GraphTitle:

EngineSpeed

2)选择通道Channel:

Controller»SimulationModels»Models»Engine»Outports»EngineSpeed

3)点击 将EngineSpeed添加到Graph中

4)选择Format&Precision标签

5)修改Y轴的显示范围最大值Maximum:

5000和最小值Minimum:

0

6)修改Y轴坐标名称scaleLabel:

rpm

7)修改X轴坐标名称scalelabel:

time

19.从左侧的WorkspaceControls栏中,拖拽一个数字控件NumericControl(Medium)

•选择通道Channel:

Controller»SimulationModels»Models»Ecu»Inports»rpmSetpoint

•填写控件名称ControlLabel:

 rpmSetpoint

20.从左侧的WorkspaceControls栏中,拖拽一个数字控件NumericControl(Medium)

•选择通道Channel:

Controller»SimulationModels»Models»Engine»Inports»LoadTorque

•填写控件名称ControlLabel:

 LoadTorque

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

22.添加对Engine模型运行的控制,从左侧的WorkspaceControls栏中,拖拽一个模型控件Model(ModelControl)

•Model:

 Controller/Ecu

23.添加对Ecu模型运行的控制,从左侧的WorkspaceControls栏中,拖拽一个模型控件Model(ModelControl)

•Model:

 Controller/Engine

24.修改Ecu控制器中的I参数,从左侧的WorkspaceControls栏中,拖拽一个模型标定控件ModelCalibrationControl(Medium)

•需要标定的通道名称Calibration:

ECU/Controller/IntegralGain/Gain

•填写控件名称ControlLabel:

I参数

25.修改Ecu控制器中的P参数,从左侧的WorkspaceControls栏中,拖拽一个模型标定控件ModelCalibrationControl(Medium)

•需要标定的通道名称Calibration:

ECU/Controller/ProportionalGain/Gain

•填写控件名称ControlLabel:

P参数

26.至此基本的MiL测试环境创建完成,可以改变目标转速和负载,验证Ecu控制器中的算法是否满足要求,也就是实际转速能否快速、稳定的跟随目标转速。

并能通过修改P、I参数,优化Ecu的控制效果,并确定出最佳数值。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1