Bonjour,
J'ai un système d'équations différentielles à intégrer, j'utilise donc ode45.
C'est un observateur de type luenberger pour un aop du 1er ordre.
Quand je simule la sortie de l'aop dans la fonction à intégrer, pas de soucis, tout fonctionne, mais je dois utiliser la sortie réelle que je récupère via Labview, gros soucis!
Je mets le code que j'utilise pour plus de simplicité.

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
32
33
34
35
36
37
38
function ds=observateur(x,S)
u=1;
teta=5;
r=1;
Q=zeros(3);
S=zeros(13,1);
ds=zeros(13,1);
A=[0 -S(13,1) u;0 0 0;0 0 0];
 
 
ds11=-S(1,1)*teta+r;
ds12=-S(2,1)*teta-A(1,2)*S(1,1);
ds13=-S(3,1)*teta-A(1,3)*S(1,1);
ds22=-S(5,1)*teta-2*A(1,2)*S(2,1);
ds23=-S(6,1)*teta-A(1,2)*S(3,1)-A(1,3)*S(2,1);
ds33=-S(9,1)*teta-A(1,3)*S(3,1)-A(1,3)*S(3,1);
dx1chap=A(1,2)*S(11,1)+A(1,3)*S(12,1)-r*Q(1,1)*(S(10,1)-S(13,1));
dx2chap=-Q(1,2)*(S(10,1)-S(13,1));
dx3chap=-Q(1,3)*(S(10,1)-S(13,1));
 
 
P=[S(1,1) S(2,1) S(3,1);S(4,1) S(5,1) S(6,1);S(7,1) S(8,1) S(9,1)];
Q=inv(P);
 
 
ds(1,1)=ds11;
ds(2,1)=ds12;
ds(3,1)=ds13;
ds(4,1)=ds12;
ds(5,1)=ds22;
ds(6,1)=ds23;
ds(7,1)=ds13;
ds(8,1)=ds23;
ds(9,1)=ds33;
ds(10,1)=dx1chap;
ds(11,1)=dx2chap;
ds(12,1)=dx3chap;
ds(13,1)=x;