【发布时间】:2016-10-26 20:00:11
【问题描述】:
问题描述:
我想用 Matlab / Simulink 模拟电机控制阀 (MCV)。一个控制信号(红色)控制 MCV,它可以取 0%(完全关闭)和 100%(完全打开)之间的每个值:
我用 1、2 和 3 表示输入信号的三个不同脉冲。一旦输入信号从 0 变为 1(上升沿),MCV 就开始打开。在时间 t_Op 之后,MCV 完全打开。一旦输入信号从 1 变为 0(下降沿),阀门就开始关闭。这个过程在 t_Cl 之后完成。请注意,t_Op 和 t_Cl 不一定必须相同。
正如您在图中看到的那样,阀门在脉冲编号后完全关闭。 1(下降沿)。然而,脉冲之间的宽度没有。 2 和脉冲数。 3 时间不够长,无法完全关闭阀门。在脉冲号的上升沿。 3、阀门再次打开,直至完全打开。
问题:
我想用 Matlab(首选)或 Simulink 模拟上述过程。我不是 100% 确定如何开始解决这个问题。我考虑从原始系统中提取上升/边缘并使用这个“触发器”来启动一些与时间相关的“倾斜”阶跃函数。也许你对我有一些提示?
【问题讨论】:
-
尽管在不同的上下文中,Simulink 解决此问题的方式与stackoverflow.com/questions/40190454/… 几乎相同。该问题中的“下雨”是您的“开始”,而“不下雨”是您的“结束”。您只需在两个子系统中实现适当的斜率/斜坡即可满足您的 t_op 和 t_Cl 时序要求。
-
我还尝试使用两个启用的子系统来解决它。但是,如果 MCV 未完全打开/关闭,我不知道如何将结果(即阀门的实际位置,例如 50%)从一个子系统输入另一个子系统(反之亦然)。在每个子系统内部,我可以轻松地定义一个带有最小值/最大值的斜坡,这些值对应于阀门的 0% / 100% 位置。但这些值在模拟时间内保持不变,无法修改。
-
链接中的示例显示了如何将现有值反馈回子系统。当阀门的方向改变时,无论阀门位置如何,这都会起作用。