Pagina 1 di 7
Impostare equazioni su ODE45
Inviato: 19 mar 2018, 0:06
da nandotp
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:


dove

e

sono le costanti di attenuazioni che supponiamo per semplificità pari a 1 (in realtà sarebbe corretto impostarli a 0,2 dB/km),

è il coefficiente di guadagno Raman che normalmente assume un valore dI

.

e

sono chiamate Intensità del segnale e intensità di pompa, attraverso delle semplificazioni otteniamo le seguenti quantità:

, l'intensità si misura in
Il valore L è la lunghezza della fibra ottica (scelta in maniera arbitraria e Z posizione generica),

è l'intensità iniziale di pompa (scelta uin maniera arbitraria nell'ordine

)


è 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.
Re: Impostare equazioni su ODE45
Inviato: 19 mar 2018, 10:41
da dimaios
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".
Re: Impostare equazioni su ODE45
Inviato: 19 mar 2018, 12:59
da nandotp
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.
Re: Impostare equazioni su ODE45
Inviato: 20 mar 2018, 10:40
da dimaios
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.
Re: Impostare equazioni su ODE45
Inviato: 28 mar 2018, 16:42
da nandotp
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.
Re: Impostare equazioni su ODE45
Inviato: 28 mar 2018, 18:19
da nandotp
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.
Re: Impostare equazioni su ODE45
Inviato: 1 apr 2018, 15:42
da nandotp
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.
Re: Impostare equazioni su ODE45
Inviato: 1 apr 2018, 16:51
da fpalone
Salve
nandotp,
difficile trovare (sotto Pasqua) qualcuno che abbia confidenza con il solutore ODE 45 e con l'effetto Raman...
Oltre a quanto già suggeritoti da
dimaios 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.
Re: Impostare equazioni su ODE45
Inviato: 1 apr 2018, 18:34
da nandotp
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.
Re: Impostare equazioni su ODE45
Inviato: 2 apr 2018, 20:09
da dimaios
fpalone ha scritto:Salve
nandotp,
difficile trovare (sotto Pasqua) qualcuno che abbia confidenza con il solutore ODE 45 e con l'effetto Raman...
fpalone il problema non è nel solutore
ode45 e neanche nelle equazioni dell'effetto
Raman solo che
nandotp 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.
