Interruptor con histéresis
El bloque Switch de la biblioteca de Simscape™ Foundation implementa un interruptor controlado por una señal física externa. El bloque utiliza una instrucción if-else. Si la señal física externa en el puerto de control supera el umbral, el interruptor está cerrado; en caso contrario, está abierto.
Este ejemplo implementa un interruptor con histéresis aplicado en el nivel de umbral de conmutación. La histéresis actúa para evitar una conmutación de espurios rápida cuando la señal de control tiene ruido.
El interruptor tiene dos modos de funcionamiento distintos, que se muestran en el diagrama. Si la señal física externa en el puerto de control supera el umbral superior, el interruptor está cerrado. Si la señal está por debajo del umbral inferior, el interruptor está abierto.

El siguiente componente implementa la lógica en el diagrama utilizando un gráfico de modo.
component delayed_switch
% Switch with Hysteresis
inputs
u = { 0.0, '1' };
end
nodes
p = foundation.electrical.electrical; % +
n = foundation.electrical.electrical; % -:right
end
parameters
R_closed = { 0.01, 'Ohm' }; % Closed resistance R_closed
G_open = { 1e-8, '1/Ohm' }; % Open conductance G_open
T_closed = { 0.5, '1' }; % Upper threshold
T_open = { 0, '1' }; % Lower threshold
InitMode = switching.open; % Initial Mode
end
variables
i = { 0, 'A' }; % Current
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*G_open == i;
end
end
end
transitions
CLOSED -> OPEN : u < T_open;
OPEN -> CLOSED : u > T_closed;
end
initial
OPEN : InitMode <= 0;
end
end
end
endLa gráfico de modo m1 define dos modos: CLOSED y OPEN. Cada modo tiene una sección equations que enumera todas las ecuaciones pertinentes. La sección transitions define las transiciones entre los modos de funcionamiento, basándose en condiciones de predicado:
El interruptor pasa de
CLOSEDaOPENcuando la señal de control cae por debajo del umbral inferiorT_open.El interruptor pasa de
OPENaCLOSEDcuando la señal de control supera el umbral superiorT_closed.
La sección initial especifica el modo de funcionamiento inicial, basándose en una condición de predicado:
Si el predicado es verdadero (es decir, el valor del parámetro Initial Mode es menor que o igual a 0), el modo
OPENestá activo cuando comienza la simulación.Si el predicado no es verdadero, el modo
CLOSED(el primer modo enumerado en la secciónmodes) está activo cuando comienza la simulación.
Nota
El parámetro Initial Mode utiliza una enumeración:
classdef switching < int32 enumeration open (0) closed (1) end methods(Static) function map = displayText() map = containers.Map; map('open') = 'Switch is open'; map('closed') = 'Switch is closed'; end end end
Para que el componente funcione como se describe, esta enumeración tiene que estar en un archivo switching.m separado. El archivo puede ubicarse en la ruta de MATLAB® o en un espacio de nombres importado al componente. En general, las enumeraciones resultan muy prácticas en los gráficos de modo, ya que permiten especificar un conjunto discreto de valores de parámetros aceptables. Para obtener más información, consulte Enumerations.
Para verificar el correcto comportamiento del componente, despliéguelo en un bloque Simscape Component. Cree un modelo de prueba sencillo, con todos los bloques utilizando los valores de los parámetros predeterminados, como se muestra.


Simule el modelo con los valores predeterminados.

El valor del parámetro Initial Mode es Switch is open. Este valor enumerado se evalúa en 0, lo que convierte el predicado de la sección initial en verdadero. Por lo tanto, cuando comienza la simulación, el interruptor está abierto y la corriente no fluye por la resistencia R1. Cuando la señal de control cae por debajo de 0.5 (el valor del parámetro Upper threshold), el interruptor se cierra y la corriente que pasa por la ramificación, basada en los parámetros de los demás valores, es 1 A. Cuando la señal de control cae por debajo de 0 (el valor del parámetro Lower threshold), el interruptor se abre.
Ahora, cambie el valor del parámetro Initial Mode a Switch is closed y simule el modelo. El valor enumerado se evalúa en 1, la condición de predicado de la sección initial ya no es verdadera, por lo que está activo el primer modo enumerado en la sección modes. Cuando comienza la simulación, el interruptor se cierra y permanece cerrado hasta que la señal de control cae por debajo de 0.

Consulte también
modecharts | modes | transitions | initial