主要内容

带滞后的开关

开关block实现了一个由外部物理信号控制的开关。该块使用if - else声明。如果控制口的外部物理信号大于阈值,则开关关闭,否则开关开启。

此示例实现了一个将迟滞效应应用到开关阈值级别的开关。当控制信号有噪声时,迟滞效应可以防止快速杂散开关。

该开关有两种不同的工作模式,如图所示。如果控制口的外部物理信号大于上门限,则开关关闭。如果信号低于下限阈值,则开关打开。

下面的组件通过使用模式图实现图中的逻辑。

u = {0.0, '1'};结束节点p = foundation.electric .electric;% + n = foundation.electric .electric;% -:右端参数r_close ={0.01, '欧姆'};%闭合电阻R_closed G_open = {1e-8, '1/欧姆'};%开导G_open T_closed = {0.5, '1'};%上限阈值T_open = {0, '1'};%下限阈值InitMode = switch .open;%初始模式结束变量i = {0, 'A'};%电流v = {0, ' v '}; % Voltage end branches i : p.i -> n.i; end % Validate parameter values equations assert( T_closed >= T_open, 'Upper threshold must be higher than Lower threshold' ); end modecharts(ExternalAccess = observe) m1 = modechart modes mode CLOSED equations v == p.v - n.v; v == i*R_closed; end end mode OPEN equations v == p.v - n.v; v == i/G_open; end end end transitions CLOSED -> OPEN : u < T_open; OPEN -> CLOSED : u > T_closed; end initial OPEN : InitMode <= 0; end end end end

模式图m1定义两种模式,关闭而且开放.每个模式都有一个方程节,该节列出了所有适用的方程。的转换节根据谓词条件定义了操作模式之间的转换:

  • 开关从关闭开放当控制信号低于较低阈值时,T_open

  • 开关从开放关闭当控制信号高于上门限时,T_closed

最初的节根据谓词条件指定初始操作模式:

  • 如果谓词为真(即最初的模式参数值小于或等于0),则开放模式在模拟开始时是活动的。

  • 如果谓词不为真,则关闭模式(中列出的第一种模式模式段)在模拟开始时是活动的。

请注意

最初的模式参数使用枚举:

classdef切换< int32枚举开(0)闭(1)结束方法(静态)函数map = displayText() map = containers.Map;地图(“开放”) =“开关已打开”;地图(“关闭”) =“开关已关闭”结束结束结束

为了使组件像所描述的那样工作,此枚举需要位于单独的switching.m文件。该文件可以在MATLAB中找到®路径或导入组件的包中。一般来说,枚举在模式图中非常有用,因为它们允许您指定一组可接受的参数值。有关更多信息,请参见枚举

若要验证正确的组件行为,请将其部署在Simscape组件块。创建一个简单的测试模型,如图所示,其中所有块使用默认参数值。

使用默认值模拟模型。

最初的模式参数值为开关打开.此枚举值的值为0,这使得谓词在最初的部分真实。因此,在模拟开始时,开关是打开的,没有电流通过电阻R1。当控制信号值达到0.5时上阈值参数值),则开关闭合,根据其他参数值,通过支路的电流为1A。当控制信号降至0以下时低阈值参数值),开关打开。

现在更改最初的模式参数值为开关关闭并对模型进行仿真。枚举值计算为1,即谓词条件最初的节不再为真,因此第一个模式列在模式部分处于活动状态。在模拟开始时,开关关闭,并保持关闭状态,直到控制信号降至0以下。

另请参阅

|||

相关的话题