La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Commutateur avec hystérésis
Le bloc Switch de la Simscape™ Foundation Library implémente un commutateur contrôlé par un signal physique externe. Le bloc utilise une instruction if-else. Si le signal physique externe au niveau du port de contrôle est supérieur au seuil, le commutateur est fermé. Sinon, il est ouvert.
Cet exemple implémente un commutateur avec une hystérésis appliquée au niveau du seuil de commutation. L'hystérésis permet d'éviter les commutations intempestives rapides lorsque le signal de contrôle est perturbé.
Le commutateur peut fonctionner dans deux modes distincts, illustrés dans le schéma. Si le signal physique externe au niveau du port de contrôle est supérieur au seuil supérieur, le commutateur est fermé. Si le signal est inférieur au seuil inférieur, le commutateur est ouvert.

Le composant suivant implémente la logique dans le schéma au moyen d’un diagramme de modes.
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
endLe diagramme de modes m1 définit deux modes, à savoir CLOSED et OPEN. Chaque mode comporte une section equations qui répertorie l’ensemble des équations applicables. La section transitions définit les transitions entre les modes de fonctionnement sur la base des conditions du prédicat :
Le commutateur passe de
CLOSEDàOPENlorsque le signal de contrôle passe au-dessous du seuil inférieur,T_open.Le commutateur passe de
OPENàCLOSEDlorsque le signal de contrôle passe au-dessus du seuil supérieur,T_closed.
La section initial spécifie le mode de fonctionnement initial sur la base d’une condition du prédicat :
Si le prédicat se vérifie (autrement dit, si la valeur du paramètre Initial Mode est inférieure ou égale à 0), le mode
OPENest actif au début de la simulation.Si le prédicat ne se vérifie pas, le mode
CLOSED(premier mode répertorié dans la sectionmodes) est actif au début de la simulation.
Remarque
Le paramètre Initial Mode utilise une énumération :
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
Pour que le composant fonctionne conformément à la description, cette énumération doit figurer dans un fichier switching.m distinct. Le fichier peut se trouver dans le répertoire MATLAB® ou dans un namespace importé dans le composant. En règle générale, les énumérations sont très utiles dans les diagrammes de modes. En effet, elles permettent de spécifier un ensemble discret de valeurs de paramètres acceptables. Pour plus d’informations, consultez la rubrique Enumerations.
Pour vérifier le comportement correct du composant, déployez-le dans un bloc Simscape Component. Créez un modèle de test simple conformément aux indications, dans lequel tous les blocs utiliseront les valeurs de paramètres par défaut.


Simulez le modèle avec les valeurs par défaut.

La valeur du paramètre Initial Mode est Switch is open. Cette valeur énumérée est évaluée à 0, ce qui signifie que le prédicat de la section initial se vérifie. Par conséquent, au début de la simulation, le commutateur est ouvert et aucun courant ne traverse la résistance R1. Lorsque la valeur du signal de contrôle atteint 0,5 (valeur du paramètre Upper threshold), le commutateur se ferme et le courant traversant le branchement, sur la base des autres valeurs de paramètre, est de 1A. Lorsque le signal de contrôle passe au-dessous de 0 (valeur du paramètre Lower threshold), le commutateur s’ouvre.
Définissez à présent la valeur du paramètre Initial Mode sur Switch is closed et simulez le modèle. La valeur énumérée est évaluée à 1. La condition du prédicat de la section initial ne se vérifie plus. Par conséquent, le premier mode répertorié dans la section modes est actif. Au début de la simulation, le commutateur est fermé. Il demeure fermé jusqu’à ce que le signal de contrôle passe au-dessous de 0.

Voir aussi
modecharts | modes | transitions | initial