PDA

View Full Version : [matlab] errore con invfreqs


serbring
20-05-2009, 15:25
Ho una serie di valori che mi descrivono il guadagno e la fase di una funzione di trasferimento. Devo calcolare la funzione di trasferimento. Premetto che ho una diverse serie di dati e che non ho problemi eccetto che in un caso, nel quale matlab mi restituisce il seguente errore:

"??? Error using ==> roots at 28
Input to ROOTS must not contain NaN or Inf.

Error in ==> invfreqs>apolystab at 205
v=roots(a);

Error in ==> invfreqs at 172
a=apolystab(a,realFlag); % Stabilizing the denominator

Error in ==> sweep at 49
[hns,hds]=invfreqs(hp,fp*2*pi,num,den,[],1000,0.0001);"

Ho notato che il problema è risolvibile o cambiando il modello (in altre parole aumentando il grado dei polinomi del numeratore e del denominatore della funzione di trasferimento) o in alternativa riducendo l'intervallo in frequenza dei dati. Cosa che in entrambi i casi non posso fare perchè il modello teorico risponde ad un ben preciso modello, e perchè devo prendere tutta la risposta in frequenza. Sapete dirmi come potrei risolvere il problema?

yashi79
20-05-2009, 22:09
se nn sbaglio tutti i problemi sono derivati proprio dal NaN= Not a Number...
Inf sta a significare che il valore che trovi è minore del minimo rappresentabile dal calcolatore...

serbring
25-05-2009, 10:13
ad occhio, si ritrova un NaN/Inf nell'inversione per cui mi sembrano problemi di stabilità numerica e di conseguenza di stabilità della funzione di traferimento...:stordita:


Pensi che ci sia un qualche modo per risolvere il problema?

serbring
25-05-2009, 11:54
ho provato ad usare il comando OE e mi ha ritornato una funzione di trasferimento. Solamente che questa è nel dominio z. C'è un comando che mi consente di passare al dominio s?