WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Probleme mit lsqcurvefit

 

Zappl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 14:40     Titel: Probleme mit lsqcurvefit
  Antworten mit Zitat      
Hallo,

folgende Problemstellung: möchte aus einer gemessenen Solarzellen-KL 6 Parameter rausbekommen um diese später in einer Simulation weiter zu verarbeiten.
Dazu benutze ich folgendes m.-File, welches ich hier im Forum in ähnlicher Art gefunden habe. Jedoch wurde das Problem dort damals auch leider nicht gelöst..

Code:

 
function F=myfun(x,U,I)
% U=x-Werte
% I=y-Werte
e=1.60217733e-19;       % Elementarladung in As
k=1.380658e-23;         % Boltzmann-Konstante in J/K
Tt=273.15+31.2;%T(1);   % absolute Temperatur in K
Ut=((k*Tt)/e);  
[U,I]=textread('cell.dat','%f %f');

%x=[Iph Rs Is1 Is2 Rp m1 m2]
%   1    2  3   4   5  6  7
F=x(1)-x(3)*(exp((U+x(2)*I)/(x(6)*Ut))-1)-x(4)*(exp((U+x(2)*I)/(x(7)*Ut))-1)-(U+x(2)*I)/(x(5))-I;
 
function KL_fit(U,I)
%x=  [ Iph           Rs        Ids          Irs     Rp  m1  m2]
x0 = [3.4; 13.18e-3; 2.502e-08; 2.45e-12; 13.0; 1.0; 2.0]; % Startwerte
[x,resnorm] = lsqcurvefit(@myfun,x0,U,I)
 


Bekomme aber dann immer die Fehlermeldung:

Code:

Error using myfun_einfach (line 13)
Not enough input arguments.
 


Kenne mich mit Matlab leider noch nicht so gut aus und lsqcurvefit ist mir auch erst kürzlich unter die Finger gekommen.

Durchforste jetzt schon seit einiger Zeit das Internet nach einer Lösung und komme einfach nicht weiter.

Würde mich sehr über eure Ratschlage freuen.

Freundliche Grüße
Zappl


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.04.2012, 19:59     Titel:
  Antworten mit Zitat      
Hallo,

ich würde mich eher an den Beispielen der Doku orientieren.

Deine Fehlermeldung kommt aus myfun_einfach - wo ist diese Datei?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Zappl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2012, 20:26     Titel:
  Antworten mit Zitat      
Hi,

hatte bis eben noch Funktionsaufruf und Funktionsbeschreibung in einem m.-File. Das ist falsch, oder? Habs jetzt mal auf 2 Dateien aufgeteilt, die jeweils im gleichen Ordner liegen. Bekomme aber jetzt die Meldung:

Code:

Error using lsqcurvefit (line 249)
Function value and YDATA sizes are incommensurate.

Error in Untitled3 (line 7)
[x,resnorm] = lsqcurvefit(@myfun,x0,data,I)
 


Die Beispiele in der Doku hab ich auch schon versucht.. Ich glaub ich mach irgendwas grundlegendes falsch ... wahrscheinlich seh ich grad den Wald vor lauter Bäumen wieder nicht. Rolling Eyes
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.