【发布时间】:2019-01-16 16:07:23
【问题描述】:
外部库(来自 PreScan)请求 200 Hz,而我的控制设备模型需要以 100 Hz 运行。因此,我的问题是如何协调这两项活动?我担心的是,如果我在 Simulink 中使用 200Hz,它可能会损害我的控制设备的保真度。
是否可以将 simulink 时间步长设置为 1/100,同时保持外部库以 200Hz 运行?
【问题讨论】:
标签: simulink
外部库(来自 PreScan)请求 200 Hz,而我的控制设备模型需要以 100 Hz 运行。因此,我的问题是如何协调这两项活动?我担心的是,如果我在 Simulink 中使用 200Hz,它可能会损害我的控制设备的保真度。
是否可以将 simulink 时间步长设置为 1/100,同时保持外部库以 200Hz 运行?
【问题讨论】:
标签: simulink
Simulink 与多速率模型完美配合。您不理解的事情(看起来)是整体模型采样率(即 求解器 的设置)与模型中各个块的采样率之间的差异。
您的模型中的某些块以 100Hz 采样,而模型的其他部分以 200Hz 采样是非常典型的。在这种情况下,您将选择一个离散求解器并为其提供 200Hz 的采样时间。 200Hz 块将在每个求解器时间步执行一次,而 100Hz 块将在每个求解器时间步执行一次。
您应该查看文档的Sample Times in Systems 部分。
【讨论】:
您可以在 Simulink 中使用显式和隐式速率控制。
get_param(bdroot, 'FixedStep')
set_param(bdroot, 'FixedStep', '0.005') % 200Hz
颜色 要激活采样时间颜色,请转到:显示>采样时间>全部。 Sample Time Legend 将帮助您了解隐式速率控制的工作原理。
采样时间选项 您可以通过以下方式控制任务和采样时间选项:配置参数>求解器>任务和采样时间选项。
在开始时,您可以激活数据传输速率转换的自动处理。然后您应该分析您的模型元素是什么颜色,并将 Rate-Transition 模块放置在具有不同采样率的模型元素之间的数据信号线上。
现在速率控制是隐式的。如果您使用函数调用通过涉及预定义的调度程序以所需的速率显式调用您的子系统,则速率控制是显式的。
您可以在 Simulink 示例中打开构建以查看其工作原理:
sf_ladder_logic_scheduler
sf_loop_scheduler
【讨论】: