Probleme d'identification sous MatLab

Fermé
Utilisateur anonyme - 22 mars 2005 à 18:59
 nel - 11 avril 2005 à 20:53
Bonjour, j'utilise la toolbox identif de MatLab et je cherche à identifier un signal sous MatLab; sans succès.

Ci-dessous un cas d'école que j'ai voulu tester: je simule un filtre du 2nd ordre et je génère sa réponse temporelle à un échelon.
C'est ensuite ce signal temporel que je cherche à identifier sans succès.
(Programme essai_identif.m)
Quelqu'un peut-il me dire ou est l'erreur dans mon programme?
Merci!

Programme essai_identif.m:
---------------------------------

clear all;close all
% je génère mon cas d'école
n0 = [0 -150 150];
d0 = [1 120 1200];
SYS_log = tf(n0,d0);
ltiview('step',SYS_log);
zpk(SYS_log)
% Zero/pole/gain:
% -150 (s-1)
% -----------------
% (s+109) (s+11.01)

Te = 0.005;
T = [0:Te:5];
u=fix(mod([0:Te:5],1)/0.5);

Y=lsim(SYS_log,u,T);
figure;
subplot(2,1,1),plot(T,u);grid on
subplot(2,1,2),plot(T,Y);grid on % on retrouve bien la reponse du 2nd ordre simulé

% construction des données à identifier
donnee = iddata(Y,u',Te);
donnee.InputName = {'T°'};
donnee.OutputName = {'Vs'};
% identification
modele = pem(donnee(1:500));
compare(donnee(502:800),modele)% la comparaison entre mes données et le modèle idnetifé semble correcte

% les 3 lignes suivantes ne marchent pas!!
[n,d] = tfdata(modele,'v')
printsys(n,d,'z')
SYS = tf(n,d)
Yest=lsim(SYS,u,T);
figure;
subplot(2,1,1),plot(T,u);grid on
subplot(2,1,2),plot(T,Yest);grid on % on ne retrouve pas la reponse voulue!!!

2 réponses

Grosse faute d'orthographe : "domaine continu" et non pas "domène continu"
1
Normal, car le modèle identifié est un modèle discret. Si tu veux identifier ton modèle directement dans le domène continu, utilise la fonction idproc

mRef = idproc('P2Z');
m = pem(donnee,mRef)
Process model with transfer function
1+Tz*s
G(s) = K * ------------------
(1+Tp1*s)(1+Tp2*s)


with K = 0.125
Tp1 = 0.090825
Tp2 = 0.0091752
Tz = -1

Estimated using PEM from data set donnee
Loss function 1.81417e-030 and FPE 1.82873e-030
0