万博1manbetx®万博1manbetx支持使用本地求解器的组件之间的共模或涉及外部仿真工具。例如,共模可以涉及在Simulink和第三方工具或自定义代码之间实现作为共模仿真网关的S函数。万博1manbetx共模组件可以是导入到Simulink的共模模式中的功能模型单元(FMU)。万博1manbetx
在Si万博1manbetxmulink仿真中,求解器步长必须是每个周期性,离散块采样时间的整数除数。换句话说,如果共仿真组件定义其自己的采样时间,Simulink必须在那些时间步骤中与组件通信。万博1manbetx共模可以涉及其在内部确定的时间步长的组件,并且未知为Simulink。万博1manbetxSimulink可用的唯一信息是通过FMU块的通信步骤大小参数或S函万博1manbetx数实现中的采样时间定义的块采样时间。块采样时间确定Simulink必须与共模组件通信的时间步骤。万博1manbetx如果求解器步长不是自动,则通信步长必须是求解器步长的整数倍数。
如果共仿真组件内部使用本地求解器,则在确定块的通信步长大小时也应考虑该本地求解器。本地解器的步骤尺寸不暴露于Simulink,并且需要了解实现的知识以正确设置通信步长。万博1manbetx在潜在的不兼容的情况下共模的行为也取决于该内部求解器实现。
共模仿真信号通常表示由于共模而被离散化的连续物理量。CO - 模拟组件(如C MEX S函数和共模FMU块)之间的数据交换都可以从信号延迟引入数值不准确性。使用数值补偿来提高涉及使用自己求解器的组件的模拟的数值行为。模型顾问包括检测共模组件并建议数值补偿的检查。
万博1manbetxSimulink自动对共模组件之间的共模信号进行数值补偿。万博1manbetxSimulink在目标块的输入处执行数值补偿。如果其源端口和目标端口满足这些条件,则信号将自动限定数值补偿:
信号的源端口必须满足这些要求:
S函数
输出端口数据类型是双倍的
输出端口采样时间是周期性和离散的
输出端口复杂性是真实的
sssetoutputportiscontiContion()
被设定为真的
对于港口
FMU.
输出端口数据类型是双倍的
FMU处于共模模式
块采样时间是周期性和离散的
输出端口映射到变量变异性='连续'
在modeldescription.xml.
信号的目标端口必须满足这些要求:
S函数
输入端口数据类型是双倍的
输入端口采样时间是周期性和离散的
输入端口复杂性是真实的
SssetInputPortiscontiContion()
被设定为真的
对于这个港口
sssetInputportDirectFeedThrough()
被设定为错误的
对于这个港口
FMU.
输入端口数据类型是双倍的
FMU处于共模模式
块采样时间是周期性和离散的
输入端口映射到变量变异性='连续'
在modeldescription.xml.
有关识别用于数值补偿的共模信号的示例,请参阅SlexcosimtraplemasssspringExample.
模型。
当Simu万博1manbetxlink检测到可以具有数值补偿的信号时,它标记了相应的输入端口图标。
以下模型包括可以具有数值补偿的共模仿真信号:
打开模型。
SlexcosimtraplemasssspringExample.
更新图表。万博1manbetxSimulink检测可以具有数值补偿的信号,并将相应的端口标记为图标。
调整补偿准确度的参数:右键单击图标并选择配置Cosimulation信号补偿并调整计算参数:
外推方法- 该方法计算使用从先前时间步骤生成的模拟信号值的外推的模拟的当前时间步长的补偿信号值。选择三种类型的外推。
线性
是默认值,它使用前两次步骤生成的信号值来线性地估计在当前仿真时间步长中的信号值。
二次
使用前三个时间步骤的信号值来将数据拟合到二次多项式。
立方体
使用前四个时间步骤的信号值将数据拟合到立方多项式。
在模拟开始时,当存在过去信号值不足时,自动使用较低的外推方法。高阶推断方法使用更多的过去信号值来预测电流信号值,可以提高预测的精度。但是,高阶推断方法也可以是数值不稳定的[1]。最好的外推方法取决于信号的性质。
信号校正系数- 该方法进一步根据过去的仿真结果和过去估计信号值来调整外推信号值。提供校正系数以供选择0.
和1
, 在哪里0.
意味着没有对外推信号值进行调整。校正系数的默认设置是1
。对于给定时间步骤的给定外推信号,信号校正系数越大,对给定的外推信号越多。
如果数字补偿不是有益的,则通过左键单击禁用它图标。禁用时,图标将显示红色斜线。
如果无法进行自动补偿,则可以使用该自动补偿可以手动启用数值补偿cosimsignalcompensationMode
财产。
这cosimsignalcompensationMode
属性有这些值:
图标 | 环境 | 行为 |
---|---|---|
|
|
启用自动数值补偿,允许Simulink检测端口是否具有符合数值补偿条件的信号。万博1manbetx |
|
|
禁用自动数值补偿。图标出现红色斜线。 |
|
|
即使信号不符合数值补偿,强制端口被视为符合数值补偿。此设置允许您添加补偿,而无需声明它是连续的。 |
|
|
禁用迫使端口被视为符合数字补偿。 |
例如,要从上一个模型中禁用第一个输入端口的数值补偿:
选择要为其选择数字补偿的端口的块。例如,获取当前所选块的所有端口处理,GCB.
。
p = get_param(gcb,'porthandles')
此函数返回当前所选块的所有端口。例如,
P =带字段的结构:Inport:[22.0001 20.0001] Outport:[23.0001 25.0001]启用:[]触发:[]状态:[] LCONN:[] IFAction:[]重置:[]
要禁用第一个端口的数值补偿:
set_param(p.inport(1),'cosimsignalcompensationmode','auto_off')
相关端口显示红色斜线。
您还可以从命令行设置信号补偿参数。再次,第一步是获取端口句柄:
p = get_param(块,'porthandles'的)
使用备份参数设置补偿参数CosimSignalCompensationConfig
参数,以此格式:
set_param(p.inport,'cosimsignalcompensationconfig'那'{: 的)}'
在此表中查找补偿参数名称和可能的值:
补偿参数 | 参数名称 | 参数值 |
---|---|---|
外推方法 |
外推方法 | 'linearextrapolation' 那'quadraticextrapolation' , 要么'cubycextrapolation' |
补偿COFED |
补偿系数 | 标量之间0. 和1 |
例如,设置端口的外推方法:
set_param(p.inport,'cosimsignalcompensationconfig','{uketapolationmethod“:”linearextrapolation“}')))
设置外推方法和补偿系数:
set_param(p.inport,'cosimsignalcompensationConfig','{“uketapolationMethod”:“Quadraticextrapolation”,“补偿Cofiete”:“0.7”}'))
[1]跑步,卡尔。“Uber Empirische Funktionen und Die OroTpolation Zwischen Aquidistanten Ordinaten”,zeitschriftfürmathematik und physik。卷。46,1901,pp。224-243。
FMU.|S函数|SSGetInputPortisContiConition
|ssgetoutputportiscontiachity
|sssetInputPortisContiCofulity
|sssetoutputportiscontiConti度