Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Soluzione sistema non trovata MATLAB

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

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[1] Soluzione sistema non trovata MATLAB

Messaggioda Foto Utentep4ngm4n » 13 apr 2012, 19:53

Salve, sono ancora qui a chiedere il vostro aiuto.
Ho un programma che risolve un sistema non lineare. Lanciandolo ho l'output:

"Optimizer appears to be converging to a point which is not a root.
Norm of relative change in X is less than max(options.TolX^2,eps) but
sum-of-squares of function values is greater than or equal to sqrt(options.TolFun)
Try again with a new starting guess".

A voi sarà ben noto. Quali sono i parametri che mi consigliate di variare per far convergere ad una soluzione?Vi preannuncio che sui valori iniziali non posso fare granché.
Quali sono le tolleranze che mi conviene alzare (TolFun,TolX,...)??
Grazie per l'aiuto.
Avatar utente
Foto Utentep4ngm4n
20 5
New entry
New entry
 
Messaggi: 97
Iscritto il: 21 gen 2009, 18:47

1
voti

[2] Re: Soluzione sistema non trovata MATLAB

Messaggioda Foto UtenteRenzoDF » 13 apr 2012, 21:45

p4ngm4n ha scritto:...Ho un programma che risolve un sistema non lineare. Lanciandolo ho l'output...

Quale programma ? Quale sistema?
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[3] Re: Soluzione sistema non trovata MATLAB

Messaggioda Foto Utentep4ngm4n » 14 apr 2012, 10:54

Eccolo:

Codice: Seleziona tutto
function [fu]=equaz_v(x,z6)
Iph=x(1);
I0=x(2);
VT=x(3);
Rs=x(4);
Rsh=x(5);

ns=1;
Isc=7.61;
Voc=0.61;
Vmpp=0.51;
Impp=7.11;


Rz=zeros(6,6);
Rz(1,1)=1e3;Rz(2,2)=1e3;Rz(3,3)=1e3;Rz(4,4)=1e3;Rz(5,5)=1e2;Rz(6,6)=1e2;
zh(1,1)=x(1)-x(2)*(exp((x(4)*Isc)/(ns*x(3)))-1)-x(4)*Isc/x(5)-Isc;
zh(2,1)=x(1)-x(2)*(exp((Vmpp+x(4)*Impp)/(ns*x(3)))-1)-(Vmpp+x(4)*Impp)/x(5)-Impp;
zh(3,1)=x(1)-x(2)*(exp(Voc/(ns*x(3)))-1)-Voc/x(5);
zh(4,1)=x(1)-x(2)*(exp((Vmpp+x(4)*Impp)/(ns*x(3))))-Vmpp*x(2)/(ns*x(3))*(exp((Vmpp+x(4)*Impp)/(ns*x(3))))+x(2)-2*Vmpp/x(5)-x(4)*Impp/x(5);
zh(5,1)=x(5)-z6;
fu=zh;







Codice: Seleziona tutto
%programma stima parametri pv
clear all

% mursh=0.25;varrsh=0.001;
% alfarsh=mursh*(mursh*(1-mursh)/varrsh-1);
%
% betarsh=(1-mursh)*(mursh*(1-mursh)/varrsh-1);
%
%
%
% Rsh=1000*betarnd(alfarsh,betarsh,10000,1)+900

Rsh=1000 + 100*randn(1000,1);
for ii=1:1000
    ii
    z6=Rsh(ii);
    x0=[7.61,.2e-9,0.0200,0.20,1100];

    options = optimset('Display','iter','LargeScale','off','MaxFunEvals',1e6,'Diagnostic','on','Maxiter',1e6,'MaxPCGiter',400,'TolPCG',1,'TolCon',1e-3,'TolFun',1e-3,'TolX',1e-3);

[x,fval] = fsolve(@equaz_v,x0,options,z6);
x1r(ii)=x(1);
x2r(ii)=x(2);
x3r(ii)=x(3);
x4r(ii)=x(4);
x5r(ii)=x(5);
x0=x;
end
Avatar utente
Foto Utentep4ngm4n
20 5
New entry
New entry
 
Messaggi: 97
Iscritto il: 21 gen 2009, 18:47

4
voti

[4] Re: Soluzione sistema non trovata MATLAB

Messaggioda Foto Utentedimaios » 14 apr 2012, 11:34

Foto Utentep4ngm4n, purtroppo riscontro che il thread non è servito a molto in termini didattici.
Quando si espone un problema di questo tipo bisogna :

[1] Illustrare il problema ( schema del circuito o altro - possibilmente FidoCadJ )
[2] Scrivere il sistema di equazioni che si vuole risolvere ( LaTex )
[3] Criterio di scelta della condizione iniziale

Se non segui questa procedura l'errore per quanto mi riguarda potrebbe essere ovunque.
L'algoritmo risolutivo è solo l'ultimo step da controllare ma prima bisogna vedere se le equazioni sono corrette.
Se per esempio nello script Matlab hai sbagliato un segno come pretendi che le persone possano individuare l'eventuale bug ?

Il post [2] di Foto UtenteRenzoDF del presente thread rispecchia quanto ti ha già chiesto nel post [2] del precedente.
Ti sembra un atteggiamento corretto ?
Ingegneria : alternativa intelligente alla droga.
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

[5] Re: Soluzione sistema non trovata MATLAB

Messaggioda Foto Utentep4ngm4n » 14 apr 2012, 12:41

Chiedo umilmente scusa, il mio non era un atteggiamento irrispettoso.
Volutamente, avevo posto soltanto la domanda cercando di renderla quanto più generale possibile, per poter operare da solo sul codice.

Mi sembra di capire che non esiste una scelta ottimale per raggiungere la convergenza, ma bisogna valutare caso per caso?

In questo caso, a differenza del mio precedente post, dove provavo a svolgere tutto, dal circuito, alle equazioni per giungere al programma, ho già questo codice e mi serve farlo girare.

Spero di aver spiegato perché non ho seguito tutte le buone norme del forum.

Detto ciò, anche se so che non è l'approccio giusto, quali parametri potrei provare a variare per far si da avere una soluzione?
Avatar utente
Foto Utentep4ngm4n
20 5
New entry
New entry
 
Messaggi: 97
Iscritto il: 21 gen 2009, 18:47

2
voti

[6] Re: Soluzione sistema non trovata MATLAB

Messaggioda Foto Utentedimaios » 14 apr 2012, 17:06

p4ngm4n ha scritto:Volutamente, avevo posto soltanto la domanda cercando di renderla quanto più generale possibile, per poter operare da solo sul codice.


Operando solo sul codice la rendi più particolare possibile. Partire dalle equazioni o meglio dalla fisica del problema permette di comprendere meglio diverse cose.

p4ngm4n ha scritto:Mi sembra di capire che non esiste una scelta ottimale per raggiungere la convergenza, ma bisogna valutare caso per caso?


Si. Spesso il punto più critico è quello di capire quale possa essere un punto iniziale per convergere in un minimo. Poi, che questo sia anche quello globale è un problema ancora più complesso.
La scelta ed Il setup dell'algoritmo in termini di parametri è fortemente dipendente dalla natura delle funzioni.
Anche il numero delle variabili è una discriminante nella scelta dell'algoritmo.


p4ngm4n ha scritto:In questo caso, a differenza del mio precedente post, dove provavo a svolgere tutto, dal circuito, alle equazioni per giungere al programma, ho già questo codice e mi serve farlo girare.


Da questo devo dedurre che ti hanno dato le equazioni senza lo schema del circuito elettrico e devi farlo convergere alla cieca ?


p4ngm4n ha scritto:Detto ciò, anche se so che non è l'approccio giusto, quali parametri potrei provare a variare per far si da avere una soluzione?


Se la risposta alla domanda 2 è si direi che la cosa migliore sia quella di iniziare scrivendo le equazioni a partire dal codice e cercando di vedere la dipendenza delle stesse dalle 5 variabili.

Siamo proprio sicuri che non si possa ridurre almeno a 4 ?
Quell' x(1) messo in mezzo al "mucchio" selvaggio non ti insospettisce ?

L'osservazione della regolarità e di eventuali minimi a volte può suggerire una condizione iniziale plausibile per cui fare dei grafici mirati per vedere tali dipendenze non è tempo sprecato.
Ingegneria : alternativa intelligente alla droga.
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

[7] Re: Soluzione sistema non trovata MATLAB

Messaggioda Foto Utentep4ngm4n » 14 apr 2012, 17:27

Lo schema elettrico da cui è ricavato questo modello è quello del mio post precedente.
Con alcuni valori dei parametri noti c'è convergenza, con quelli che vedete nel codice che ho postato, NO.

Purtroppo questo codice, è solo una piccola parte del mio lavoro. Non posso dedicarmi nel dettaglio, come necessario, a questo aspetto.


Ecco perché speravo di risolvere provando un po' con qualche tolleranza più alta o variando qualche altra option.
Non voglio modificare il codice, ad esemio modificando le equazioni, laddove possibile. visto che è un programma funzionante utilizzato con successo per gli stessi scopi che ho io.
Purtroppo con i valori dei parametri noti che ho io, non funziona bene.

Mi rendo conto che per Foto Utentedimaios questa possa essere una bestemmia, ma sono in questa situazione.

Provo a modificare un po' qualcosa...
Avatar utente
Foto Utentep4ngm4n
20 5
New entry
New entry
 
Messaggi: 97
Iscritto il: 21 gen 2009, 18:47


Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti