Sie sind auf Seite 1von 5

Matlab / Simulink une introduction

Pour connatre le repertoire courrant


pwd
Pour lister le contenu d`un repertoire
dir
Pour changer de repertoire courrant
cd ..
cd nom_rpertoire
Pour demander de l`aide :
help
help nom_fonction
Manipulations de base : affectation et calculs de base
a=2 % on peut ajouter ; la fin pour viter laffichage
z1=1+j % j des complexes
z2=2*i % i=j
U=[2;3] % vecteur colonne
V=[4 5] % vecteur ligne
M=[1,2;3,4] % matrice
m12=M(1,2) % pour rcuprer le terme ligne 1, colonne 2
J=U*V % multiplication
V2=1:5 % vecteur ligne des entiers de 1 5
V2=0:0.1:0.8 % vecteur ligne des nombres de 0 0.8 avec un
pas de 0.1
V3=V2 % transpose conjuge
V3=V2. % transpose
J=U.*V % multiplication terme terme
Trac de courbes
t=linspace(0,2*pi,50) % pi=3.14
x=20*sin(t)
plot(t,x)
Excution dun programme
Des commandes peuvent tre regroupee dans un Iichier texte NomProg.m et execute sous
Matlab en appelant le nom du programme :
NomProg
Il vous est Iortement conseille de taper vos commandes dans un Iichier et de l`executer
ensuite plutt que de les taper sous Matlab ; en eIIet, vous pouvez alors sauvegarder votre
travail et le reemployer. A titre d`exemple, Iaites un programme qui vous trace la courbe
sin(x).
Un programme peut contenir des conditions :
if a==1,
disp(a est gal 1) % affichage
else
disp(a est diffrent de 1)
end
Un programme peut aussi comporter des boucles Ior`
for ind=1:10,
disp([ind est gal num2str(ind)])
end
Programmation dune fonction
Ouvrir un Iichier texte ; placez-y le script suivant :
% essai de fonction deux paramtres dentre et deux
paramtres de sortie
function [y1,y2]=essai_f1(u1,u2)
y1=u1+u2;
y2=u1*u2;
Sauvegardez la Ionction dans l`espace de travail sous le nom essaiI1.m.
Utilisez la Ionction :
[yy1,yy2]=essai_f1(1,2)
Second essai : Ionction vectorielle
% essai de fonction paramtres vectoriels
function y=essai_f2(u)
u1=u(1); u2=u(2);
y1=u1+u2;
y2=u1*u2;
y=[y1;y2];
Sauvegardez sous essaiI2.m et lancez :
uu=[1;2]
yy=essai_f2(uu)
Cette Ionction peut aussi tre utilisee dans une simulation sous simulink dans un bloc Matlab
Iunction` comme ci-dessous :

1
x
MATLAB
Function
MATLAB Fcn
1
u

Simulation, sous Simulink, dun systme dynamique avec une S-function
Les S-Ionctions permettent, sous Simulink, la simulation de systemes representes par des
equations d`etat avec des etats continus et/ou discrets. Prenons l`exemple d`un systeme
continu dont les equations sont :
( )

=
+ =


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.

Das könnte Ihnen auch gefallen