Beruflich Dokumente
Kultur Dokumente
=
+ =
2
1 2
1
x
system
S-Function
1
u
Ce modele pourra tre simule sous simulink dans un bloc S-Iunction` avec la Ionction
suivante sauvegardee dans model.m :
function [sys,x0]=model(t,x,u,flag),
if flag==0, % Initialisation
sys=[1 0 1 1 0 0]; % nbre dtats continus, nbre dtats discrets,
nbre de sorties, nbre dentres
x0 = 0; % valeur initiale des tats
elseif flag==1, % calcul de dx/dt
sys=(2*x+1)*u^2;
elseif flag==3, % calcul des sorties
sys=x;
else
sys=[];
end
Ce modele peut aussi tre simule directement a partir de Simulink en editant le schema
suivant :
1
x
Product
s
1
Integrator
2
Gain
1
Constant
1
u
Exemple de S-fonction discrte
Il s`agit de simuler un signal de commutation egal a 0 ou a 1 dont les Ironts montants sont
synchronises a une periode donnee en parametre et dont le Iront descendant depend de la
valeur du rapport-cyclique donne en entree.
On propose la structure suivante pour la Ionction RappCycl.m :
% Modle d'un rapport-cyclique
%
% u = alpha (entre)
% x = [Etat, alpha0]
% y = Etat
% Etat = 1 : niveau haut
% Etat = 0 : niveau bas
% alpha0 : valeur du rapport-cyclique t(k)
% sauvegarde dans x(2)
function [sys,x0]=RappCycl(t,x,u,flag,T),
if flag==0, % Initialisation
sys=[0 2 1 1 0 0]; % 0 tats continus; 2 tats discrets; 1 sortie;
1 entre
x0 = [1; 0.02];
elseif flag==2, % x(k+1)
alpha=u; Etat=x(1); alpha0=x(2);
switch Etat,
case 1, % Etat == 1
sys=[0; alpha0];
case 0, % Etat ==0
sys=[1; min([0.98 max([0.02 alpha])])];
end
elseif flag==3, % y(k)
sys=x(1);
elseif flag==4, % t(k+1)
alpha=u; Etat=x(1); alpha0=x(2);
switch Etat,
case 1,
sys=t+alpha0*T;
case 0,
sys=t+(1-alpha0)*T;
end
else
sys=[];
end
Le schema de simulation propose est le suivant :
RappCycl
rapport-cyclique
0.7
alpha
C
To Workspace1
t
To Workspace
Clock
Apres avoir speciIie le parametre T dans le bloc de la S-Ionction, eIIectuez la simulation et
observez le resultat.