1、北京神州普惠科技有限公司北京神州普惠科技有限公司RT-LAB培训培训 产品简介产品简介2实时仿真系统用途实时仿真系统用途Rapid control prototypingHardware-in-the-loopPure SimulationcontrollerplantplantplantcontrollercontrollerI/OI/OI/O我们的相关信息 团队 雇员: 50 (40 技术 - 10 管理) 位置 Montral, Qubec, Canada Ann Arbor, Michigan, U.S.A. 主要涉足领域 汽车 航空航天 教育 机电 嵌入式控制 机器人技术Opal-R
2、T 技术之前: 1975Hydro-Quebec的网络仿真中心 焦点: 实时配电网络仿真. 需要测试一个不稳定网络的控制器 技术挑战: 高带宽 复杂模型需要大量并行混合计算 I/O数量多 结果: 20,000 平方英尺的混合仿真器,多达 30个CPU快速转到 1997加拿大航天局为国际空间站开发机器人系统 空间站远程控制器系统(Canadarm2 配置 April 19, 2001 - STS-100) 具有特殊目标的灵巧操作器SPDM(SPDM 预定投入使用 October 2003 - UF-4) 技术挑战: 手臂不能在地面支持自己-飞行之前没有实际控制系统测试! 解决方案:为研制和测试机
3、器手臂开发了一套HIL系统,同时还作为训练模拟器. Opal-RT的基于PC的建议之所以被接受是由于它的开放性和可量测性SPDM 特写 Simulink中的模型定义包含 一个54x54 的雅可比矩阵 1ms 步长 9个处理器 I/O 接口- 48 数字 I/O - 24 12-位 D/A- 78 16-位A/D - 21 数据总线通道 (HC, PTU, Cameras)- 6 编码器- 6 FMS(柔性制造系统) SPDM Task Verification FacilitySPDM 特写一些领域和应用汽车汽车混合电动车辆仿真器ECU 软件综合测试台工作台发动机运算法则开发工作站动力学ECU
4、 测试工作台 Global Electronics Inc车辆动力学仿真器 CARsim, TRUCKsim航空航天航空航天航空电子设备测试工作台可重构工程飞行模拟器飞行器试验台电力电子系统电力电子系统电子系统仿真器继电保护动力学测试平台教育教育动力学和控制试验室机械系统机械系统多体机构仿真器用于操作员培训的起重机仿真器生物医学研究测试工作台 Marintek McGill University Centre for Intelligent Machines Mechanical Simulation Corporation Mitsubishi Electric NASA Glenn Res
5、earch Center North Carolina A&T Norwegian University of Science & Technology Peugeot Pratt & Whitney Sauer-Danfoss Southwest research Institiute Toyota University of Alabama in Huntsville University of Quebec in Trois-Rivieres University of Laval University of Michigan University of Quebec in Chicou
6、timi University of Sherbrooke University of Tennessee in Knoxville University of Toronto Institute for Aerospace Studies ABB Allison Transmission Division of General Motors Aisin Corporation Antonov Automotive Technologies Bosch Bombardier Canadian National Defense Canadian Space Agency (CSA) Cummin
7、s Engine Company DENSO Corporation Dresden University of Technology cole Polytechnique cole Suprieure des Sciences Appliques de lIngnieur Mulhouse Embraer Ford Fraunhofer Institute General Motors Advanced Technology Vehicles Division Ingersoll Rand Torrington International Submarine Engineering Mass
8、achusetts Institute of Technology Plasma Science & Fusion CenterOpal-RT部分用户. 特点:实时性高 QNX系统,稳定,微内核机制 支持多CPU多核 步长更低,系统占用资源更少 方便的工具箱资源 支持众多的第三方硬件板卡 软件安装 版本支持 网络配置 License配置管理 系统组成 机箱硬件结构 板卡性能 I/O接口 模型实时化注意事项.m文件不能包含迭代运算定步长数字仿真和离线仿真区别.C,S函数都可以 模型编译过程1.系统信息2.模型分割3.Call RTW产生C代码4.进程传送C代码5.Build and link生成
9、可执行实时文件6.传送文件到主机 RT-LAB软件详细介绍 模型举例说明 模型分割介绍 RT-LAB常用工具箱及模块介绍问题问题? 上机操作及问答RT-LAB 介绍RT-LAB 介绍Opal-RT & RT-LAB 介绍为RT-LAB编辑SIMULINK模型RT-LAB下的运行范围1.建立一个简单模型2.将计算分组到子系统3.添加OpComm 模块激活通信4.鉴定状态或者得自状态的变量以最大化并行执行5.设置适当的仿真参数6.在 RT-LAB中记录初始化功能仿真基础仿真需求: 为系统动力学获得一个感知(就像在一个飞行模拟器中) 当方程过于复杂以至于找不到一个封闭形式的解答时提供解算系统因此,我
10、们为什么不从一些火箭科学开始呢艾萨克牛顿F = ma一些数学 212222)(gives to respect withsides both gintegratindistance time, mass,force,where,cdtcdtmFxt mFxdtdxtmFxdtdmmaF“双积分器”为什么是双积分器?如果对IEEE控制系统杂志来说,它足够优秀模块图表符号 21)(cdtcdtmFxProductIntegratormassforcedistancevelocityaccelerations1Integrator1s1带数据示波器仿真velocitydistanceaccelera
11、tionSignalGeneratorProductIntegrator10Constantmassforcedistancevelocityaccelerations1Integrators1在 Simulink中进行模型开发依次传递依次传递: 如果你不熟悉Simulink,请进入下一个幻灯片所展示的实例控制系统模型模块图表 如果你已经熟悉Simulink,通过从文件modelsx1_cntrl_sys_theoretical.mdl 加载模型保存几分钟控制系统模块图表 M2_initial_model.mdl仿真结果范围1.建立一个简单模型2.将计算分组到子系统3.添加OpComm 模块激
12、活通信4.鉴定状态或者得自状态的变量以最大化并行执行5.设置适当的仿真参数6.在 RT-LAB中记录初始化功能RT-LAB命名协定在在RT-LAB中,所有顶层子系统都必须以一个前缀命名,中,所有顶层子系统都必须以一个前缀命名,以此来区分它们的功能。这些前缀是以此来区分它们的功能。这些前缀是:SC_ : 控制台子系统, (大部分都有) 包含所有用户界面模块(示波器, 滑块放大器, 手动开关) 与其它所有子系统异步运行SM_ : 主子系统, (只能有一个) 包含模型的计算单元SS_ :奴隶子系统, (任何数量) 在通过多节点实现分布式处理的时候,包含模型的计算单元RT-LAB 命名协定这些顶层子系
13、统直接映射到逻辑节点。SC子系统是主机,而SM是目标机。对于分布式计算来说,SS子系统使我们可以将额外的计算分派到其他节点中。每个目标机(物力节点)的CPU都作为一个逻辑节点。 1目标机:只有SM子系统2目标机:SM和SS子系统1目标机(2 CPU):SM和SS子系统2目标机(2 CPU each):SM 和 3个SS子系统控制系统模型组成:被控对象: 被控制的物理系统.控制器:这是一套装置,能从传感 器接收数据,并能基于一 个控制运算法则的计算结 果向激励器发送控制信号, 以促使被控对象完成期望的动作。用户界面: 为用户与系统间提供接口我们将使用这个逻辑分割来创建我们的顶层子系统分级分解分级
14、分解依次传递依次传递: 使用Simulink菜单中的“Create subsystem” 命令将模块图表整合到子系统中 使用上一个幻灯片作为分解原理图的例子 适用RT-LAB命名协定范围1.建立一个简单模型2.将计算分组到子系统3.添加OpComm模块激活通信4.鉴定状态或者得自状态的变量以最大化并行执行5.设置适当的仿真参数6.在 RT-LAB中记录初始化功能OpComm通信模块RT-LAB使用OpComm模块激活并保存通信设置信息。这包括命令区域和计算节点间的通信,以及分布式仿真假定下计算节点间的通信。所有到顶层子系统的输入,在使用前都必须首先通过所有到顶层子系统的输入,在使用前都必须首先
15、通过OpComm模块模块OpComm 布局规则在计算子系统中 (SM or SS): 一个OpComm接收来自其他计算子系统的实时同步信号 一个OpComm同步接收来自控制台子系统的信号在控制台子系统 (SC 子系统): 可以嵌入一个或多个 OpComm模块接收来自不同计算节点的信号。多OpComm模块用它们自己的数据获取参数定义了独特的“获取组”。一个OpComm模块被嵌入用于接收来自SC子系统的信号 (异步网络). 一个OpComm 模块被嵌入用于接收来自其他实时子系统的信号 (这种情况下来自于SS的被控对象响应).SM子系统中的OpComm模块因为我们只从SM子系统中接收,所以在奴隶子系
16、统中只需要一个OpComm模块。SS子系统中的OpComm模块SC子系统中的OpComm模块对于控制台来说,我们使用一个还是两个OpComm模块取决于我们想要设置几个获取组。获取组使我们可以对不同的信号组定义不同的优先权和获取参数。M2_final_model.mdl稳定表观抖动记住,因为SC(控制台)子系统相对于主计算(SM和SS)是异步运行的:控制台子系统不包括实时模型依赖的计算只有来自于同一个获取组(OpComm)的信号才能互相比较,来自不同OpComm模块的信号不是一起同步的。仿真时间并不是模型时间的精确提示。(更多相关内容在模型 4).OpComm配置依次传递依次传递: 向模型增加O
17、pComm模块 为控制台定义两个获取组范围1.建立一个简单模型2.将计算分组到子系统3.添加OpComm模块激活通信4.鉴定状态或者得自状态的变量以最大化并行执行5.设置适当的仿真参数6.在 RT-LAB中记录初始化功能最大化并行执行当计算节点仅交换优先信号时,RT-LAB最大化并行。为了这点,奴隶子系统和主子系统必须在读取它们的输入之前计算并发送它们的输出(在同一步内)。RT-LAB通过考察输出口的名字后缀“_s”来区分奴隶子系统和主子系统计算输出的优先权。带有“_s” 的输出通过溯流而上计算,直到一个动态元件被发现;如果没有就报错。你必须区分状态和得自状态的信号,以便激活子系统的你必须区分
18、状态和得自状态的信号,以便激活子系统的并行计算。并行计算。最大化并行执行什么是状态什么是状态?状态可以定义为输出(信号)的计算仅取决于之前输入或输出。模块示例是一个引入“积分器”和“存储器”模块的状态。yz = yz-1 + xz-1tyz = xz-1yz = Axz“增益”模块不能产生状态,因为Z步的输出取决于同一步内它的输入。最佳案例最佳案例 (完全并行执行)最大化并行执行在每一步 RT-LAB如下执行:1. ss_subsystem 发送到 sm_subsystem2. sm_subsystem 发送到 ss_subsystem3. 两个子系统同时计算在每一步 RT-LAB如下执行:
19、1. ss_subsystem 发送到 sm_subsystem2. sm_subsystem计算3. sm_subsystem 发送到 ss_subsystem4. ss_subsystem计算最差案例最差案例 (串行执行)最大化并行执行在每一步 RT-LAB如下执行:1. ss_subsystem 发送到 sm_subsystem2. sm_subsystem中的增益计算3. sm_subsystem 发送到 ss_subsystem4. ss_subsystem 和剩余的 sm_subsystem计算中间案例中间案例 (部分并行执行)最大化并行执行RT-LAB 死锁!1. sm_subs
20、ystem 等待 ss_subsystem2. ss_subsystem 等待 sm_subsystem死锁死锁最大化并行执行最大化并行执行为了最大化并行执行,你必须将你的模型分割,为了最大化并行执行,你必须将你的模型分割,以便仅交换计算子系统(以便仅交换计算子系统( SM 或者或者 SS )间的优)间的优先信号(状态或者源于状态)。先信号(状态或者源于状态)。不幸地是在某些情况下,并不是总能以这种方式分割并使模型易于管理转换成优先输出通过使用延迟模块,你可以将直通信号转换成优先信号。小心布置延迟模块可以消除代数环和最大化并行。:延迟模块必须小心操作,因为它可能改变模型的动力学.你必须将之前和
21、之后的结果进行比较,以确保延你必须将之前和之后的结果进行比较,以确保延迟的影响是可接受的。迟的影响是可接受的。最大化并行执行在 ss_plant 子系统,输出是一个状态,所以我们可以简单的更改输出口的名字,告诉RT-LAB这是个优先信号。状态M2_final_model.mdl转换成优先输出sm_controller 子系统是一个直通子系统 ,所以如果我们想要并行执行的话,就必须引入一个状态。然后,我们要更改输出口的名字,添加“_s”. 转换成优先输出sm_controller 子系统是一个直通子系统 ,所以如果我们想要并行执行的话,就必须引入一个状态。然后,我们要更改输出口的名字,添加“_s
22、”.StateM2_final_model.mdl转换成优先输出你必须将之前和之后的结果进行比较,以确保延你必须将之前和之后的结果进行比较,以确保延迟的影响是可接受的。迟的影响是可接受的。这个可以接受吗? 这是你的调用。最大化并行执行依次执行依次执行: 添加 “_s” 后缀以识别优先(状态或者源于状态)输出 当需要的时候添加延迟模块转换成非优先输出 在Simulink下运行,确定模型动力学未改变范围1.建立一个简单模型2.将计算分组到子系统3.添加OpComm模块激活通信4.鉴定状态或者得自状态的变量以最大化并行执行5.设置合适的仿真参数6.在 RT-LAB中记录初始化功能实时仿真是什么? 决
23、不丢失它的时间表的仿真 (通常量度标准是s或者ms) 以实际速度运行用途? 硬件在环 (HIL) 控制系统测试工作台 操作员训练 基于模型的设计 快速控制原型实时的缺陷实时仿真每一步都需要确定的计算,这就是说它不允许(极大的)迭代的解算方法。 变步长积分器是迭代的,这就意味着我们必须使用固定步长的解算器,这样我们必须再次确认一个验证良好的参考集。 实验(经验)数据 当没有实验(经验)数据可获得时,变步长解算器可以作为一个 参考 解算代数环是迭代的代数环当一个直通模块的输入口由该模块自己的输出驱动,可以是直接的,也可以是通过其他的直通模块的反馈通道,这样就产生了代数环。大部分代数环并不能通过检查
24、解决。它非常容易产生带有多重代数状态变量( z1, z2等等)的矢量代数环,如这个模型所示。对固定步长和变步长的测试结果你必须对验证良好的参考集进行确认,以确保选择的步长大你必须对验证良好的参考集进行确认,以确保选择的步长大小产生可接受的结果。小产生可接受的结果。这个可以接受吗? 这是你的调用.假使.呢?适当的固定步长解算器并不总是可能的,尤其是存在下面的情况 积分器复位 来自simPowerSystems的模块特殊工具可能带来这些问题: RT-Events模块库 simPowerSystems附加的ARTEMIS 设置仿真参数更改SIMULINK参数: 使用固定步长解算器 (例如ODE4 就
25、是非常通用的) 为你模型的动力学选择合适的固定步长 (1ms 是典型的机械系统、50us 电气系统).验证固定时间步长积分依次传递依次传递: 运行模型: M2_variable_step.mdl, M2_fixed_step.mdl找到一个适当的固定时间步长 (以 0.5s开始 ,然后逐步减小) 在Simulink下运行,以确定模型动力学是无变化的范围1.建立一个简单模型2.将计算分组到子系统3.添加OpComm模块激活通信4.鉴定状态或者得自状态的变量以最大化并行执行5.设置合适的仿真参数6.在RT-LAB中记录初始化功能RT-LAB中初始化功能如果你的模型依赖于MATLAB变量, 你就需要
26、从RT-LAB记录初始化功能(或者加载工作空间). Configuration Advanced Files & Commands和/或加载一个mat输入MATLAB命令,例如调用一个M脚本问题问题?RT-LAB 介绍RT-LAB 介绍Opal-RT & RT-LAB介绍为 RT-LAB编辑SIMULINK模型在RT-LAB下运行范围该模型提供了在RT-LAB单目标机和分布式系统下,运行模型依次执行的经验1.在RT-LAB系统中运行2.带有OpSimulationInfo的概要执行3.抖动和溢出RT-LAB 主控面板 23465abc1首先,我们在RT-LAB 中打开模型。在先前的模型中,我们
27、已经更改了模型。如果我们需要改变它,可以点击“Edit”.从下面选择目标机环境: RedHawk: 用于在QNX v6.x上纯粹的仿真和实时执行 Windows NT: 用于在 Windows NT/2000/XP平台上单纯仿真 Neutrino:用于在QNX v6.x上纯粹的仿真和实时执行当我们按下 “Compile”的时候开始编译。这是一个自动化过程,所以无需用户介入,但是会产生大量信息编辑12a31.模型分割会按照顶层子系统的安排将原模型分割 成多个模型编辑 分割2. 接下来,对于每一个计算子系统 (SM 和 SS),我们可以调用 Real-Time Workshop 来生成 C 代码,
28、针对特定的目标机操作系统RT使用一套特定的模版。编辑 代码生成3. 我们必须通过FTP协议,将最新生成的C文件传递到其中一个计算节点(调用开发或者编译节点).编译 传递到实时操作系统4. 接下来,对于每一个计算子系统(SM和SS),我们调用编译 器(此处是gcc )并为RT-LAB将C代码链接成可执行文件。编辑 编译5. 稍候我们通过FTP取回可执行文件,这使我们可以将编译节点生成的子系统加载到不同的节点上。编辑 可执行文件取回节点分配从“Assign Nodes” 对话框中简单的选择适当的物理节点,就可以将一个子系统分配到一个特定的机器上。你可以将多个子系统分配到一个物理节点上 如果有多个处
29、理器(逻辑节点),加载会在处理器中自动分配。 如果只有一个处理器,那么RT-LAB将依靠实时操作系统来实现子系统程序之间的任务切换。这与没有分配模型是等效的。4执行选项 如果你想在Simulink中使用基于原模型的SC子系统的用户接口,可以选择 “use model console”. 选择执行模式.仿真:自由运行, 在目标机上尽可能快地仿真软件同步实时: 实时, 在内部实时操作系统定时器下的同步硬件同步实时: 实时,在外部硬件定时器下的同步cb计算节点上的加载通过FTP协议,将可执行文件(每个计算子系统一个)传输到他们分配的节点。这样子系统就被载入并准备运行。 5运行时间控制台点击 “Exe
30、cute” 开启模型执行,RT-LAB生成的控制台开始显示返回的数据。注意这不是原始模型,仅仅是它的SC部分。你也可以使用我们的API来创建自己的UI(用户界面)。6在RT-LAB系统下运行依次传递依次传递:1.选择一个合适的执行平台2.编译你的模型3.将子系统分配到一个/多个节点上4.加载5.执行范围该模型提供了在RT-LAB单目标机和分布式系统下,运行模型依次执行的经验1.在RT-LAB系统中运行2.带有OpSimulationInfo的概要执行3.抖动和溢出OpSimulationInfo概述OpSimulationInfo使你可以从模型重新找回时间信息,并在仿真事件(溢出)或者模式(单
31、步、 实时)下触发有条件的执行。OpSimulationInfo输出to be done计算时间计算时间有效步长有效步长总步长总步长RT-LAB 头头(通信通信)模型空闲时间模型空闲时间(等待同步等待同步)计算计算范围该模型提供了在RT-LAB单目标机和分布式系统下,运行模型依次执行的经验1.在RT-LAB系统中运行2.带有OpSimulationInfo的概要执行3.抖动和溢出抖动抖动是实际执行周期(总步长)围绕指定执行周期( real-time - model step size )的变化。在这个例子中,模型步长是1ms (1000 us). 最大步长是10007us,所以抖动是7us.抖
32、动抖动有许多原因. 7us附近 (类似QNX)通常认为是性能良好 资源争夺 (主要是在 SMP对称多处理系统) 上下文开关程序时间 非抢占式操作系统作用 高速缓冲存储器失效计算导致的溢出当模型仍然在计算步n,而n+1步预定运行,我们称这种情形为溢出。一种情形是当计算和通信花费时间超出了同步步长。抖动导致的溢出另一种溢出情形是由抖动造成的.这种情形下,溢出发生在RT-LAB尝试补偿前一步的过冲。补偿将会打断有效步长, 从而引起下一步完全丢失.这一步将要持续1900us 而不是 950us.防止溢出为了防止溢出的发生,我们可以使用最小的同步步长,它是有效步长的最大可能值+我们可能拥有最大操作系统抖
33、动这就是原因,为了模型的稳定性和精确性,如果我们需要一个小步长,那么我们必须: 最小化操作系统抖动 (选择一个好的实时操作系统) 与较小的而有高峰值倾向的运算法则相比,最好选用更 大一些的常量计算运算法则。 消除对底层程序的依赖,例如网络、硬盘 (RT-LAB 完成这项工作)OpSimulationInfo依次传递依次传递:1.在每一个SM和SS子系统中嵌入一个OpSimulation2.注意模型的行为以及SM和SS中输出的差异。问题问题?为了最佳时间的实时准备现在,额外的RT-LAB特色RT-LAB 特色获取和参数同步模式I/O介绍在Simulink中信号是不同模块间交换的值。通过将信号写入
34、SC子系统,RT-LAB使你能够把信号发送到模型或者从模型接收信号。参数是模块内部的值,这些值从模块的遮罩下可轻易获得,双击即可显示。RT-LAB使你能够从参数界面实时更改(某些)参数。最通常地,我们想要更改常量或者增益模块的参数。信号和参数范围在这个模型中我们将学习如何使用RT-LABMainControl Parameters 和ProbeControl面板,来调节模型参数和调整我们的仿真观察。管理参数和变量调整获取参数主机和目标机间的数据丢失向一个文件发送数据动态信号选择MainControl Parameters功能你可以使用MainControl 面板中的“Parameters” 按
35、钮载入参数编辑器。MainControl Parameters功能在左方的树中选择期望的参数点击 “Add”在表格中增加参数参数改变:编辑在一个数值上双击可以编辑它.对于矢量或者矩阵参数,点“Edit” 按钮可以唤出矩阵编辑器。数值改变但还没有更新模型,显示为红色。这使多个参数的改变可以同时应用。参数改变: 应用点击 “Apply” 将新的参数值发送到模型Kd在追踪上的影响模型运行时改变是立即应用的Kd=5Kd=15点击 “Save”将参数表写入文件中(在命令区域)保存更改的参数 点击 “Load” 从文件中读取参数。一个对话框将引导你在模型参数中定位改变。恢复保存的参数参数改变: 使用变量在
36、 Simulink中, 你可以选择使用定义在Matlab工作空间中作为参数值的变量.这使你可以在多个模块中使用同一个值,并给你一个简单的方式更新多个值。当变量用作参数时,RT-LAB也是承认的,并使你可以在运行时操作这些变量。参数改变: 使用变量更新变量可以更新所有使用变量作为值的参数。然而,因为实时系统上没有Matlab环境,如果一个参数用表达式(例如2*kp+1)的形式使用变量,这个参数就无法更新,因为无法对表达式求值。围绕参数运行依次执行依次执行:在模型运行时,使用Parameters 功能试验改变一个参数 (Kp, Ki 和 Kd 都是很好的候选者).更改一些参数使用变量并且创建一个M
37、atlab脚本初始化这些值。与模型2解释的一样,你将需要把这个脚本记录到RT-LAB。在模型运行时,使用 Parameters 功能试验改变用变量的参数范围在这个模型中我们将学习如何使用RT-LABMainControl Parameters 和ProbeControl面板,来调节模型参数和调整我们的仿真观察。管理参数和变量调整获取参数主机和目标机间的数据丢失向一个文件发送数据动态信号选择获取是怎样工作的 模型开启并用每一步收集到的值填满第一个缓冲器。12th step / 1st frame8th step第一个桢(在第一个缓冲器中)准备好了。我们通知到发送器在可能的时候将信号发送到控制台。
38、在这期间,下一帧在另一个缓冲器中准备。发送器还没有机会运行。发送器已经在后台运行,而第一帧已经被发送。我们继续在第二个缓冲器中准备第二帧。20th step15th step获取是怎样工作的第二帧已经完成。我们通知发送器在可能的时候将这帧发送到控制台。在这期间,下一帧在另一个缓冲存储器中准备。等等27th step24th step / 2nd frame获取是怎样工作的ProbeControl设置 获取和传输参数仅影响用户界面,与模型执行武关. 当使用同步执行模式的时候,调谐是最重要的。 共同地,在数据被发送到命令区域之前,参数就决定有多少数据将被收集起来。 数据太多,显示将被以显著地脉冲形
39、式更新。 数据太少,你的计算节点就有过载的危险,还会丢失数据。解决方案总是一个折衷。ProbeControl 设置每个“获取组”都要设置获取和传输参数( 由SC子系统中的OpComm模块定义 )批处理因子 (Decimation factor)每个信号的采样数量(Number of sample per signal) 持续时间(Duration)批处理因子批处理因子决定在计算节点上,我们将数据点(对于每一个询问信号)存入缓冲存储器中的频率。Decimation factor = 1Decimation factor = 2Decimation factor = 3每个信号的采样数量每个信号的
40、采样数量(NS/s) 描绘出了获取窗口的大小。它定义了在发送到命令区域前,有多少个数据点被收集到缓冲器中。NS/s = 1NS/s = 2NS/s = 2, Decimation factor = 2持续时间持续时间是一种在发送前选择收集的采样数量的交替方式。与指定数据点的数量不同,持续时间以ms为单位指定窗口大小。一个普通等式如下所示:持续时间= 采样因子x NS/s x 模型采样时间 (Ts).4ms = 2 x 2 x 1ms.NS/s = 2, Decimation factor = 2Duration = 4ms找到最佳的折衷依次传递依次传递:使用 ProbeControl func
41、tion 试验在模型运行时,不同的获取和传输参数.范围在这个模型中我们将学习如何使用RT-LABMainControl Parameters 和ProbeControl面板,来调节模型参数和调谐我们的仿真观察。管理参数和变量调整获取参数主机和目标机间的数据丢失向一个文件发送数据动态信号选择一个帧已经准备好等待发送。直到现在为止,一切都正常发送器还没有将第一个帧发送,仍然处于等待发送中。我们继续在第二个缓冲器中准备第二帧。15th step数据丢失是怎样发生的20th step27th step / 3 data points lost第二帧已经完成。由于某些原因,发送器仍然滞后。我们开始丢失数
42、据。当我们在等待发送第一个帧的时候,第二个缓冲器中的数据被覆盖了。数据丢失是怎样发生的24th step / 2nd frame第一帧已经被发送完成。我们重新开始在第一个缓冲器中收集数据点。总计有5个数据点已经丢失。我们仍然等待第二帧被发送。第二帧也已经完成发送。我们返回循环获取是怎样工作的24th step / 2nd frame27th step数据丢失的原因有3个原因会导致主机和目标机间的数据丢失。注意这仅仅影响控制台的显示,实时计算不受它的影响。1.目标机的CPU繁忙发送器没有机会运行和清空缓冲器。2.超过了网络带宽发送器尝试发送,但是网络拥挤导致发送失败。发送器将一直尝试直到成功。3
43、.控制台的CPU繁忙控制台太忙,没有通知发送器它准备好接收。最小化数据丢失RT-LAB在整个过程中将总是传输获取帧。数据丢失被看作是接收到的帧之间突变。为了最小化数据丢失,根据它产生的原因,你可以:1.目标机的CPU繁忙增加模型的步长或者增加系统的处理能力,使用更大尺寸的帧也有帮助。2.超过了网络带宽使用更大的批处理因子或者帧大小。最好是使用更快速的网络(如果可能的话)。还可以查看稍后论述的OpWriteFile 选项。3.控制台的CPU繁忙使用更大的帧尺寸,更快的处理器,或者更快的GUI(Matlab的显示模块速度很慢)。处理数据丢失RT-LAB有很多方法处理丢失的数据。让我们看一个丢失了2
44、s数值的例子(不用考虑原因)。处理数据丢失没有任何补偿,信号轨迹将看起来像这样。因为Simulink使用了接收到的数据来设置时间,所以Simulink时钟将滞后于模型(实时)时钟2s. 处理数据丢失为了保持Simulink时钟尽可能的同步,当数据丢失并且少于门限时间时,RT-LAB有一个同步运算法则,它将嵌入虚拟数据点。处理数据丢失作为选择地,RT-LAB可以在上一个数据点和新的数据点之间进行插值,使曲线变得平滑(这里并不是很有用)。处理数据丢失不管是同步或者插值,通过选择控制台OpComm模块中的“Simulation Time Signal” 选项,你总可以从实时模型中得到准确的时间。 这
45、里将增加一个OpComm 的时间值输出。范围在这个模型中我们将学习如何使用RT-LABMainControl Parameters 和ProbeControl面板,来调节模型参数和调整我们的仿真观察。管理参数和变量调整获取参数主机和目标机间的数据丢失向文件发送数据动态信号选择将数据写入文件RT-LAB允许获取直接连到文件,而不是通过网络到控制台。底层机制仍然是一样的。专用的获取组来自Simulink中RT-LAB模块库的OpWriteFile模块,使你能够将信号发送到文件记录。它包含之前讨论过的同样的获取参数。你可以通过“Mux”模块创建一个矢量,记录多个信号。出发获取组RT-LAB的默认行为
46、是持续获取连接到获取组的信号。OpTrigger模块使得获取变成有条件的。当触发的时候,一个获取组仅获取一帧,然后等待下一个触发。触发获取组使用Offset参数,它能指定在触发帧前或后多少步才开始。Offset = 1Offset = -1触发条件符合将数据写入文件依次传递依次传递:使用 ProbeControl 功能,试验 Write to file 选项。将OpWriteFile模块嵌入你的模型,每次参考增加后,都将参考和被控对象相应保存1s。范围在这个模型中我们将学习如何使用RT-LABMainControl Parameters 和ProbeControl面板,来调节模型参数和调整我们
47、的仿真观察。管理参数和变量调整获取参数主机和目标机间的数据丢失向文件发送数据动态信号选择动态信号选择到现在为止,所有我们一直设法在控制台显示的信号,已经将计算子系统(SM或者SS)和控制台(SC子系统)明确地连接起来。在运行的时候,RT-LAB还允许选择信号用于动态显示。这就叫做动态信号选择,并且是目前为止描述的获取方法的一种扩展。动态信号 计算之前为了接收动态信号并能在控制台上显示,我们必须在一个或者多个获取组中激活它们的接收。.在你选择的获取组的OpComm 模块,简单地选择“Dynamic signals output”,这将为模块增加一个额外的输出。你可以连接到任何Simulink模块
48、来处理这个接收到的信号。动态信号 计算之前默认地,Simulink对RTW产生的代码进行优化。 这个优化可能导致一些模块的输出不能被选中。为了绕过这点,我们需要告诉Simulink不要优化掉信号结构中的输出。这可以通过将Simulink 下Advanced中的“Signal Storage Reuse” 设置成Off实现。动态信号 加载前从Probe Control 面板唤出Dynamic Signals对话框。你需要设置想要能操作的最大动态信号数量。在获取组缓冲器加载到存储器配置前,这是必须的。动态信号 加载前从树形列表中选择你想要可视化的信号。列出来的名字是在原Simulink模型中的信号
49、名。确定使用清楚的名字,以使这里变得简单些。动态信号 运行时点击“Apply”,然后你就可以立即在Simulink控制台中观看选择的信号了。动态信号 运行时问题问题?RT-LAB特色RT-LAB 特色获取和参数同步模式I/O介绍范围这个模型描述了RT-LAB怎样在较低水平的条件下完成实时执行。为了这个,我们将包含:计算步的剖析在多速率模型中,单线程和多线程执行的比较XHP 模式和局限性同步选项单一子系统模型的步伐单一子系统模型是一种用于研究的非常简单的情形。我可以将所有的步伐划分为4个阶段:1.同步I/O模块的执行RT-LAB将首先对所有标记为“synchronized”的模块执行所有I/O子
50、程序。这就保证了所有连续的读取在时间上被均匀的隔开。其他的I/O子程序将仅仅在正常计算的过程中被调用。单一子系统模型的步伐单一子系统模型是一种用于研究的非常简单的情形。我可以将所有的步伐划分为4个阶段:2.模型方块图的计算最重要的阶段(在任何意义上来说)是用户定义的数学系统的计算。我们将在顶层子系统(此处是SM)中可以发现的所有模块的计算都包含进了这个阶段。单一子系统模型的步伐单一子系统模型是一种用于研究的非常简单的情形。我可以将所有的步伐划分为4个阶段:3.获取和参数/信号更新这里我们收集信号发送到主机,并将它们存储到获取缓冲器中。我们还对那些已经从控制台更新的参数和信号,更新它们在模型中的
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。