PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neigungsregelung mit der C-Control I



jackther
16.08.2004, 15:30
Servus

Ich hab mich mal mehr oder weniger intensiv schon im Forum umgeschaut, aber nix passendes auf meine Frage(n) gefunden:

Wie kann ich ne Neigungsregelung mit nem Microcontroller realisieren, d.h. wie sieht so ein Basic code für nen PID-Regler aus?

Dann bräuchte ich in dem Zusammenhang infos wie ich das ding dimensioniere, da Ziegler/Nichols und Chreswick- Einstellregeln nicht greifen, da ich keine ordentliche Sprungantwort von meiner Strecke krieg. Die schwingt von alleine, - und sich auf kurz oder lang ein.

Hab mir jetzt den ADXL202 sensor als Sample bestellt und wollte gleich loslegen können wenn der ankommt.

Hat da einer schon Erfahrung gesammelt, bzw. kann mir sagen wo ich da weitere infos herbekommen kann?

Danke

Florian
16.08.2004, 15:38
Hi jackther!
Also, ich denke, ein Paar Infos kannst Du bei mir bekommen!
Ich beschäftige mich jetzt schon seit 2-4 Wochen mit dem ADXL202JE! :o)
Such mal im Forum über Sensoren den Thread Neigungssensor!
Da findest Du auf der letzten Seite einiges über den ADXL202JE! :o)
Ansonsten täts auch googlechen mal! ;o)

Wenn fragen aufkommen, dann melde Dich bei mir, von mir aus auch per PN oder mail! :o)

jackther
16.08.2004, 16:05
Hmm den Artikel hat ich mir schon mal genauer angeschaut, hat mir aber leider nit viel genutzt.

Ich hab das Problem, das ich nen Kugelroboter entworfen hab, und die Krux ist das da leider Trägheiten un so ein Kram für ein Schwingungsverhalten bei nem Sprung der Eingangsgröße sorgen.

Mit geht es jetzt erstmal hauptsächlich darum diese blöden Schwingungen mit nem Vorgeschaltenen Regler auszugleichen, vorzugsweise digital über den Controller

[/img]

Florian
16.08.2004, 16:14
Hi!
Was meinst Du mit Kugelroboter?
Was ist das für ein Bild?
Ginge das auch auf Deutsch? *lol*
Bin nur ein normaldoofer Schüler! *lol*

jackther
16.08.2004, 16:35
Ok, ok.
Also, die Kugel wird über ein Internes Gestänge angestrieben.
Für den Antrieb neigt sich dieses Gestänge und verlagert seinen Schwerpunkt, wodurch die Kugel anfängt zu rollen.

In meinem Bild siehst du oben die Eingangsspannung des Motors, und darunter die Neigung des inneren Gestänges.

Erhöhe ich spannung jetzt sprungartig, (wie im oberen bild bei 10s geschehen) fängt das gestänge ganz schön an rumzuwackeln, bis es schließlich sich auf ne feste Neigung einstellt.

Am liebsten wäre es mir, wenn ich nem Regler sagen könnte "hätte gern 0.5 rad (= ca. 28°), dreh mir mal meine spannung entsprechend auf" und der sorgt dann dafür, dass diese blöde Schwingerei am anfang garnicht erst vorkommt.

Is das problem jetzt klarer geworden?

Ps: Bin selber nur dummer Student 8-[

Florian
16.08.2004, 16:41
Also ich habe es jetzt fast verstanden, aber noch nicht ganz! *lol*
Wie lange braucht der zum drehen, könnte man nicht den ADXL für die zeit ausschalten?
Überigends benutze ich die Analogausgänge, Du ja scheinbar die PWM, ne?

*edit*
Hast Du schonmal die Filterkondensatoren größer gemacht?

Matthias
16.08.2004, 17:53
Wäre es nicht besser nen Kreisel zu nehmen? Dann hätte man die Beschleunigung nicht drinne, sondern nur den Winkel.

Florian
16.08.2004, 18:47
Also bei meinem Projekt verrechne ich die Beschleunigung, Geschwindigkeit und die Neigung!
Ich kann euch das leider nicht zuschicken, da das mein JuFo-Projekt ist!
Und ich würde damit der Konkurrenz alles verraten! *lol*
Ich bin etwas übervorsichtig, da das mein erstes Projekt für JuFo ist! ;o)

sonic
16.08.2004, 21:08
Ok, ok.
Also, die Kugel wird über ein Internes Gestänge angestrieben.
Für den Antrieb neigt sich dieses Gestänge und verlagert seinen Schwerpunkt, wodurch die Kugel anfängt zu rollen.
...
Is das problem jetzt klarer geworden?

Ps: Bin selber nur dummer Student 8-[

Also so ganz hab ich's auch nicht verstanden. Das Gestänge verlagert den Schwerpunkt und die Kugel fängt an zu rollen, ok, aber damit sie das tut muss es doch mit der Kugel verbunden sein um die Kräfte zu übertragen? Und wenn es das ist, dann kann es seinen Schwerpunkt ja auch nicht unendlich nach Vorne schieben, also irgendwann ist Schluss und die Kugel schwingt sich aus bis der Schwerpunkt wieder in der Mitte ist, oder?

Vielleicht wäre eine kleine Skizze und ein Schema deiner Regelstrecke hilfreich. Mit deinen Grafiken kann ich so leider auch nichts anfangen. Mir fehlt irgendwie der Zusammenhang.

Gruß, Sonic

sonic
16.08.2004, 21:11
Also bei meinem Projekt verrechne ich die Beschleunigung, Geschwindigkeit und die Neigung!
Ich kann euch das leider nicht zuschicken, da das mein JuFo-Projekt ist!
Und ich würde damit der Konkurrenz alles verraten! *lol*
Ich bin etwas übervorsichtig, da das mein erstes Projekt für JuFo ist! ;o)

Aber hinterher gibt's nen ausführlichen Bericht + Bilder. Darauf bestehe ich! :-#
Gibt's von JuFo eigentlich ne Seite mit Beschreibungen der einzelnen Projekte? Ich find da nie was und finde das sehr schade ,-(

Gruß, Sonic

Florian
16.08.2004, 22:41
Hi Sonic!
Na klar gibt es am Ende Bilder! :o)
Wenn der Bot fertig wird bis dahin, dann ist er sicherlich mindestens 1 Foto wert! Mindestens! *lol* *stolzsei*
Auf www.jugend-forscht.de findest Du viele Infos über die Projekte vom letzten Mal, aber auch von früheren Malen und sogar mit hochauflösenden Bildern! :o)
Viel Spass beim Durchstöbern! :o)

sonic
16.08.2004, 23:54
Hi Sonic!
...
Auf www.jugend-forscht.de findest Du viele Infos über die Projekte vom letzten Mal, aber auch von früheren Malen und sogar mit hochauflösenden Bildern! :o)
Viel Spass beim Durchstöbern! :o)

HA! Und ich hab da doch glatt jemanden erkannt ,-) Nein, nicht den Menschen, den Roboter ;-) ;-) ;-) ;-)

Gruß, Sonic

BlueNature
17.08.2004, 03:48
Meinst du das mit deinem Roboter etwa so in der Art?

http://www.mds-5.de/temp/Kugelrobi.jpg

Reicht da ein einfacher PI-Regler der sauber abgeglichen ist nicht aus? Wenn es zu wilden Schwingern neigt dann ist eine Sprungantwort nicht genügend. Das ist nur für einfache Anwendungen brauchbar. Dazu braucht man schon ein FFT-Diagramm mit Sinus und Phasengang. Dann kann man Spitzen und Einbrüche im Verlauf duch Bandpässe und Notch-Filter besser angleichen. Und wenn man es richtig gut testen will muss man das Ganze mit einem Bandbegrenzten Rauschsignal testen und auch aufzeichnen in einer FFT. Zudem denke ich das du hohe Spitzenströme bringen musst um die Regelung präzise zu halten. Also mit 12V wird man da vermutlich gar keine beonders guten Ergebnisse bekommen. Dazu ist der Momentenbildende Strom zu klein am Motor. Im allgemeinen kann ich nur sagen das ein P-Anteil von ca. 1,8 aus dem Bauch heraus passen müssten. Das Ding muss ziemlich steif sein in seiner Regelung und auf Überschwinger eine Dynamik aufweisen. Das wird man dann sogar durch ein leichtes Pfeifen im Motor hören durch die Stromspitzen des Regelvorgangs.

Ich habe vor einirer Zeit ein in diesen Bereich passendes Projekt gesehen. Das ist ein zweirädriger Roboter der nach oben einen zylindrischen Aufbau hatte und normal umfallen müsste. Der hat ebenfalls eine extrem schnelle Regelung benutzt auf Basis des 68HC11. Die Aufgabe dieses Roboters ist zu fahren ohne aus dem gleichgewicht zu kommen. Ist fast schon unmöglich, aber es fährt sehr gut. So in dieser Richtung müsste es bei dir auch funktionieren. Bei dem darf auch kein unkontrollierter Überschwinger entstehen.

Grüsse Wolfgang

Matthias
17.08.2004, 09:13
Du könntest auch ne schwungschibe aus blei oder o an nen Schnellen Motor machen (oder besser das ganze 2 mal, damit der Bot sich nicht dreht) und diese beim starten anschalten. Das würde die Schwingungen wegen der Großen Trägheit unterdrücken. Zwar nicht ganz, aber sie wäre zum Teil weg... Damit könntest du den Bot auch gut in der Fahrtrichtung halten (Bei der kleinsten unebenhei würde er ja schon schief fahren).

Florian
17.08.2004, 13:16
Hi sonic!
Welchen Roboter meinst Du? :o)

sonic
17.08.2004, 14:58
Hi sonic!
Welchen Roboter meinst Du? :o)

Den Laufroboter mit verteilten Prozessoren...

Gruß, Sonic

Florian
17.08.2004, 15:17
Ach der! :o)

17.08.2004, 17:33
Lass bloss die Finger weg von PID oder PI Reglern, wenn Du damit noch nicht gearbeitet hast.

Dein Problem kannst Du ganz leicht mit einem gedämpften P-Regler lösen.

Differenz = Sollwert - Istwert
Ausgangssiegnal = Differenz * Verstärkung * Dämpfung

Dämpfung = Wert / Differenz

Verstärkung = 1 // kann im Versuch erhöht werden

Wert = dieses ist eine Konstante z.B. 5 die Du aus Versuchen ermitteln solltest.

Dein Regler sollte nun bei großen Regelabweichungen langsam reagieren und bei kleineren schneller, dadurch wird das Schwingen stark reduziert.

Lass mich wissen ob Du damit klar kommst.
Es funktioniert auf jeden Fall!!

Manf
17.08.2004, 18:06
Lass bloss die Finger weg von PID oder PI Reglern, wenn Du damit noch nicht gearbeitet hast.

Dein Regler sollte nun bei großen Regelabweichungen langsam reagieren und bei kleineren schneller, dadurch wird das Schwingen stark reduziert.
Wenn Du das Regelverhalten auch noch so vorgibst, wird er kaum um einen Regler mit D Anteil herumkommen. Der differenzierte Anteil der Regelgröße (also eine aus dem Motorstrom, dem Moment, abgeleitete Größe) wird mit auf den Reglereingang gegeben und verringert, (dämpft) die Ansteuerung um das Überschwingen zu vermeiden.
Die Regelbedingung wird dabei nicht nur durch die Übereinstimmung von Sollwert und Istwert erfüllt sondern bereits durch die Bewegung auf den Sollwert zu mit einer vom Abstand abhängigen Geschwindigkeit.
Manfred

18.08.2004, 17:15
Hallo erstmal
ALso finds schon mal klasse das sich so viele gerührt haben.

Zur weiteren klärung sei gesagt, dass das ganze wirklich so ähnlich wie BlueNature gemeint hat aussieht, zumindest aber so funktioniert.

@sonic: Der Roboter lenkt seinen Schwerpunkt aus, so dass die Kugel hülle nach kurzer Zeit anrollt. Dadurch dreht sie den schwerpunkt wieder zurück. Das ganze passiert parallel und schwingt sich irgendwann ein, während der Kugel an fahrt gewinnt. vgl.
http://www.mds-5.de/Kugelrobi.jpg (danke übrigens)

Ich bereite das ganze grad theoretisch mit mathlab am PC auf, und will es dann anschließend auf meine (fast) fertige Elektronik übertragen.
(der sensor fehlt immer noch)

Ein eigenes Bild mit mehr details möchte ich nicht ins netz stellen, weil daraus ggf. ein diplomprojekt werden könnte.

Sorry, bin nur kurz im netz... morgen mehr..