Bonsoir,
J'ai simulé un système LPV de premier ordre sur Matlab mais il faut généraliser le code pour un ordre quelconque n.
Voici le code pour le système de premier orde:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 % clear all close all clc t=ysim.time; N=length(t); p=sin(t); h=0.01; np=1; a=[1 0.2]; u=ones(N,1); f=[]; for index=0:np f(index+1,: )=p.^index; end A=a*f; ylpv(1)=0; for k=2:N Hc=tf(1,[1 A(k)]); Hd=c2d(Hc,h); [numd,dend]=tfdata(Hd,'v'); b1=numd(2); a1=dend(2); % y=lsim(H,u,t); ylpv(k)=-a1*ylpv(k-1)+b1*u(k); end figure plot(t,ylpv)
Partager