Pagina 1 di 1

Identificazione numerica e Matlab

Inviato: 22 lug 2009, 13:10
da oliverio1234
Salve,
dato il processo fisico:

G(s)=5/(1+s)(1+2s)

sto cercando di tarare il modello matematico:
k/1+s(tau)

con la tecnica dell'identificazione Numerica.
Sto usando la funzione:

function out=emq(P)

global t;
global y;
global th;

k=P(1);
tau=P(2);


num=k;
den=[tau 1];
G0=tf(num,den)
ym=step(G0,t)


emq=0;

for h=1:length(th)
emq=emq+abs(interp1(t,y,th(h))-interp1(t,ym,th(h)))^2;
end

out=emq;

disp('***********');
disp('K='),k
disp('tau='),tau
disp('errore medio quadratico='),out
disp('*********');
pause(0.1);

##############

ed il listato per richiamare la funzione:

num=5;
den=conv([1 1],[2 1]);

th=1:1:10;
X = fminsearch('emq',[1 1])

P=X;
k=P(1);
tau=P(2);


num=k;
den=[tau 1];
G0=tf(num,den)
ym=step(G0,t)

plot(t,y);
hold on;
plot(t,ym,'r');


####

Ma ottengo questo andamento per la funzione:

Immagine

In blu ho l'andamento del processo fisico in rosso del modello matematico, ciò che non mi convince è che i due andamenti si discostano molto.
Grazie a chi mi aiuterà :)

Re: Identificazione numerica e Matlab

Inviato: 22 lug 2009, 17:11
da serbring
perché non provi ad usare il system idetification toolbox?

Re: Identificazione numerica e Matlab

Inviato: 22 lug 2009, 17:30
da oliverio1234
Il prof ha detto di creare una funzione #-o

Re: Identificazione numerica e Matlab

Inviato: 23 lug 2009, 0:15
da serbring
oliverio1234 ha scritto:Il prof ha detto di creare una funzione #-o


perché non provi ad usare il comando arx?

Re: Identificazione numerica e Matlab

Inviato: 24 lug 2009, 11:15
da electrofabio
@Oliverio1234: studi Ing Elettronica a Reggio Calabria... ??