Matlab o Octave o che altro?
0
voti
[22] Re: Matlab o Octave o che altro?
Praticamente voglio definire la funzione:

Poi successivamente inseriro un polo ed un guadagno ma per cominciare è questa che mi interessa.
Dunque ho fatto:
s=%s;
funz=exp(-0.02*s)
e qui mi dice: function non defined for given argument type (s)

Poi successivamente inseriro un polo ed un guadagno ma per cominciare è questa che mi interessa.
Dunque ho fatto:
s=%s;
funz=exp(-0.02*s)
e qui mi dice: function non defined for given argument type (s)
0
voti
[23] Re: Matlab o Octave o che altro?
Come definisci 's' è un polinomio. In Scilab la funzione esponenziale vuole come parametro un numero o un vettore o una matrice, non un polinomio.
Devi approssimare la funzione esponenziale, per esempio con l'aprrossimazione di Padé:
http://it.wikipedia.org/wiki/Approssima ... ponenziale
qui spiega come usare questa approssimazione con Scilab:
http://tinyurl.com/34brl9o
Devi approssimare la funzione esponenziale, per esempio con l'aprrossimazione di Padé:
http://it.wikipedia.org/wiki/Approssima ... ponenziale
qui spiega come usare questa approssimazione con Scilab:
http://tinyurl.com/34brl9o
0
voti
[24] Re: Matlab o Octave o che altro?
Grazie non conoscevo Prade,ho fatto cosi,dovrebbe essere corretto:
Penso vada bene , no?
Grazie ancora
Codice: Seleziona tutto
function P = Pade(delay,order)
// Pade approximant of order order for exp(-delay.s)
s=poly(0,'s');
Num = (-delay*s+2*order)^order;
Den = ( delay*s+2*order)^order;
P = Num/Den;
endfunction Codice: Seleziona tutto
ritardo=0.002 //Qui ci metto il ritardo che mi interessa
funzione_ritardo = Pade(ritardo,20); //Approsimazione ordine 20
s=%s;
H=1/s //Qui metto la funzione ora ho messo questa per semplicità
finito = syslin('c',H*P20); //Funzione finale
bode(finito)
nyquist(finito);
Penso vada bene , no?
Grazie ancora
0
voti
[25] Re: Matlab o Octave o che altro?
dursino ha scritto:Penso vada bene
Per me si, ho ripulito il codice per renderlo un pochino più chiaro:
Codice: Seleziona tutto
// Pade approximant of order for exp(-delay*s)
function P = Pade(s, delay, order)
Num = (-delay*s+2*order)^order;
Den = ( delay*s+2*order)^order;
P = Num/Den;
endfunction
s = %s;
ritardo = 2.E-3;
H = Pade(s, ritardo, 20)/s; // H = exp(-ritardo*s)/s
s = syslin('c', H);
scf(0);
clf();
bode(s, 10, 1.E6, 1.E-2);
scf(1);
clf();
nyquist(s);0
voti
[30] Re: Matlab o Octave o che altro?
dursino ha scritto:Tecnicamente nessuno:
-270=90
Ok lo avevo immaginato, una lettura troppo veloce del risultato poteva ingannare e considerarlo un errore.
Un polo di molteplicità 3 nell'origine ha uno sfasamento di 3*(-90°) = -270°, ma questo angolo coincide con un angolo di -270° + 360° = 90°, il valore riportato correttamente nel grafico della fase.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




??