MikroKopter - Forum » Software & Programmierung » PI(D)- Regler für Eigenbau-Quadrocopter

PI(D)- Regler für Eigenbau-Quadrocopter

Seite: « < 1 2 3 4 5 6 7 > »

Autor Neuer Beitrag
Mitglied
Registriert seit: Mar 2008
Beiträge: 1753
Ort: CH
Also manchmal frage ich mich ob die fragenden die Antworten und die Links die man gibt auch wirklich anschauen und durchlesen.
Irgendwie macht das so keinen Spass.
Mitglied
Registriert seit: May 2012
Beiträge: 195
klar wird das gyrosignal integriert (im filter, deswegen nicht extra gezeichnet).

loewe meint halt, daß dieses thema schon mal besprochen wurde. verschiedenste ansätze basteln irgendwie an der problematik des integrierers rum, weil der bei offset ungleich null im gyro leider schnell in sättigung läuft. diskussion siehe oben ..

ansonsten ist das blockschaltbild allgemein akzeptiert ? (wundert mich fast)

... wenn ich mein altes hobby "i2-strecke" nochmal ausgrabe (nicht böse sein ;-), nochmal die frage : hat jemand einen wasserdichten ansatz zur reglerdimensionierung für so eine strecke, und zwar ohne üble bastelei (damit kann ichs auch, aber das ist unsportlich !) ?
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Loewe meinte
Also manchmal frage ich mich ob die fragenden die Antworten und die Links die man gibt auch wirklich anschauen und durchlesen.
Irgendwie macht das so keinen Spass.
Du darfst gerne deutlicher werden.

dollreiner meinte
ansonsten ist das blockschaltbild allgemein akzeptiert ? (wundert mich fast)

Nicht ganz! Hier mal meine Verbesserungsvorschläge:
- D-Anteil ohne Sollwert: Das geht zwar, die Stabilität ist auch gegeben. Aber die Reaktion auf den Sollwert ist langsam. Ich als Pilot will schon, dass der Kopter dem Steuerknüppel so schnell wie möglich folgt.
- Steller für Höhe und Gier: Braucht es hier nicht.
- Gyro darf nicht an der Winkel-Größe abgegriffen werden, sonder an Winkelgeschwindigkeit. Vorerst würde ich sowieso nur die Winkelgröße zurückführen und das Komplementärfilter weglassen. Später kann man ja immer noch ins Detail gehen.

Noch ein Tipp: Nimm Scicos, dann kannst auch gleich damit rechnen und das Zeichenprogramm ist gratis dabei.

dollreiner meinte
... wenn ich mein altes hobby "i2-strecke" nochmal ausgrabe (nicht böse sein ;-), nochmal die frage : hat jemand einen wasserdichten ansatz zur reglerdimensionierung für so eine strecke, und zwar ohne üble bastelei (damit kann ichs auch, aber das ist unsportlich !) ?

Ansätze zur Reglerdimensionierung stehen hier: http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_des_Reglers
und Hilfsprogramme zur Analyse und Optimierung sind hier beschrieben: http://www.rn-wissen.de/index.php/Regelungstechnik#Hilfsprogramme_zur_Analyse_und_Optimierung

Ach ja, mein Modell zeigt übrigens bei der Sprungantwort auf den ersten 300ms auch eine Parabel. Was sagt uns das jetzt?
Mitglied
Registriert seit: May 2012
Beiträge: 195
na ja, haben wir vielleicht beide recht ?
mein ansatz für die ersten paar grad (ich gehe wie gesagt als ziel von maximal +/- 45 grad aus) und deiner für den ganzen rest der möglichen flugbewegungen.

gyro ist als sensor gemeint. das ding erfährt im bild physikalisch den winkel, und gibt wie sichs für eine trägheitsnavigation gehört, die winkelgeschwindigkeit aus.

ich hab statt scicos boris verwendet, damit gehts jetzt in richtung bodediagramm. erste bildchen hier : www.reinerdoll.de unter dem link "Mechanikmodell und Simulation" (ist ein word-file)
Mitglied
Registriert seit: May 2012
Beiträge: 195
auf www.reinerdoll.de kann man nun auch ein schwer frustrierendes bodediagramm bewundern.
tja, entspricht wohl der erwartung ... so ein bisschen wie die geschichte mit der hummel ... unter rund 10 hz schwer instabil wenn ich das richtig interpretiere.

liest das vielleicht ein regelungstechnik-freak ? ... was tun wenn man NICHT BASTELN will ?
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
dollreiner meinte
gyro ist als sensor gemeint. das ding erfährt im bild physikalisch den winkel, und gibt wie sichs für eine trägheitsnavigation gehört, die winkelgeschwindigkeit aus.

na ja, etwas unorthodox, etwa so wie wenn man beim Zählen von Schafen die Beine zählen würde und dann durch 4 teilen. :) Geht aber auch.

dollreiner meinte
auf www.reinerdoll.de kann man nun auch ein schwer frustrierendes bodediagramm bewundern.
tja, entspricht wohl der erwartung ... so ein bisschen wie die geschichte mit der hummel ... unter rund 10 hz schwer instabil wenn ich das richtig interpretiere.

Ist das das Bodediagramm der kompletten Schleife? Denn nur die Strecke kann es nicht sein.

dollreiner meinte
liest das vielleicht ein regelungstechnik-freak ? ... was tun wenn man NICHT BASTELN will ?

Ich verweise nochmal auf einen Link: http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_mit_dem_Bodediagramm
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Ach ja, ich bin ja noch die Auflösung meiner kleinen Aufgabe schuldig:
Zitat
Mein Quadro-Kopter wiegt 800 Gramm. Im Schwebeflug hat also jeder Propeller 200 Gramm zu stemmen. Der Standschub ist also 200 Gramm. Dabei ist die Strahlgeschwindigkeit 24km/h. Um sich ein vereinfachtes Bild über die Abhängigkeit Schub zu Geschwindigkeit zu machen, kann man sich ein Diagramm zeichnen. Auf der vertikalen Achse trägt man den Schub auf und auf der horizontalen Achse die Geschwindigkeit. Dann trägt man die 2 bekannten Punkte Standschub und Strahlgeschwindigkeit ein. Den Standschub bei Schub = 200gr und Geschwindigkeit = 0km/h. Die Strahlgeschwindigkeit bei Geschwindigkeit = 24km/h und Schub = 0. Dann verbindet man die beiden Punkte mit einer Geraden. So kann man grob die Abhängigkeit Schub zu Geschwindigkeit bestimmen.
Jetzt lassen wir den Kopter kippen, indem wir 2 gegenüberliegende Motoren unterschiedlich ansteuern. Den einen mit weniger Gas, so dass er 10% weniger Schub (also 180gr) liefert. Den anderen Motor mit mehr Gas, so dass der 220gr Schub liefert. Der Differenzschub ist nun 40 gr. Der Koppter fängt an zu kippen.

Meine Frage nun: Bei welcher Drehgeschwindigkeit sind beide Schübe wieder gleich? Oder gibt es gar keinen Ausgleich?

Die Bahngeschwindigkeit ist 2.4km/h.
Der Ausgleich kommt also schon bei sehr geringer Geschwindigkeit. Weil es überhaupt einen Ausgleich gibt, ist es kein Integrator. Ein Integrator ist nämlich eine Strecke ohne Ausgleich.
Mitglied
Registriert seit: May 2012
Beiträge: 195
danke für den link mit dem bodediagramm.

meins ist am aufgetrennten regelkreis gemessen.
problem ist, daß ich jetzt schon anhand der phasenreserve dimensionieren könnte : wenn es eine gäbe.
auch die "semi-bastelverfahren" (ziegler und konsorten) klappen nicht, weil der kreis nur mit p immer schwingt, was ja bei -180° auch keine große überraschung ist.

ich bastle mal ein wenig mit frequenzbereich-basierten entwurfsverfahren, bin aber nicht sehr optimistisch.

...kann doch nicht sein, daß z.b. kommerzielle copter mit probierverfahren parametriert werden ??
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Man geginnt mit der Analyse der Strecke, also nur Bodediagramm der Strecke. Bei Doppelintegrator mit Totzeit braucht man ein D-Glied um überhaupt eine Phasenreserve zu schaffen.
Vorgehensweise für 60 Grad Phasenrand:
Man sucht sich die Frequenz, bei der die Phase -210 Grad hat. Weil das mit den +90 Grad vom D-Glied einen Phasenrand von 60 Grad ergibt. Bei dieser Frequenz schaut man im Amplitudengang nach, wie hoch die Dämpfung oder Verstärkung ist. Das D-Glied dimensioniert man nun so, dass diese Dämpfung oder Verstärkung ausgeglichen wird, also insgesamt die Verstärkung an dieser Stelle null wird. Das ist dann die Durchtrittsfrequenz. Das kann man grafisch (händisch) machen oder rechnen. Als letztes nimmt man noch einen P-Anteil hinzu, der unkritisch ist, also den Phasenrand nicht sehr verringert (Grenzfrequenz sehr viel kleiner als Durchtrittsfrequenz).
Mitglied
Registriert seit: May 2012
Beiträge: 195
wieder mal : chapeau !

woher gewinnst du bloß dein regelungstechnisches know-how ?
bei mir ist das lange her, und im web finde ich nix das in diese richtung geht.

zur sache : leider habe ich, was das frequenzverhalten angeht, ziemliche unterschiede zwischen theorie und praxis. in der rechnung und dem simulationsmodell würde die vorgeschlagene methode prima klappen, weil da irgendwie ein tiefpaß abgeht (smile : taugt wohl nix, das modell .. ich rechne nochmal).

real ist bei 5 hz oder so dermaßen schluß, daß praktisch nix mehr meßbar ist am ausgang. also krieg ich bei frequenzen, bei denen die phase in die gewünschte größe kommt, keine reaktion mehr. die verstärkung
einfach soweit aufdrehen, daß es sogar bei 15 hz noch was tut, geht natürlich nicht, weil das total instabil wird.
« Bearbeitet von dollreiner am 06.07.2012 14:33. »
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
dollreiner meinte
...weil da irgendwie ein tiefpaß abgeht (smile : taugt wohl nix, das modell .. ich rechne nochmal).

Tja, was sag ich denn schon dauernd.
Es wird höchste Zeit, dass Du dich mit meinem Modell anfreundest. Komm, gib dir einen Ruck.
Mitglied
Registriert seit: May 2012
Beiträge: 195
diplomatisches angebot :

ich messe nochmal ausführlich. wobei das mit sprungantwort und frequenzgang wirklich eine verzwickte sache ist, echt schwer zu messen ohne den aufbau zu demolieren. dannn poste ich die resultate und daraus sollte dann eine eindeutige modellierung möglich sein, oder ?

jedenfalls muß als basis für vernünftige parametrierung ein rechenmodell her, das die wirklichkeit hinreichend genau beschreibt. alles andere ist bastelei.

wenn ich nochmal versuche, mich mit deinem ansatz anzufreunden :
du fokusierst eher auf die winkelgeschwindigkeit als kerngröße wenn ich dich richtig verstehe. diese ist nach deinen messungen und deiner modellvorstellung, im unteren bereich integrierend (parabel), dann aber schnell "in sättigung" so daß die winkelgeschwindigkeit ne gerade bildet.

schwäche (sowohl bei dir als auch bei mir) : wir lassen die kreiselwirkung der propeller außer acht.
eigentlich müßte grob gesagt hier mindestens ein effekt auf die gierachse auftreten, wegen der präzession.
(siehe taumelscheibe beim hubi)

wie sieht das denn als regelstrecke quantitativ (!) bei dir aus, also was kann man als simulationssansatz benutzen ?
« Bearbeitet von dollreiner am 07.07.2012 15:20. »
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Auch mein Modell ist nur eine Näherung, aber als Ausgangsbasis gut zu verwenden. Der erste Ansatz ist ein lineares Modell, der Kopter aber alles andere als linear. Für den Anfang reicht aber das lineare Modell -> Vorteil: Es kann auch im Frequenzbereich (Bodediagramm) analysiert/simuliert/optimiert werden und es ist einfacher zu verstehen. Später kann man immer noch ins Detail gehen und auch Nichtlinearitäten hinzufügen -> das geht dann nur noch im Zeitbereich.

Hier mein Modell als Blockschaltbild in Scicos:
User image

Es besteht aus zwei PT1-Gliedern und einem Integrator.
1. Das erste PT1-Glied ist der Block wo "Antrieb" drunter steht. Es modelliert den Motor mit BLC und Propeller. Die Eingangsgröße ist ein Stellwert für den BLC. Die Ausgangsgröße ist der Schub (F) in der Einheit Newton.
2. Das zweite PT1-Glied ist die Strecke von Schub (F) bis Winkelgeschwindigkeit (phi'). Es modelliert die Dynamik des Kopters und ist etwas anders dargestellt als das erste PT1-Glied, ist aber vom Verhalten auch ein PT1-Glied. Man könnte es auch mit einem Block wie beim Antrieb darstellen, aber für spätere Erweiterungen gleich etwas detaillierter dargestellt. Außerdem bietet es Zugriff auf Drehmoment (M) und Winkelbeschleunigung (phi'').
3. Als letztes Element der Strecke kommt noch der Integrator. Es ist der Block zwischen Winkelgeschwindigkeit (phi') und Winkel (phi). Der Block spricht für sich und berechnet den Zusammenhang Winkelgeschwindigkeit -> Winkel.

Zusätzlich sind in dem Blockschaltbild noch eine Quelle und ein Scope. In dem Beispiel kann man sich da die Sprungantwort anzeigen lassen.

Der nächste Schritt ist dann die Quantifizierung, sprich die Ermittlung der Kenngrößen für die PT1-Glieder. Ich gehe da normalerweise pragmatisch vor, d.h. ich messe die Sprungantwort der einzelnen Glieder real und ermittle daraus die 2 Kenngrößen Verstärkung und Zeitkonstante und setze die dann in das Modell ein. Wenn dann auch noch die Sprungantwort in real und Simulation überein stimmt, dann passt es. Das hat den Vorteil, dass auch gleich alles berücksichtigt ist, wie z.B. die Präzession und der Luftwiderstand bei der Dynamik des Kopters.

Da ich selber den Lageregler noch nicht optimiert habe (ist noch original MK) und auch keine Wippe als Versuchsaufbau habe, hoffe ich, dass Du das selber messen kannst. Hilfestellung kann ich dir geben. Da ist nämlich einiges zu beachten.

Weiteres dann, wenn es an die Messungen geht.
Mitglied
Registriert seit: May 2012
Beiträge: 195
prima, da sind wir nahezu beim gleichen ansatz.
ich kann zwar die beschriftung in den verstärkerbausteinen nicht lesen, aber das werden faktoren sein, oder ?
was mir nicht so ganz klar ist (und da unterscheiden sich unsere modelle), ist die rückführung.
ich gehe davon aus, daß das modell die strecke beschreibt, nicht den ganzen regelkreis, weil ja der sollwinkel als eingang nicht angegeben ist.

- wenn das die strecke beschreibt, also von eingang "motorsteuerwert" bis ausgang "phi", wozu dient dann die rückführung der winkelgeschwindigkeit zum summierer mit dem drehmoment ?

- wie kannst du winkelgeschwindigkeit (rad/sec) von drehmoment (nm) subtrahieren ??

meine rechnung schaut im prinzip genauso aus wie dein bild, den kern bildet die vom drehmoment erzeugte winkelbeschleunigung (alpha = drehmoment / trägheitsmoment [rad/s2])
die wird integriert, gibt winkelgeschwindigkeit (omega in rad/s), das ist dann auch der ausgang vom gyro.
die wird nochmal integriert, dann kommt der winkel raus, der ja vom acc bzw. komplementärfilter erfasst wird.

ich mess heute nochmal habe aber massive schwierigkeiten damit, weil z.b. beim offenen kreis oder auch nur der stecke die wippe wild rumtaumelt ohne regelung.
Mitglied
Registriert seit: May 2012
Beiträge: 195
noch ne frage : läßt sich der lageregler von orginal-copter eigentlich für eine achse isolieren, so daß zu erkennen ist, wie der kompfilter und wie der pid arbeiten (ich hab schwierigkeiten mit dem komplexen c-code ;-) ?
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
dollreiner meinte
ich kann zwar die beschriftung in den verstärkerbausteinen nicht lesen, aber das werden faktoren sein, oder ?

Einfach auf das Bild klicken, dann kommt man in die Gallery. Dort nochmal klicken bis das Bild ganz scharf ist.

dollreiner meinte
was mir nicht so ganz klar ist (und da unterscheiden sich unsere modelle), ist die rückführung.
ich gehe davon aus, daß das modell die strecke beschreibt, nicht den ganzen regelkreis, weil ja der sollwinkel als eingang nicht angegeben ist.

- wenn das die strecke beschreibt, also von eingang "motorsteuerwert" bis ausgang "phi", wozu dient dann die rückführung der winkelgeschwindigkeit zum summierer mit dem drehmoment ?

Ja, mein Blockschaltbild ist nur die Strecke.
Eins nach dem Anderen. Zuerst wird ein Modell der Strecke gebildet, da sind wir jetzt. Dann wird analysiert und dann erst wird der Regler entworfen und optimiert.

Die Rückführung macht aus einem Integrator ein PT1-Glied. Es berücksichtigt den Zusammenhang von Schub und Strahlgeschwindigkeit bzw. Drehmoment und Winkelgeschwindigkeit. Das ist das, was ich schon dauernd versuche zu erklären. Sobald sich der Kopter anfängt zu drehen, wird das Drehmoment geringer, so dass sich im Endeffekt eine konstante Endgeschwindigkeit einstellt. Wenn das immer noch nicht klar ist, dann bitte zurück auf Anfang zu meiner Aufgabe mit dem Diagramm. Wenn dir Formeln lieber sind, die kann ich auch liefern.

dollreiner meinte
- wie kannst du winkelgeschwindigkeit (rad/sec) von drehmoment (nm) subtrahieren ??

Die Rückführung, man nennt es auch Dämpfung, hat eine Einheit. Bitte selbst herausfinden wie die Einheit ist und hier posten. Interessiert bestimmt auch die stillen Mitleser.

dollreiner meinte
ich mess heute nochmal habe aber massive schwierigkeiten damit, weil z.b. beim offenen kreis oder auch nur der stecke die wippe wild rumtaumelt ohne regelung.

Du willst zu viel auf einmal erfassen. Gehen wir doch Schritt für Schritt vor. Eins nach dem Anderen.
Mein Vorschlag: zuerst Messung der Sprungantwort des Antriebs. Einverstanden?

dollreiner meinte
noch ne frage : läßt sich der lageregler von orginal-copter eigentlich für eine achse isolieren, so daß zu erkennen ist, wie der kompfilter und wie der pid arbeiten (ich hab schwierigkeiten mit dem komplexen c-code ;-) ?
ist bestimmt nur mit massivem Eingriff in die Software möglich. Ich hab da aber auch meine Schwierigkeiten mich zurecht zu finden.
Mitglied
Registriert seit: Mar 2008
Beiträge: 1753
Ort: CH
Jungs, was macht Ihr eigentlich da?

dollreiner meinte
...kann doch nicht sein, daß z.b. kommerzielle copter mit probierverfahren parametriert werden ??


Selbst bei den teuren Kommerziellen Kopter werden die Parameter "im Fluge" feingetunt.
Falls du das als Bastelei bezeichnest ist das dein Bier.


Wenn es nach dir ginge müsste alles auf dem Papier schon Perfekt Parametrisiert sein.
Hast du überhaupt ein Teststand?
Irgendwie lässt mich das Gefühl nicht los das du bis jetzt nur Theoretisch aktiv bist.
Zeige doch mal Bilder und oder ein Video von deinen "Praktische" Test's!


Qopter meinte
Ja, mein Blockschaltbild ist nur die Strecke.


Wenn du dir schon die Mühe machst, da zeige doch dein kompletter Regelkreis.
Mit der Beschreibung welcher Block was macht.
Davon habe dann auch jene etwas die sich erst seit kurzen damit beschäftigen und sich dieser Thematik Interessiert sind.


Nimm die schon gut Dokumentierten Beispiele:

-Sensordaten aufbereiten
-Daten Fusionieren:
angle = (0.98 )*(angle + gyro * dt) + (0.02)*(x_acc)

-3 kleine Mixer für Nick Roll und Gier vereinfacht die Geschichte
-Ein klassischer PID Regler:
esum = esum + e
y = Kp * e + Ki * Ta * esum + Kd * (e – ealt)/Ta
ealt = e

-Ein paar Debugging Daten (Gyro, ACC, Fusionierte Werte usw.) Seriell ausgeben lassen "während" dem Praktischen Test's am Prüfstand.

Mach doch einfach praktische Test's.
Dann sieht man ganz genau wie sich eine Änderung auswirkt.
Dannach immer einen Schritt weiter.
« Bearbeitet von Loewe am 08.07.2012 15:24. »
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Loewe meinte
Qopter meinte
Ja, mein Blockschaltbild ist nur die Strecke.


Wenn du dir schon die Mühe machst, da zeige doch dein kompletter Regelkreis.
Mit der Beschreibung welcher Block was macht.
Davon habe dann auch jene etwas die sich erst seit kurzen damit beschäftigen und sich dieser Thematik Interessiert sind.

Nur Geduld, kommt schon noch. Ich habe ja geschrieben:
Zitat
Eins nach dem Anderen. Zuerst wird ein Modell der Strecke gebildet, da sind wir jetzt. Dann wird analysiert und dann erst wird der Regler entworfen und optimiert.
Mitglied
Registriert seit: May 2012
Beiträge: 195
nun, ich gewinne halt vergnügen aus dem versuch, das auch theoretisch zu durchdringen.

feintuning ist ja recht, aber z.b. ein sauberer stabilitätsnachweis gehört eigentlich schon zu seriöser regelungstechnik. und das wird halt nix ohne korrektes modell der anordnung, an der man rumschraubt.

außerdem ist eine regleroptimierung an einem guten simulationsmodell wesentlich komfortabler als die
bastelei am "lebenden objekt".

hacken ist, daß ich aus diversen gründen auf den klassischen weg im frequenzbereich verzichten möchte,
aber den brauchts ja im simulationsverfahren nicht.

ein bildchen der wippe findest du hier :

http://www.reinerdoll.de/wippe.jpg

aber die sehen ja doch alle gleich aus, oder ? an der bildqualität erkennst du auch gleich, warum ich so ungern photos mache ;-) mit dem motor unten kann ich das ding "fremderregen", um sensorkennlinien aufzunehmen.

"-Ein paar Debugging Daten (Gyro, ACC, Fusionierte Werte usw.) Seriell ausgeben lassen "während" dem Praktischen Test's am Prüfstand." ..wie denkst du komme ich an die daten für sprungantwort, frequenzgang etc. ?
« Bearbeitet von dollreiner am 08.07.2012 16:12. »
Mitglied
Registriert seit: May 2012
Beiträge: 195
@quopter :

der rückführungszweig bedämpft das drehmonment mit steigender winkelgeschwindigkeit (nm*s/rad),
die geschichte mit dem schubverlust durch eigendrehung, schon klar.

wie schaut die spungantwort von diesem ding aus ?


ich hab nochmal ausführlichst gemessen, kriege bei einem motorsprung 0..200 (100 ms lang, mehr trau ich mich nicht) eine totzeit von 35 ms und dann eine saubere parabel 65 ms lang mit rund 12 grad winkelweg.
damit knallt die wippe dann so in den anschlag, daß es das ding beinah vom tisch hebt, mehr ist also nicht drin.
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
dollreiner meinte
@quopter :

der rückführungszweig bedämpft das drehmonment mit steigender winkelgeschwindigkeit (nm*s/rad),
die geschichte mit dem schubverlust durch eigendrehung, schon klar.

OK, passt!

Hier die Sprungantwort der Strecke:
User image

schwarz: Schub [N]
grün: Winkelgeschwindigkeit [rad/s]
rot: Winkel [rad]

Nun gilt es meine Parameter (die ich grob geschätzt habe) durch Messungen zu aktualisieren.

Jetzt muss ich aber kurz weg. Gleich geht es weiter.
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Weiter geht's.
Die Glieder werden einzeln vermessen, das gibt ein besseres Ergebnis als die Sprungantwort über die gesamte Strecke.

Als erstes kommt der "Antrieb" dran. Die Problematik hierbei ist:
- Der Schub ist nicht linear zur Drehzahl oder Stellwert.
- Die Zeitkonstante ist nicht konstant. Zum einen ändert sie sich mit der Drehzahl, je höher die Drehzahl desto größer die Dämpfung -> desto kleiner die Zeitkonstante. Zum anderen ist die Zeitkonstante beim Gasgeben und Gaswegnehmen unterschiedlich, außer man hat einen BL-Controller mit aktiver Bremse.

Deshalb muss in der Nähe des Arbeitspunktes gemessen werden. Also nicht den Stellwert von 0 auf 100% ändern, sondern von Arbeitspunkt -10% auf Arbeitspunkt +10%, oder +-20%. Der Arbeitspunkt ist z.B. Schwebegas.

Die nächste Schwierigkeit ist wahrscheinlich die dynamische Messung des Schubs. Wenn man keinen Kraftmesser (aus alter elektronischer Waage) und Oszi zur Verfügung hat, dann über den Umweg Drehzahl. Also die Drehzahl mit Mikrofon und Audiorecorder am PC aufnehmen und dann mit einem Programm wie z.B. Audacity analysieren. So kann man die Drehzahl dynamisch bestimmen. Dann noch statisch den Zusammenhang Drehzahl und Schub ermitteln und kombinieren.

Diese Messung sowohl fürs Gasgeben als auch fürs Gaswegnehmen durchführen, um beide Zeitkonstanten zu ermitteln. Bei großen Dämpfungen kann es sein, dass der Unterschied nur minimal ist. Aber wichtig ist, dass man es überprüft hat.

Aus der Messung kann man nun die Zeitkonstante und die Verstärkung für das PT1-Glied ermitteln. Wenn z.B. das Delta vom Stellwert 50 war und die Differenz beim Schub 1 Newton, dann ist die
Verstärkung = 1/50 = 0.02
Die Zeitkonstante ist die Zeit, bei der der Einschwingvorgang 63% erreicht hat. In meinem Beispiel habe ich 0.1s genommen. Das PT1-Glied vom Antrieb hat in meinem Beispiel also folgende Übertragungsfunktion:
0.02/(1+0.1*s)

Als nächstes kommt dann die Messung der Strecke von Schub bis Winkelgeschwindigkeit dran.
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
Messung der Strecke von Schub bis Winkelgeschwindigkeit:
Hier muss wieder im Arbeitspunkt gemessen werden. Beide Motoren werden mit Schwebegas beaufschlagt (bei mir ca. 90). Die Stellwerte so einstellen, dass sich die Wippe nicht dreht. Dann eine kleine Differenz auf beide Motoren geben, z.B. den einen -5, den anderen +5. Überprüfen wie schnell sich die Wippe dreht. Es darf nicht zu schnell sein. Erstens weil der Gyro sonst in Begrenzung geht und zweitens, es soll der gesamte Einschwingvorgang zu sehen sein. Da muss man etwas mit dem Stellwert spielen. Ich schätze mit einer Zeitkonstante von ca. 0.5s, da sollte dann der Messvorgang schon 2s lang sein. Notfalls den Anschlag verändern oder ganz raus nehmen, damit sich die Wippe weiter drehen kann.

Ist das soweit vorbereitet, dann wird gemessen. Die Winkelgeschwindigkeit wird mit dem Gyro gemessen. Die Wippe wird an einem Ende des Anschlags fest gehalten und die Motoren mit der vorher gefundenen Stellwertdifferenz beaufschlagt. Dann wird die Wippe los gelassen und die Messung aufgezeichnet. Aus der Messung sollte man deutlich die Zeitkonstante und die Endgeschwindigkeit heraus lesen können.

Hier nun die Formeln, um aus Zeitkonstante (tau) und Endwert der Winkelgeschwindigkeit die Parameter für das Modell zu berechnen:

B: Dämpfung
M: Drehmoment
J: Trägheitsmoment

B = M / (Endwert der Winkelgeschwindigkeit)
J = tau * B

In den Block in der Rückführung wird die Dämpfung B eingetragen. In den Block (1/J) vor dem 1. Integrator wird der Kehrwert des Trägheitsmoments J eingetragen und in den Block zwischen F und M wird der Radius (Abstand Motor zum Drehpunkt) eingetragen. Weil M = Radius * F.

Wenn man nun in der Simulation den Sprung direkt auf F gibt, dann sollte man die gleiche Sprungantwort als in real sehen.

Der Zusammenhang Schub zu Stellwert wurde schon in der ersten Messung ermittelt. Vorsichtshalber kann man aber nochmal den Schub bei dieser Stellwertdifferenz mit der Waage überprüfen. Falls da ein Unterschied ist, muss nochmal angepasst werden.

Ich warte dann mal auf die Messwerte.
Mitglied
Registriert seit: May 2012
Beiträge: 195
das geht leider so nicht...

"Hier muss wieder im Arbeitspunkt gemessen werden. Beide Motoren werden mit Schwebegas beaufschlagt (bei mir ca. 90). Die Stellwerte so einstellen, dass sich die Wippe nicht dreht. "

den punkt gibts nicht. sobald die motoren drehen, schwingt die wippe völlig unkontroliert, solange der regelkreis nicht geschlossen wird. (schaut aus wie "bodeneffekt", ich kenn das vom hubi in bodennähe, turbulenzen wie wild) eine "saubere" messung geht nur für die spungantwort, und das auch nur für sehr kurze pulse mit reduzierter motorleistung, weils das ding sonst zerlegt.

das ist ja mein problem beim bodediagramm : der offene kreis ist praktisch meßtechnisch nicht erfassbar außer in der sprungantwort.

wozu dient die messung der einzelkomponenten ? wenn ich über die ganze strecke gut reproduzierbar die sprungantwort habe, ist doch eigentlich alles im kasten. ob eine totzeit vom motormoment, der luftschraube oder sonstwoher kommt ist doch egal, wenn sie nur in der strecke reproduzierbar ist.

ein punkt der mir unklar ist : wenn wir keine istwert-sensoren im eigentlichen sinn haben (wie ein winkelgeber im drehpunkt ;-), sondern nur die zusammengebastelte gyro/acc-kombi, ist dann der ausgang für die messung der strecke

a) der komplementärfilter (..weil der ja dann vom regler gesehen wird)

b) der acc - sensor (weil der im statischen versuch die lage viel genauer anzeigt)

???
Mitglied
Registriert seit: Jul 2011
Beiträge: 269
dollreiner meinte
das geht leider so nicht...

"Hier muss wieder im Arbeitspunkt gemessen werden. Beide Motoren werden mit Schwebegas beaufschlagt (bei mir ca. 90). Die Stellwerte so einstellen, dass sich die Wippe nicht dreht. "

den punkt gibts nicht. sobald die motoren drehen, schwingt die wippe völlig unkontroliert, solange der regelkreis nicht geschlossen wird. (schaut aus wie "bodeneffekt", ich kenn das vom hubi in bodennähe, turbulenzen wie wild) eine "saubere" messung geht nur für die spungantwort, und das auch nur für sehr kurze pulse mit reduzierter motorleistung, weils das ding sonst zerlegt.

Ich wollte damit nur klar machen, dass ein gleicher Stellwert für beide Motoren nicht automatisch auch Gleichgewicht bedeutet. Du brauchst die Wippe beim Austarieren nicht los zu lassen. Einfach nur testen in welche Richtung die Wippe drehen will und dann den stärkeren Motor im Stellwert so lange zurücknehmen, bis es im Gleichgewicht ist.

Wenn das nicht geht, dann mach 2 Messungen, einmal links rum und einmal rechts rum und bilde das Mittel bei der Sprungantwort.

Zitat
wozu dient die messung der einzelkomponenten ? wenn ich über die ganze strecke gut reproduzierbar die sprungantwort habe, ist doch eigentlich alles im kasten. ob eine totzeit vom motormoment, der luftschraube oder sonstwoher kommt ist doch egal, wenn sie nur in der strecke reproduzierbar ist.

1. Weil es genauer ist.
2. Weil man überprüfen kann, ob überhaupt das richtige dynamische Element (z.B. PT1) gewählt wurde.
3. Wie soll man sonst aus einer Kurve 4 Unbekannte (2 Zeitkonstanten und 2 Verstärkungen) heraus lesen können.
4. Weil es für die Analyse hilfreich ist. Wenn z.B. die Zeitkonstante vom Antrieb die bestimmende Zeitkonstante des Systems ist, dann könnte man was verbessern, z.B. anderen Motor oder leichtere Luftschrauben.

Zitat
ein punkt der mir unklar ist : wenn wir keine istwert-sensoren im eigentlichen sinn haben (wie ein winkelgeber im drehpunkt ;-), sondern nur die zusammengebastelte gyro/acc-kombi, ist dann der ausgang für die messung der strecke

a) der komplementärfilter (..weil der ja dann vom regler gesehen wird)

b) der acc - sensor (weil der im statischen versuch die lage viel genauer anzeigt)

Für die Messung der Sprungantwort brauchst Du nur den Gyro. Der misst die Winkelgeschwindigkeit.

Für den Regler braucht man dann den Komplementärfilter.

Seite: « < 1 2 3 4 5 6 7 > »

MikroKopter - Forum » Software & Programmierung » PI(D)- Regler für Eigenbau-Quadrocopter