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