共模执行和数值补偿

金宝app®金宝app支持使用本地求解器的组件之间的共模或涉及外部仿真工具。例如,共模仿真可以涉及在Simulink和第三方工具或自定义代码之间实现为共模仿真网关的S函数。金宝app共模组件可以是导入以Simulink的共模模式中的功能模型单元(FMU)。金宝app

执行时间

在Si金宝appmulink仿真中,求解器步长必须是每个周期性的离散块采样时间的整数除数。换句话说,如果共仿真组件定义其自己的采样时间,Simulink必须在那些时间步骤中与组件通信。金宝app共模可以涉及其时间步骤在内部确定的组件,并且未知为Simulink。金宝appSimulink的唯一信息是通过FMU块的通信步骤大小参数或S函数实金宝app现中的采样时间定义的块采样时间。块采样时间确定Simulink必须与共模组件通信的时间步骤。金宝app如果求解器步长不是自动的,则通信步长必须是求解器步长的整数倍数。

如果共仿真组件内部使用本地求解器,则在确定块的通信步长时,也应考虑该本地求解器。本地求解器的步骤尺寸未暴露于Simulink,并且需要了解实现的知识以正确设置通信步长。金宝app在潜在的不兼容的情况下共模的行为也取决于该内部求解器实现。

数值补偿

共模仿真信号通常表示由于共模而被离散化的连续物理量。CMX S函数和共模FMU块等共模组件之间的数据交换可以从信号延迟引入数值不准确性。使用数值补偿来提高涉及使用自己求解器的组件的模拟的数值行为。Model Advisor包括一个检测协同仿真组件并告知数值补偿的检查。

数值补偿先决条件

金宝appSimulink自动对共模组件之间的共仿真信号进行数值补偿。金宝appSimulink在目标块的输入处执行数值补偿。如果其源端口和目标端口满足这些条件,则信号自动限定用于数值补偿:

  • 信号的源端口必须满足这些要求:

    • S函数

      • 输出端口数据类型是双倍的

      • 输出端口采样时间是周期性和离散的

      • 输出端口复杂度是真实的

      • sssetoutputportiscontioNoyQuantity()被设置为真的对于港口

    • FMU.

      • 输出端口数据类型是双倍的

      • FMU处于共模模式

      • 块采样时间是周期性和离散的

      • 输出端口映射到变量变异性='连续'modeldescription.xml.

  • 信号的目标端口必须满足这些要求:

    • S函数

      • 输入端口数据类型是双倍的

      • 输入端口采样时间是周期性和离散的

      • 输入端口复杂度是真实的

      • sssetInputPortisContiConulyQuantity()被设置为真的对于这个港口

      • sssetInputportDirectFeedThrough()被设置为错误的对于这个港口

    • FMU.

      • 输入端口数据类型是双倍的

      • FMU处于共模模式

      • 块采样时间是周期性和离散的

      • 输入端口映射到变量变异性='连续'modeldescription.xml.

有关识别用于数值补偿的共模仿真信号的示例,请参阅slexcosimtraplemasssspringexample.模型。

使用对话框管理数字补偿选项

当Simu金宝applink检测到可以具有数值补偿的信号时,它标记了相应的输入端口图标。

以下型号包括可以具有数值补偿的共模信号:

  1. 打开模型。

    slexcosimtraplemasssspringexample.

  2. 更新图表。金宝appSimulink检测可以具有数值补偿的信号,并将相应的端口标记图标。

  3. 调整补偿准确度的参数:右键单击图标并选择配置Cosimulation信号补偿并调整计算参数:

    • 外推方法- 该方法计算使用从先前时间步骤产生的模拟信号值的外推的模拟的当前时间步长的补偿信号值。提供三种类型的外推。

      • 线性是默认值,它使用前两个时间步骤生成的信号值来线性地估计用于当前仿真时间步长的信号值。

      • 二次使用前三个时间步骤的信号值将数据拟合到二次多项式。

      • 立方体使用前四个时间步骤的信号值来将数据拟合到立方多项式。

      在模拟开始时,当存在超过8个信号值的不足时,自动使用较低顺序的外推方法。高阶推断方法使用更多的过去信号值来预测电流信号值,可以提高预测的准确性。但是,高阶推断方法也可以是数字不稳定的[1]。最好的外推方法取决于信号的性质。

    • 信号校正系数- 该方法还基于过去的仿真结果和过去估计信号值来调整外推信号值。提供校正系数以供之间的选择0.1, 在哪里0.意味着没有对外推信号值进行调整。校正系数的默认设置是1。对于给定时间步骤的给定外推信号,信号校正系数越大,对给定的外推信号越多。

    如果数字补偿不是有益的,则通过左键单击禁用它图标。禁用时,图标将显示红色斜线。

从命令行管理数字补偿选项

如果无法进行自动补偿,则可以手动启用数值补偿使用CosimSignalCompensationMode财产。

CosimSignalCompensationMode属性有这些值:

图标 环境 行为

'汽车'

启用自动数值补偿,允许Simulink检测端口是否具有符合数值补偿条件的信号。金宝app

'自动关闭'

禁用自动数值补偿。图标出现红色斜线。

'总是'

强制端口被认为是符合数值补偿的,即使信号不符合数值补偿。此设置允许您添加补偿而不声明它是连续的。

'总是关闭'

禁用迫使端口被视为符合数字补偿。

例如,要从上一个模型中禁用第一个输入端口的数值补偿:

  1. 选择要为其选择用于数值补偿的端口的块。例如,获取当前所选块的所有端口处理,GCB.

    p = get_param(gcb,'porthandles')

    此函数返回当前所选块的所有端口。例如,

    p =带字段的结构:Inport:[22.0001 20.0001]出口:[23.0001 25.0001]启用:[]触发:[]状态:[] LCONN:[] IFAction:[] RESET:[]
  2. 要禁用第一个端口的数值补偿:

    set_param(p.inport(1),'cosimsignalcompensationMode','auto_off')

    关联的端口显示红色斜线。

您还可以从命令行设置信号补偿参数。再次,第一步是获取端口句柄:

p = get_param(块,'porthandles'

使用备份参数设置补偿参数CosimSignalCompensationConfig参数,以此格式:

set_param(p.inport,'cosimsignalcompensationconfig''{}'

查找此表中的补偿参数名称和可能的值:

补偿参数 参数名称 参数值
外推方法 外推方法 'linearextrapolation''quadraticextrapolation', 要么'cubicextrapolation'
补偿COFED 补偿系数 标量之间0.1

例如,设置端口的外推方法:

set_param(p.inport,'cosimsignalcompensationconfig','{“外xtapolationmethod”:“linearextrapolation”}“)))

设置外推方法和补偿系数:

set_param(p.inport,'cosimsignalcompensationconfig','{“外推渣”:“quadraticextrapolation”,“补偿yefity”:“0.7”}'))

参考

[1]跑步,卡尔。“Uber Empirische Funktionen und Die Orterpolation Zwischen Aquidistanten Ordinaten”,zeitschriftfürmathematikund physik。卷。46,1901,第224-243页。

也可以看看

|||||

相关话题