半实物仿真

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2020.10.14

1、半实物仿真技术

1.1半实物仿真系统定义

半实物仿真,又称为硬件在回路中的仿真(HardwareintheLoopSimulation),是指在仿真实验系统的仿真回路中接入部分实物的实时仿真。实时性是进行半实物仿真的必要前提。

半实物仿真同其它类型的仿真方法相比具有经济地实现更高真实度的可能性。从系统的观点来看,半实物仿真允许在系统中接入部分实物,意味着可以把部分实物放在系统中进行考察,从而使部件能在满足系统整体性能指标的环境中得到检验,因此半实物仿真是提高系统设计的可靠性和研制质量的必要手段。

半实物仿真技术自20世纪60年代问世直到目前美国研制航天飞机,始终盛行不衰。美国大多数国防项目承包商都有一个或多个半实物仿真实验室,这些实验室代表了当前世界先进水平。其先进性体现在:

(1)有高速高精度的仿真机;

(2)有先进完备的环境模拟设备。国内半实物仿真技术在导弹制导、火箭控制、卫星姿态控制等应用研究方面也达到了较高水平。

半实物仿真的特点是:

(4)需要解决控制器与仿真计算机之间的接口问题。

(5)半实物仿真的实验结果比数学仿真更接近实际

半实物仿真系统属于实时仿真系统。它是一种硬件在环实时技术,把实物利用计算机接口嵌入到软件环境中去,并要求系统的软件和硬件都要实时运行,从而模拟整个系统的运行状态,如图2所示。实时系统由以下几部分组成。

(1)仿真计算机

仿真计算机是实时仿真系统的核心部分,它运行实体对象和仿真环境的数学模型和程序。一般来说,采用层次化、模块化的建模法,将模块化程序划分为不同的速率块,在仿真计算机中按速率块实时调度运行。对于复杂的大型仿真系统,可用多台计算机联网实时运行。

(2)物理效应设备

物理效应设备的作用是模拟复现真实世界的物理环境,形成仿真环境或称为虚拟环境。物理效应设备实现的技术途径多种多样,方案之一是采用伺服控制回路,通过伺服控制回路控制形成相应的物理量,方案之二是在已储存好的数据库中搜索相应的数据,转化为相应的物理量。

(3)接口设备

仿真计算机输出的驱动信号经接口变换后驱动相应的物理效应设备。接口设备同时将操作人员或实物系统的控制输入信号馈入仿真计算机。

图1半实物仿真系统原理框图

半实物仿真系统是虚、实结合的系统,它具有以下特点:

(1)建立仿真模型。任何仿真模型的实现,都必须建立被仿真对象实体的数学模型。除建立被仿真实体的数学模型,还应建立环境模型,例如飞行仿真系统中大气环境(气压、气温、阵风、扰动气流等)模型、地理环境(地形、地貌)模型等。

(2)实物的接入与仿真环境的生成。实时仿真系统一般都接入实物系统,例如将发动机仿真系统进行含实物仿真试验。各种物理效应设备将模拟生成实物系统所需要的物理环境,通过物理效应设备和接口使仿真计算机和接入的实物系统构成一个完整的含实物仿真系统。

(3)系统仿真试验。系统仿真试验具有良好的可控性、无破坏性,可多次重复,经济、安全、不受气象条件和场地环境的限制。

(4)系统仿真的应用。系统仿真技术可广泛应用于国防、能源、水利、工业等工程领域和非工程领域,也可广泛应用于产品研制的方案论证、设计分析、生产制造、试验评估、人员训练的全过程。

用户在进行半实物仿真时,一般要经历以下“瀑布式”流程,如图2所示,对实际系统建模,进行纯数学仿真(即数学仿真模型),对模型进行修改,设计定型,将模型中部分数学化的模型用实物代替作实物实时仿真,再修改模型进行仿真,最后确定模型。

完成了数学模型的建立和仿真验证后,用户可以建立半实物实时仿真系统。在Matlab/Simulink系统平台上建立半实物实时仿真系统十分简便,即将原来的用数学方法表达的输入、输出信号模型用实际的I/O板替换,然后对硬件目标进行描述,生成实时代码,将实时代码下载到本地仿真平台上,最后运行模型、进行仿真数据监视并可以在线修改仿真模型的数学部分。

图2半实物仿真流程

在半实物仿真系统中,由于实物的引入,需要模拟这些部件的真实工作环境和激励信号,还需要以一些专用的物理仿真模型加以实现。半实物仿真作为替代真实环境或设备的一种典型方法,既提高了仿真的逼真性,又解决了以前存在于系统中的许多复杂建模难题,因此半实物仿真成了主要的发展方向。另外,在开发的初期阶段,需要快速地建立控制对象原型及控制器模型,并对整个控制系统进行多次离线的及在线的试验来验证控制系统软、硬件方案的可行性,这个过程称之为快速控制(RCP)。dSPACE实时仿真系统为半实物仿真和RCP的应用提供了一个协调统一的一体化解决途径。dSPACE是基于MATLAB/Simulink的控制系统开发及测试的工作平台,实现了和MATLAB/Simulink的无缝连接。dSPACE实时系统拥有高速计算能力的硬件系统,还拥有方便易用的实现代码生成/下载和试验/调试的软件环境。

dSPACE实时仿真系统是由德国dSPACE公司开发的一套基于MATLAB/Simulink的控制系统在实时环境下的开发及测试工作平台,实现了和MATLAB/Simulink的无缝连接。dSPACE实时系统由两大部分组成,一是硬件系统,二是软件环境。其中硬件系统的主要特点是具有高速计算能力,包括处理器和I/O接口等;软件环境可以方便地实现代码生成/下载和试验调试等工作。dSPACE具有强大的功能,可以很好地完成控制算法的设计、测试和实现,并为这一套并行工程提供了一个良好的环境。dSPACE的开发思路是将系统或产品开发诸功能与过程的集成和一体化,即从一个产品的概念设计到数学分析和仿真,从实时仿真实验到实验结果的监控和调节都可以集成到一套平台中来完成。

dSPACE的软件环境主要由两大部分组成,一部分是实时代码的生成和下载软件RTI(Real-TimeInterface),它是连接dSPACE实时系统与MATLAB/Simulink纽带,通过对RTW(Real-TimeWorkshop)进行扩展,可以实现从Simulink模型到dSPACE实时硬件代码的自动下载。另一部分为测试软件,其中包含了综合实验与测试环境(软件)ControlDesk、自动试验及参数调整软件MLIB/MTRACE、PC与实时处理器通信软件CLIB以及实时动画软件RealMotion等。dSPACE实时仿真系统的结构如图3所示。

图3dSPACE半实物仿真系统框图

dSPACE实时仿真系统具有许多其它仿真系统具有的无法比拟的优点:

组合性强。使用标准组件系统,可以对系统进行多种组合。

过渡性好,易于掌握使用。与MATLAB/Simulink无缝连接,方便地从非实时分析设计过渡到实时分析设计。

实时性好。一旦代码下载到实时系统,将独立运行,不会产生对试验过程的中断。

可靠性高。dSPACE系统软硬件均为精心设计、制造和调试的,无兼容性问题,可以信赖。

灵活性强。允许用户在单板/多板系统、单处理器/多处理器系统、自动生成代码/手工编制代码进行选择,适应各方面的应用需求。

基于PC机、WINDOWS操作系统,其代码生成及下载软件、试验工具软件都基于WINDOWS操作系统,硬件接口采用标准总线,方便掌握使用。

描述控制系统的C代码可以由Simulink方框图自动生成并下载到实时系统硬件中,这项工作主要由MATLAB/RTW与dSPACE系统中的RTI来完成。RTI的使用方法就是用图形方式从dSPACE的RTI库中选定相应的I/O模型,将其拖放到用Simulink搭建的系统模型方框图中,并指定I/O参数以完成对它的选定,选定后,只要用鼠标点击一下对话框中的Build命令,RTI就会自动编译、下载并启动实时模型。另外,RTI还根据信号和参数产生一个变量文件,可以用dSPACE的试验工具软件如ControlDesk来进行变量的访问。当仿真系统比较复杂时,就需要RTI-MP的帮助以完成多处理器系统的设计并建立多处理器网络结构。

dSPACE提供的测试软件主要有:ControlDesk综合实验环境、MLIB/MTRACE实现自动试验及参数调整软件。

(1)ControlDesk

ControlDesk是dSPACE公司开发的新一代综合试验和测试软件工具,提供对试验过程的综合管理,它可实现的功能包括:

对实时硬件的可视化管理

用户虚拟仪表的建立

变量的可视化管理

参数的可视化管理

试验过程的自动化

(2)MLIB/MTRACE

利用MLIB和MTRACE,可以大大增强dSPACE实时系统的自动试验能力。使用这两个库可以在不中断试验的情况下从MATLAB直接访问dSPACE板上运行的应用程序中的变量。甚至无需知道变量的地址,有变量名就足够了。这样就可以利用MATLAB的数字计算及图形能力进行顺序自动测试、数据记录和控制参数的优化。

MLIB和MTRACE联合使用可组成一个完美的整体。有MATLAB强大的计算能力做支持,可以自动执行所能想到的任何试验。比如控制器的优化:用MTRACE记录数据,然后将数据传送给MATLAB,MATLAB自动计算出新的控制器参数,并通过MLIB送回处理器板或控制板。

总之,dSPACE是进行基于Simulink模型半实物仿真和实时控制的首选工具,利用以上软件工具可以完成从系统建模、分析、离线仿真到实时仿真的全过程如图4所示。

图4利用dSPACE实时仿真过程

1、在对控制规律的控制特性或控制效果还没有一点把握的情况下,硬件电路已经制造了,这时还不知道设计方案能在多大程度上满足要求,或者根本不能满足要求。

而用dSPACE提倡的基于模型面向应用的现代化开发方法则要有效的多。现代开发方法的最重要的特征就是计算机辅助控制系统设计(CACSD:Computer-AidedControlSystemDesign)。将计算机支持工具贯穿于控制系统开发测试的全过程。CACSD不仅仅是进行控制方案的设计和离线仿真,还包括实时RCP、产品代码的生成和硬件在回路测试,这是一个完整的流线型控制系统开发步驟。

dSPACE为流线型控制系统的开发提供了一套CACSD的工具包CDP(ControlDevelopmentPackage)。CDP主要基于下列工具:

MATLAB:用于进行模型的分析、设计、优化和数据的离线处理

Simulink:用来进行基于方框图的控制系统离线仿真

Real-Time-Workshop:用来从方框图模型直接生成C代码。

dSPACE公司的RTI:用来使代码可以在单处理器目标系统中运行。

dSPACE系列软件工具:用来对闭环试验进行交互操作。

总之,利用CDP可以完成从系统建模、分析、离线仿真到实时仿真的全过程。对大多数用户而言,一般有以下几个步骤:

步骤1:用线性或非线性方程建立控制对象的理论模型。该方程能用MATLAB的m-file格式或Simulink方框图方式表示,以便于用MATLAB/Simulink进行动态分析。

步骤2:用MATLAB工具箱设计原始控制方案。

步骤3:用Simulink对控制方案进行离线仿真。

步骤4:在Simulink框图中,从RTI库用拖放指令指定实时测试所需的I/O、A/D、D/A,并对其参数进行设置。

步骤5:选择RTWBuild,自动完成目标DSP系统的实时C代码的生成、编译、连接和下载。即使是复杂的大型控制系统,该过程也只需几分钟左右。

步骤6:用ControlDesk试验工具软件包与实时控制器进行交互操作,如调整控制参数,显示控制系统的状态、跟踪进程响应曲线等。

步骤7:返回步骤1。

总之,利用dSPACE,可以把精力全神贯注于控制方案的构思,可以大大缩短开发周期。

RT-LAB实时仿真器是加拿大Opal-RTTechnologies公司推出的基于模型的工程设计与测试应用平台。应用此仿真器,工程师可以在一个平台上实现工程项目的设计、实时仿真、快速原型与硬件在回路测试的全套解决方案。

RT-LAB的应用,为基于模型的设计带来了不同的方法。由于其开放性,RT-LAB可以灵活的应用于动力学系统仿真与控制场合;其优秀的可扩展性能为所有的应用提供了一个低风险的起点,使得用户可以根据项目的需要随时随地对系统运算能力进行验证及扩展——不论是为了加快仿真速度或者是为满足应用的实时硬件在回路测试的需要。

RT-LAB的分布式特点表现为两个方面:分布式的目标机(最多可达63个)和分布式的主机平台。

分布式的目标机运行一运算负荷的分配

RT-LAB提供的工具可以方便的将系统模型分割为若干个子系统模型,并分配到若干个目标机上并行运算。通过这种方式,当用户的模型在单个目标机上不能实时运行时,RT-LAB可以将运算负荷分配到多个目标机上,这样就有足够的运算能力满足实时性要求。

在模型运行时,RT-LAB支持多个目标机之间的数据通讯。可以用TCP/IP、IEEE-1394、共享内存,或者将这些技术结合起来实现目标机间的实时数据通讯,用户也可以在主机平台上与目标机上的仿真模型通过TCP/IP或者IEEEl394进行实时在线交互。

分布式的主机平台——从子系统设计到完整系统仿真的虚拟集成

由于将仿真模型分布到目标机上并行运算,因此,RT-LAB也是大型仿真项目的团队开发平台,每个开发小组专注于自己的子系统模型的设计,并在自己的仿真目标机进行实时测试,然后,各个小组的模型可以组合成完整系统的模型。每个子系统之间的数据交换可以通过目标机之间的实时通讯网络进行。

连接性

RT-LAB的应用程序接口(API)功能全面,并有详细说明文档。对于熟练的编程人员,它还允许开发者在编写系统级仿真管理软件的时候能够迅速的将自己的应用程序与实时仿真系统整合。同时,RT-LAB也提供了相应的工具来简化实时仿真系统与运行在主机上的面向非编程人员的应用程序的连接。如:RT-LAB的LabVIEWAPI工具能建立实时模型和LabVIEW的直接联系,不需要编写任何代码;允许用户使用Python(RT-LAB自带插件)语言来配置模型以及自动化运行测试步骤。同时,模型可以运行在不同的RT-LAB目标机处理器上,且不需要重新设置或编译模型;可以使用TestStand的测试自动化;从Simulink程序框图中调用Python的脚本函数;在主机和目标机之间的自动文件传输。

由于RT-LAB的主机与目标机系统之间是通过DUP/IP协议来进行通讯,可以通过Internet来与仿真目标机进行通讯,这使得RT-LAB仿真实验室可以与外界共享资源协同开发。此外,还允许实时系统的远程操作,如在对一个远程对象上的控制器仿真,控制工程师可以在办公室内修改数个远程目标工作站的控制参数,甚至完全改变控制策略。

RT-LAB环境中的软件包DINAMO可以进行航空工程设计,利用DINAMO的可适用于静态配平和动态的操纵飞行的自动批量参数估计,可以进行动力学分析;选用RT-3D的组件,如MATLAB的Virtualreality工具箱,WorldUp,Altia等,用户可以读取仿真数据并实时的在3D虚拟现实环境中显示出来,而且可以为仿真模型创立3D显示效果,实时的观察模型的动作并与其交互。

RT-LAB的数据I/O和记录特性包括模型仿真的采集与记录,数字信号的采集和产生,以及目标机平台实时操作系统QNX下的硬件驱动。主要包括如下内容:

实时数据显示和记录—用户可实时读取实时信号或将其记录为文件;

丰富的伙I/O硬件支持—用户可选择第三方提供的ISA/PCI接口的硬件板卡;

支持由opal.RT自行研制的I/O板卡;

触发子系统—用户可自行设置任务在触发时刻开始执行;

硬件同步—可选用NI6602与Opal-RTOP5100系列卡上的时钟作为仿真同步源,以弥补软件时钟精度的不足;

波形发生功能—RT-LAB模块集提供各种信号产生功能以及各种任意时刻的开关量阶跃信号;

数字波形捕捉的高级特性—检测在计算机步长间隔内产生的外部事件,并且补偿由于事件的影响滞后而导致的计算误差;

通用的共享内存卡驱动—支持共享内存方式的目标机之间的高速数据通讯,允许设备间的数据读写。

RT-LAB广泛应用于航空、航天、工业和军事武器系统仿真,其基本的优点如下:

(1)基于PC技术:高性价比,运算速度快。在仿真模型各个子系统之间可以获得实时通信和同步控制,高速实时连接,因此仿真是高性能的并行计算。这些子系统可以任意放在若干个节点上,它们之间采用火线(IEEE-1394)连接。

(2)支持半实物(硬件在回路)仿真。在Target节点上既可以插入模拟I/O卡也可以插入数字I/O卡。因此仿真系统可以与外部设备进行通信,如HIL、Target和I/O卡之间由RT-LAB仿真平台进行同步管理。

(3)支持与其它非实时仿真平台的协同仿真。为了提高仿真模型的实时性,系统的非实时部分独立运行在RT-LAB平台之外的其它平台上,这些非实时平台上的程序通过RT-LAB仿真界面接口程序与仿真模型系统之间交互非实时数据。

(4)能自动划分模型并产生分布式仿真代码。RT-LAB利用自身的Simulink图标解释Simulink模型,划分各个子系统,生成源代码,编成可执行程序,下载到Target节点上,这一切过程都是RT-LAB自动完成。因此,RT-LAB工具自动照顾编码细节的优点不但可以加速开发过程,而且使得仿真模型具有灵活的伸缩能力。

(5)支持MATLAB/STATEFLOW。STATEFLOW是MATLAB软件专门用于复杂逻辑系统建模的状态机工具包,支持MATLAB/STATEFLOW就意味着提供了对复杂过程系统和离散事件的建模工具。

(6)系统结构随着项目的展开可以向上扩展;当运算量增大,增加/升级运算节点的效费比高;使用商业RTOS(实时操作系统),保证了系统的稳定性,可靠性与实时性能。

(7)开放系统:可以与其它软件接口,独立于硬件平台,可以满足用户的定制要求。

RT-LAB的操作主要有十个步骤,下面就以RT-LAB自带的模型rtdemo2.mdl为例来对RT-LAB的操作流程进行详解:

(1)OpenModel打开模型

双击RT-LABMainControl图标启动RT-LAB程序,如图1点击OpenModel按钮,弹出一个文件选择框,选择\simulink\models\rtdemo2\rtdemo2.mdl,这个模型是安装完RT-LAB之后自带的演示模型,它已经编辑好了,不用再经过编辑就可以用了。

(2)Edit编辑模型

接上步点击Edit,RT-LAB自动调用MATLAB打开模型(如果打不开的话先用MATIAB直接打开模型一遍,然后再用Edit打开)。打开模型后可以看到rtdemo2.mdl模型的是由三个子模型组成,分别是sm-controller,ss-plant和sc_user_interface。此模型已经根据RT-LAB的规则修改完成。RT-LAB规定所有的收集和显示数据的模块(如示波器,手动开关等)必须放在一个子系统图中,系统命名以sc_打头,而且每个模型只能有一个sc_子系统:规定sm_子系统只能有一个,它是整个模型计算过程中的主导模块;ss_在整个计算过程中是从属地位,在RT-LAB中可以有多个。所以,在RT-LAB的模型中所有的子系统只能以sm_,sc_,ss三种命名方式出现,而且在子系统中有信号输入的地方要插入一个RT-LAB的信号同步模块OpComm通讯块。

图5RT-LAB主控

(3)Configuration配置修改

完成了模型修改之后就要做一些编译前的配置修改工作。确认在MainControll面板的Target选项下面是不是选择了正确的目标平台,它有三个选项QNX,WNT,Neutrino。Neutrino是指QNX6.0以后的版本。点击Configuration进入修改配置。

图6Configuration界面图

(4)Compile编译过程

编译过程出现问题时可以通过编译窗口来检查。整个编译过程先是分割模型,有多少个子模块就分割成多少块,这也是RT-LAB分布式计算的核心思想,然后利用MATLAB的RTW的qnxnto_r13.tlc模块生成C文件,生成QNX底下的可执行文件,完成编译过程。

(5)AssignNodes分配节点

点击AssignNodes进入节点分配控制界面。在Subsystems一项下面有sm_controller和ss_p1ant两个子系统。在RemainingPhysicalNodes一项下面有NTO1和NTO2两个节点,添加节点的方法在前面的Configuration说明中有提到。

(6)建立模型

可以将使用MATLAB/Simulink开发的模型结构Load到RT-LAB中,完成方针前的准备工作。

(7)Execute执行程序

完成上述步骤之后就可以执行程序了,点击Execute就可以通过示波器看到程序执行的结果,通过调节滑块可看到波形的变化。

(8)Pause暂停执行

Pause按钮是一个暂停键,起暂停的作用。

(9)Reset结束程序

要想真正地结束程序必须通过Reset按钮。如果想再执行一遍程序就再Load一次,然后Execute(如果模型没有修改的话,不用执行Compile,直接可以LOAD)。

(10)Disconnect断开模型连接

最后一步就是一定要断开模型。点击Disconnect模型就断开连接了。以上是以rtdemo2.mdl为例作的一个RT-LAB的使用说明。其中提到的目标机,节点,下位机其实指的是同一个对象。只要按照以上所讲的十个步骤一步步执行,就完全可以把RT-LAB使用起来。

MATLAB是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络、图像处理等于一体,具有极高的编程效率。特别是利用Simulink工具箱中丰富的函数库可以很方便地构建数学模型,并进行非实时的仿真。而xPC目标是Mathworks提供一种用于产品原型开发、测试和配置实时系统的PC机解决途径。为了提高系统实时仿真的能力,xPC目标采用了宿主机一目标机的技术途径,两机通过网卡连接,以TCP/IP协议进行通信。宿主机用Simulink建立模型,进行仿真前的参数配置,然后用RTW和一个VC编译器将模型编译为一个可执行文件下载到目标机。目标机通过软盘启动xPCTarget实时内核,运行从宿主机下载的RTW生成的目标应用程序,通过I/0通道与外部实物进行数据交换,最终实现半实物的实时仿真测试。在xPC目标环境下,可以从MATLAB中使用命令行或xPCTarget的图形交互界面对程序的执行进行控制。在程序执行期间,可以交互地在线调整模型参数,信号绘图功能可以使人动态地观察信号波形,实现数据可视化和信号跟踪。如果目标机有监视器,则可以使用xPC目标的目标管理器功能在目标机上直接观察信号和目标机的各种状态信息。

xPC目标采用宿主机—目标机的技术途径,其中宿主机拥有运行MATLAB/Simulink,用Simulink模块图来创建模型,进行非实时仿真,用RTW代码生成器和C编译器来生成可执行代码;目标机执行所生成的代码,通过以太网或串口连接实现宿主机和目标机之间的通信。xPC目标工作模式如图1所示,其具有如下特点:

两机可通过RS-232或TCP/IP协议进行通信,也可通过局域网、Internet进行连接;

支持任何台式PC机、PC/104、CompactPCI、工业PC或SBC(单板机)作为实时目标系统;

依靠处理器的高性能水平,采样率可达到100kHz;

扩展了I/O驱动设备库,现已支持超过150种标准I/O板;

可以得到来自主机或目标机的信号,也可以动态调整参数;

在宿主机和目标机上都可进行交互式的数据可视化和信号跟踪;

使用xPCTargetEmbeddedOption能针对独立操作进行系统配置。

图7基于Matlab/Simulink环境的仿真系统原理图

图8基于xPC的半实物仿真系统原理图

图9半实物仿真过程图

在xPC目标的半实物仿真中,主要通过数据采集卡来实现计算机和外部设备的连接,既需要通过数据采集卡的A/D接口从外部模拟设备采集数据送到目标机,也需要通过D/A接口将目标机的计算结果送往外部模拟设备。

1采用xPC目标提供的I/O设备

2采用其他I/O设备

如果没有采用xPC目标提供的I/O设备,则需自己编写设备驱动程序,这时可参考xpcblocks文件夹下的各种设备驱动程序模块的源代码来编写程序,并存为filename.c,然后在MATLAB命令窗口输入命令:mexfilename.c,MATLAB自动调用编译器生成mex动态连接库文件filename.dll,并将其设置到MATLAB的搜索路径中,最后将文件封装成一个S-function模块,进行参数设置即可。

1仿真参数的设置

在Simulink中创建需要进行仿真的模型,仿真和实时运行参数都可在SimulationPammeters对话框中设置,主要包括So1ver、workspaceI/O、Diagnostics、Real-Timeworkshop等4个下拉菜单的参数设置。

2创建和下载XPC目标应用程序

仿真参数设置完毕后,同时通过启动盘启动目标机的实时内核,在Simulink窗口中选择Tools\Real-Timeworkshop\BuildModel命令,就可对Simulink模型进行编译、链接生成可执行的目标应用程序,并将其下载到目标机。

1信号输入、输出

信号的输入、输出通过采集卡的I/O通道实现。数据采集卡的D/I、D/O可为数字量提供输入输出,然后运行xPC目标应用程序。

2信号跟踪

(1)使用Xpcscope进行信号跟踪.当xPC目标应用程序下载到目标机后,在Matlab命令行输入Xpcscope,在宿主机上出现管理器窗口(Manager),根据需要可决定示波器的个数和选择要跟踪的信号,这样就可进行多示波器窗口和多信号的跟踪显示。

(2)使用Xpctgscope进行信号跟踪。在MATLAB命令行输入Xpctgscope,在目标机的监视器上出现示波器窗口同样可进行多示波器窗口和多信号的跟踪。

(3)使用MATLAB命令进行信号跟踪。使用xPC目标提供的函数生成目标sc叩e对象,对信号进行选择和观察。

3xPC目标应用程序的参数调整

(1)使用MATLAB命令进行参数调节。可使用MATLAB函数来改变模块的参数,不需重新创建模型的目标应用程序,就可改变程序的参数。

(2)使用Simulink外部模式在线调节参数。使用Simulink外部模式下,在Simulink外部模块图的任何位置改变参数,Simulink都将改变后的参数自动下载到正在运行的目标应用程序中.根据信号跟踪波形可随意改变模型参数检验励磁控制器的调节效果,也可实时地测试控制器的控制算法,参数设计,直至得到满意效果。

4数据存储

5数据分析

在测试中所采集的实时数据是分析的依据,利用MATLAB提供的图形编辑模块GUI,按照测试要求很容易编写友好的用户界面,并根据MAT数据文件绘制试验曲线、打印报表等,进行数据分析.试验测得的数据可以通过各个试验模块进行分析处理。

NI半实物仿真平台系统构架主要包括cRIO实时控制器(内置嵌入式处理器)、可重配置FPGA、及模块化I/O构成。CompactRIO的RIO(FPGA)核心内置数据传输机制,负责把数据传到嵌入式处理器以进行实时分析,数据处理,数据记录或与联网主机通信。利用LabVIEWFPGA基本的I/O功能,用户可以直接访问CompactRIO硬件的每个I/O模块的输入输出电路。所有I/O模块都包含内置的接口,信号调理,转换电路(如ADC或DAC),以及可选配的隔离屏蔽。这种设计使得低成本的构架具有开放性,用户可以访问到底层的硬件资源。

下面以柴油机电控系统(ECU)的开发和测试为例简要介绍NI半实物仿真系统的开发流程。

ECU半实物仿真系统由目标ECU、实体执行机构和仿真控制与监测模块三部分构成,总体结构见图10。

图10ECU半实物仿真系统结构图

硬件在环仿真系统无柴油机燃烧过程,用伺服电机模拟不同工况的柴油机运转,为ECU和仿真系统提供转速信号;电机带动绝对式角度传感器提供曲柄转角信号;变频电机驱动高压燃油泵和伺服油泵组成供油模块;燃油喷射模块和排气阀驱动模块是实体执行机构,根据ECU的电信号控制伺服油驱动燃油喷射阀与排气阀启闭。仿真控制与监测模块由配置了FPGA芯片的cRIO控制器、PXI主机和工控机IPC)组成,与目标ECU组建CAN网络进行数据通讯;报警模块通过串口(RS232)接收PXI主机发出的某参数越限报警信号,控制继电器发出声光报警。

1仿真控制与监测模块

仿真控制与监测模块硬件采用NI公司cRIO(采用可重新配置I/O及FPGA技术实现超高性能和可自定义功能)、PXI主机以及可热插拔工业cRIOI/O模块。

cRIO控制器为200MHz类奔腾实时处理器,安装VxWorks实时操作系统,能可靠执行LabVIEWReal-Time应用程序,实现实时控制、数据分析、记录和通信等功能;PXI主机选用8106实时处理器,配置可带4个R系列扩展机箱(支持cRIOI/O模块)的PXI7813RFPGA板卡。cRIO控制器和PXI主机都可借助LabVIEWFPGA的基本I/O功能,将硬件与每个I/O电路直接连接:使用嵌入式RIOFPGA硬件,能实现40MHz(25ns)单周期定时循环.PXI主机配置了PXI8464CAN卡,与cRIO系统9853CAN模块和应用模块构成CAN网络。cRIOI/O模块具有内置式信号调理功能,可直接与传感器和激励器相连。硬件配置能满足硬件在环仿真系统信号同步采集、快速计算与输出及系统实时监测等功能。

2信号I/U转换及滤波

考虑现场环境干扰,传感器输出信号选用电流信号,但为保证采集信号的同步,选用的NI-9215I/O模块为电压采集模块,因此需将信号在采集前端进行电流/电压线性转换。设计中采用RURR-BROWN精密I/U变送器RCV420芯片,其转换精度为0.1%,共模抑制比CMB达86dB,共模输入范围达±40V,保证了4mA~20mA电流与0~5V电压的线性对应,在软件上,利用NILabVIEW数字滤波器设计工具包(DigitalFilterDesignToolkit),根据信号种类采用不同算法设计数字滤波器,将滤波器Ⅵ编译后自动生成的FPGA代码部署到RIOFPGA硬件中。

柴油机仿真控制和监测模块软件以NILabVIEW8.5为开发环境,利用Real-Time、FPGAToolkit完成对板卡和模块可重配置FPGA程序的开发,再通过LabVIEW编译服务器对LabVIEW代码进行编译得到BitFile并部署到硬件设备;实现LabVIEW(Windows)和LabVIEW实时应用程序的集成。

1仿真控制模块

图11仿真控制模块结构图

仿真控制程序在cRIO控制器上运行,信号同步采集、滤波处理、逻辑运算和输出刷新均在FPGA上完成。实时控制器中主要完成整型到浮点工程单位转换的数据换算,实时FIFO数据缓存、CAN通讯和FPGA程序间数据传输。为保证大量数据传送实时、同步和完整,程序采用了DMA和IRQ数据通讯方式。

(1)燃油喷射控制仿真

为了测试不同负荷下ECU对燃油喷射的控制,燃油喷射控制仿真模块由位移传感器测量燃油活塞位移(油量信号),绝对式角度编码器测量曲柄转角,旋钮电位器模拟柴油机负荷,输入cRIO控制器FGPAI/O模块,经FPGAVI与cRIO控制器Real-TrineVI数据交换,单位换算和燃油喷射模型计算得出当前柴油机转速,由D/A输出以调节曲轴电机转速。进气压力影响喷油正时,为使仿真模型更为精确,查表得到仿真归纳的模拟进气压力,修正曲轴电机转速,使之与柴油机实际值更接近。

(2)排气阀控制仿真

排气阀控制仿真程序分为FPGAVI和Real-T'imeVI两部分。FPGAVI完成各缸排气阀开启、关闭信号、排气阀升程信号采集、IRQ中断、DMA配置、与RealTime连接、数据交换及逻辑判断;Real-Time系统VI是整个仿真模型程序:逻辑判断、内存分配、数据转换和保存、DMA通道竞争裁决等。当系统运行时,FGPAVI判断首次接收的排气阀开启信号是否为实体排气阀装置所发出,若是其它模拟气缸发出,则调用存储在cRIO控制器内经仿真计算的排气阀升程信号,通过模拟量输出模块提供给ECU。若是实体排气阀装置所发出,则FPGAVI采集此冲程实体排气阀装置的升程信号,并记录当前曲柄转角,同时开启DMA通道,将采集到的信号传送到cRIO控制器内存中。当检测到排气阀装置关闭信号时,停止升程信号采集。该冲程其它模拟气缸升程信号,以内存中实体排气阀装置升程信号为“缸平移”递推基准;一旦有虚拟气缸排气阀开启,则将保存的升程信号由另一DMA通道传回FPGAVI,通过电流模块输出给ECU。

2监测模块

系统根据LabVIEW支持子VI调用模式,采用模块化设计方法,可简化程序,提高程序执行率。为保证数据采集同步,PXI实时操作系统每采集一角标信号同时记录当前时钟,并把该时钟下所有同步信号如曲轴转速、燃油活塞位移、针阀升程、排气阀升程等信号打包,生成以角标基础的数据包,通过DMA传输方式送至RT系统内FIFO中,再将数据包通过TCP/IP网络上传至工控机,进行数据转换、分析、显示、保存和回放。

基于LabVIEW、cRIO控制器的高压共轨柴油ECU硬件在环仿真系统,在LabVIEW环境可调用LabVIEWFPGA模块和重新配置型输入/输出模块,可方便实现不同的测控方案,提高了硬件资源利用率。基于曲轴转角的缸平移算法简化了仿真模型,提高了模型的实时。由于系统尚未建立低速柴油机的数学模型,在以后工作中需根据记录的数据和信息,细化仿真模型以提高模型精度。所设计的系统为测试、分析和开发高压共轨柴油机的ECU系统提供了研究平台;可节省ECU测试试验费用、缩短ECU开发优化周期。

由以上的分析知道,四种半实物仿真平台都是成熟的分布式、可以用于实时仿真和半实物仿真的平台;都是基于PC机windows操作系统,具有高度的集成性和模块化;用户可以根据需要,在运算速度不同的多处理器之间进行选择,选用不同的I/O配置,以组成不同的应用系统。

相对来说,RT-LAB和xPC侧重于工程设计与测试方面,而dSPACE和NIPXI更侧重于控制系统开发及测试方面。下面就从软、硬件来对两者作一个简单的比较:

(1)硬件方面

RT-LAB不需要专门的硬件配套设施,本身也没有专业化的硬件需求,其计算机系统是采用商业化的PC机,也就是家用或办公PC机即可。

xPC也不需要专门的硬件配套设施,只需根据目标对象的需要配置相应的数据采集卡即可。

dSPACE需要购买其专业化的硬件系统,其硬件系统主要有两类:一是单板系统,处理器和的集成到一块板上,形成一个完整的实时仿真系统(如DS1103等控制板);二是组件系统,处理器与用户接口完全分开,以实现两者各自的自由扩展,两者之间的通信由PHS总线实现(DS1005PPC控制器等)。

NIPXI有一整套的半实物仿真系统,包括实时控制器、机箱、可重置FPGA、I/O模块等。

(2)软件环境

两者面向用户的主操作系统都是基于PC机的Windows,其中:

RT-LAB的主机需要安装RT-LAB实时仿真平台,目标机需要安装QNX实时操作系统;可以经过Internet进行远程操作。

xPC需要主机安装Matlab的RTW开发界面和VC等c语言编译器。

dSPACE所需要的软件环境是Real-TimeInteface(RTI)或Real-TimeMultiprocesser(RTI-MP),与MathWorks公司的Real-TimeWorkshop(RTW)配合使用,ControlDesk实时监控软件,TargetLink等。

NIPXI下位机程序通过labVIEW软件平台开发形成FPGA程序和RT程序(RealTime程序,实时控制程序);上位机程序的开发通过LabVIEW软件平台开发形成人机交互界面;通信程序的开发通过LabVIEW与cRIO平台,开发形成上位机与下位机的通信程序。

(3)成本

由于需要配置相应的专业化硬件和开发系统,dSPACE和NIPXI的成本较高;

xPC需要根据目标对象的不同购置相应的数据采集卡,成本比RT-LAB略高,RT-LAB的成本较低。

表1是四种半实物仿真平台之间软、硬件和成本的比较:

表1四种半实物仿真平台对比

比较类型

仿真平台

硬件

软件

成本

dSPACE

需要专业化硬件系统

RTI,RTW,ControlDesk,TargetLink等

较高

RT-LAB

无专业的硬件需求,计算机系统采用商业化的PC机

RT-LAB实时仿真平台,QNX实时操作系统,可经Internet远程连接

较低

xPC

目标机、宿主机采用商用的PC机或工控机,需要相应的数据采集卡

RTI,RTW,TargetLink,LabVIEW等

NI

专业化的硬件系统

LabVIEW,cRIO,FPGA软件开发系统

很高

随着计算机技术、通信技术与传感技术为主导的信息技术的发展,仿真技术作为高科技、定量化的辅助研究手段,在科研、军事等领域研究中发挥着越来越重要的地位。半实物仿真作为仿真技术的重要代表之一,其经济效益和军事效益日益凸显,特别在武器系统研究、军事装备训练等重要方面有着举足轻重的作用。各国一直长期重视半实物仿真,近年来,在计算机技术飞速发展的信息化产业背景下,半实物仿真技术已成为现代工程技术的重要支撑力量,广泛的应用于航天、电工、化工、通信,特别是军事等领域方面的工程设计研究,成为现代高技术的代表之一。半实物仿真将朝着高智能化和综合化发展,必将在工程技术领域发挥出更大的作用。

THE END
1.5.6Mybatis代码生成器MybatisGenerator(MBG)实战详解那么在Mybatis里,这些当然也不在话下,Mybatis官方为我们提供了非常好用的代码生成器:Mybatis Generator (MBG) 。 本文就带大家实战一下Mybatis Generator,用它生成实战项目全部表的PO对象和基本增删改查代码! 一、Mybatis Generator简介 Mybatis Generator(MBG)是Mybatis官方提供的一个代码生成工具,它可以根据数据库https://blog.csdn.net/geejkse_seff/article/details/144298831
2.GitHub系统只生成后台代码,后台架构为MVC + Mybatis。 首先,系统集成mybatis-generator官方代码生成器,可以自动生成实体、mapper接口以及xml配置文件。 然后使用velocity模板引擎生成service接口和实现类以及controller。并重写了entity。 程序入口 前端页面存放在resource/static下,启动springboot后,访问localhost:8082/codegenerator/https://github.com/JaylenLiu/CodeGenerator
3.MyBatis代码自动生成器MybatisGenerator的使用详解java本文详细介绍如何在SpringBoot项目中使用MyBatis-Generator进行代码生成,包括配置文件的添加、POM依赖配置、运行配置等步骤,通过自动生成代码,可以简化MyBatis的繁琐配置和SQL编写,提高开发效率,注意要考虑MySQL版本兼容性,以及确保路径配置正确+ 目录 MyBatis代码生成器Mybatis-Generator的配置和使用 注:项目介绍 编译器:https://www.jb51.net/program/3289030y9.htm
4.java中间代码生成器java自动生成代码工具代码生成器作为一种开发工具,一般不直接作为程序的一部分,通常也不直接或间接(如通过AOP)被程序调用,他是通过编程的方式生成所需要的代码,然后将生成的代码作为源文件,复制到开发工具的代码区,然后进行编译。由于代码生成器是在编译之前运行的,因此它可以跨语言,你不但可以用代码生成器生成高级语言,也可以生成汇编语言https://www.xiuzhanwang.com/a1/JavaScript/17047.html
5.MyBatisPlus——代码自动生成器回想我们之前进行开发的过程,首先我们需要编写与数据库表对应的实体类,接着再进行创建各种层次的包(mapper,service,impl),这个过程是不是感觉特别漫长呢,而现在一款神器登场了,它就是:MpBatis-Plus的代码自动生成器。 一、介绍 代码自动生成器非常好用,我们只需要提供我们数据库的表名,然后就可以让生成器自动帮我们http://zhangshiyu.com/post/57395.html
6.codeMan:代码生成器源码,可一键生成controller,service,dao,实体自动运行方式 不习惯使用idea的朋友可以直接下载最新版生成器,分为mac和windows两个版本,windows下解压运行exe程序,mac下运行command程序即可! 生成后代码的运行方式 目前有两款主题可选:经典后台Thymleaf版 和 前后端分离响应式。 把生成的项目导入idea/eclipse,等待maven依赖引入完毕之后,根据生成之后的提示便可直接在https://toscode.mulanos.cn/zrxjava/codeMan
7.MyBatis代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。 这和hibernate的自动建表恰好相反。 很早之前,写了一个代码生成器的工程,自己也一直在用,很方便,也经过大量验证,也支持很多数据库。 看到很多小伙伴在为数据库生成实体类发愁,现分享给大家,提高开发效率。 https://juejin.cn/post/6895737650578849799
8.13个免费的AI编程工具,智能自动编写和生成代码AI工具集CodeWhisperer是亚马逊 AWS 团队推出的 AI 编程软件,该代码生成器由机器学习技术驱动,可为开发人员实时提供代码建议。当用户编写代码时,CodeWhisperer 会根据现有的代码和注释自动生成建议,可供个人免费使用,生成无限次数的代码建议。 支持的编程语言 https://ai-bot.cn/best-ai-coding-assistant-tools/
9.jad:JAD旨在为程序员提供一个高效的自动化开发平台,它涉及互联网JAD不仅仅支持传统的单体项目架构,也支持分布式微服务架构,具有很强的扩展性与可移植性。业务开发方面,JAD提供高度可定制化的Eclipse插件作为可视化ide,开发人员可以跟据自已项目的特性定制适合自己项目的代码生成器,大大提高开业务开发效率。目前,JAD内置的代码生成器主要有:创建项目、生成CURD代码等等。 综上所述,JAD是https://gitee.com/457049726/jad/
10.ReSharperUltimate破解版代码生成器(VisualStudio增强工具)VReSharper Ultimate破解版是一款非常不错的代码生成器,他一款适用于 NET开发人员的 Visual Studio扩展,,可以帮助您在软件上设计代码,帮助开发者分析代码质量,消除错误代码问题,让开发者避免许多问题,全http://www.winwin7.com/soft/3270.html
11.JEECG官方网站基于BPM的低代码开发平台(低代码平台JeecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! JeecgBoot引领新低代码开发模式 OnlineCoding-> 代码生成器-> 手工MERGE, 帮助Java项目解决70%的重复工作,让开发更http://www.jeecg.com/
12.更简单更高效的代码生成器AutoGenerator今天的主角是MP推出的一款代码生成器,本文主要来介绍一下它强大的代码生成功能。 一、概述 AutoGenerator是MyBatis Plus推出的代码生成器,可以快速生成Entity、Mapper、Mapper XML、Service、Controller等各个模块的代码,比Mybatis Generator更强大,开发效率更高。 https://m.nowcoder.com/discuss/464018794730504192