Rappresentazione con Scilab

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59
0
voti

[1] Rappresentazione con Scilab

Messaggioda Foto Utentesimo85 » 7 apr 2015, 22:14

Un saluto a tutti O_/

Mi è richiesto di rappresentare con Scilab la trasformata inversa della funzione:

\begin{aligned}
F(s) & = \left ( {4.8356\cdot10^{10} + 10638.30s  \over s^3 + 4549709.865s^2 + 2.901353965\cdot10^{10}s} \right ) \\
& = \underbrace{{1.6667 \over s}}_{\text{Forced response}} + \underbrace{{1.0996\cdot 10^{-6} \over s + 4543323.893} - {1.6667 \over s + 6385.97}}_{\text{Natural response}}\\
\mathcal{L}^{-1}[F(s)] & =F(t)\\
& = 1.6667 + 1.0996\cdot 10^{-6}\text{e}^{-4543323.893 t } - 1.6667\text e^{-6385.97 t}\\
F(100 \mu) &= 0.78654247
\end{aligned}

Per un tempo da 1 ns a 5ms con passi 100 ns.

Ho provato con il codice seguente:

Codice: Seleziona tutto

s=poly(0,'s');
N = [5*(0.22*s + 1000^2)/(1.034e-4)]
D = [s^3 + 4549709.865*s^2 + 2.901353965e10*s]
H = syslin('c',N./D);
t = (1e-9:100e-9:0.005);
plot2d([t',t'],[(csim('step',t,tf2ss(H)))',0*t'])


E l'immagine ottenuta è questa:

scilab.png
scilab.png (11.4 KiB) Visto 1134 volte


Forse sarà ora che mi compri un paio di occhiali nuovi, ma secondo me MATLAB dà un risultato più coerente con i calcoli fatti:

matlab.png
matlab.png (11.59 KiB) Visto 1134 volte


Codice: Seleziona tutto

syms s;
F = (5*(1.1*s + 1000^2)/(1.034e-4))/(s^3 + 4549709.865*s^2 + 2.901353965e10*s);
t = (0:100e-9:100e-6);
ezplot(ilaplace(F), [0,0.0001]), axis square, grid on, xlabel('time (t)');


Dove sbaglio con Scilab ?

Ringrazio in anticipo chi avrá voglia di aiutarmi.

O_/

Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59
0
voti

[2] Re: Rappresentazione con Scilab

Messaggioda Foto Utentesimo85 » 8 apr 2015, 1:47

so che non interessa a nessuno ma nel codice di matlab qui sopra c'era un coefficiente sbagliato al denominatore.

Codice: Seleziona tutto

syms s;
F = (5*(0.22*s + 1000^2)/(1.034e-4))/(s^3 + 4549709.865*s^2 + 2.901353965e10*s);
ezplot(ilaplace(F), [0,0.0001]), axis square, grid on, xlabel('time (t)');


Ad ogni modo l'espressione in Scilab e corretta e non riesco a risolvere.

Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59
0
voti

[3] Re: Rappresentazione con Scilab

Messaggioda Foto Utentesimo85 » 8 apr 2015, 2:26

Per il momento ho risolto direttamente introducendo l'antitrasformata, cosi:

Codice: Seleziona tutto

t=1e-9:100e-9:100e-6;
f = 1.66667+1.09963*10^(-6) *exp(-4.54332*10^6*t)-1.66667 *exp(-6385.97*t);
plot2d(t,f,1);


Ma l'intervallo di tempo non è quello richiesto... E se lo imposto cosi:

Codice: Seleziona tutto

t = (1e-9:100e-9:0.005);


Scilab da errore sul terzo argomento di plot2d.. Mah, devo rivedermi l'help della funzione plot2d.
Ma non alle 2:30 di mattina..

#-o


Torna a “Programmi applicativi: simulatori, CAD ed altro”