专业英语作业.docx
- 文档编号:8603706
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:16
- 大小:249.72KB
专业英语作业.docx
《专业英语作业.docx》由会员分享,可在线阅读,更多相关《专业英语作业.docx(16页珍藏版)》请在冰豆网上搜索。
专业英语作业
《RTI与RTI-MP的操作指导书》
一、限制
目标:
有一些用于RTI与RTI-MP执行模型的常规限制。
接下来:
常规限制307
不支持Simulink和Simulink编码器/实时工作空间的特点311
创建和构造模型中的限制:
313
状态流的限制314
任务处理的局限性315
RTI-MP的局限性316
RTIGigalink模块组的限制318
引用模型的限制318
自定义C代码的限制322
变量描述文件的限制324
构建模型中的限制326
其他限制327
1.1常规限制
执行模型的限制:
下面的常规限制适用于RTI(实时接口)和RTI-MP(多处理器实时接口)执行的模型。
不支持的模块:
有一些Simulink编码器不支持的模块。
详细信息参阅MathWorksSimulink编码器用户指导。
主要不支持的块有:
●代数约束块
●MALTLAB功能块
v你可以使用嵌入式MATLAB功能块,在Simulink编码器(之前的实时工作空间)中,该块提供有限数量的M-function。
详细信息参阅MATLAB文献。
非功能信号接收器:
当在dsPACE硬件上仿真时,来自Simulink接收器或者附加接收器库的大部分块没有功能。
你可以留下Simulink模型中的块,但是记住RTI不能为它们创建C代码。
受影响的信号接收器显示如下:
仿真参数:
不支持固定步长的“auto”
时间戳
当前,由Simulink编码器(之前的实时工作空间)生成的代码不支持时间戳特性。
计算需要仿真时间的块,代替是用currentTime变量。
dSPACEReal-TimeKerne用整数计算时间戳,然而Simulink编码器(之前的实时工作空间)用浮点数的最快计时任务计算currenttime.
Currenttime的增量是固定步长。
由于浮点数的精度降低,数字就变的越大,currentTime变量和相关的时间戳可能由少许不同。
时间戳与非实时仿真
如果您使用一个执行模式而不是实时的模型,你必须在ControlDesk3.x中关掉时间戳功能。
否则,在ControlDesk3.x中图的X轴与仿真时间不相匹配。
这是由于时间戳来自实时计时器,这经常实时传递时间戳,而不管是否实时执行该应用程序。
缓冲任务过渡块
缓冲任务过渡块由以下限制:
●除了复杂的,他们支持所有的数据类型。
●他们不支持矩阵信号。
为了传递一个矩阵,使用来自Simulink库的重塑块,它把该信号转换为单个矢量。
再回复模块中你可以你可以把它重新变为矩阵。
●他们不支持包含多个采样时间的muxed信号。
作为变通方法,遵照以上的限制,可以把总线转变为muxed信号。
●他们不支持帧信号,并且没有可用的变通办法。
●从源中获取他们的数据类型。
●当仿真启动之后,如果在发送任务之前,执行了该接受任务,这没有设定缓冲任务过渡(读)块的输出值。
在这种情况下,为了设定可用的初始值,可以使用Simulink’sIC(初始情况)块。
v为了执行以保护或未保护的数据传输,可以使用Simulink速率传输块,该块一般支持所有类型的信号。
联接中断
联接中断引发了相同的子系统,以下限制的应用:
●函调用子系统生成的代码,在重输入时是不安全的。
也就是说,如果一个调用开始,任务的第一次调用的数据就会丢失。
这是由于在功能调用子系统中,块的全局定义输出。
因此,
●如果两个任务在相同的函数调用子系统同时动作,就不能预测哪个块输出会发生。
根据计算任务块,甚至会导致严重的内存损坏。
由于该原因,当联接中断源时,你应该用相同的优先级:
相同优先级的任务不打断对方。
●你不能把来自RTI中断块的函数调用信号同其他块相结合,例如,函数功能调用发生器块或状态流图。
●不能用ssEnableSystemWithTidandssDisableSystemWithTid宏命令启用或禁用由RTI中断块驱动的函数调用子系统,因为当它被RTI中断块触发时,通常会执行该子系统。
1.2不被支持的Simulink和Simulink编码器/实时工作空间的特点
目标:
不支持,或者只有非常有限的支持以下功能:
不支持异步速率转换器块的分支输出端口。
Simulink允许拆分速率转换块的输出信号,从而驱动多个异步子系统。
RTI不支持此做法。
当构建或仿真该模型时,会出现以下错误:
该速率过渡块'
所有目的地,必须异步执行在具有相同优先级的的函数调用子系统。
限制支持模型工作区
MATLAB提供模型工作空间,这意味着每一个模型有自己的工作空间用于储存变量值。
对于RTI,必须考虑关于模型工作空间的一些限制:
●不能通过在模型工作空间设定的MATLAB变量配置RTI块。
代替的是,这些变量需要驻留在MATLAB区。
●如果该模型使用工作空间变量,在变量描述文件中不能获取mask和工作空间参数。
这种情况下:
终止TRC文件生成,并且发出错误信息。
限制支持Simulink任务功能:
以下限制的应用:
●RTI不能使SimulinkandSimulink编码器(之前的实时工作空间)知晓该任务的优先级。
●RTI不支持求解对话框中Periodicsampletimeconstraint选项的特定的设置。
如果你选择以上的设置,RTI发送错误消息并且终止该过程。
限制支持多维Simulink模块参数与信号:
许多Simulink模块的参数和输入输出信号可能是多维度的,例如,他们可能多与两个维度。
这些模型可能作为应用程序被构建。
然而,RTIblocksandRTI-MP模块只支持一维(向量)或而二维(矩阵)的信号。
下列规则适用于变量描述文件条目:
●对于rn1xn2x...Nm维参数和信号,RTI在变量描述文件中生成n1*n2*...*nm维条目。
●如果模型的嵌入参数优化选项被激活,RTI为在变量描述文件的可调参数组中的3维或更多维可调参数生成额外的条目。
对于一个n1xn2x…Xnm维度参数,RTI在变量描述文件中生成维度n1xn2的n3*…*nm额外的条目。
不完全支持显示子系统端口标签的选项
显示端口标记选项可以让你定义以下设置:
●无
●FromPortIcon
●FromPortBlockName
●SignalName
在RTI中,你必须意识到用FromPortBlockName设置经常可生成TRC文件,不管Showportlabels选项中的设置。
如果在MATLAB中选择FromPortIconorSignalName,在Simulink模型和TRC文件中,子系统中端口名称可能显示是不同的。
限制支持可变子系统块
RTI支持MATLABR2010b引入的Simulink的可变子系统块,但是在可变子系统或它的任何子系统中,必须没有RTI块,不管该块被激活或没有被激活。
1.3创建和构造模型中的限制
目标:
下面的限制应用与建模和配置过程。
基于目标移出Texas仪器DSP的旧的RTI模型
如果该dSPACE版本(即来自dSPACERelease3.5或更早的版本的DS1003和DS1102模型)不再支持RTI平台,该平台用于配置旧的模型,当移出模型时,RTI-特定属性的所有值将丢失。
必须手动地重新配置RTI选项。
更改扩展的数据类型
对于MATLABR2010a,数据扩展类型已经改变了。
对于一些Simulink模块,例如增益模块,这可能导致不同的输出数据类型。
如果受影响的Simulink模块的输入口是布尔数据类型,且块的输出数据类型由Inherit:
Inheritviainternalrule设定,MATLAB(sinceR2010a)的输出数据用固定点的数据类型。
例如:
MATLAB 如果设定Inheritviainternalrule作为输出数据类型,布尔输入数据类型被增益模块扩展为uint16的数据类型。 MATLAB>=R2010a: 如果设定Inheritviainternalrule作为输出数据类型,布尔输入数据类型被增益模块扩展为定点数据类型,如ufix8_En7。 当RTI没有问题时,使用MLIB/MTRACE时可能出现问题。 在上面的例子,对于真值,MLIB没有对取1,而是128.这是由于定点数据类型的不同位顺序。 为避免此种现象,在该模块中,你需要把Inherit: Inheritviaback propagationorInherit: Sameasinput设定为输出数据类型。 在该中情况下,增益模块将会输出一个布尔信号。 当变为MATLABR2011a时,无效变量的参考 当变为MATLABR2011a时,如果通过slupdate命令更新存在的Simulink模型,为在该模型中LookupTable块和LookupTable(2-D)块生成的代码是不同于之前MATLAB版本生成的代码。 结果,LookupTable块和LookupTable(2-D)块的SDF/TRC文件条目发生了改变。 这影响一些dSPACE的产品如ControlDeskNextGeneration。 如果您的dSPACE的产品引用该查找表和查找表(2-D)变量,你必须根据新的SDF/TRC文件条目修改参考文献。 例如: 当改为MATLABR2011a并且重建一个更新的模型时,从LookupTableandLookupTable(2-D)变量到编辑器栏的联接失效。 为解决此问题,你需要自己重新联接变量。 1.4状态流的限制 目的: 如果模型中包含状态流,应用附加限制。 状态流图的状态: 默认情况下,通过变量描述文件,状态图的状态是不能访问的。 如果需要跟踪状态表的活动状态,为需要检查的状态,可以使用OutputStateActivity选项。 通过该模型根组,单个状态流图的输出是可用的。 该状态机械数据组收集在状态数据库可获得的和由状态机械产生的所有数据。 关于输出活动状态选项的详细信息,参阅MathWorks®提供的数据流。 1.5任务处理中的限制 目标: 以下限制应用于任务处理。 一些中断引出的子系统: 如果子系统由一些RTI中断(硬件,软件,和/或计时器中断)引出,Simulink发出以下警告: 警告: 该函数调用子系统'combined_interrupts/子系统'有多个没有设定优先级的异步触发器。 如果这些触发器可以互相抢占,数据完整性将无法维持。 vSimulink通常发出以上警告,因为RTI不能使Simulink识别任务优先级。 参考311页限制支持Simulink任务特性。 像这样的模型效果,你必须配置有相同值的任务的优先级。 1.6RTI-MP的限制 目的: 如果执行RTI-MP模型,应用以下额外的限制。 混合的多处理器系统: RTI-MP不支持同时包含DS1005andDS1006boards的混合多处理器系统。 超过CPU的边界的扩展标记: 扩产标签字符串超过CPU边界是不可能的。 (通过IPC块) 可配置CPU的最大数目: 为一个MP系统配置Cpu的数量(处理器的核心的数量)是有限的: ●在RTI-MP配置对话框中,例如多处理器块的对话框,对于CUP最多提供25个条目。 由于该对话框不能滚动,该条目的可见性取决于显示器的分辨率。 例如,用1024*768,的分辨率,只能看到哦CPU的前16个条目。 ●在IPI块对话框中,最多可以配置12个目标CPU。 优化代码生成/实时工作空间。 只是对于整个RTI-MP模型(高级页(多处理器设置对话框)(RTIandRTI-MP执行参考文献)),SignalstoragereuseandInlineParameters选项不能以CPU特定的方式设置。 只供本地软件中断的子时刻表 RTI-MP支持只用于本地软件中断的子时刻表。 如果源CPU和它的目标CPU一样,中断被称为local. 联接中断: 用RTI-MP,可以只把局部中断联接到相同子系统的触发器上,例如,所有的中断必须源自相同的CPU。 没有函数调用行包含包含一个IPI块。 分支中断: 对于RTI-MP,Simulink函数调用分割块不能用来同IPI块相结合。 通过IPC块传递矩阵信号: 用一个IPC连接器块不能传递2维的矩阵信号。 为了传递它们,可以使用Simulink重建块把一个矩阵转换为矢量,反之亦然。 用来自Simscape,SimDriveline,SimElectronics,SimHydraulicsandSimMechanicsblocksets的块。 一定不能把自Simscape,SimDriveline,SimElectronics,SimHydraulicsandSimMechanicsblocksets的块放在RTI-MP模型的最高水平上。 否则会出现以下问题: ●当模型从RTI-MP中分离时这些块间的信号行将丢失。 ●模型分离失败,出现错误信息。 通过把来自这些块组的块放进一个子系统中,可以避免出现以上问题。 初始化MATLAB工作器的工作空间。 如果你使用来自MathWorks并行计算工具箱,这允许在多核PC上并行建立参考模型。 通过执行matlabpool命令可以创建MATLAB工作器。 如果参考模型使用来自MATLAB工作空间,MATLAB工作器的工作空间必须被初始化。 用MATLABR2009aandR2009b,工作器的工作空间可以通过把特定的代码(例如,执行一个脚本或下载一个MAT文件)添加到最高水平模型的PreLoadFcn功能上实现初始化。 用RTI-MP,这些MATLAB工作器的工作空间不能通过最高水平模型的PreLoadFcn功能实现初始化。 然而,对于MATLABR2010a,勾选MATLABworkerinitializationforbuilds选项可以配置该工作空间,实现初始化。 Loadtopmodel设置同PreLoadFcn功能相类似。 除去这些,可以选择Copybaseworkspace从而正确地实现MATLAB工作器的工作空间的初始化。 更多信息参阅模型参考对话框(模型配置参数对话框)(RTIandRTI-MP执行参考)。 使用信号和示波器管理对象。 不支持信号和示波管理器定义的对象。 有错误信息时,构建过程将停止。 1.7RTIGigalink块组的限制 Gigalink块组的限制 当使用RTIGigalink块组时,注意以下限制: ●所有处理器板必须装有Gigalink模块。 ●由非同步摆动缓冲区协议保证传输数据的一致性,而不是由同步摆动缓冲区协议保证的。 详细信息参阅135页摆动缓冲区协议。 ●信号必须是标量或者向量和双数据类型。 否则在模型初始化期间,出现一个错误消息。 ●通过Gigalink通道可以传输最多1024个双精度数据类型的信号。 ●每个Gigalink号和通道号的结合只有一次可以用作一个块。 否则在构建过程中会出现错误信息。 ●使用Gigalink块组可以传递中断块。 在RTI-MP应用程序中,可以用内部中断处理器(IPI)块去传递MP拓扑的中断。 详细信息参阅内部中断处理器(IPI)块(RTI和RTI-MP执行参考)。 1.8引用模型的参考 目标: 使用模型引用的主要限制。 最主要的内容总结如下。 模型引用限制的详细列表,参阅SimulinkandSimulink编码器(之前的实时工作空间)文献。 模型引用的限制被分成以下的子部分: ●模型参考总的限制 ●已引用模型的限制 模型参考总的限制: 下面的限制使用高级别和已引用的模型: ●计算器设置 在模型引用层,只有一个计算器可以用于所有的模型。 当参考模型用其他的计算器设置而不是用高级的模型,忽略它的计算器设置,取而代之的是用高级模型的计算器设置。 ●配置参数 高级模型的配置参数和他的参考模型必须是相同的。 下面是最主要的内容: 1)Optimization对话框中的Applicationlifespan(days) 2)General页的Systemtargetfile 3)General页的Generatecodeonly 4)interface页的Targetfunctionlibrary 除此之外,模型参考需要IncludeonlySimulink.在模型参考拓扑中,所有模型之间的Signalobjectswithglobalstorageclass选项是相同的。 对于RTI-MP,每个子模型代表这一个模型拓扑的高级模型。 这样参考模型的配置参数必须与子系统有相同的设置。 子系统的配置参数源自那些MP主要模型,此外还有多处理器设置块的CPU特定设置。 ●变量描述文件选项: 模型引用不支持在RTIvariabledescriptionfileoptions页上变量描述文件(TRC文件)选项IncludestatesandIncludeDerivatives.如果你选择这些选项中的一个,在构建过程中显示信息: 忽略它们。 ●内联参数和可调参数: Simulink和simulink编码器(之前的实时工作空间)对于在模型引用拓扑中的高级模型和参考模型,内联参数的选项是不同的。 对于高级模型,是支持内联参数的ON和OFF设置。 对于参考模型,内联参数选项通常设定为启用状态(ON),而不管参考模型的实际设置。 此外,对于参考模型,忽略在模型参数配置对话框中生成的全局参数定义。 只有在参考模型中的那些模块参数将是可调的。 参考模型是由在基本工作空间的Simulink.参数目标设定的。 ●Goto/From块 Goto/From块不能超过模型参考的边界。 ●异步调用函数输入到一个模型块 从MATLABR2011a开始,用AsynchronousTaskSpecification块把调用函数连接到模块的输入接口是可行的。 用RTI中断块,该特性是可用的。 然而,在参考模型中的触发调用函数子系统不能包含基于绝对时间的任何块。 基于绝对时间的块的列表,参考Simulink用户指导中继承采样时间。 ●当用MATLAB工作器时,错误的寻找方法: 如果用来自MathWorks®的ParallelComputing工具箱,这允许在多核电脑上的平行构建的参考模型,通过执行matlabpool命令可以创建MATLAB工作器。 如果使用rti 这就会导致构建过程中不可预知的错误。 为了避免出现错误,在切换RTI平台后退出MATLABAsession并且重启。 应用参考模型的限制: 以下是参考模型的特定的限制: ●RTI模块 参考模型不支持RTI块。 这也包括RTI中断块和来自RTI块组的块。 来自RTI其他库的TRC排除块是参考模型中唯一可用的RTI块。 在参考模型构建过程中,检查参考模型中不支持的RTI块的使用。 如果发现一个或多个不被支持的块,就会显示一个错误信息同志构建过程也停止。 对于RTI-MP,在参考模型中使用IPI,IPCandotherRTI-MP块是不能的。 因此一个模块可以被分配到唯一的一个CPU中。 ●Simulink.总线对象 一个参考模型必须用SImulink.总线对象,去设定任意一个总线,该总线输入输出到母模型中。 在工作空间中的每一个Simulink.总线对象必须被定义,这在参考模型和母模型都是可见的。 ●rti_usrtrcmerge命令 rti_usrtrcmerge命令不支持把参考模型的用户变量描述文件(USR.TRC文件)整合到所有变量说明文件中(TRC文件)。 ●非内联的S-函数 当使用MATLABR2010a或更早的版本时,参考模型中不支持非内联的S-函数 ●用户代码文件: 在高级模型的不断构建过程中,参考模型的用户生成文(USR.MK文件)中的变化不会自动删除。 为了确保在相关用户生成文件变化之后,重建一个参考模型,在模型参考对话库的Modeldependencies选项中列出用户生成文件。 详细信息参阅模型参考对话框(模型构建参数对话框)(RTIandRTI-MP执行参考)。 1..9自定义C代码的限制: 目标: 如果模型包含自定义C代码,注意下面的附加限制。 实时工作空间/状态流自定义代码 用代码生成/实时工作空间的自定义代码设置项设定自定义代码。 对于RTI-MP,必须使用多处理器设置对话框的CPU页中的UseReal-TimeWorkshopCustomCodesettings检查盒去配置该CPU.该CPU使用实时工作空间自定义代码设置。 编程语言: 写进C.RTI的用户代码和S函数不支持C++. S函数和用户代码的常规限制: 1)访问内部变量 在<[sub]model>.trc变量说明文件中,RTI生成所有Simulink变量。 在仿真期间可以访问它们,例如,通过ControlDeskNextGeneration。 然而,在该文件中,RTI不包含S函数块和用户代码的内部变量。 如果想通过ControlDeskNextGeneration,访问它们,对于全局,必须清除它们并且生成一个用户变量描述文件(<[sub]model>_usr.trc).参阅用户变量生成文件(USR.TRCFile)(RTIandRTI-MP执行参考) 2)I/O函数调用: 对于该正确使用I/O调用函数,没有错误的检查,例如,检查是否相同的I/O通道被访问两次。 3)不被支持的声明: 实时应用程序不支持某种C声明,例如,i/o控制台,I/O文件等。 关于S函数限制 1)M编码的S函数 对于实时应用程序,不要使用任何M编码的S函数,由于C编译器通常需要C代码。 甚至一些原Simulink块使用M编码的S函数. 2)S函数重用 如果模型包含多于一个使用全局变量的特定的S函数的例子,在实时应用程序中可能出现意外的不利影响。 3)生成S函数: 用Simulink编码器(之前的实时工作空间),生成来自SImulink模型的代码是可能的,并且随后把生成的C代码输入到Generated S-Function模块。 结果,可以减少构建的时间,因为包含在生成的S函数块的代码不需要重新生成或重新编译。 这样,S函数不包含任何一个RTI-orRTI-MP特定块(例如,i/o)。 用生成的S函数建立一个模型后,Simulink编码器(之前的实时工作空间)打开了一个新的模型并且插入了一个已经生成的正确配置的S函数块。 v尽管生成的S函数源自于一个Simulink模型,通过变量说明文件访问它的内部变量是不可能的。 只能看到块的输出和S函数的参数。 详细信息参阅MathWorks的SimulinK编码器用户指导。 关于用户代码的限制 中断块驱动的用户代码 不可以用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业 英语 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)