"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Optimierungsproblem, Koeffizienten nicht-linearer DGL finden

Vinci 29.11.2015 - 20:08 1424 11
Posts

Vinci

hatin' on summer
Registered: Jan 2003
Location: Wien
Posts: 5774
Grüß euch

Gibts hier im Forum vielleicht ein paar Mathematik-Interessierte und oder Spezialisten auf dem Gebiet der Optimierung?

Folgendes Problem:
Ich hab einen sogenannten State Observer für die sensorlose Geschwindigkeitsregelung eines Gleichstrommotors gebastelt. Dabei wird im Prinzip das Motormodell im Zustandsraum abgebildet und mit der Differenz einer geschätzten und der tatsächlichen Messgröße gefüttert. Der Witz dabei ist, dass man nicht- bzw. nur schwer messbare Größen damit erfassen kann. Soweit so gut.

Das sieht dann beispielsweise so aus:
Blau -> gemessene Drehzahl
Rot -> geschätzte Drehzahl
click to enlarge click to enlarge

Wie man unschwer erkennen kann funktioniert das manchmal gut und manchmal weniger gut bis gar nicht. Grund dafür ist, dass man die Motorparameter zumindest auf einige Faktoren hin genau kennen sollte, was ich offensichtlich nicht tue. :D
Erfreulich ist aber, dass ich die Geschwindigkeit theoretisch schon messen kann und somit die Möglichkeite hätte meinen Algorithmus "online" abzugleichen. Leider muss ich hierfür 5x Koeffizienten zweier Differentialgleichungen finden, von denen der Kurvenverlauf maßgeblich abhängt.

Bisher hab ich bereits versucht eine recursive least square (RLS) Optimierung anzusetzen, nur führte diese leider zu keinen brauchbaren Ergebnissen und teils sogar zu Instabilitäten beim State Observer. Jetzt bin ich leider auf dem Gebiet der Optimierung nicht ganz so bewandet, welche Methoden eignen sich denn noch gut für solche Probleme? Müssten jetzt auch nicht unbedingt rekursive sein...


/edit
err... nicht-linear natürlich :bash: :D
Bearbeitet von Vinci am 29.11.2015, 20:19

Vinci

hatin' on summer
Registered: Jan 2003
Location: Wien
Posts: 5774
Es interessiert zwar vermutlich niemanden, ich hab das Problem aber jetzt mit einer Runga-Kutta Optimierung gelöst.

Meine Hoffnungen das ganze jedoch embedded auf 80MHz und 128K ram laufen zu lassen haben sich verpufft, nachdem die Optimierung mit 4x freien Koeffizienten in MATLAB auf einem Quadcore ungefähr 2h gedauert hat... :bash: :p

Klingone

Big d00d
Registered: Aug 2000
Location: Regensburg, DE
Posts: 244
Ich versteh´ ehrlich gesagt nur Nüsse - aber für was machst Du sowas (ernstgemeinte Frage)?

Dargor

Shadowlord
Avatar
Registered: Sep 2006
Location: 4020
Posts: 2018
Zitat von Klingone
Ich versteh´ ehrlich gesagt nur Nüsse - aber für was machst Du sowas (ernstgemeinte Frage)?

wenn du das system gut genug nachstellen kannst, kannst du werte simulieren und ablesen, ohne diese messen zu müssen, wird vor allem eingesetzt, wo es um werte geht,, die nicht oder sehr shwer/aufwändig messbar sind

edit: vinci: euler zu ungenau? oder heun, sollten weniger fressen als runge-kutta, aber ich glaube nicht in dem ausmaß, dass das mit 80MHz berechnet werden kann
Bearbeitet von Dargor am 04.12.2015, 02:35

Blaues U-boot

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1537
die einzige möglichkeit wird wohl sein das modell zu vereinfachen (linearisieren und/oder parameter eleminieren) um den beobachter auf einem µC zum laufen zu bekommen. kostet natürlich genauigkeit, aber die frage ist, wie genau muss der beobachter sein und wie viele werte pro sekunde braucht man wirklich. eventuell reicht auch eine gröbere diskretisierung.

Vinci

hatin' on summer
Registered: Jan 2003
Location: Wien
Posts: 5774
Zitat von Dargor
edit: vinci: euler zu ungenau? oder heun, sollten weniger fressen als runge-kutta, aber ich glaube nicht in dem ausmaß, dass das mit 80MHz berechnet werden kann


Schenkt sich vermutlich wenig?
Ich probiers wenn ich Zeit hab mal mit Linearisieren... :D

Klingone

Big d00d
Registered: Aug 2000
Location: Regensburg, DE
Posts: 244
Zitat von Dargor
wenn du das system gut genug nachstellen kannst, kannst du werte simulieren und ablesen, ohne diese messen zu müssen...

Thx, jetzt kann ich´s mir in etwa vorstellen. Simulationssoftware quasi.

Dargor

Shadowlord
Avatar
Registered: Sep 2006
Location: 4020
Posts: 2018
Zitat von Klingone
Thx, jetzt kann ich´s mir in etwa vorstellen. Simulationssoftware quasi.

jein, da gehts darum, das modell genau genug aufzustellen, um dieses dann zu simulieren

Blaues U-boot

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1537
und um das system zu regeln und/oder überwachen

Vinci

hatin' on summer
Registered: Jan 2003
Location: Wien
Posts: 5774
Zitat von Blaues U-boot
und um das system zu regeln und/oder überwachen

Das da. :)

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4256
D.h. wenn das Modell gut ist, kannst du aus einfach zu messenden Werten die Werte berechnen, die schlecht messbar sind?

Dargor

Shadowlord
Avatar
Registered: Sep 2006
Location: 4020
Posts: 2018
bingo
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz