Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Systemarchitekt Projektmanagement (m/w) DOORS / Matlab /CAN
Erstellung der Systemarchitektur und Auslegung sicherheitsrelevanter Systeme
Bertrandt Services GmbH - Espelkamp

Funktionsentwickler (w/m) Automobile
Entwicklung von modellbasierten Softwarelösungen in Simulink inklusive Autocode-Generierung
Bertrandt Ing.-Büro GmbH Rüsselsheim - Frankfurt am Main

Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Senior Softwareentwickler/in 48 Volt Mild-Hybrid
Funktions- und Softwareentwicklung für einen Elektroantrieb für 48 Volt Mild-Hybrid Anwendungen
Robert Bosch GmbH - Schwieberdingen

Entwicklungsingenieur (m/w) HiL Modellierung Automotive
Mitwirkung in der Entwicklung von innovativen Fahrzeugsystemen
Bertrandt Technologie GmbH - Ehningen bei Stuttgart

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, 17: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, 16: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 - 2018 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.