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 end
La 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
CLOSED
aOPEN
cuando la señal de control cae por debajo del umbral inferiorT_open
.El interruptor pasa de
OPEN
aCLOSED
cuando 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
OPEN
está 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 paquete 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