




已阅读5页,还剩103页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何设置仿真状态目标:如果你想在实时仿真期间设置模拟状态,通过SimState variable实现此目的。可行性方法:模拟状态可设置如下:l 通过 ControlDesk 3.x 或ControlDesk Next Generation手动设置。参考方法1.l 通过SImstate SET block自动设置,参阅方法2.方法1:通过 ControlDesk 3.x 或ControlDesk Next Generation设置仿真状态1把来自变量描述文件的主体部分中的 simState变量,连接到布局中合适的仪器。方法2:通过Simulink 中的模块设置模拟状态1.把来自RTIExtras 库中的simState设置块添加到您的模型。该块的一些内容如下:2. 打开模块参数对话框,然后在Set simState下拉列表中选择所需的动作(RUN, PAUSE, STOP).您也可以选择触发器类型和该块是否应该有一个启用端口。3. 把块的端口(s)同可以改变的模拟状态信号(s)相联通。l 当仿真是暂停或停止时,如果你想改变模拟状态,你应该把涉及的模块放在该模块的后台任务中。l 在simState设置块只是把新值写入simState变量中。真正的仿真状态在后台任务中转换。因此,总是在仿真暂停或停止前,当前计算步骤是通常已经完成。如果后台任务计算起来复杂或者为后台任务提供很少的时间,在转换发生之前,需要进行一些进一步的计算步骤。l 用RTI-MP,simState块设置只能用于Master CPU。l 仿真状态设置为STOP没有停止实时处理器,但设置应用到一个不同状态:最终值被写入到I/O,在那之后,只有该应用程序的后台任务保持激活状态。相反,当你用 ControlDesk 3.xs or ControlDesk Next Generation 的命令终止一个应用程序,实时处理器被立刻停止:最终值没有被写进I/O中,并且后台任务没有保持激活状态。如何识别仿真状态目标:为了理解Simulink模块中当前的仿真状态,你必须遵照simState Read 模块。方法:为了读懂仿真状态需要:1.把来自RTIExtras 库中的simState设置块添加到您的模型。该块的一些内容如下:2. 连接块的输出接口。数据类型是int32.输出值的含义如下:当仿真是暂停或停止时,如果你想改变模拟状态,你应该把涉及的模块放在该模块的后台任务中。(前台任务simState READ块中会不断读取模拟状态RUN)Time-Stamping和数据采集Time-Stamping支撑 :dsPACE板支持time-stamping,时间戳被分配到每个任务的每个执行步骤上。结果,是ControlDesk 3.x 和 ControlDesk。下一代可以使用实际时间值绘制由中断模块驱动的任务信号。一个好处是你可以看到当什么时候与其他相联系的非周期中断发生。产生时间戳对每一个任务类型,时间戳有不同的产生方式:Timer tasks 对于timer tasks,该 dSPACE Real-Time Kernel从任务的采样时间中计算时间戳, 同Simulink 编码器(formerly Real-Time Workshop) 计时引擎计算计时器任务(currentTime Tt)的时间的方式一样。Tt=当前时间值或对于timer task 的RTK时间戳K=执行计数器这确保了在实时应用的时间和ControlDesk 3.X和 ControlDesk Next Generation.中的图中显示的时间的连贯性。由硬件中断模块驱动的任务:对于由硬件中断模块驱动的任务,该dSPACE Real-Time Kernel驱动来自一个硬件时钟的时间戳(Thw)。这确保了确切的时间戳是独立于实时应用的固定步长:如果该实时应用页包含一个计时器任务(这是所有多重处理器应用的情况),这项任务作为该异步任务的一个参考任务。该 dSPACE Real-Time Kernel 驱动的异步任务的时间戳与参考任务的时间戳相联系确保时间的连贯性,特别是如果仿真运行了一段长的时间:Thw=由硬件中断模块驱动的任务时间Tt=对计时器任务的当前时间值或RTK 时间戳 Thw= 由于上次Tt增量引起流逝的时间。由软件中断模块驱动的任务:对于由软件中断模块驱动的任务, 该dSPACE Real-Time Kernel使用从引出软件中断任务的时间戳。l 实时仿真的当前变量是通过用浮动数字的仿真编码器计算的,然而时间戳是通过用整数的dSPACE Real-Time Kernel 来计算的。由于浮点数的精度降低后,数字变得越来越大,当前变量和相关的时间戳可能有少许不同 。限制:关于时间戳特性限制的信息参阅307页限制项时间戳和多处理器实时接口的分布式跟踪:通过分布式追踪特性, ControlDesk 3.x 和 ControlDesk Next Generation可以单独的追踪来自多处理器系统中的CUPs 的数据并且在有共同的时间基准单个绘图窗口中,把它全部显示出来。l 分布式跟踪仅可用于支持时间戳和多处理器的主板,即DS1005和DS1006.关于分布式追踪特性的更多信息参阅捕捉数据(ControlDesk Experiment Guide)和在多处理器系统中分布式追踪(ControlDesk Experiment Guide)。如何修改数据的采集行为观察变量的变化假设你要观察变量的变化,它们发生在一个由中断块驱动的任务中。如果对于数据实时采集的主机服务代码被放置在一个计时器任务中,一些变量的变化可能丢失,如下图所示:相反,如果主机服务代码放置进由中断块驱动的任务中,可以捕获来自这项任务的所有变量的变化,如下所示:这尤其适用于任务信息变量的影响:一些变量表现出不同的行为取决于主机服务在哪执行。考虑overrunQueueCount和特定任务的状态变量,例如:l 如果在后台任务中读取时,overrunQueueCount经常是0.这是因为后台任务具有最低优先级,因此在没有其他任务排队时才被执行。如果overrunQueueCount从来自自己内部的任务中读取的,它的值通常是1或是高,因为当任务调用时它增加并且当任务结束时减少。l 如果在后台任务中读取时,状态通常是idle(0)。如果从来自自己内部的任务中读取,状态通常是running(2),如果从任何其他任务中读取,状态可能是running(2) ready (1)或idle(0)。如果您使用ControlDesk 3 x的虚拟仪器之一访问一个变量,ControlDesk 3. x自动地使用在后台执行任务主机服务器。如果你通过ControlDesk 3. x的数据采集仪器追踪一个变量,您可以通过捕获设置指定所需的主机服务。l 用于数据采集的默认主机服务代码以最快的计时任务被执行。如果在模型中放置至少一个数据捕捉模块,该代码就被自动删除。方法:为修改数据采集的行为:1.把来自RTI的附加元件库的多达27个数据捕获块放进你的模型中,并打开模块参数对话框。l 为了实现由中断块驱动任务中执行主机服务,把数据捕获块放进一个函数调用子系统。指定-1作为采样时间。l 通过控制变量实现主机的打开或关闭,把数据捕获块放进已启用的子系统,它没有放进触发或函数子系统。在模块参数对话框中设定期望的采样时间。l 同默认主机服务代码相比,为实现一个缩减采样,把数据捕获模块放进你的模块中,以至于它没有在一个有条件的执行子系统中。设定期望的采样时间。不用修改你的模型,通过ControlDesk 3.x/ControlDesk Next Generation,你也可以实现一个缩减采样。l 在特定信号的条件下,为实现执行主机服务,把数据捕获模块放进一个已经触发的子系统中(触发的类型:“rising”, “falling” or “either”)。指定-1为采样时间。v 不要把数据捕获模块放在后台任务中或者放进由来自后台任务的软件中断模块驱动的函数调用子系统。这导致不可预测的结果因为对后台任务来说没有有用的的时间戳。2. 在模块参数对话框中,指定唯一的一个服务数字与服务名称。3. 在ControlDesk 3.x中为每一个数字采集仪选择所需的服务。4. 如果你想使用时间戳功能,您必须在ControlDesk 3.X内激活它。结果:你修改了数据采集的行为。对Run-Time Errors的反应运行期的错误:当你运行实时仿真时,可能出现运行阶段错误,意味着不再执行实时应用的情况。这样运行阶段的错误可能由于对某些信息模块功能或ssSetErrorStatus功能的错误编码,任务超支或者用户特定的函数调用。运行阶段的错误类型:RTI通过停止仿真以回应运行性阶段的错误。终止执行代码和终止值被写入I/O。l 如果运行时错误是由一个非致命错误,如超支的情况引起的,该应用程序仍然在模拟状态停止并且可以重新启动。相关指导参阅231页如何设置仿真状态l 所有其他运行时错误大部分很可能是致命的错误。因此,通过exit()函数,RTI也终止实时应用程序。结果是,通过仿真状态不能重启应用程序,但是你可以重载该应用。来自不同仿真模块的不同结果:仿真模块:用RTI和RTI-MP,你可以在不同模块中仿真你的模型。可以用下面的仿真模型:l Simulink 仿真l 实时仿真仿真模型的详细信息参阅15页控制设计,Simulink 仿真和发展程序中dsPACE原型模式的RCP.不同仿真结果的原因:Simulink 仿真的结果为实时仿真结果提供了一个参考。然而,来自不同仿真模型的结果存在差异。接下来当你在不同模块中运行仿真模型时可能被通知出现的问题。由于该问题的复杂性,提供关于阻止或者减少该差异的精确指导是不可能的。当你比较Simulink 和实时仿真时,你应该认识到下面给出的事实:l 由中断驱动任务引起的不同的行为l 建模的不同规则l 在多个计时任务模式的不同任务调度l I/O块的不同的输出值l 来自信号发生器的不协调信号中断驱动任务的不同行为:在Simulink 仿真模型中,同实时仿真相比以不同的方式执行已经建模的中断驱动任务。Simulink仿真以周期性任务的固定步长,执行这些任务。那意味着当连接到一个子系统的功能调用端口的RTI中断块通过Simulink被执行时,他们就被执行。在Simulink 仿真中也没有任务中断。建模的不同规则:在Simulink仿真模式中模拟时,假设您使用仿真发生器模块的函数调用,而不是你模型中RTI中断块。你不能使用RTI 任务转移模块因为Simulink 不能识别中断驱动任务。然而,当你随后用用于实时仿真的RTI中断模块代替Simulink函数启用发生器模块,Simulink识别中断驱动任务并且使用RTI任务过渡块强制您执行有效的任务过渡。你不得不改变你的模型,所以你的仿真行为也是不同的。多计时器任务模型:在Simulink仿真中,任务被一个接一个的执行。再实时仿真中,任务可以被高优先级任务抢占。这样,在实时仿真模块中,一个任务可以中断另一个用于交换信号的任务。在这种情况下,信号可能不同于Simulink仿真中的信号。I/O模块输出:你需要用RTI i/o输入模块去把实时仿真连接到外界。在实时仿真中,这些模块提供了有效的输出值。如果你执行一个Simulink仿真,然而,RTIi/o块不读取物理值。这样,他们的输出值经常是0.信号发生器的不一致信号:在Simulink仿真模式和实时仿真模型中信号发生器的信号可能不完全一致。例如:在实时仿真模型中,一个方波边缘可能出现一个比在Simulink 仿真模型中更早或更晚的计算步骤。在两个仿真模型中的计算算法不是百分百相同。这样,不同的舍入错误会发生。这基本上影响到每个仿真模块。然而,对于方波发生器由一个采样步骤引起边缘的转移,不同舍入误差的影响相对于其他模块更可见。2、 先进的技术目标:为了获得较优的仿真,熟悉下面的先进的技术是更有用的。接下来:通过Atomic子系统优化构建过程和仿真 244来自TRC文件的排外的子系统 248把子系统的权限应用到TRC File 254把工作空间参数应用到TRC File 256修改模块执行命令 258线性传递函数的零极点与状态空间块的调优参数 261n-D查询表模块的调优参数 267利用Simulink模型验证块 2692.1通过Atomic子系统优化构建过程和仿真 目标:Atomic子系统是一个Simulinkde 功能,它可以帮助你实现构建过程和仿真的优化。下一步:相对于Atomic系统的虚拟化 244如何整合执行模块 245通过Atomic如何减少Function sizes 246通过Atomic如何减少Files Sizes 2472.1.1相对于Atomic系统的虚拟化 子系统的类型:Simulink和Simulink编码(之前的实时Workshop)区分虚拟子系统与Atomic子系统。虚拟子系统:虚拟子系统主要用于构建一个模型。相对与atomic 子系统,它不会影响到模型的功能,是否一个模块被安置在一个虚拟子系统或者在parenting subsystem。虚拟系统生成的代码被嵌入进parenting subsystem的代码。这也是真正的嵌套虚拟子系统。虚拟子系统中的块生成的代码与外部块生成的代码相交错。Atomic subsystems:相对于虚拟子系统,这些通常可以影响块执行命令:atomic 系统生成的代码没有与那些系统外部块生成的代码相交错。一个纯粹的atomic子系统总是作为一个代码块来执行。在仿真模块中,atomic子系统用一个错题块框标记。已引发和启用的子系统 Simulink 自动地指定已引发and/or启用子系统作为atomic并且禁用该Treat作为他们的atomic单元复选框,所以技术规范不能被改变。由RTI中断模块驱动的子系统 由RTI中断模块引发的子系统 通常是atomic.他们通常生成单独的功能。2.1.2如何整合执行模块 目标:你可能想整合某块的执行以至于他们作为代码块被计算,该代码块没有与其他子系统的代码相交错。该代码块的执行仍然可以通过高优先级任务进行中断。方法:为了整合块的执行:1. 把块整合进一个系统同时打开该系统的块的参数对话框。2. 选择该Treat as atomic unit 复选框去实现子系统atomic.结果:atomic 子系统用粗体块框架标记。2.1.3通过Atomic子系统如何减少Function sizes 目标 :就功能的代码大小而言,编译器通常被限制。因此,你应该把大的功能分成较小的部分。方法:通过Atomic如何减少Function sizes 1. 选择你想优化的标准子系统同时打开块的参数对话框。2. 选择 Treat as atomic unit复选框 功能Packaging 下拉列表在编码生成页上启用。l 引发和启用子系统通常是atomic 同时 Treat as atomic unit 复选框被禁用。3. 选择功能作为 Function packaging。结果:Simulink代码(之前的Real-Time Workshop)没有把该子系统的代码内联进Parenting子系统或模型的 MdlOutputs()功能,但是创建了一个单独的功能。这减少该功能的大小。然而,该model.c文件的文件大小几乎保持不变。启用函数名称和文件名选项。l 更改由RTI中断块驱动的子系统功能的生成是不可能的:相关的功能包选项的设置被忽略了。2.1.4通过Atomic子系统如何减少Files Sizes 目标:关于源代码文件的代码大小(线的编号),编译器通常被限制。一个大的源代码文件也可能比一些小的文件需要更长的编译时间。因此,你应该把大量源代码文件的内容分配到一些较小的文件内。方法:通过Atomic子系统如何减少Files Sizes 1. 选择你想优化的标准子系统同时打开块的参数对话框2.选择 Treat as atomic unit复选框 功能Packaging 下拉列表在编码生成页上启用。l 引发和启用子系统通常是atomic 同时 Treat as atomic unit 复选框被禁用。3. 选择函数或可重用函数作为函数packaging。启用函数名称和文件名选项。结果;结果,Simulink代码(之前的实时 Workshop)为该子系统生成一个功能,变成一个单独的源代码文件,这样减少了 .c文件的大小。该单独源代码文件的名称可以由文件名选项设置控制。2.2来自TRC文件的Excluding子系统 目标:来自TRC文件的Excluding子系统是由RTI提供的最优化技术。例如你想减小TRC文件的大小,它是很有用的。下一步:减小TRC文件的优势 248如何从TRC文件中排除一个系统 2522.2.1减小TRC文件的优势 排除子系统的原因你想排除一个来自TRC文件生成的子系统的原因有两个:l 减小TRC文件的大小l 为隐藏来自其他用户的一个模型的部分。减小文件的大小:通常,生成的TRC文件包含所有模型中定义的信号,以防大的模型产生一个大的TRC文件。随后,生成这些文件需要更多的时间这反过来导致在 ControlDesk 3.x and ControlDesk Next Generation中加载时间的增加。通过把一个TRC排除模块添加到在选定位置或者使用该子系统删除(DsVdOmit)上的模块,你可以排除所有来自在已选定子系统和所有下层子系统中块的信号。这意味着当当它产生时,该信号不包含在TRC文件中,这样就减少了文件的大小。使用TRC排除模块隐藏模型部分:您也可以使用TRC排除块隐藏来自其他用户模型的部件。当TRC排除块处于激活状态,由于子系统和所有下层子系统的块信号从TRC文件中被排除,对于在 ControlDesk 3.x or ControlDesk Next Generation的 Variable Browser 中的选择,他们是不可用的。上图显示了带有一个TRC排除块设置为失效状态的子系统,这和该模块根本没有存在一样。正如你看到的,该Variable Browser显示了该系统所有的块组。现在当你把块设置为激活状态看一下会发生什么。现在TRC排除块设置为激活状态。可变浏览器不在显示子系统的块组。唯一可用的是子系统自己。所有下层子系统页是不可见的。你可以把多与一个TRC 排除块添加到一个模型中,这使您可以完全控制将被隐藏的模型各部分。一个极端的情况是将TRC排斥块添加到该模型的根部。在TRC文件中这将导致一个空的Model Root group.l 通过块对话框设置TRC排除块的模型。您可以直接输入值或通过工作区变量输入。通过使用工作区变量,你可以定义不同的generation类型或者查看场景同时根据你的需要在他们之间进行转变。使用子系统Omission tag隐藏模块部分:使用子系统Omission tag(DsVdOmit)你可以排除来自TRC文件的一个子系统。你必须在子系统的块属性对话框的标记编辑区域中输入 DsVdOmit=1。通过模型层次结构递归地应用于排除。为再次包含子系统,你可以输入DsVdOmit=0 。通过这样,您可以包括一个特定子系统层次结构的变量。使用工作去变量你可以设置DsVdOmit tag 。例如,如果WSVar1是一个工作区变量,在构建过程中,你可以用set_param(subsystemHandle,Tag,DsVdOmit=$(WSVar1)去计算DsVdOmit tag值。设置描述DsVdOmit tag被设置为1包含该子系统下面所有块的子系统的内容没有出现在生成的变量描述文件中。使用set_param(gcb,Tag, DsVdOmit=1).如果你设置 DsVdOmit=-1,在被包括的子系统中该DsVdOmit设置被忽略。DsVdOmit tag被设置为0包含该子系统下面所有块的子系统的内容没有出现在生成的变量描述文件中,即使该子系统上面的子系统已经把DsVdOmit tag设置为1.使用set_param(gcb,Tag, DsVdOmit=0).DsVdOmit tag被设置为-1包含该子系统下面所有块的子系统的内容没有出现在生成的变量描述文件中。包括在该子系统中的子系统的DsVdOmit设置将被忽略。使用set_param(gcb,Tag, DsVdOmit=-1).下面的例子显示了 DsVdOmit tags如何控制子系统变量的排外。灰色子系统的变量的变量没有在描述文件中生成。如果你在Code Generation / Real-Time Workshop 对话框的 RTI variable description file options 页设置 Apply subsystem omission tags 选项,计算特定的DsVdOmit tags。然后该排除子系统的变量没有生成为变量描述文件。如果选项被清除,对于在模型中的所有子系统 , DsVdOmit tags被忽略了。所有子系统及其内容将显示在生成的变量描述文件。在同样的模型中,可以一起使用TRC排除块和DsVdOmit tags。2.2.2、如何从TRC文件中排除一个系统 目标:通过排除一个子系统,在配置子系统的所有块中和-如果配置起来不困难-所有下层子系统没有生成TRC文件。可行性方法你可以把TRC排除块添加到一个子系统中,参阅方法1.你可以在一个系统的属性对话框中设定DsVdOmit tag ,参阅方法2。方法1使用TRC排除块你可以从TRC文件中排除一个子系统。1. 打开TRC排除块放置处的子系统;2. 把来自Extra库的TRC排除块添加到该子系统。在TRC排除块对话框的块模型默认设置为1(激活态)。通过打开对话框并且把块模型设置为0,您可以切换块为非激活状态从而在TRC文件中再次添加该子系统。方法2:通过用DsVdOmit tag从而排除来自TRC文件的一个子系统。1. 从你想排除处打开该子系统。2. 打开子系统的块属性对话框,在tag编辑区输入DsVdOmit=1。3.打开模型浏览器中的模型配置设置的 Code Generation / Real-Time Workshop 对话框,并且选择 RTI variable description file options 页。4.选择Apply subsystem omission tags 选项。结果:从TRC文件中排除一个子系统。2.3、应用子系统TRC文件的权限目标:由子系统权限您可以控制是否该包含的块参数在实验软件中是可写的,只读的或者甚至是被隐藏的。2.3.1如何把子系统权限应用到TRC文件。目标:RTI提供了一个选项,让你可以把子系统的 Simulinks ReadOnly and NoReadNoWrite权限应用到可变的描述文件中。这样,你可以在实验软件中设定块参数是否为可写的,只读的或甚至是被掩藏的。应用子系统权限:通过把子系统权限应用到TRC文件中,子系统的 Simulinks ReadOnly and NoReadOrWrite权限不仅影响到Simulink模块自身也影响到实验软件。结果,所有只读子系统的模块参数在实验软件中是只读的,同时在实验软件中, NoReadOrWrite子系统的内容被隐藏。基础在RTI and RTI-MP中,通过 Apply subsystem read/write permissions 选项,你可以在实验软件中,设定是否该子系统的权限被反映。限制:l 如果ControlDesk 3.x配置为允许浏览变成屏蔽的和NoReadOrWrite子系统,它并没有隐藏NoReadOrWrite 子系统。然而,该子系统的参数保持只读状态。l 尽管 Apply subsystem read/write permissions选项出自 RTI and RTI-MP对话框,它页影响用于Simulink仿真的TRC文件。可行性方法:l 如果模型为RTI模型,见255页方法1l 如果模型为 RTI-MP模型,见255 页方法2.方法1:把子系统权限应用到RTI模型的TRC文件中1. 打开 Multiprocessor Setup对话框的CPU一页,点击Variable Description File Options按钮。在Variable Description File Options那页,打开CPU 选项对话框。2. 选择Apply subsystem read/write permissions 选项。方法2:把把子系统权限应用到RTI-MP模型的TRC文件中1. 打开多处理器设置对话框的CPU页,点击Variable Description File Options 按钮。在变量描述文件页上打开CPU选项对话框。2.选择Apply subsystem read/write permissions 选项结果:现在用子系统的读/写权限生成TRC文件。下一步:如果需要,您现在可以配置ControlDesk 3去显示NoReadNoWrite子系统。参阅使用工作空间和遮掩参数 ( ControlDesk Experiment Guide).2.4、把工作区参数应用到TRC文件中。目标:RTIs Include mask and workspace parameters 选项被停用。使用MATLAB/Simulink的 Inline parameters 最优化取代它。256页2.4.1使用内联参数代替Mask and Workspace 参数。目标:用ControlDesk 3.7.2,高级的参数处理的支持已经被停用。(背景信息参阅/faq?403)。为了迁移你的模型,你应该设定MATLAB/Simulink的Inline parameters optimization而不是已停用的 RTI-specific Include mask and workspace parameters 选项。内联的参数:您可以将工作区参数声明为非内联。在实时仿真期间,这些参数可调。在实时应用中,所有的块使用相同的全局变量计算其块输出。所有这些块的参数与相同可调参数相联系。例如:用一个单一仿真步的最大延迟,更改参数值会影响所有相关块的参数。在可变描述文件的可调参数组中的所有可调参数是可用的。对于所有dsPACE工具,非内联参数的访问是透明的(例如,ControlDesk, AutomationD esk and test automation scripts)并且在仿真运行时期间,不需要MATLAB安装,应为在实时应用中它可以直接计算。对于当前 dSPACE Releases 和之前dSPACE Releases a的该解决方案仍然提供Include mask and workspace parameters选项。这样,用之前和当前的版本,你可以使用相同的程序。为了转移 Model Root Parameters 组的变量,应遵照以下步骤:1打开Simulink 模块并且选择. Inline parameters 选项(在Configuration Parameters对话框的 Optimization面板上)。257页2.声明为在实时模拟期间,访问非内联的工作参数,。关于如何做到这一点,请参阅Simulink用户指南和变量描述文件选项页(CPU选项对话框)(RTI和rti-mp执行的参考)。在构建过程后,这些参数位于调整参数根节点之下。3、 把这些参数重新连接到合适的控制台仪器上。 为了合并mask参数,按照以下步骤:1、 打开Simulink模型,选择内联参数选项。(在配置参数对话框的优化板)。2、 为遮掩子系统的每个参数创建一个MATLAB的工作空间参数。子啊实时仿真期间需要访问该子系统。打开子系统的掩模,并将相应工作区变量的名称作为参数值。3、 声明新的工作空间参数为非内联。关于如何做到这一点,请参阅Simulink用户指南和变量描述文件选项页(CPU选项对话框)(RTI和rti-mp实现的参考)。在构建过程后,这些参数位于调整参数根节点之下。4、 把这些参数重新连接到合适的控制台仪器上。一、修改块执行命令任务:通过设定块的优先权,你可以在Simulink模型的全部执行中修改块的执行命令。块优先的不合逻辑分布可能导致冲突。接下来:决定执行顺序 258如何检查不合逻辑块的优先级 2601.1决定执行顺序设定块的优先级和执行顺序Simulink块的有限级和它们的执行顺序可以通过以下的方法设定:l 在水平2s函数中的SS_OPTION_PLACE_ASAP 选项。l 块的优先级SS_OPTION_PLACE_ASAP通过设置在mdlInitializeSizes 功能中的选项,尽可能早的计算水平2S函数功能。块的优先级您可以在其块参数对话框中指定一个块的优先级。只要没有拓扑依赖,这允许你改变块的执行顺序。您可以指定任何整数值,甚至负数和零:该数字越低,该块的优先级越高。v 如果你运行一个RTI MP模型,可能由于分配块的优先级,引起优先级冲突。在提取的子系统的特定用户和RTI-MP特定块之间,出现这样的冲突。查看260页,如何检查的不合逻辑的块优先级,以了解如何避免它们。结果执行顺序:首先:Simulink试图满足2级的S函数要求,以尽快地放置该块(即ss_option_place_asap选项具有最高的优先级)。如果模型包含有ss_option_place_asap选项的多个2级S函数块,相关的块的优先级来确定哪些块首先被执行。随后在该模型中,Simulink寻找用户特定块的优先级。优先级冲突由于拓扑依赖或内部冲突,MATLAB可能无法应用用户特定的块的优先级。在这种情况下,发出警告,并忽略了相互冲突的优先级。RTI-MP优先级的冲突当提取的个人CPU的子模型,rti-mp自动设置对于所有IPC输入块的优先级为10和对于所有IPC输出模块为-10,以实现处理器通信间最小等待时间。为了满足数据依赖,Simulink忽略对于直接馈通项,块的优先级。因此,在IPC输出块之前计算IPC输入块,并且MATLAB发出警告。分配块的特定用户优先级时,应该注意。因为优先级可能与提取子模型的IPC的输入/输出块的优先级放生冲突。v 用户特定的块的优先级可能会影响处理器间的通信序列,即使不造成一个警告,这可能导致死锁。当使用S-functions的ss_option_place_asap选项或使用多处理器模型中的块的优先级时,应该小心。由于这样的优先权冲突只出现在提取子模型中,如果设定用户特定的块的优先级时,你应该经常检查所有CPU优先级冲突模式的子模型(请参阅260页如何检查非逻辑块的优先级)。有关通过块的优先级,rti-mp是如何优化模型评价的信息:参阅138页模型评价。1.2如何检查不合逻辑块的优先级 任务:无论何时在一个模型中,设定用户特定块优先级时,应该检查它可能出现的优先级冲突。对于单处理器的系统,必须检查模式本身的优先权冲突,而对于多处理器系统中,必须检查个人CPU的子模型。方法:检查模型和子模型可能出现的优先级冲突。1、 如果运行了一个处理器系统,可以继续执行步骤2。否则,通过相应的CPU的页显示子模式按钮,提取所感兴趣的模型。2、 启用该模型的Simulink仿真或提取子模型用于检查Simulink发出的任何警告,或干脆从菜单栏选择编辑更新图命令。二、Transfer Fcn, Zero-Pole and State-Space Blocks的调整参数。任务线性时不变系统,大多数情况描述为传递函数或状态空间表示法。MATLAB和Simulink都支持数学形式。当Simulink编码器(原实时工作空间)产生的实时代码,所有的传递函数自动转化为状态空间表示法。因此,在Simulink中定义的传递函数参数(多项式的系数或参数的极点和零点)在实时仿真中是不可用的。相反的实时代码包含状态空间矢量和矩阵的矩阵值(A,B,C,D)。尝试实现参数集关联是很不实际的,特别是因为通过Simulink编码器实现的转换,不在Mathworks文件中描述。接下来:用于转变函数的MATLAB的状态空间标示式 261通过手动转换如何调整转换函数的参数 263如何通过内联参数调整转换函数的参数 264如何保存状态空间块的0参数 2662.1用于转变函数的MATLAB的状态空间标示式 tf2ss函数根据所选择的状态空间变量,每个传递函数可以有几个甚至无限数量的相应的状态空间表示。为了实现一个明确的结果,使用状态空间表示式的特定形式,例如,归一化的形式。从传递函数到状态空间表示式的转换,可以通过tf2ss MATLAB函数进行。此返回控制器的典型形式的状态空间矩阵。考虑以下有系数编号的多项式中一般的传递函数,遵照以下MATLAB的公式。如果用 tf2ss 函数把该传递函数转变为状态空间表达式,结果如下:v 如果分子多项式的次数等于分母多项式的次数,d是不等于零。在所有其他情况下,d等于0.例如,如下面的模型:应用以上的转换将实现以下该系统的状态空间表示式:B通常有以上给出的格式,在该情况下d等于0.Simulink的编码器的代码生成过程(之前的实时工作空间)介绍了这两个向量A和C(见TRC文件),它可以通过ControlDesk 3.x or ControlDesk Next Generation进行访问。在ControlDesk 3.x or ControlDesk Next Generation 中,以下参考这些参数:用Simulink 编码器,所有是0或1的单元已经被优化了。2.2通过手动转换如何调整转换函数的参数任务: 为了导出传递函数状态空间矩阵的新的值,可以使用MATLAB的tf2ss功能,这可以直接计算所有矩阵的位置。在变量描述文件中,可以用状态空间矩阵 并且通过ControlDesk 3.x or ControlDesk Next Generation实现矩阵的改变。方法:通过手动转换调整传递函数的参数1、在MATLAB命令窗口中,输入以下命令:A,B,C,D = tf2ss(NUM,DEN) 用所需的分子与分母。v 输入 help tf2ss 以获得关于该命令和语法的更近一的信息。2、 把来自Simulink库的状态空间块添加到模型中并且打开块参数对话框。根据计算结果,通过tf2ss功能设置该参数。结果:状态空间的块的状态空间矩阵(A,B,C,如果它存在D)在变量描述文件是可用的,因此可以通过ControlDesk 3.x or ControlDesk Next Generation.进行改变。2.3如何通过内联参数调整转换函数的参数 任务:向任何其他参数一样,用内联参数调整传递函数参数是可行的。通过 ControlDesk 3.x or ControlDesk Next Generation,可以直接访问传递函数的参数。方法:通过内联参数调整传递函数的参数:1、 把多项式的公因式的向量放在 MATLAB 工作空间中,例如,myNum = 1 2myDenum = 3 4 5 6 72、 在传递函数块的块参数对话框中,设定工作空间的参数(例如,mynum和mydenum)。 3、在参数配置对话框的优化信号和参数模型的对话框中选择内置参数”复选框”,并通过配置按钮设定的可调参数。v 用RTI-MP,可调参数不是具体的CPU。在所有模型中显示的可调参数,可用于所有子模型。4、 在源表列中选择想要调整的参考工作空间变量,例如,“myNum” and “myDenum” 并把它们添加到Global (tunable) parameters表中。结果:在生成的代码中所有的分子和分母系数作为变量被执。该变量可以在实时仿真期间改变。v 1.将传递函数的分母的最大次序公因数变为零,会导致模型结构的改变,这就要求重建该实时代码。 2.如果你改变了这个系数为零,可能导致运行时错误,如除数为零。零系数的变化对实时仿真没有影响,因为它们在实时代码中没有执行。2.4如何保持状态空间块的零参数。任务Simulink的编码器(原实时工作空间)试图优化了状态空间块不必要的参数。然而,对于参数整定,可能希望保留所有参数。这是保持一个状态空间系统矩阵的参数的一个简单的解决方法。方法:保持状态空间的0参数。1、 对状态空间块的所有参数输入非零值。2、 把初始仿真状态设置为“STOP”n 对于RTI,参考 代码生成/实时工作空间对话框。(模型配置参数对话框)(RTI and RTI-MP执行参考)n 对于RTI-MP,参阅主页(多处理器设置对话框)(RTI and RTI-MP执行参考)3、 构建和下载该模型。4、 下载所需的参数并且用 ControlDesk 3.x or ControlDesk Next Generation把仿真状态切换为运行状态。三、n-D查询表模块的调整参数任务使用prelookup块的多维查找表(n-D),直接查表(n-D)和插值(n-D)的参数,只能通过多个二维切片调节。3.1在ControlDesk 3.x / ControlDesk Next Generation中的n-D查询表的参数表达式。实时工作空间的参数表达式:Simulink的编码器(之前的实时工作空间)把多维查找表(n-D),直接查表(n-D)和插值(n-D)的表参数转化为数组,该数组的维度通常不同于相应块参数的维度。如果把表配置为1维或2维的表,这也是可以应用的。1维2维表在变量描述文件中,RTI生成一个或多个lookuptabledata目录。对于1和2维的表,这相当于标准的查找表和查找表(2维)块的表参数。因此,像通常一样可以用ControlDesk 3.x or ControlDesk Next Generation的表编辑器,把它同表的 LookUpTableData 目录相连接。在变量描述文件中,可以忽略其他表数据的目录。例子:假如,在模型中有3x4查询表 (n-D) 块。通过 ControlDesk 3.x or ControlDesk Next Generation编辑该表数据,把 LookUpTableData 目录连接到表编辑器中:有更多维的表ControlDesk的表编辑仪器不能处理表有两个以上的维度。让访问这样一个表的参数,RTI将它分成若干个二维表片。如果用3rd Nth维度,不同2维表间进行转换,这是特别有用的。对于一个n1xn2x Xnm维参数,在变量描述文件中,RTI生成该维度 n1xn2的 n3* *nm附加条目。例子:假如有 3x4x2查询表(n-D)块。在变量描述文件中,将产生两个3x4维的 LookUpTableData 查询条目。可以把每一个条目连接到单个的编辑器上。 三维或跟多维的可调参数如果在你的模型的配置的模型浏览器优化对话框中,内联参数复选框被选中,在变量说明文件的可调参数组中,RTI产生对于3或更多的尺寸可调参数的额外的条目。通过模型参数配置对话框,相关的参数被设置为可调的。例子,假如有被命名为tableParameter的 2x4x5维的 MATLAB 工作空间参数。在该变量描述文件中,将产生5个2x4维的tableParameter条目。可以把每个条目连接到单个表编辑器。使用Simuli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 9350:2025 EN Corrosion of metals and alloys - Testing method of corrosion resistance for hafnium at high temperature and pressure
- 校园消防安全主题班会(3篇)
- 2025年小学生防溺水安全知识专项题及答案
- 2025年无人机应急巡检笔试题集与答案
- 2025年安全评价知识试题及答案
- 2025年法医类招聘面试模拟题及答案
- 2025年心理咨询师初级面试预测题集
- 2025年市场营销经理竞聘面试指南及模拟题答案全解析
- 2025年培训管理岗位面试模拟题及答案
- 2025年商标代理人业务水平考试模拟题及答案
- 《人为因素与航空法规》课件(共九章)
- 部编新课标培训课件
- 非工作时间行为协议
- 老年病人麻醉管理
- 2025年广西专业技术人员继续教育公需科目(一)答案
- 白细胞减少症和粒细胞缺乏
- CJ 41-1999工业企业水量平衡测试方法
- 地下矿山地压管理制度
- 藏文考试试题及答案
- 施工水电费合同协议书
- 车辆动力学分析考试试题及答案
评论
0/150
提交评论