Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Entwicklungsingenieur (m/w) für modellbasierte Softwareentwicklung
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Softwareentwickler (m/w) für automatische Codegenerierung
Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink im Bereich Fahrwerkregelsysteme
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Entwicklungsingenieur (m/w) für Fahrdynamikregelsysteme
Entwicklung der für die Fahrdynamik relevanten Funktionen
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Elektromobilität: E-Drive Entwicklungsingenieur HV-Energiemanagement und Betriebsstrategie (m/w)
Entwicklung von Teilfunktionen für Energiebordnetze
MBtech Group GmbH & Co. KGaA - Sindelfingen

Software-Entwickler (m/w) Automotive
Implementierung und Verifizierung von Software-Modulen
MBtech Group GmbH & Co. KGaA - Neu-Ulm, Lindau

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

lsqrsolve Problem

 

Kurt

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2016, 16:17     Titel: lsqrsolve Problem
  Antworten mit Zitat      
Hallo. Ich bin langsam am verzweifeln. Ich habe in MATLAB mit der Optimization Toolbox mit lsqnonlin und Levenber-Marquard Algorithmus etwas gelöst. Dies wollte ich nun portieren in SCILAB (weil kostenlos) und habe gelesen, dass dies mit der Funktion lsqrsolve geht.
Allerdings kriege ich immer wieder den Fehler: (mit leastsq das gleiche)
Code:

-->exec('C:\...\SCILAB\lsqrsolve.sce', -1)
[a,b]=lsqrsolve(x0,fct,11);
                           !--error 98
Variable, die durch Scilab Funktion zurückgegeben wurde, ist inkorrekt.
at line      18 of exec file called by :    
exec('C:\...\SCILAB\lsqrsolve.sce', -1)

Habe schon viel mit den Startbedingungen rumgespielt, aber die müssen so in der Richtung stimmen. Wenn ich die MATLAB Lösung eingebe, dann funktioniert es. Aber das ist ja nicht Sinn der Sache. Lösung bei MATLAB: [0.001 23.481 7.224 14.45]
Hier mal der SCILAB Code:
Code:

Ua=[250;250;250;200;200;200;170;170;170;100;100];
Ug=[-17.5;-11.5;-2.5;-13.5;-4;-1;-7.5;-4.5;-0.5;-6;-0.5];
Ia=[0.0005;0.005;0.029;0.0005;0.0145;0.025;0.0035;0.0085;0.0215;0.001;0.01];
x0=[0.01 10 10 10]; //Startbedingung

function y=ecc82(x)
    k=x(1); kb=x(2); kc=x(3); mu=x(4);
    y=k.*(1+Ug/kb).*((Ug+(Ua+kc)/mu) .^1.5) -Ia;
endfunction

Z=[Ia,Ug]; //Hier bin ich mir unsicher

function y=fct(x,n)
    y=ecc82(x)
endfunction

[a,b]=lsqrsolve(x0,fct,11);
 

und so sieht das in MATLAB aus:
Code:
function F = ecc82_rydel(x)
% Arbeitspunkte der ECC82
Ua=[250,250,250,200,200,200,170,170,170,100,100];
Ug=[-17.5,-11.5,-2.5,-13.5,-4,-1,-7.5,-4.5,-0.5,-6,-0.5];
Ia=1e-3*[0.5,5,29,0.5,14.5,25,3.5,8.5,21.5,1,10];
M=length(Ua);
% Problemvariablen und Roehrenparameter
K=x(1); kb=x(2); kc=x(3); mu=x(4);
    for k = 1:M
        F(k) = Ia(k) - K*(1 + Ug(k)/kb)*(Ug(k) + (Ua(k) + kc)/mu)^(3/2);
    end
end

Ihr würdet mir sehr helfen, danke im voraus.
MfG
Kurt


helmat
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 63
Anmeldedatum: 18.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.10.2016, 15:09     Titel:
  Antworten mit Zitat      
Die Meldung bekommt man, wenn an unpassender Stelle komplexe Werte anfallen. Verdächtig in deinem Code ist der Exponent 1.5.
Beispiel:
-->[-2.].^1.5
ans =
- 5.196D-16 - 2.8284271i

HG helmat
_________________

Herzliche Grüße
helmat

p.s.
Hard work beats talent if talent doesn't work hard.
Private Nachricht senden Benutzer-Profile anzeigen
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.