Vous êtes sur la page 1sur 5

Matlab / Simulink – une introduction

» pwd

» dir

» cd ..
» cd nom_répertoire

» help
» help nom_fonction

Manipulations de base : affectation et calculs de base

» a=2 % on peut ajouter ‘;’ à la fin pour éviter l’affichage


» 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 récupérer 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’ % transposée conjugée
» V3=V2.’ % transposée
» 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)
Exécution d’un programme

» NomProg

! " # $ %
& ' $ "
()
*
if a==1,
disp(‘a est égal à 1’) % affichage
else
disp(‘a est différent de 1’)
end
* +
for ind=1:10,
disp([‘ind est égal à ‘ num2str(ind)])
end

Programmation d’une fonction

, # %-&
% essai de fonction à deux paramètres d’entrée et deux
paramètres de sortie
function [y1,y2]=essai_f1(u1,u2)
y1=u1+u2;
y2=u1*u2;
. % /0
* %
» [yy1,yy2]=essai_f1(1,2)
.
% essai de fonction à paramètres vectoriels
function y=essai_f2(u)
u1=u(1); u2=u(2);
y1=u1+u2;
y2=u1*u2;
y=[y1;y2];
. % /1 %
» uu=[1;2]
» yy=essai_f2(uu)
2 3 +
-

1 MATLAB 1
Function
u x
MATLAB Fcn

Simulation, sous Simulink, d’un système dynamique avec une S-function

4 .- $ . 3$ &5
" 6 &5
"
= (1 + 0) 1

1 system 1
u x
S-Function

2 5 3 +.-

function [sys,x0]=model(t,x,u,flag),

if flag==0, % Initialisation
sys=[1 0 1 1 0 0]; % nbre d’états continus, nbre d’états discrets,
nbre de sorties, nbre d’entrées
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
2 5 7 . 3

1
1 1
s
u x
Integrator
Product

Gain

Constant
Exemple de S-fonction discrète

78 70
& 7 5
- & "
, 9 2&
% Modèle d'un rapport-cyclique
%
% u = alpha (entrée)
% x = [Etat, alpha0]
% y = Etat
% Etat = 1 : niveau haut
% Etat = 0 : niveau bas
% alpha0 : valeur du rapport-cyclique à t(k)
% sauvegardée 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 entrée
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
4
t
Clock
To Workspace

0.7 RappCycl C

alpha rapport-cyclique To Workspace1

' 5 5 : .- $ %
%

Vous aimerez peut-être aussi