他的可测量性使得开发者能够把计算机使用到任何需要他的地方;充分的灵活性使得它能够应用于最复杂的仿真和控制问题,而不论是应用于实时硬件在回路还是快速模型,控制和测试中。
此外,RT-LAB的模型化设计使得用户仅仅提供应用所需的模型就能完成经济的系统、最小化经济要求、并满足用户的价格目标。
这在大量的嵌入式应用中尤其显得重要。
1.2主要特征完全集成MATLAB/Simulink,以及MATRIXx/SystemBuild所有为RT-LAB准备的模型都能够在已有的动态系统模型环境中完成,通过使用这些工具,用户的经验也会相应的提高。
分布式处理的专业化块设计,内部节点通讯以及信号I/ORT-LAB提供的工具能够方便的把系统模型分割成子系统,使得在目标机上能够并行处理(标准的PC上可以运行QNX实时操作系统,或者RedHawkLinux)。
通过这种方法,如果你不能在单处理器上运行实时模型,RT-LAB提供多个处理器共享一个负载的方法来实现的。
完全集成第三方建模环境以及用户代码库RT-LAB支持StateFlow,StateMate,CarSimRT,GT-PowerRT,AMESim,Dymola的模型,以及C,C++,FORTRAN的合法代码。
丰富的API为开发自己的在线应用使用诸如LabVIEW、C、C++、VisualBasic、TestStand、Pythonand3Dvirtualreality等工具可以轻松的创建定制的功能和自动测试界面。
非定制技术RT-LAB是第一个完全可测量的仿真和控制包,使得你能够分割模型,并在标准PC,PC/104s或者SMP(对称式多处理器)组成的网络上并行运行。
在大量市场需求的推动下,用户可以从快速进步的技术中受益,使用相对较低的花费。
RT-LAB使用标准以太网和火线(IEEE1394)进行通讯,还包括ISA,PCI,PXI以及PCMCIA在内的大量数字的和模拟的I/O板卡。
共享存储器、火线、信号线、无限带或者UDP/IP进程间通讯。
同样,你也可以使用TCP/IP和主站上的模型进行实时互动。
为信号和参数的可视和控制而集成的接口。
在RT-LAB的可视化界面和控制面板中,你可以动态的选择你所要跟踪的信号,实时修改任何模型信号或参数。
支持广泛的I/O卡――所支持的设备超过100种。
RT-LAB集成了Opal-RT的OP5000硬件接口设备,具有10亿分之一秒的精确定时和实时性能。
RT-LAB同样支持诸如NI、Acromagm、Softing以及SBS等主流生产厂家所生产的板卡。
RTOS(实时多任务操作系统)的选择:QNX,、RedHawkLinux,或Windows(为了软件的实时性)RT-LAB是唯一的实时仿真框架,它提供你选择两个高性能实时操作系统。
RT-LAB支持QNX,由于它具有已证明过的对任务标准工程应用的追踪记录;同样也支持RedHawkLinux,它是当前流行的、源代码开放的Linux操作系统最重要的实时版本,来自ConcurrentComputer公司。
RT-LAB同样可以作为软件实时操作系统提供给Windows使用。
最优化的硬件实时调度程序——高性能、低抖动。
高速XHP模式——多速率XHP模式——软件同步模式RT-LAB的XHP(超高性能)模式允许用户能够以非常快的速度在目标机上计算实时模型,这使得用户能够运行比分布式处理器更复杂的模型。
RT-LAB的XHP模式能够将系统管理消耗大幅度削减到一微秒以下,使你能够充分利用系统性能来实时计算高度动态模型,这对那些对越来越复杂的系统进行仿真时需高保真度响应、要求高准确率的开发者来说,是一个解决问题的办法。
到目前为止XHP模式,比其他任何实时系统都要优秀,尤其是在电子系统中,诸如驱动器控制及电力电子。
1.3潜在客户、所需的知识和技能1.3.1MATLAB或MATRIXxMATLAB和MARTIXx是工程计算软件包,它们集成了编程、计算并且可视化。
同时MATLAB和MATRIXx仿真和系统建模,这些软件包将在以下介绍。
由于RT-LAB要与这些环境协同工作,你必须熟悉MATLAB的Simulink以及MATRIXx的建模这些方面知识。
比如说,如果你打算从一个系统上采集数据并离线处理数据,那么你必须知道如何保存这些数据并且用MATLAB或者MATRIXx重新读取数据并把数据在软件支持的不同显示器上显示出来。
1.3.2Simulink或SystemBuildSimulink和SystemBuild是能够建模、仿真和分析动态系统的一些软件包,你可以用图形化的方式描述模型,接着有一个基于模块库的精确格式,RT-LAB使用Simulink或SystemBuild来定义要在实时多处理系统上运行的模型,并定义它的仿真参数。
因此期望用户对Simulink或Systembuild的操作有一定的认识理解,尤其是有关模型定义和模型变量仿真参数。
如果你打算自己制作与能与RT-LAB兼容的模块,那么你应该了解如何为你的指令站和目标环境创造Simulink或者SystemBuild图标(S函数和UCBs)1.4本向导的组成RT-LAB的列表文件有以下几个组成部分:安装向导API参考向导用户向导本文档是用户向导。
主题如下第一页简介:介绍了仿真和RT-LAB的运行原理。
第七页用户接口:描述了所有的RT-LAB的用户接口。
第四十九页建模:概述了RT-LAB,从Simulink或SystemBuild的方框图到RT-LAB的可以使用的分布式模型。
第五十七页执行模块:描述了如何实时运行模块。
第七十五页监视模型:描述了如何测量性能。
1.5本文档的规定OPAL-RT向导使用如下约定:表一:通用的和印刷的约定约定含义黑体用户界面元件,文字必须严格按照所示键入注释强调或补充文字。
你可以忽视注释信息并仍能玩成任务警告描述必须避免的行为或者以下是预期结果推荐描述一些你可能不会采取的行为,但你仍然能够完成任务编码编码斜体字参考工作名称蓝色文本对照(内部或外部)或者超文本链接1.6基本概念这节描述了RT-LAB的基础,提供了仿真过程的概览,从设计和确认模型,到使用方框图和I/O设备,来运行仿真和使用图形界面的控制台。
1.6.1设计和确认模型任何仿真的起点都是被仿真对象的系统组成部分的数学模型。
你通过分析对象系统并在动态仿真软件上运行对象系统来设计和确认模型。
RT-LAB被设计来在实时多处理环境中,使离线动态仿真软件做的模型自动化运行,这些动态仿真软件如Simulink或者SystemBuild。
RT-LAB是完全可升级的,使你能够把数学模型分割成块,以便于在计算机组上并行运行,而不改变模型的特性、引入实时脉冲干扰,或者产生死锁。
1.6.2使用方框图使用方框图编程能够简化参数的进入,并确保被仿真系统文件的完整性和准确性。
一旦模型被激活,你就可以把它分割成子系统并插入合适的通讯块,每一个子系统都会在RT-LAB分布式网络上的目标节点中运行。
1.6.3使用I/O设备RT-LAB支持I/O设备的使用,以确保将外部物理元件集成为一个系统,这样就是人们所熟知的(HIL)硬件在回路配置,或者(RCP)快速控制原型,不论是电机还是控制器都可被分别仿真。
对I/O设备的最优化使用使得TR-LAB能够作为一个可编程的控制系统,并展现灵活的实时人机接口。
I/O设备接口可以通过定制块来进行配置,只需要把块添加并连接到模型中,RT-LAB的自动码生成器将会把模型数据写入物理I/O卡中。
1.6.4运行仿真一旦原始模型被分割成各个子系统,并与各种各样的处理器连接,模型的每一部分都会被自动生成C代码并编译,在目标节点上运行。
目标节点可以是商用PCs,并配有PC兼容处理器,在Windows2000/XP,QNX或者RedhawkLinux环境中运行。
1.6.5执行和操作模型参数当生成C代码和编译完成后,RT-LAB自动把计算量分配到目标节点,并提供接口。
至此,你就可以运行仿真和操作模型参数。
其结果是高性能仿真,能够并行实时运行。
1.6.6使用控制台作为图形接口你可以在仿真的时候,通过控制台和RT-LAB互动,一个对指令站操作的命令终端。
控制台和目标节点之间的通讯可以通过TCP/IP连接进行。
这使得你能够保存模型上的任何信号,以便观测或者离线分析。
同样,你可以使用控制台在仿真运行时修改模型参数。
1.6.7与RT-LAB一起工作运行RT-LAB软件的硬件配置要包含如下部件:指令站节点编译目标节点I/O板卡在Windows2000/XP或者RedhawkLinux上运行RT-LAB软件的叫做指令站,作为你的界面,使你能够:编辑和修改模型观看模型数据在仿真软件(Simulink,Systembuild等)下运行原始模型分布编码控制模拟器的开始/停止顺序仿真能够完全在指令站上运行,但一般来说都在一个或多个目标节点上运行。
对实时仿真来说,首选的操作系统是QNX或RedhawkLinux。
当有多节点的时候,他们之一就会被设计为编译节点,通过通讯线路,控制台和目标机之间进行通讯,为了进行硬件在回路仿真,目标节点同样会通过I/O板卡和别的设备进行通讯。
目标节点是实时处理和通讯的,计算机使用商用处理器。
这些计算机能够具有一个实时通讯接口如火线,信号线,Infiniband,或cLAN(取决于你所选择的操作系统)以及I/O板卡以访问外部设备。
实时目标节点完成:实时目标仿真运算;目标节点间、目标节点与I/O间实时通讯;I/O的接口系统;通过I/O模型获取模型的内部变量及外部输出;执行用户的在线参数修改;需要的话,可以在本地硬盘驱动器记录数据;监督模型仿真的执行和节点的通讯。
节点的编辑是用来产生C代码的,任何目标节点都可以成为编译节点。
RT-LAB支持多种模拟、数字、计时器I/O板卡,因此能够与外部应用设备连接,如HIL。
用户接口本章介绍使用RT-LAB提供的面板,这些面板是:MetaController:主要的RT-LAB应用程序是在后台进行的。
MainControlPanel:RT-LAB的主要界面,允许你编辑、编译、执行模型。
RT-LABDisplayPanel:显示编译和运行信息。
ProbeControlPanel:管理RT-LAB的参数获取。
ParameterControlPanel:允许当仿真运行时更改参数。
MonitoringViewerPanel:监视模型的运行。
Snapshot:对模型状况进行快照并储存。
SnapshotDecoderPanel:读取快照文件并把它转换成ASCII码。
2.1MetaController2.1.1图标系统托盘2.1.1.1描述MetaController是RT-LAB主要的应用运行背景。
系统启动时,该程序也就启动了。
这个应用担当服务器,并要求打开一个新的模型。
图1:MetaController图标系统(Windows系统下)2.1.1.2参数MainControl启动MainControl,双击系统图标,会同时启动RT-LAB的MainControl。
监视:启动MonitoringViewerPanel参数控制启动ParameterControlPanel侦测控制启动ProbeControlPanelRT-LAB显示启动RT-LABDisplayPanelDinamo启动DINAMO面板显示控制器在任务栏里显示RT-LAB的控制应用,默认不检查控制器的使能在RTLAB-ROOT\common\bin文件夹里创建文件:Controller.log,以备调试使用,默认不检查。
推出关闭MetaController。
2.2MainControl2.2.1主控接口面板2.2.1.1描述RT-LAB的MainControl是一个图形用户接口,使你能够很容易的使用RT-LAB所提供的多种功能,一定要先运行MetaController,然后才能运行这个MainControl。
图2:RT-LAB主控2.2.1.2参数OpenModel:允许你选择一个用Simulink/Sysembuild所建立的模型,并从打开文件表格框里显示出来(MetaController必须运行),所用的模型必须是最高阶层的,原始模型将会被分割成为子系统,并有前缀:SC-,SM-,SS-在OpenModel上点击右键,会显示最近5个打开过的模型。
Connect:使你能够连接到任何已打开的仿真模型上。
如果有正在运行的仿真显示激活模型面板,右键点击这个按钮会显示测试节点面板。
Disconnect:关闭到目前仿真模型的连接,同时允许你随后再次联接,而不必重新设置仿真值(如RESET按钮)。
ProbeControl:启动ProbeControl面板,你能够在此设置数据获取参数。
Paramenters:启动Paramenters面板,你能够在模型运行时修改参数。
Configuration:启动Configuration面板你能够设置和编译模型、运行仿真有关的多种选项,同样可以进行实时网络设置。
StoreEmbedded:使你能够把模型存入嵌入式系统中,如使用PC/104格式。
注释:这个功能仅在QNX6和RedHawk中才有。
FixedStepSize:显示模型基本的计算步并在仿真文件的Simulation〉Parameters〉Solver菜单中详细说明,或者在顶级Systembuild模型的SamplePeriod显示。
TimeFactor:用这个值乘以模型的基本计算步(即步长),就得到了系统的计算步。
只有当仿真运行暂停时,这个功能才能被激活,而且也只有在同步模式下才能使用(软件/硬件)。
注释:这个参数能够改变I/O的获取速度。
这个参数一定会被用在计算系统的最小计算步上,一旦这步确定后,这个参数会返回值1,模型的基本计算步也会相应的刷新,通过在设模型中设定正确的值。
Apply:应用新的TimeFactor和StopTime值。
Cancel:取消关于TimeFactor和TimeFactor参数最后的更改。
TargetPlatform:在这里,你可以选择运行仿真的目标平台(QNX6,Redhawk,WindowsNT/2000/XP)。
Edit:打开原始Simulink或者SystemBuild模型以便修改。
使用ctrl键和右击这个按钮使你能够打开WindowsExplorer来设置模型路径。
Compile:使你能够选择合适的编译选项并运行模型分割、产生代码、以及从分布式模型中编译子系统,编译选项包括:分割模型;产生代码;传输文件;编译产生的代码;文件回传。
你可以通过右击Compile来改变这些选项。
AssignNodes:使你能够把物理节点分配到模型的各个子系统中去。
Load:把可执行代码加载到不同的节点中去并设置模型的状态为暂停。
Reset:初始化系统节点并完全停止。
Usemodelconsole:当你选择Load或Reset,使你能够自动打开或关闭控制台。
你第一次运行模型时,控制台会自动启动,右击这个按钮就会出现一个菜单,使你能够手动打开或关闭控制台。
Execute:启动系统并在网络上运行分布式系统,如果选中Usemodelconsole检测盒,模型控制台就会在你第一次运行模型时自动打开。
Pause:使系统处于等待状态,停止计算而不重新分配节点,要继续运行的话,就点击Execute.Singlestep:使你的仿真运行一次走一步。
Snapshot:使你能够在运行时进行快照并保存仿真值。
在重新进行仿真序列时,这个功能尤其有用。
ExecutionModel:使你能够在选项中选择如何进行模型仿真。
仿真模型可以运行在QNX6,Redhawk或WindowsNT/2000/XP系统。
Simulation:在这个模式下,模型不是同步的,上一步完成时。
模型会开始一个新的计算步(模型以最快的速度运行)Simulationwithlowpriority:在与其它应用程序公用一台计算计的话,这种仿真模式可以仿真在后台运行,。
注释:“Simulationwithlowpriority”只有在目标平台系统为Windows时才可以使用。
softwaresynchronized:在这种模式下,操作系统可以进行全部仿真的实时同步,使用CPU时钟作为参考。
Macro-Play:运行一个已记录的宏。
Macro-Stop:停止记录宏。
Macro-Rec:打开宏录制器对话框。
Macro-Edit:用默认编辑器编辑一个已经录制好的宏。
Help:打开RT-LAB的帮助主页。
Close:关闭面板,但不停止正在运行的仿真。
这是关闭ControlPanel窗口的标准方法。
关闭面板与模型的自动连接。
2.2.2ActiveModels面板2.2.2.1描述ActiveModels面板是一个图形化的用户接口,使你能够连接到一个正在运行仿真的目标机上,以下显示了可用的仿真。
图3:激活模型2.2.2.2参数Clearentry:取除从激活模型上选择的模型。
只有当模型断开时才能用此选项。
Clearalldisconnectedmodelsentries(模型用红色表示):清除全部无效连接。
Expandall:扩充激活模型列表上的全部子目录。
Connect:连接到已选的模型(同样双击选项)Cancel:关闭面板而不连接到已选的节点上。
2.2.3CompilationOptions面板2.2.3.1描述编译选项面板使你能够在编译模型的时候选择编译选项。
图4:在WindowsNT上编译2.2.3.2参数Separatemodel:当选中这个选项,模型按照指定被分割成子系统,对所有的子系统,这个选项都可以使用。
Generatecode:当选中这个选项,可以从已选的子系统上产生C代码。
Compilegeneratedcode:当选中这个选项,已选的子系统上产生的代码以及指定的额外文件(如果有的话,看File&CommandTab)通过FTP方式传输到编译节点上。
Compilegeneratedcode:当选中这个选项,已产生的代码就会在编译节点上被编译。
Retrievefilesfromtarget:当选中这个选项,已选子系统上的二进制码以及指定的额外文件通过FTP方式传回,在目标节点上的操作系统为WINDOWS时,不能同这个选项。
OK:开始编译并保存选项。
Cancel:关闭面板而不编译模型。
警告:定制编译选项可能会影响到仿真结果,最好只有高级用户才能用编译选项。
2.2.4AssignNodes面板图5:分配节点2.2.4.1描述分配节点面板是一格图形用户接口,使你能够把计算子系统分配到目标节点上去。
2.2.4.2参数Subsystems:模型的子系统名。
AssignedPhysicalNodes:运行子系统的目标节点。
XHP:如果选了的话,自系统就会以XHP模型运行(仅在QNX6及RedhawkLinux上可用)。
CPU(只为高级用户):将要运行子系统的CPU号。
当设置了“auto”(默认值),在以下CPU中,自系统将被分配到同样的节点下:指定从CPU1开始(如果可以的话)。
首先分配XHP子系统。
XHP模式下子系统的最大运行数字是CPU号。
中断子系统被分配到别的CPU上,一次一个直到CPU0。
举例:CPU号子系统号注释11或更多中断模式所有子系统都在CPU0上运行11XHP只有一个XHP子系统被允许在CPU0上运行。
2一个或更多中断模式子系统1被分配到CPU1,其余被分配到CPU0。
2一个XHP以及一个XHP模式子系统被分配到CPU1,其余被分配到CPU2或更多中断模式2XHPXHP只允许两个子系统,子系统1和2被分配到CPU0上,另一个目标被要求与实时连接通讯。
41或更多在中断模式子系统1被分配到CPU1,子系统2被分配到CPU3,自系统3被分配到CPU3,其它被分配到CPU0。
42XHP及一个或等多子系统在中断模式子系统1XHP被分配到CPU1,子系统2XHP被分配到CPU2,子系统3中断被分配到CPU3。
44XHPXHP模式只允许4个子系统,子系统1XHP被分配到CPU1,子系统2XHP被分配到CPU2,子系统3XHP被分配到CPU3,子系统4XHP被分配到CPU0,另外需要目标与实时连接通讯。
RemainingPhysicalNodes:列表显示剩余可用的目标节点。
Ping:检测目标节点是否连接到网络上。
2.2.5Configuration面板Configuration面板是一个图形用户接口,使你能够设定本地或者全局RT-LAB参数。
Configuration面板分成两个主要的部分:ModelConfigurationAdvancedSettings注释:请注意任何包含GlobalSettings功能的面板,GlobalSettings在所有的模式下都能使用,而LocalSettings只对当前打开的模型有效。
配置面板是:General(参见General标签页)Monitoring(参见Monitoring标签页)UserVariables(参见UserVariables标签页)ADVANCEDSETTING:实时通讯(参见Real-TimeCommunication标签页)文件&命令(参见File&Command标签页)编译选项(参见CompilationOptions标签页)驱动(参见Drive标签页)路径(参见Directories标签页)硬件配置(参见Hardware标签页)图6:模型配置图7:高级设置注释:请注意,对任何面板来说,都有全局设置功能,全局设置应用于所有的模型,而本地设置只对当前打开的模型有效。
2.2.5.1通用标签图8:模型配置—通用标签Compileindebugmode:当选中这个选项,模型编译时,最佳选项被调试选项清除及替代。
调试模型时,这个选项尤其有用。
Extendedtimeout:选中这个选项是,所有的超时都会被延长,调试模型时常常会用到。
允许使用WATCHDOG:watchdog能够确保所有的节点都工作正常。
当目标节点为WINDOWS系统时,该选项不能用。
DetectOverruns:(仅可用于软件/硬件的同步模式),在模型运行超过一定的数值时,停止模型运行,这个变量对同步模式没有影响。
如果没有选择这个选项,就不能使用过度运行检测(例如,在测试5过度运行时当值=5时就停止执行)。
过度运行的数量在RT-LAB的RT-LABDisplayPanel中可以看到。
OPMonitor也输出了这个数量。
Useglobalsetting:允许/禁止使用全局设置。
Getglobalsettings:用全局设置替换本地设置。
Defaulttargetplatform:建立一个新的模型时默认目标平台。
LoadRT-LABdefault:加载RT-LAB默认全局设置。
OK:使用修改后的设置并关闭版面。
Cancel:关闭面板而不是用修改后的选项。
Advanced:打开高级配置面板。
ChangeGlobalsettings:使你能够修改全局设置(需要密码),全局变量的任何修改都会在已选Apply:应用修改后的设置而不关闭面板。
默认值是0(没有打印输出)。
取1时,以微秒为单位,打印模型每1,000,000步的计算步长。
取100时,为100微秒为单位,打印模型每10,000步的计算步长。
警告:这个选项可能会影响到实时仿真的运行。
Warnonmodelloadwhentargetdiskspaceisbelow:目标盘可用空间低于设定值,模型加载时发出警告。
Enablemonitoring:模型运行时,允许或禁止监视。
TargetInformationDisplay:代表运行时,日志框里显示出的信息量。
把这个值从最小设置到详尽使你能够得到很多信息,如通讯及I/O初始化,可以用来调整你的模型。
注意:Exhaustivemode只能用于调试模型时,因为它会影响到实时性能。
Useglobalsettings:允许/禁止使用全局设置。
2.2.5.3UserVariables标签UserVariables是用来允许对一些仿真目标机进行设置而不用重新编译模型。
大部分设置是用来调试模型,或作为仿真目标的工作区。
因此,用户变量标签的全局设置部分应该谨慎使用,它会把对一个具体模型的设置应用于所有以后打开的模型中。
图10:模型配置—UserVariablesKeyname:用户变量名。
Valuename:用户变量值。
Add:把一个用户变量添加到列表中。
Edit:编辑列表中的用户变量。
Remove:从列表中清除一个用户变量。
ChangeGlobalsettings:使你能够修改全局设置(需要密码),全局变量的任何修改都会应用在已选的目标平台上的所有模型。