万博1manbetx®万博1manbetx支持使用本地求解器的组件之间的共模或涉及外部仿真工具。例如,共模仿真可以涉及在Simulink和第三方工具或自定义代码之间实现为共模仿真网关的S函数。万博1manbetx共模组件可以是导入以Simulink的共模模式中的功能模型单元(FMU)。万博1manbetx
在Si万博1manbetxmulink仿真中,求解器步长必须是每个周期性的离散块采样时间的整数除数。换句话说,如果共仿真组件定义其自己的采样时间,Simulink必须在那些时间步骤中与组件通信。万博1manbetx共模可以涉及其时间步骤在内部确定的组件,并且未知为Simulink。万博1manbetxSimulink的唯一信息是通过FMU块的通信步骤大小参数或S函数实万博1manbetx现中的采样时间定义的块采样时间。块采样时间确定Simulink必须与共模组件通信的时间步骤。万博1manbetx如果求解器步长不是自动的,则通信步长必须是求解器步长的整数倍数。
如果共仿真组件内部使用本地求解器,则在确定块的通信步长时,也应考虑该本地求解器。本地求解器的步骤尺寸未暴露于Simulink,并且需要了解实现的知识以正确设置通信步长。万博1manbetx在潜在的不兼容的情况下共模的行为也取决于该内部求解器实现。
共模仿真信号通常表示由于共模而被离散化的连续物理量。CMX S函数和共模FMU块等共模组件之间的数据交换可以从信号延迟引入数值不准确性。使用数值补偿来提高涉及使用自己求解器的组件的模拟的数值行为。Model Advisor包括一个检测协同仿真组件并告知数值补偿的检查。
万博1manbetxSimulink自动对共模组件之间的共仿真信号进行数值补偿。万博1manbetxSimulink在目标块的输入处执行数值补偿。如果其源端口和目标端口满足这些条件,则信号自动限定用于数值补偿:
信号源端口必须满足以下要求:
S函数
输出端口数据类型是双倍的
输出端口采样时间是周期性和离散的
输出端口复杂度是真实的
sssetoutputportiscontioNoyQuantity()
被设定为真的
对于港口
FMU.
输出端口数据类型是双倍的
FMU处于协同仿真模式
块采样时间是周期性和离散的
输出端口映射到变量“连续的”
在modeldescription.xml.
信号的目标端口必须满足这些要求:
S函数
输入端口数据类型是双倍的
输入端口采样时间是周期性和离散的
输入端口的复杂性是真实的
sssetInputPortisContiConulyQuantity()
被设定为真的
对于这个港口
sssetInputportDirectFeedThrough()
被设定为错误的
对于这个港口
FMU.
输入端口数据类型是双倍的
FMU处于协同仿真模式
块采样时间是周期性和离散的
输入端口映射到具有“连续的”
在modeldescription.xml.
有关识别用于数值补偿的共模仿真信号的示例,请参阅slexcosimtraplemasssspringexample.
模型。
当Simu万博1manbetxlink检测到可以具有数值补偿的信号时,它标记了相应的输入端口图标。
以下型号包括可以具有数值补偿的共模信号:
打开模型。
slexcosimtraplemasssspringexample.
更新图表。万博1manbetxSimulink检测可以具有数值补偿的信号,并将相应的端口标记图标。
调整补偿准确度的参数:右键单击图标并选择配置Cosimulation信号补偿并调整计算参数:
外推方法-该方法使用从先前时间步生成的模拟信号值的外推来计算当前模拟时间步的补偿信号值。提供三种类型的外推供选择。
线性
是默认值,它使用前两个时间步骤生成的信号值来线性地估计用于当前仿真时间步长的信号值。
二次
使用前三个时间步骤的信号值将数据拟合到二次多项式。
立方体
使用前四个时间步骤的信号值来将数据拟合到立方多项式。
在模拟开始时,当过去信号值的数量不足时,将自动使用低阶外推方法。高阶外推方法使用更多的过去信号值来预测当前信号值,可以提高预测精度。然而,高阶外推方法也可能在数值上不稳定[1]. 最佳外推方法取决于信号的性质。
信号校正系数- 该方法还基于过去的仿真结果和过去估计信号值来调整外推信号值。提供校正系数以供之间的选择0.
和1
, 在哪里0.
意味着没有对外推信号值进行调整。校正系数的默认设置是1
。对于给定时间步骤的给定外推信号,信号校正系数越大,对给定的外推信号越多。
如果数字补偿不是有益的,则通过左键单击禁用它图标。禁用时,图标将显示红色斜线。
如果无法进行自动补偿,则可以手动启用数值补偿使用余弦信号补偿模式
财产。
这余弦信号补偿模式
属性有这些值:
图标 | 环境 | 行为 |
---|---|---|
|
|
启用自动数值补偿,允许Simulink检测端口是否具有符合数值补偿条件的信号。万博1manbetx |
|
|
禁用自动数值补偿。图标出现红色斜线。 |
|
|
强制端口被认为是符合数值补偿的,即使信号不符合数值补偿。此设置允许您添加补偿而不声明它是连续的。 |
|
|
禁用强制将端口视为数字补偿兼容。 |
例如,要从上一个模型中禁用第一个输入端口的数值补偿:
选择要为其选择用于数值补偿的端口的块。例如,获取当前所选块的所有端口处理,GCB.
。
p = get_param(gcb,'porthandles')
此函数返回当前所选块的所有端口。例如,
p =带字段的结构:Inport:[22.0001 20.0001]出口:[23.0001 25.0001]启用:[]触发:[]状态:[] LCONN:[] IFAction:[] RESET:[]
要禁用第一个端口的数字补偿,请执行以下操作:
set_param(p.inport(1),'cosimsignalcompensationMode','auto_off')
关联的端口显示红色斜线。
也可以从命令行设置信号补偿参数。同样,第一步是获取端口句柄:
p = get_param(块,“端口句柄”)
使用备份参数设置补偿参数CosimSignalCompensationConfig
参数,以此格式:
set_param(p.inport,'余弦信号补偿配置'那'{: )}'
查找此表中的补偿参数名称和可能的值:
补偿参数 | 参数名称 | 参数值 |
---|---|---|
外推方法 |
外推方法 | '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页。
FMU.|S函数|ssgetInputPortisContiConition
|ssGetOutputPortIsContinuousQuantity
|sssetInputPortisContiConity
|sssetoutputportiscontiConti度