Optimierungsproblem, Koeffizienten nicht-linearer DGL finden
Vinci 29.11.2015 - 20:08 1493 11
Vinci
hatin' on summer
|
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 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. 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
Bearbeitet von Vinci am 29.11.2015, 20:19
|
Vinci
hatin' on summer
|
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...
|
Klingone
Big d00d
|
Ich versteh´ ehrlich gesagt nur Nüsse - aber für was machst Du sowas (ernstgemeinte Frage)?
|
Dargor
Shadowlord
|
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
|
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
|
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...
|
Klingone
Big d00d
|
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
|
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
|
und um das system zu regeln und/oder überwachen
|
Vinci
hatin' on summer
|
und um das system zu regeln und/oder überwachen Das da.
|
kleinerChemiker
Here to stay
|
D.h. wenn das Modell gut ist, kannst du aus einfach zu messenden Werten die Werte berechnen, die schlecht messbar sind?
|
Dargor
Shadowlord
|
bingo
|