Impostare equazioni su ODE45

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 Utentenandotp
12 6
Frequentatore
Frequentatore
Messaggi: 138
Iscritto il: 24 ago 2016, 10:57
Contatta:
0
voti

[1] Impostare equazioni su ODE45

Messaggioda Foto Utentenandotp » 19 mar 2018, 0:06

Buonasera a tutti.
Ho bisogno di un piccolo aiuto riguardante il seguente argomento:
Io ho un sistema di equazioni differenziali che descrivono l'andamento della potenza di un generico segnale d'amplificare al variare della distanza in funzione della potenza di pompa iniettata (E' un argomento di ottica non lineare che usa l'effetto Raman). Io devo risolvere numericamente attraverso la funzione ode45 su Matlab ma non riesco a capire bene come impostare il codice. L'equazioni sono le seguenti:

\frac{\mathrm{d}Is(z) }{\mathrm{d} z}=gr*Ip(z)*Is(z) -\alpha s*Is

\frac{\mathrm{d}Ip(z) }{\mathrm{d} z}=\frac{fp}{fs}*gr*Ip(z)*Is (z)+\alpha p*Ip(z)

dove \alpha p e \alpha s sono le costanti di attenuazioni che supponiamo per semplificità pari a 1 (in realtà sarebbe corretto impostarli a 0,2 dB/km), gr è il coefficiente di guadagno Raman che normalmente assume un valore dI gr=10^{-13}\frac{m}{W}.
Is e Ip sono chiamate Intensità del segnale e intensità di pompa, attraverso delle semplificazioni otteniamo le seguenti quantità:

Ip(z)=I_{p_{0}}*e^{-\alpha p(L-Z)} , l'intensità si misura in I=\frac{W}{m^{2}}
Il valore L è la lunghezza della fibra ottica (scelta in maniera arbitraria e Z posizione generica), I_{p_{0}} è l'intensità iniziale di pompa (scelta uin maniera arbitraria nell'ordine \frac{mW}{m^{2}} )
Is(z)=Is_{0}*e^{gr*Ip_{o}*e^{\frac{-\alpha p*L}{\alpha p}}}*
e^{\alpha p*Z-1}-\alpha s*Z
Iso è l'intenstà d'ingresso del segnale (si sceglie un range di valori).
Moltiplicando tutte l'equazioni per L'Area Efficace otteniamo l'andamento della potenza sia del segnale che della pompa.
Allego il pdf che spiega tutto quello che ho detto prima, in particolare io dovrei ottenere il grafico a pag 23.
Grazie Anticipatamente.
Allegati
Raman scattering.rar
Questo è file che spiega tutto
(829.29 KiB) Scaricato 239 volte

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
2
voti

[2] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentedimaios » 19 mar 2018, 10:41

Non capisco quale sia il dubbio implementativo.
Basta replicare quando descritto in questo esempio sul sito ufficiale della Mathworks.
Guarda la parte "The van der Pol equation is a second order ODE".
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto Utentenandotp
12 6
Frequentatore
Frequentatore
Messaggi: 138
Iscritto il: 24 ago 2016, 10:57
Contatta:
0
voti

[3] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentenandotp » 19 mar 2018, 12:59

Grazie, comunque le due equazioni non sono del secondo ordine. Il mio dubbio era su come adattare il mio caso in base alle mie equazioni.

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
1
voti

[4] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentedimaios » 20 mar 2018, 10:40

Non capisco l'obiezione.
Nell'esempio che ti ho indicato una ODE del secondo ordine viene trasformata in un sistema di ODE del primo ordine che è simile al caso che devi trattare.
Ingegneria : alternativa intelligente alla droga.

Avatar utente
Foto Utentenandotp
12 6
Frequentatore
Frequentatore
Messaggi: 138
Iscritto il: 24 ago 2016, 10:57
Contatta:
0
voti

[5] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentenandotp » 28 mar 2018, 16:42

Buon pomeriggio a tutti.
Ho provato a scrivere il codice Matlab ma non capisco dove sbaglio, posto i seguenti script:

%SOLUZIONE NUMERICA

y0=[P_s0 P_p0]; %condizioni iniziali P_s0=Ps(Z=0)=1mW ; P_p0=1W potenza pompa iniziale
[z,y]=ode45('Raman',span,y0);
figure
plot(z,10*log10(y(:,1)./y0(1)),'r',z,10*log10(y(:,2)./y0(2)),'b')
legend('Potenza segnale','Potenza pompa')
xlabel('Lunghezza [m]')
ylabel('Potenza [dB]')
title('Andamento della potenza del segnale in fibra')
grid on



Dove la funzione Raman è la seguente:
P.s=i segni della seconda equazione sono opposti perché sto trattando il caso co-propagante per primo.

function dydz=Raman(z,y)
%Sistema di equazioni caso co-propagante

dydz=zeros(2,1);

%y(1)==Pp Intensità del segnale in ingresso
%y(2)==Ps Intensità della pompa
%dydz(1)=y'(1)=Is'=dIs/dz
%dydz(2)=y'(2)=Ip'=dIp/dz

g_r=10.^-13; %coefficiente Raman [m/W]
Lambda_p=1550*10^(-9); %lunghezza d'onda pompa [nm]
Lambda_s=1450*10^(-9);%lunghezza d'onda segnale [nm]
Lambda_ratio=Lambda_p/Lambda_s;

alpha_s=0.2 %attenuazione [dB/km]
alpha_p=alpha_s;
dydz(1)=g_r.*y(1).*y(2)-alpha_s.*y(2);
dydz(2)=-Lambda_ratio.*g_r.*y(1).*y(2)-alpha_p.*y(1);

end

Vengono fuori dei grafici insensati e vorrei capire dove sbaglio. Allego i grafici ottenuti e quelli che dovrei ottenere.
Allegati
potenza del segnale desiderata.png
potenza pompa vs potenza segnale.jpg

Avatar utente
Foto Utentenandotp
12 6
Frequentatore
Frequentatore
Messaggi: 138
Iscritto il: 24 ago 2016, 10:57
Contatta:
0
voti

[6] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentenandotp » 28 mar 2018, 18:19

Rettifica del primo post: In sintesi il professore mi chiede di comparare le due soluzioni cioè quella ottenuta nella slide (in maniera approssimata ) e quella ottenuta con l'integrazione numerica tramite ode45 che devono coincidere . In particolare il prof interessa la prima configurazione (co-propagante) e non la seconda come ho spiegato in precedenza. Il calcolo delle soluzioni deve essere assunto considerando il sistema completo (con le perdite di 0.2 dB/km ).

Allego il file completo del main e della funzione Raman.
Allegati
raman.rar
(1.59 KiB) Scaricato 118 volte

Avatar utente
Foto Utentenandotp
12 6
Frequentatore
Frequentatore
Messaggi: 138
Iscritto il: 24 ago 2016, 10:57
Contatta:
0
voti

[7] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentenandotp » 1 apr 2018, 15:42

Buona Pasqua a tutti.
Per favore potete darmi un aiutino?. Più che altro sono bloccato e non riesco ad andare avanti. Magari mi sta sfuggendo qualcosa, non sono un 'mostro' in matlab, faccio quello che posso.

Avatar utente
Foto Utentefpalone
21,0k 6 8 12
G.Master EY
G.Master EY
Messaggi: 3549
Iscritto il: 26 dic 2007, 16:46
Località: roma
0
voti

[8] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentefpalone » 1 apr 2018, 16:51

Salve Foto Utentenandotp,
difficile trovare (sotto Pasqua) qualcuno che abbia confidenza con il solutore ODE 45 e con l'effetto Raman...
Oltre a quanto già suggeritoti da Foto Utentedimaios posso solo consigliarti di partire con le cose semplici, se non hai confidenza con Matlab.
1) prova ad utilizzare il risolutore ODE45 con una funzione più semplice, per prendere confidenza con lo strumento
2) prova ad integrare numericamente, con un algoritmo molto più semplice (integrazione rettangolare o trapeizioidale) ma scritto da te, il sistema di equazioni che ti interessa, per capire se il problema è nelle equazioni o nel metodo.

Solo dopo prova ad usare il solutore ode45 di Matlab sul sistema che ti interessa.

Avatar utente
Foto Utentenandotp
12 6
Frequentatore
Frequentatore
Messaggi: 138
Iscritto il: 24 ago 2016, 10:57
Contatta:
0
voti

[9] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentenandotp » 1 apr 2018, 18:34

Grazie fpalone, in effetti oggi è Pasqua. Siccome ha già qualche settimana che cerco di risolvere questo problema. Io uso matlab ma questa funzione non l'ho mai usata, io ho provato con soluzioni semplici, anche prese dall'help. Non è un problema di equazioni perché sono quelle, ho fatto tanti tentativi. Allego le varie prove fatte, ma i risultati sono diversi.
Allegati
prova3.rar
(539 Byte) Scaricato 118 volte
prova2.rar
(620 Byte) Scaricato 110 volte

Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes
0
voti

[10] Re: Impostare equazioni su ODE45

Messaggioda Foto Utentedimaios » 2 apr 2018, 20:09

fpalone ha scritto:Salve Foto Utentenandotp,
difficile trovare (sotto Pasqua) qualcuno che abbia confidenza con il solutore ODE 45 e con l'effetto Raman...


Foto Utentefpalone il problema non è nel solutore ode45 e neanche nelle equazioni dell'effetto Raman solo che Foto Utentenandotp ha scritto il codice in maniera compulsiva per cui ha inserito due errori grossolani .... in pratica l'algoritmo non convergerà mai perché non è corretto.

Riguarda bene le equazioni che hai scritto e le condizioni iniziali che hai impostato.
Ti sembrano corrette ? :?

Anche alcuni valori delle costanti non riesco a capire se sono oggettivamente giusti.
Consultando vari libri sull'argomento ho notato delle variazioni nei parametri che però non pregiudicano la convergenza ma solo i valori asintotici.
Comunque questo è un discorso secondario per ora.
Metti a posto le equazioni differenziali. :!:
Ingegneria : alternativa intelligente alla droga.


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