欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年dSPACE建模规范 .pdf

    • 资源ID:33383870       资源大小:2.89MB        全文页数:30页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年dSPACE建模规范 .pdf

    3. 模型参数本章针对模型参数的处理提出了一些建议。这尤其适用于哪些需要校准的应用参数。3.1 参数初始化所有要求进行模型初始化的应用参数和其它参数都应该正确地定义,例如通过 MATLAB M文件或 dSPACE数据词典。目的正确的模型初始化。备注必须对 Simulink 模块中的参数进行正确的初始化。通过M 文件处理这些参数是实现参数正确初始化的一种普通的方法。作为另外一种实现途径的dSPACE 数据词典,不仅可以用来指定参数值,而且可以用作代码生成设置。实例图 79 中所示为在一个 M 文件中对模型参数进行初始化。图 79 使用 M 文件对 Simulink 模型中的模块参数进行初始化3.2 模块参数的定义 /显示在 Simulink 模型中进行模块参数设置时应该不包含任何代数表达式并且最好不包含数据类型转换。除此之外,在模块中建议使用一种特殊的颜色来指定名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 30 页 - - - - - - - - - 应用参数的外观,例如使用橙色背景。目的模块参数的初始化,正确的框图显示。备注简化了模型评论,应用参数的外形更加明晰。在应用参数中避免使用复杂表达式确保了后面校准过程的准确性。实例图 80 所示为一个校准参数的正确设置。图 80 应该指定单个模块中应用参数的外观,例如使用一种特殊颜色。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 30 页 - - - - - - - - - 4. 名字空间为了支持 MATLAB/Simulink/Stateflow指定的名字空间,对所有标示符使用命名规范是很有帮助的。本章针对这些命名规范提出了一些建议。4.1 常规命名规则一个模型内部的标示符(尤其是参数,子系统名字和端口名字)应该是有效的 ANSI C 标识符,例如,他们应该包含字母a-z,A-Z,数字 0-9 和下划线。首字符必须是一个字母。名字在前31 个字符中应该是唯一的并且应不同于下列关键字:auto,break,case,catch,char,const,continue,default,do,double,else,elseif,end,enum,extern,float,for,function,global,goto,if,int,long,otherwise,persistent,register,return,short,signed,sizeof,static,struct,switch,try,typedef,union,unsigned,void,volatile,while.目的命名规则,避免命名冲突。备注该规则可实现无缝转换以及利用TargetLink 将 Simulink 模型进行代码生成。生成的代码仅包含了避免了名字冲突的有效C 标识符。参考文献TargetLink Production Code Generation Guide1,TargetLink Limitations,General Limitations,Reserved identifiers4.2 保留的系统头文件名字子系统名字应该区别于TargetLink 系统头文件名如 tl_types, tl_target_types ,tllimits,dsfxp_a,dsfxp_c或者任何其它编译器或标准库。目的命名规则,避免命名冲突,遵循MISRA 规则 115:“标准库函数名字不能被重用。 ”备注本规则用以确保生成代码的正确性。参考文献TargetLink Production Code Generation Guide1,TargetLink Limitations,General Limitations,Reserved Identifiers名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 30 页 - - - - - - - - - 5. 注释和单位本章中所涉及到的规范应该被视作如何对模型中的一部分进行恰当注释的范例。这确保了模型文件的正确性,并简化了评论和维护。5.1 顶层的注释应该在顶层对每一个Simulink 模型和 Simulink 库添加注释,用以描述其功能。如果附加的注释可以使模型更易理解,可以将其置于模型内部的适当位置。目的正确的文档。备注注释的目的是简化评论和维护,并且提高模型的易理解性。实例图 81 所示为正确的模型注释。图 81 正确的模型注释5.2 模块特性中的注释所提供的所有注释都应该是有效的ANSI C 注释且不包括/*和*/符号。特别值得注意的是,本规则中排除了使用/*和*/,以及 umlaut 和特殊字符。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 30 页 - - - - - - - - - 目的利用 TargetLink 的子序列代码生成。备注该规则确保位于模块层的注释可以转换成有效的C 注释。5.3 接口注释为了更易理解,可以在输入端口和输出端口的Block Propperties 中的Description 处对各个模块的接口信息进行描述。目的正确的接口和数据文档。备注Description 处的内容有助于简化评论和维护。实例图 82 所示为一个正确的接口描述实例。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 30 页 - - - - - - - - - 图 82 输出端口模块的正确接口注释5.4 单个模块和信号的注释为了更易理解,关于模块和信号的附加注释可以添加在模块特性的Dscription 处,或者如果使用了TargetLink 模块,也可以添加到TargetLink 模块的 Code comment 和 Block comment 处。目的正确的文档。备注Dscription 处的内容有助于简化评论和维护。实例图 83 所示为一个正确的信号描述实例。图 83 正确的模块注释,例如,对一个Gain 模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 30 页 - - - - - - - - - 5.5 模块参数和信号的单位模块参数和信号的单位应该在模块特性的Description 处予以指定。目的正确的文档。备注单位的说明有助于分析模型的功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 30 页 - - - - - - - - - 6版面设计问题本章中所包含的规范应被视为对于版面设计问题的建议。针对基本版面设计问题的规则帮助建立了一种通用的标准,该标准保证了简单的模型评论和透明的模型。6.1 信号流输入端口应该置于左侧,输出端口应该置于右侧。信号流的方向通常是从左向右,反馈环除外。循环中的信号流应该沿顺时针方向。目的建议一个透明、标准化的版面设计规则。备注该规范有助于简化评论和维护。6.2 信号线信号线应该尽可能呈直角形状且不应穿越模块或者子系统。交叉节点的个数应该尽可能保持在较低的水平。目的建立一个透明、标准化的版面设计规则。备注该规范帮助简化了评论和维护。参考文献Controller Style Guidelines for Production Intent Using MATLAB, Simulink and Stateflow V1.008,4.3.1.36.3 信号和总线的显示应该在信号和总线的始端或其它合适的位置标注上名字用以显示名字和相关的信号。目的建立一个透明、标准化的版面设计规则。备注该规范帮助简化了评论和维护以及更进一步的处理。参考文献名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 30 页 - - - - - - - - - Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.6.1.1Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.6.1.2Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.6.1.36.4 非标量信号应该在 Format 目录下的 Wide nonscalar lines选项中指定信号的维数。目的建立一个透明、标准化的版面设计规则。备注该规范帮助简化了评论和维护。参考文献Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.6.1.36.5 模块的显示模块符号应该足够大以保证所有的图标和标签都是清晰可见的。重要的模块参数应该通过 Attribute Format String 或 Block Annotation 予以显示。模块名字应该置于模块的正下方。目的建立一个透明、标准化的版面设计规则。备注该规范帮助简化了评论和维护。参考文献Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.5.1.3Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.5.1.1Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.3.1.7实例图 84 所示为值得显示的一些重要模块参数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 30 页 - - - - - - - - - 图 84 正确的模块注释6.6 字体和字体大小除了文本注释外模型中的所有元素都应该以相同的字体和大小进行显示。应该使用常用的字体如Arial。目的建立一个透明、标准化的版面设计规则。备注该规范帮助简化了评论和维护。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 30 页 - - - - - - - - - 参考文献Controller Style Guidelines for Production Intent Using MATLAB, Simulink和 Stateflow V1.0.08,4.3.1.1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 30 页 - - - - - - - - - 7仿真参数Simulink 中的一个正确的仿真要求对每一个独立模型具有合适的仿真参数设置( Configuration Parameters在 Simulation 目录下) 。尽管有些情况下默认设置已经足够,仍然需要调整模型细节以产生充分的仿真结果。本章中所提到的仿真参数设置应该仅作参考,在特定模型中违背该规则也是允许的。7.1 Solver 设置Solver选项应该设置为: Type: Fixed-step以及Mode: Single Tasking。积分算法 ode1(Euler),ode2(Heun),ode3(Bogacki-Shampine) ,ode4(Runge-Kutta) ,ode5 (Dormand-Prince) 和 the Fixed step size应该根据要求的精度进行设置。目的正确的模型仿真。备注Type: Fixed-step选项使得仿真以基本定步长大小运行。Mode:Single Tasking选项确保多分枝模型在没有引入速度传输模块情况下的正确仿真。如果plant 模型要求仿真具有自适应步长大小,必须选择solver选项中 Type:Variable-step。实例图 85 所示为仿真参数 /Solver 的正确设置。图 85Solver 设置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 30 页 - - - - - - - - - 7.2 诊断设置用做 Consistency checking和 Bounds checking的仿真选项应该设置为none。另外,应该选择下面的设置作为Configuration 选项:Algebraic loop:ErrorBlock priority violation:ErrorSingle Task rate transition:WarningCheck for singular matrix:WarningUnderspecified data types:WarningUnneeded type conversion:NoneVector/Matrix conversions:WarningSignal label mismatch:WarningUnconnected block input:ErrorUnconnected block output:ErrorUnconnected line:Error目的正确的诊断功能。备注Consistency checking和 Bounds checking选项用来验证用户编写的S函数并且可能显著增加仿真时间。为了避免函数建模错误选择Configuration 选项可以对信号进行警告和报错。实例图 86 所示为 Simulation Parameters/Diagnostics的设置。违背 Simulink 默认设置出已被圈出。7.3 高级设置对模型的 parameter configuration,Inline parameters选项应该不予选择。本着最优化的原则,下面的设置应该予以选择:Block reduction:OffBoolean logic signals:OnConditional input branch:OnParameter pooling:OnSignal storage reuse:OffZero-crossing detection:On目的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 30 页 - - - - - - - - - 正确的模型仿真。备注不激活 Inline parameters 选项使得在快速原型阶段可以修正运行时间参数。激活 Conditional input branch:On 减少了仿真时间,这是因为对于Switch 和Multiport Switch 模块而言,没有被激活的路径将不执行运算。请注意在那些条件执行支路中将Conditional input branch 选项设置为 On 将会对取对数后的信号产生影响,因为模块并不能在每一个时间步长上都被执行。实例图 86 和图 87 所示为 Simulation Parameters/Advanced的正确设置。Simulink 默认设置中相背离的部分已经被圈出。图 86 正确的诊断设置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 30 页 - - - - - - - - - 图 87 正确的高级设置7.4 Full-Featured 模式下的 TargetLink 模型不支持 Simulink 加速模式当前, full-featured 模式下的 TargetLink 模型不能在加速 /快加速模式下进行仿真已达到通过代码生成来推进仿真进程的目的。目的正确的模型仿真。备注自 MATLAB R2007b 发布以来,曾属于Simulink 执行工具箱一部分的加速器(Accelerator)变成了 Simulink 的常规部分。支持TargetLink 中信号取对数和画图的 TargetLink full-featured 模式不能用于同那些特征相连接。实例图 88 所示为取代了 Accelerator 或 Rapid Accelerator 的 Normal 作为仿真模式设置,当前在 full-featured 模式下的 TargetLink 模型中前两项不允许设置。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 30 页 - - - - - - - - - 图 88full-featured 模式下的 TargetLink 模型仿真运行时仅允许设置为Normal 。Accelerator 和 Rapid Accelerator 选项(从R2007b 开始应用)不能用来和TargetLink 模型相连接。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 30 页 - - - - - - - - - 8数据类型关于数据类型的使用,区分以下两个不同的阶段是很重要的:当设计完实际的控制算法后进行Simulink 模块框图级别的仿真,并且使用模型在环( MIL )仿真进行测试。代码级仿真,此时如定点标定等特定的细节执行被添加进去并予以考虑。算法的执行细节测试的正确选择是软件在环(SIL)测试。算法的实际开发和MIL 仿真中不包括执行细节的字符。一个MIL 仿真过程中数据类型的使用有非常重要的关系因为整型运算的饱和和溢出比控制算法部分更细化。作为最重要的一个规则,在MIL 仿真中应该支持下面的原理:本来就包含连续值的所有信号必须用最大精度的浮点值格式来进行模型构建,例如,使用 double数据类型。那些信号在实际处理中被量化为数字信号,在代码生成时也以定点信号的格式,这些事实对控制算法开发阶段和MIL 仿真将不产生影响。在代码生成阶段将会添加执行细节的信息,而MIL 仿真将以最大精度执行。本来就包含有限个状态值的离散信号,也可以用整型数据类型进行模型构建(见下面关于 blockset stand-alone的约束) 。当进行这样的操作时,应当保证有限的数据范围不会导致饱和,潜在溢出等问题的产生。遵循本原理执行细节数据将仅对生成的代码产生影响。饱和和溢出依赖于那些极端数据类型并且它们在 Simulink 中的精确语义将不能正确定义。定点数据类型将专门用于代码级,而不用于模型在环仿真中。注:如果使用了 TargetLink2.1.6 以前版本的 TargetLink stand-alone blockset,由于在此模式中Cast output to TargetLink type flag 总是被忽略,所以整型数据类型的使用会明显受限。关于一般情况下 non-double数据类型的使用,必须非常注意不去使用Simulink 中具有非常差的语义定义功能的建模风格,例如整型运算中的饱和,溢出,整型元素中的取整等。图89 和图 90 证明了如果在 Simulink 中使用整型计算与整型饱和相连接后发生了不期望的结果。由于TargetLink 没有仿真该语义,仅在最终的输出产生饱和,因此产生了“不期望的结果 ” 。图 91 和图 92 证明了如果使用了 round integer calculation towards选项,模块细节和非透明的语义是怎样的。 TargetLink 将不使用此种建模风格和不仿真此种行为。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 30 页 - - - - - - - - - 8.1 数据类型的常规使用模块级的所有连续信号都应该使用double数据类型进行建模。在后面的代码生成阶段将添加关于定点执行的信息,而不是在Simulink 模块级。离散信号可以用像int8,int16 等这样的整型数据类型进行建模,但是要有足够的范围来确保整数计算中没有任何溢出,整数饱和等。在目标执行阶段应该处理执行细节字符。图 89使用整数计算来进行饱和的加法:Sum模块的输出被制定为int8 并且对 saturate on integer overflow 选项进行设置。注意,计算所得的结果并不是认为的100+100-100,虽然这个结果完全符合int8 变量,而是27。这是一个Simulink 中中间结果的饱和序列,这将导致更加不期望的结果出现。一定不能使用这样的建模风格。图 90相比于图 89 交换了输入信号的饱和加法。现在计算出了期望的结果100,因为中间结果没有出现饱和。因此,加法远不止交换数据那么简单,一定不能使用这种建模风格。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 30 页 - - - - - - - - - 图 91 包含取整运算的加法:因为指定了输出为整型数据类型,并且输入信号是非整数,必须执行取整运算。尽管round integer calculation towards选项被设置为Nearest,Simulink计算的结果为30。这是因为Sum 模块的输入信号直接传递到输出类型,应用指定的取整功能。这种行为是高度地block-specific 。图 92包含取整运算的整数乘法。与图91 中的 Sum 模块相反,取整运算仅在中间结果执行,而不直接用在输入信号上。结果是Simulink 的计算结果不等于1000。因为是高度block-specific 且不透明的,应避免使用要求这种运算的建模风格。定点数据类型不能于Simulink 中模块框图级(模型在环仿真)的仿真。它们应该被用作专门的软件在环仿真(代码级)。逻辑信号可以用 boolean数据类型进行建模。注:如果使用了 TargetLink 的 stand-alone blockset,整型数据的使用就会明显受限,因为 Cast output to TagetLink type flag 在 TargetLink2.1.6 以前版本中的此模式下总是被忽略。目的正确的建模风格,区别控制算法开发和算法的最终执行,Simulink 和TargetLink 仿真模式的等效结果。备注名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 30 页 - - - - - - - - - 功能开发阶段的数据类型应该不受特定执行细节的限制。定点数据类型的使用是高度地 implementation-specific 的,此外关于中间结果精确的定点运算过程是不透明的。这些细节应在执行/编码阶段予以说明。8.2Rational 和 Logical Operator 支持的数据类型对 Rational Operator 和 Logical Operator 模块而言, boolean,logical(见Configuration Parameters:Optimization)或 double数据类型可以使用。对模块的设置也应该是一致的,也就是说对所有Relational Operator 和 Logical Operator 模块它们应该被设置为boolean,double或者 logical 之一。目的TargetLink 和 Simulink 所支持的相同数据类型。备注TargetLink Relational Operator 和 Logical Operator 模块的输出数据类型是double型或者 boolean 型,取决于 Simulation/Configuration 对话框中的全局Simulink 选项 Imlement logical signals as boolean (vs.double)。该行为与 Simulink中逻辑选项等效。为了保证Simulink 和 Targetlink 具有相同的数据类型,上面的选项在所有模块中必须进行一致的设置。如果有必要,全局Simulink 选项Implement logical signals as boolean (vs.double)也必须修正。如果一个随后的模块必须要输入一种不同的数据类型,Relational Operator 和 Logical Operator 模块的输出信号必须使用一个Data Type Conversion模块进行正确类型传递。实例图 93 和图 94 所示为数据类型的错误使用和争取使用。8.3TargetLink-Simulink 接口处信号总线支持的数据类型穿越 TargetLink Subsystem到 Simulink 边界的总线信号在软件在环仿真过程中总是 double数据类型。因此,如果随后的模块需要其它的数据类型,必须将Data Type Conversion模块嵌入进去实现所需要的数据类型。目的TargetLink subsystems的边界处正确的数据类型。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 30 页 - - - - - - - - - 图 93Logical Operator 或者 Relational Operator 模块的输出端不能使用如unit(8)这样的数据类型图 94输出数据类型设置为Boolean。为了在相应的TargetLink 模块( full-featured 模式或stand-alone 模式)输出端产生相同的数据类型,必须激活全局Simulink 选项 Implement logical signals as Boolean(vs.double) 。备注TargetLink 2.1 以后版本都支持 TargetLink subsystem直接与总线相连接。然名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 30 页 - - - - - - - - - 而,TargetLink 为一个软件在环仿真生成的S 函数的输出为 double 信号(仅在总线内部)。实例图 95 所示为 TargetLink-Simulink 接口处 Data Type Conversion 模块的使用。图 95 如果要求从TargetLink Subsystem 出来的总线信号为double 之外的数据类型,那么必须引入 Data Type Conversion 模块。这仅适用于软件在环仿真。8.4溢出的避免对于所有整数运算,为避免溢出必须对输出数据类型和中间变量指定足够的取值范围。特别是,不允许有意使用溢出。目的正确的建模风格, Simulink 和 TargetLink 仿真模式的等效结果。备注基本上,由于溢出是高度implementation-specific 的所以溢出不能被用作一种建模风格元素,溢出所建立的是一种极其不透明的建模风格。溢出(和下溢)取决于所使用的数据类型的大小和种类,在Simulink 中数据类型的使用时不透明的且具有模块依赖性,尤其是中间结果。此外, TargetLink 并不仿效 Simulink 中的溢出 /下溢行为。在 TargetLink 中通过饱和度在原理上避免了blockset stand-alone ,溢出和下溢。实例图 96 所示为一个没有发生溢出的整数运算的例子。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 30 页 - - - - - - - - - 图 96 带有整数运算的Product 例子。输出数据类型设为Int16 避免了发生溢出。8.5整数计算中饱和的避免对输出和中间结果使用具有足够位长的数据类型避免了通过Saturate on integer overflow 选项设置的整数计算饱和。对于那些能够确定溢出不会发生在中间结果处,仅发生在最终输出信号处的模块允许产生例外,比如说下面的模块:GainProduct block with less than three inputsMultiport Switch如果饱和是控制算法的一部分而不仅是特定的整数计算,应该使用Saturation 模块。注:为了避免饱和,选项Saturation on Integer overflow 是否设置无关紧要,但是数据类型一定要足以确保没有饱和发生。目的正确的建模风格, Simulink 和 TargetLink 仿真模式的等效结果。备注一般来说,诸如整数运算中的饱和之类的implementation-specific 方面必须在代码级进行处理。此外,在Simulink 的整数计算中如何产生饱和的语义是极其不透明且 block-specific。举例来说,一个 Sum 模块的输入,直接传递给输出类型和其它中间结果一样也可能会产生饱和。这可能会导致不期望的行为发生,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 30 页 - - - - - - - - - 这点 TargetLink 没有进行仿真, TargetLink 中仅模块输出出现饱和。实例图 97 所示为一个整数计算的例子。图 97 一个具有三个输入信号的例子。如果Saturate on integer overflow 选项已经被激活,中间结果就会饱和,且部分非透明并可能产生(不正确)不期望的结果。这里,输出端的数据类型 int16 保证了饱和和溢出/下溢从不产生。8.6取整运算的避免应该避免通过 Round Integer Calculation towards选项在整数计算中进行取整运算。如果需要一个取整函数,那么必须使用Rounding Function。注:取整运算在以下情况下出现,如果一个包含了浮点值的模块指定了输出数据类型为整数,或者如果整数运算的结果并不是整数变量(例如除法)。目的正确的建模风格, Simulink 和 TargetLink 仿真模式的等效结果。备注Simulink 中取整运算是如何执行的语义是部分透明且block-specific 的。TargetLink 在整数计算中不能仿真不同的取整方法。实例图 98 所示为一个需要进行整数取整运算的例子。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 30 页 - - - - - - - - - 图 98 一个 Gain 模块例子,其中输入为浮点数据类型,指定输出整数数据类型int16,这就是为什么要求取整运算的原因。8.7 Discrete Transfer Fcn,Discrete StateSpace和 Discrete Filter 模块的数据类型使用TargetLink 中 Discrete Transfer Fcn,Discrete StateSpace 和 Discrete Filter 模块的输入和输出变量的数据类型必须是统一的浮点或统一的定点,但不能两者兼具。目的使用 TargetLink 进行代码生成。备注当前 TargetLink 中不支持在这些模块中混合使用浮点和定点代码。参考文献TargetLink Production Code Generation Guide1,TargetLink Limitations,Block-specific Limitations,Discrete Transfer Fcn/Discrete State-Space名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 30 页 - - - - - - - - - Comment 微微微微1 : 此处待翻译8.8 Trigonometric 模块的数据类型使用在 Trigonometric Function 模块内的曲线函数sinh,cosh,tanh,asinh,acosh,atanh 所使用的数据类型都必须是浮点的。对atan2 函数而言,不允许使用32 位整数作为输入而使用无符号整型数作为输出信号。目的使用 TargetLink 进行代码生成。备注TargetLink 不支持上述函数以及数据类型的组合。参考文献TargetLink Production Code Generation Guide1 ,TargetLink Limitations ,Block-specific Limitations,Trigonometric Function with atan28.9 Math 模块的数据类型使用1111目的使用 TargetLink 进行代码生成。备注TargetLink 不支持上述函数以及数据类型的组合。参考文献TargetLink Production Code Generation Guide1 ,TargetLink Limitations ,Block-specific Limitations,Math with Mod/Rem operator实例图 99 所示为使用了mod 函数的 Math 模块中不允许对输出信号进行任意设置。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

    注意事项

    本文(2022年dSPACE建模规范 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开