PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Operationsverstärker, Grundlagen...



Willa
22.10.2008, 11:12
Hallo!
Ich baue grad einen Tricopter und meine Elektronik scheint einigermaßen zu funktionieren. Allerdings kriege ich nur 1 Gyro zum laufen, die anderen 2 sind identisch beschaltet, geben aber Signale aus die teilweise außerhalb des ADC-Wandler Bereichs liegen und deswegen nicht richtig verwertbar sind.
Mein Aufbau:
Am Murata ENC-03R Outputpin liegt eine Spannung von ca. 1.3V an. Die Amplitude des Signals (wenn man den Sensor dreht) ist vielleicht 0.5V.
Am Eingang meines ADC Wandlers (ATmega32) soll eine Spannung zwischen 0 und 5 V ankommen. Es darf auch 4-6 V sein, der Pegel muss eben nur zwischen diesen Grenzen liegen.
Das Signal wird um den Faktor 6 verstärkt (R1=15k, R2=90k).
Also, am OP kommt als V_in 0.8V-1.8V an, V_out soll maximal 0-5V sein.

Meine Frage: Was muss ich tun damit das passiert...? Wenn ich das so anschließe wie im Bespiel unten (Grafik), dann liegt doch wohl an v_out eine Spannung zwischen 4.8 und 10.8V an...? Ich muss also quasi die Mittelstellung verschieben, wie schaffe ich das?

Wenn mir jemand helfen könnte wäre das fein!

robocat
22.10.2008, 11:55
versuch es mit einem differenzverstärker:
http://www.elektronik-kompendium.de/sites/slt/0210153.htm
damit kannst du um einen faktor verstärken und gleichzeitig einen offset subtrahieren (bei dir die 4,8V). diesen offset musst du mit einem spannungsteiler (oder sonstwie) bereitstellen.

gruesse

Besserwessi
22.10.2008, 19:38
Nur für eine Pegelverschiebung und Verstärkung, brauchtman keinen kompletten Differenzverstärker. Es reicht bei der Schaltung wie im ersten Bild, R1 nicht nach Masse, sondern an eine passende Spannung zu legen. Man kann auch einen extra Widerstand vom invertierenden Eingang des OPs nach +5 V legen, um so die Hilfsspannung zu erzeugen.

BlackDevil
22.10.2008, 21:09
Spannung-Spannung Wandler bzw ein Nicht Invertierender Verstärker wie der obige sollten doch ihren Dienst tun... Wobei die Ausgangsspannung durch die Rückkopplung rein durch die Rückkoppelwiderstände R1 und R2 bestimmt wird! (k-Faktor). Einfach mal googlen, ansonsten such ich dir morgen die Richtigen sachen raus und schreib was kurzes

goara
23.10.2008, 01:51
also ich habe bei mir einen Differenzverstärker genommen ... guckst du mal hier :
www.dyyyh.de/quadro/DC40.pdf

bei den gyros ist das Problem, dass die nicht optimal sind, das heist der Nullpunkt leigt teilweise so verschoben, dass du mit ner Verstärkung von 6 schon am Anschlag bist.

BlackDevil
23.10.2008, 08:29
Jenachdem wie hoch der Nullpunkt liegt könnte man das doch mit einer Diode/Transistor kompensieren oder? Dann hätte ich bis zu einem Schwellenwrt eine klar definierte Null und darüber Steuert mein OP

Willa
23.10.2008, 12:46
Hi!
Danke erstmal für eure Antworten! Ich habe mittlerweile ein paar Sachen probiert (u.a. die Schaltung von Goran), aber da nichts so richtig funktioniert und jedes Gyro anderen Blödsinn macht, habe ich so langsam das Gefühl das entweder Gyro's oder OpAmp kaputt sind. Aber ich werde weiter probieren und berichten!

goara
23.10.2008, 21:36
mess doch einfach mal den gyro aussgang und dreh es ein wenig dabei, dann siehst du ja obs kaputt is..

MeckPommER
24.10.2008, 10:03
Hallo Willa,

Gyros und OpAmps ... welch Zufall, ich arbeite mich auch grade in diese Thematik ein und fand meine ersten Schritte letzte Woche auch wenig befriedigend.
Ich habe zunächst den Fehler gemacht, mit einem OpAmp zu experimentieren, der mindestens +/- 5V braucht um richtig zu funktionieren. Die Ergebnisse waren dementsprechend für die Tonne ^^

Dann habe ich mit einem ICL7612 gearbeitet, war begeistert und habe dann festgestellt, das es den nur im Singlepack gibt und ich den nirgendwo als SMD finde *grumpf*.

Ich habe jetzt ein Modul mit 3 Gyros für meinen Bot mit einem LM324, der in SMD 4 OpAmps in einem Gehäuse vereint und mit einer einfachen 5V-Versorgung zufrieden ist. Es mag sicherlich bessere Typen geben, aber irgendwo muss man ja mal anfangen :)

Um mir die Schaltung richtig auszulegen habe ich direkt am Gyro die maximalen Spannungsdifferenzen gemessen, die bei aufkommenden Rotationen zu messen sind. Daraus habe ich mir die gewünschte Verstärkung des OpAmps berechnet (und sicherheitshalber ein wenig nach unten korrigiert, da die OpAmps am Ausgang nicht bis zur Versorgungsspannung gehen).
Zu Testzwecken habe ich dann den Spannungsteiler zum Einstellen des Offsets mit einem Poti realisiert und siehe da - selbst ein Digi-Depp wie ich bekommt langsam Grund unter den Füßen im Lande Analogien :-)

Gruß MeckPommER

P.S.: Dieses Gyro-Modul ist durch die Piezos das teuerste Modul an meinem ganzen Bot. Damit das auch der Laie bei einer Vorführung zu schätzen weiss, konnte ich es mir nicht verkneifen, auf diesem Modul noch 3 Reihen a 7 LEDs anzubringen, um die Messwerte bzw. errechneten Lagewinkel optisch darzustellen.
Ganz nebenbei ist so eine reichlich vollgestopfte Platine von 3,8 * 9cm entstanden - die einfach schick leuchtet, selbst meine Frau sagte "UI" :-)
Die LEDs sind aber nicht nur just 4 fun, sondern mir enorm hilfreich als Feedbackmöglichkeit bei der Programmierung.

Willa
24.10.2008, 10:29
Hallo Meckpommer!
Ich habe grad gesehen dass es den LM324 auch als DIL-14 gibt, daher käme der auch für mich in Frage. Könntest du mir evtl. deinen "personal OpAmp Schaltkreis" zeigen? Das mit dem Poti ist keine schlechte idee um das gleich richtig anzugehen.... 7 Leds hatte ich auch an meinem einzigen funktionierenden Gyro dran, das sieht schick aus und ist beeindruckend wie schnell die Signale verarbeitet werden...!

MeckPommER
24.10.2008, 10:51
An dem Schaltplan ist nichts Geheimes dran, nur liegt er brav zuhause (mit Bleistift auf Schmierpapier) und ich bin auf Arbeit ^^. Die Schaltung ist wie deine mit den Ergänzungen von besserwessi (wenn ich das jetzt richtig im Kopf habe ...). Gyroausgang über 1k an pos-input, 100k zwischen ausgang und neg-input, spannungsteiler an neginput mit 12k an masse und 36k an 5V. Aber die Werte sind eben abhängig vom Output deines Gyro.
Das Poti hatte ich nur zu Testzwecken in Betrieb und wurde später natürlich durch feste Werte ersetzt.

Zuerst war an den drei LED Zeilen nur zu sehen, wie schnell die Signale bei mir Spaghetti werden ^^ Mein Ziel bis zum nächsten Wochenende: Marvin soll auf einer in alle Richtungen kippbaren Platte waagerecht bleiben - mal gucken, ob das was wird.

Gruß MeckPommER

P.S.: Wenn ich dran denke, schaue ich heute Abend nochmal nach dem Schaltplan und poste ein Bild.

Willa
25.10.2008, 09:42
P.S.: Wenn ich dran denke, schaue ich heute Abend nochmal nach dem Schaltplan und poste ein Bild.
:-b

Könntest du vielleicht zusätzlich sagen was die Pegel deiner gyro's sind? Amplitude und Ruhepotential, dann kann ich deine Widerstandsberechnungen leichter nachvollziehen.... Das wäre fantastisch,

MeckPommER
27.10.2008, 12:28
Sorry, hat etwas gedauert *schäm* aber die Wochenenden ...

... so, untenstehend das Modul.

die Gyros liefern in Ruhe ca. 1.29V - was die Amplituden angeht, kann ich dir leider nicht mehr viel sagen - vielleicht 150mV oder so?

Schaltplan gibts nicht (wie immer bei mir *seufz*) aber der Aufbau ist, wie oben beschrieben:
- Gyro-Signal über 1KOhm an IN+ des OpAmps
- IN- des OpAmps über 100KOhm an Out des OpAmps
- An IN- ist ferner ein Spannungsteiler mit 12KOhm an Masse und 36KOhm an +5V

Meine Gyros laufen mit nicht ganz 5V (ca. 4.3V über eine Diode realisiert) und sind mit einem 100nF bestückt, mit denen ich generell nicht geizig war auf dem Modul.

Momentan bin ich an der Programmierung. Ich muss noch an den Reglerwerten arbeiten, denn momentan bekommt Marvin das Zappeln, bzw. gleicht nicht genug aus. Kommt mir aus meinem Quadkopterzeiten noch sehr bekannt vor^^
Bin halt kein Experte, was den momentan arbeitenden PID-Regler angeht, sondern lerne anhand meiner Misserfolge :)

Ob diese Schaltung was taugt - keine Ahnung, ich experimentiere noch mit den Werten des Reglers und hoffe, bis zum kommenden WE Erfolge in Form eines Videos präsentieren zu können.

Anders als bei deinem Kopter soll bei meinem Bot keine komplette Lagestabilisierung erfolgen, sondern lediglich eine Art Federung realisiert werden mit 2 Effekten:
- kippt der Untergrund weg, so soll zunächst dieses Abkippen komplett ausgeglichen werden, dann aber eine langsame Anpassung erfolgen.
- Schreitbedingte Lageänderungen sollen minimiert werden.

Gruß MeckPommER

Willa
27.10.2008, 13:27
Hi!
Danke erstmal für deine Beschreibung!

- Gyro-Signal über 1KOhm an IN+ des OpAmps
- IN- des OpAmps über 100KOhm an Out des OpAmps
Sehe ich das richtig, die Verstärkung ist 100x ...?
Tatsächlich vom IN- einen 100k an OUT? bisher las ich immer, daß IN+ über nen Widerstand mit OUT verbunden wird...


Deine Platine sieht sehr sehr schick aus...!

MeckPommER
27.10.2008, 15:28
Also im oben angegebenen Link (Elektronik-Kompendium) ists auch mit einem Widerstand Out an IN- realisiert *kopfkratz*
Die Verstärkung müßte sich (ich bitte bitte bitte um Korrektur, falls ich mich irre oder falsch gelesen habe) nicht nach dem R-Verhältnis zwischen dem Widerstand von Out nach In- und dem Widerstand von In+ zum Gyro richten sondern nach dem R-Verhältnis zwischen dem Widerstand von Out nach In- und dem Widerstand im Spannungsteiler nach GND.
Demnach sollte die Verstärkung etwa 8-fach sein. Bei 100-facher Verstärkung müßte die Ausgangsspannung wie ne Flipperkugel gegen die Bande hauen ;-)

Danke fürs Kompliment wegen der Platine ... das Layouten und Bestücken ist für mich so entspannend, wie das Stricken für ne Omi :-D

proevofreak
28.10.2008, 19:02
hallo, habe auch eine frage zu diesem thema. und zwar möchte ich die spannung an einem ptc widerstand verstärken. dazu habe ich einen lm 324 n mit dil 14. jetzt ist es so dass ich keine pos und neg betriebsspannung habe, da mein roboter lediglich mit akkus läuft.

kann mir vielleicht jemand sagen ob ich für die betriebsspannung auch nur +5V und GND anschließen kann?

mfg

MeckPommER
28.10.2008, 19:31
Mein Wissen als OpAmp-Laie: es gibt verschiedene Typen mit verschiedenen Parametern. Einige kommen mit einer 5V Betriebsspannung aus. Dazu gehört auch dein lm324. Ein Blick ins Datenblatt ist dazu stets hilfreich. Einige funktionieren erst ab 10V oder mehr, oder brauchen eine pos. bzw. neg. Spannungsversorgung.

Reicht der Widerstandsunterschied an deinem PTC nicht aus um ihn in einem Spannungsteiler auszulesen?

Besserwessi
28.10.2008, 19:46
Der LM324 geht mit nur +5V allerdings wird er am Ausgang nur bis etwa 3 V liefern können. Also eher 2,5 V als Vref, nicht 5 V. Wenn man den PTC auslesen will sollte man Vref und die Brückenspannung aus der selben Quelle nehmen. Also PTC mit Widerstand gegen 5 V und Vref = 5V / 2 über spannungsteiler, nicht die internen 2,5 V.

proevofreak
28.10.2008, 20:04
ja also den ptc hätt ich eh über ne brückenschaltung an den nichtinvertierenden eingang des lm 324 angeschlossen. das mit den +3v ist auch kein problem. was genau meinst du mit vref? kann ich dann für die betriebsspannung den opv dann direkt an +5V und GND anschließen?

mfg

Willa
29.10.2008, 22:17
Hallo nochmal!!
Also, ich habe mal Meckpommers Schaltung probiert. Und siehe da, es funktioniert sehr schön (siehe Bild1). Nun habe ich natürlich nicht nur 1 Gyro sondern 3. Das zweite Gyro habe ich so angeschlossen wie in Bild 2. Nun funktioniert gar nichts mehr, am µC kommen nur noch wirre Werte an. Was mache ich falsch...? Braucht jedes Gyro seinen eigenen Spannungswandler...?!
Wenn mir jemand helfen könnte wäre das fein!

PICture
29.10.2008, 22:28
Hallo!

@ Willa

Dein Fehler ist, dass die -Eingänge der zwei OPs kurzgeschlossen sind. Du musst die Schaltung vom Bild1 für jedes Gyro einzeln aufbauen.

MfG

Willa
30.10.2008, 07:15
@PICture:
Also für jedes Gyro einen eigenen Spannungswandler (bestehend aus 36k und 12k)?
Wenn das der Fehler ist bedanke ich mich schon mal recht herzlich und freue mich auf die ersten Tests heute Abend.

PICture
30.10.2008, 07:30
Hallo Willa!

Ja, genau. Der Widerstand 12k mit dem 100k festlegen die Spannungsverstärkung des OPs (Ku=100k/12k~8,33) und der Widerstand 36k realisiert Kompensation der Offsetspannung. Der Widerstand 1k ist nicht nötig. O:)

MfG

MeckPommER
30.10.2008, 08:14
Man, was bin ich stolz, das ich das richtig "entworfen" hab *freu* (ok, der 1K-Widerstand *räusper*) ;-)

Ich erlaube mir, mal etwas OT zu werden, obwohl es in direktem Zusammenhang mit dem OA steht:

Es geht um den Regler, der die Daten der Gyros verarbeiten soll: sehe ich das richtig, das für den I-Anteil des Reglers die Daten zweimal integriert werden müßten? Ist mein Gedankengang so richtig?:
- die Rohdaten eines Gyro sind die Winkelbeschleunigungen.
- die integrierten Winkelbeschleunigungen ergeben die Position
- die integrierten integrierten Winkelbeschleunigungen geben mir den I-Anteil für den PID-Regler

Da der Bot in waagerechter Lage bleiben soll, ist der P-Anteil stets 0. Wäre das nicht so, dann die gewünschte Lage des Bots mein P-Anteil

Da Sensorwerte von Gyros nicht grade rauscharm sind, ist mit dem D-Anteil vorsichtig umzugehen. Der D-Anteil ergibt sich nicht aus dem Unterschied des akutellen Gyrowertes zum letzten Gyrowert, sondern aus dem Unterschied des aktuellen integrierten Gyrowertes zum letzen integrierten Gyrowert, da es ja beim D-Anteil um die Position und nicht um die Winkelbeschleunigung geht.

Sind meine Gedankengänge soweit korrekt, oder ...
... mir ist so, als würde da noch ein gedanklicher Fehler drin sein, denn ich messe ja bei den Gyros keine Winkelgeschwindigkeit, die ich zu integrieren habe, sondern eine Winkelbeschleunigung *kopfkratz*

Über jedwede Kommentare freut sich

MeckPommER

Willa
30.10.2008, 08:17
- die Rohdaten eines Gyro sind die Winkelbeschleunigungen.
Genau das habe ich auch immer gedacht und hielt es für logisch.... Ein Gyro misst aber tatsächlich die WinkelGESCHWINDIGKEIT.
Erscheint erstmal unlogisch, ist aber tatsächlich so. Ich habs auch nicht glauben wollen.....
Also:
Rohwerte -> Geschwindigkeit
Rohwerte differenzieren -> Beschleunigung
Rohwerte integrieren -> "Position"


Ich habe aber auch schon wieder eine Frage...: Wenn ich parallel zu dem 100k Widerstand ein 1,8nF Kondensator schalte, dann habe ich doch einen Tiefpassfilter, oder? Die Grenzfrequenz ist ganz ungefähr 1 kHz, richtig? Wie finde ich raus ob Kondensatoren noch funktionieren? Meine wurden jetzt ca. 5mal ein und ausgelötet, teilweise musste ich auch etwas länger erhitzen... Und Conrad ist weit weg.

MeckPommER
30.10.2008, 08:24
Hmm ... *nachdenk* ... scheint ja auch irgendwie logisch, denn sonst würde der gemessene Wert am Begin einer Bewegung ja enorm hoch sein.

Demnach ist der gedankliche Fehler also nicht vorhanden, und das oben aufgeführte Prinzip müßte funktionieren, nur handelt es sich um Winkelgeschwindigkeiten und nicht um Winkelbeschleunigungen *weiter nachdenk*

Was einen Kondensator parallel zum 100k-Widerstand angeht, bin ich auch schon ins Grübeln gekommen. Ich frage mich aber dabei, ob der nicht in der Schaltung selber schon integrierend wirkt und somit mehr Schaden als Nutzen bringt. Wäre nicht ein Kondensator im pF-Bereich von Out nach GND auch sinnvoll?

BlackDevil
30.10.2008, 08:32
- die Rohdaten eines Gyro sind die Winkelbeschleunigungen.
Genau das habe ich auch immer gedacht und hielt es für logisch.... Ein Gyro misst aber tatsächlich die WinkelGESCHWINDIGKEIT.
Erscheint erstmal unlogisch, ist aber tatsächlich so. Ich habs auch nicht glauben wollen.....
Also:
Rohwerte -> Geschwindigkeit
Rohwerte differenzieren -> Beschleunigung
Rohwerte integrieren -> "Position"


Ich habe aber auch schon wieder eine Frage...: Wenn ich parallel zu dem 100k Widerstand ein 1,8nF Kondensator schalte, dann habe ich doch einen Tiefpassfilter, oder? Die Grenzfrequenz ist ganz ungefähr 1 kHz, richtig? Wie finde ich raus ob Kondensatoren noch funktionieren? Meine wurden jetzt ca. 5mal ein und ausgelötet, teilweise musste ich auch etwas länger erhitzen... Und Conrad ist weit weg.

Entweder ausmessen ob die Kapazität noch passt oder besser einen Tiefpass mit bekanntem R und damit bekannter fg bauen und dann ausmessen wo die Grenzfrequenz liegt. Je nach Oszi ist das ja ziemlich simpel... Wir haben von Agilent ein NIgel-Nagel-Neues das dir die Phasenverschiebung wunderbar anzeigt :D Sehr praktisch *g*

MeckPommER
30.10.2008, 08:35
@Willa

Conrad ist weit weg? Früher gabs in HH einen Conrad in Dehnheide, gibts den nicht mehr?

<schwelg>Ach ja ... früher gabs auch Balü-Elektronik und Baderle in der Spitaler Straße bzw. U-BHF Messberg ... das war was für mein junges Bastlerherz :-)</schwelg>

Willa
30.10.2008, 10:55
In Hamburg habe ich in Wellingsbüttel gewohnt, da war Conrad auch "weit" weg.... Mittlerweile wohne ich in Bremen, so weit ists auch hier nicht, aber wenn ich aus der Uni komme ist immer Berufsverkehr, und man braucht ewig... Außerdem will ich ja lieber basteln und nicht shoppen!

MeckPommER
30.10.2008, 11:37
Also was das Basteln angeht, ist Shoppen für mich Entspannung ^^ Aber auch ich bevorzuge das Shoppen per Online-Bestellung. Hier in meiner Gegend im Umkreis von 100km gibts keine elektronikschen Bauelemente. Nächster Ort mit derartiger Versorgung ist Berlin, und bevor ich mich dort im C krümelig ärgere ...

Poste mal deine Erfolge, wenn du am Abend dazu kommst, deine Gyros in Betrieb zu nehmen! Bin sehr neugierig!

Der Stand meiner Technik sieht so aus, das mein Bot Bodenbewegungen zwar ausgleicht, aber nicht genug, nur zu etwa 30%. Erhöhe ich die Auslenkung durch irgendwelche Parameter, kommt der Bot ins Schwingen (was in schönstes Zappeln übergeht^^).
Ich frage mich nun, wie ich die Parameter ändern muss, oder ob mir wirklich noch der D-Anteil fehlt *kopfkratz*

Trotzdem sieht es schon sehr interessant aus. Ohne Gyroeinwirkung ist der Bot starr - logisch, unter Gyroeinwirkung sieht es beinahe aus, als sei der Bot weich geworden, weil er auf einer sich bewegenden Bodenplatte ausgleichend schaukelt.

Zurück zum OpAmp: hat jemand noch eine schlaue Anmerkung zum Kondensator parallel zum 100K Widerstand, bzw. zum Kondensator von Out nach GND?

Willa
30.10.2008, 11:46
Ein Hexapod mit Gyros ist aber sicher auch ne sehr feine Sache! Kann mir vorstellen dass das den Roboter sehr viel "organischer" wirken lässt.

Zum Tiefpass:
Im Datenblatt meiner Gyro's (Murata ENC-03R) gibts diesen Schaltplan, dort ist der Kondensator eingezeichnet:
http://search.murata.co.jp/Ceramy/CatalogshowpageAction.do?sDirnm=A09X&sFilnm=ENCAC01&sType=2&sLang=en&sNHinnm=ENC-03R&sCapt=Sample_Amplifer_Circuit

Bei meinem einzigen bisher funktionierendem Gyro (aufgebaut nach diesem Schaltkreis) hat der Kondensator das Signal ruhiger gemacht (subjektiver Eindruck). Ich werde es mal probieren.

MeckPommER
30.10.2008, 12:42
Jo, probieren kann nicht schaden ... und nun sehe ich endlich mal eine Beschaltung eines Gyro aus einem Datenblatt :-) Vielleicht wäre ein Hochpass auch keine so schlechte Idee gewesen ... na mal gucken, ob es auch ohne geht, ich habe nämlich keine besonders große Lust, die Platine nochmal auseinanderzunehmen - wenn es nicht unbedingt sein muss. Den Tiefpass kann ich ja noch leicht realisieren, indem ich über die SMD-Widerstände noch SMD-Kondensatoren löte.

Über meine Gyros - aus ACT-Kreiseln ausgebaut die von meinem Quadrokopter übriggeblieben sind - habe ich noch nichts Datenblattähnliches gefunden.

Hast du vielleicht eine Idee, wie ich die Auslenkung meines Bots vergrößern könnte, ohne das der Bot ins Schwanken kommt? Ich glaube, heute Abend zieht sich Papa zu einer Nachtschicht in sein Kämmerlein zurück und bastelt ... bei Erfolgen gibs auch ein Video :)

Loewe
11.12.2008, 22:17
Also:
Rohwerte -> Geschwindigkeit
Rohwerte differenzieren -> Beschleunigung
Rohwerte integrieren -> "Position"


Kann mich jemand über diese Mathematische Funktionen "Differenzieren" und "Integrieren" Aufklären?

Könnte sein das ich entweder zuwenig Koffein intus habe, oder meine Ausbildung ist Mangelhaft. :)

Gruss Loewe

Loewe
11.12.2008, 22:19
................Doppelpost...............

MeckPommER
12.12.2008, 06:05
Suchmaschinen sind deine Freunde ;-)

Ganz (ganz ganz ...) grob:

Differenzieren ist das Bilden der ersten Ableitung, also das Berechnen der Steigung. In unserem Fall der Vergleich des Messwertes des Gyros mit dem vorherigen Messwert.

Integrieren ist das Aufsummieren der Messwerte über die Zeit um aus den Bewegungsdaten Positionsdaten zu berechnen.
(Gehe ich 2 Meter zurück [-2] und dann 3 Meter Vorwärts [+3], liegt meine derzeitige Position bei 1 Meter [-2 + +3 = +1] in Vorwärtsrichtung)

Gruß MeckPommER

Loewe
12.12.2008, 08:14
Suchmaschinen sind deine Freunde ;-)

Ganz (ganz ganz ...) grob:

Differenzieren ist das Bilden der ersten Ableitung, also das Berechnen der Steigung. In unserem Fall der Vergleich des Messwertes des Gyros mit dem vorherigen Messwert.

Integrieren ist das Aufsummieren der Messwerte über die Zeit um aus den Bewegungsdaten Positionsdaten zu berechnen.
(Gehe ich 2 Meter zurück [-2] und dann 3 Meter Vorwärts [+3], liegt meine derzeitige Position bei 1 Meter [-2 + +3 = +1] in Vorwärtsrichtung)

Gruß MeckPommER


Aha

Sehr gut erklärt, schon kapiert. :)

Habt Ihr Programmierer ein Standartverfahren um das überlaufen von Inkrementellen zu verhindern, wegen Messfehler, rauschen usw.?
Wird der Wert zeitlich langsam gegen 0 gezogen?
Oder wie macht Ihr das?

Gruss Loewe

Willa
12.12.2008, 08:23
Wird der Wert zeitlich langsam gegen 0 gezogen?
Das war das was Meckpommer mir empfohlen hat. Seitdem fliegt der Copter schön ruhig. Ganz so einfach kann man das aber nicht einbinden, z.B. wenn man ne lägere Zeit vorwärts fliegt, dann denkt die Reglung das wäre die neue "Schwebelage". Will man dann stoppen, so versucht die Reglung den Vorwärtsflug wiederherzustellen. Ich habs so gelöst dass das Integral umso stärker gen null gezogen wird je stärker der Knüppelausschlag ist. Außerdem wird mein Integral generell ziemlich stark auf null gezogen. So wird nach sehr kurzer Zeit die aktuelle Lage als die einzuhaltende Lage erkannt, so soll es ja sein.

Loewe
12.12.2008, 11:16
Wird der Wert zeitlich langsam gegen 0 gezogen?
Das war das was Meckpommer mir empfohlen hat. Seitdem fliegt der Copter schön ruhig. Ganz so einfach kann man das aber nicht einbinden, z.B. wenn man ne lägere Zeit vorwärts fliegt, dann denkt die Reglung das wäre die neue "Schwebelage". Will man dann stoppen, so versucht die Reglung den Vorwärtsflug wiederherzustellen. Ich habs so gelöst dass das Integral umso stärker gen null gezogen wird je stärker der Knüppelausschlag ist. Außerdem wird mein Integral generell ziemlich stark auf null gezogen. So wird nach sehr kurzer Zeit die aktuelle Lage als die einzuhaltende Lage erkannt, so soll es ja sein.

Sehr Interessant!


Dann Fütterst du die integrierenden Werte vom Gyro (Position) dem I Anteil des PID Regler?
Dann hat dein Copter ein anderes Flugverhalten als HH (Heading Hold) auf allen Achsen?

Wenn du die Knüppel loslässt versucht er sich einigermassen gerade zu richten?

Sorry für die Fragen, hab den Überblick noch nicht. :)

Gruss Loewe

Willa
12.12.2008, 14:19
Die integrierten Werte vom Gyro sind der I-Anteil des PID Reglers. "Heading hold" ist nicht eindeutig definiert. Sagen wir es anders: ich gebe mit meinen Knüppel einen Neigungswinkel vor. Der Regler versucht diesen dann zu halten (klappt natürlich nur angenähert). Wenn ich die Knüppel loslasse bleibt er so stark gekippt wie er es vorher war. Das entspricht meiner Definition von HH.

Loewe
12.12.2008, 17:49
Aha

Das heisst du hast einen I Anteil der sich ändert.
Bei grosser Positionsabweichung von 0 (Schweben) also z.B. 30° ist der I Anteil grösser.
Was bringt dies?

Hast du den I Anteil schon mal als festen Wert genommen zum Testen?

Gleichzeitig versuche ich Basic zu lernen, mein Kopf raucht. :)

Gruss Loewe

Willa
12.12.2008, 19:29
Bei grosser Positionsabweichung von 0 (Schweben) also z.B. 30° ist der I Anteil grösser.
Was bringt dies?
Wenn 30° nach vorne gekippt: Die vorderen Motoren laufen x*30°*0.5 schneller, der hintere x*30° langsamer. Dadurch wird die Regelabweichung kleiner, gleichzeitig aber wird auch weniger stark gegengesteuert. solange bis man wieder bei 0 ankommt (in der Theorie...).
x=I_Anteilsverstärkung, z.B. "0.01". Der Faktor 0.5 ergibt sich daraus dass vorne zwei Motoren sich den Schub teilen, hinten muss ein Motor den ganzen Schub leisten. Lies dich doch einfach mal im RN-Wiki in den Artikel "Regelungstechnik" bzw. "PID-Regler" ein. Das hilft schon mal ein Stückchen.

Loewe
13.12.2008, 14:01
Morgen

Ich benutze den I Anteil eigentlich unabhängig von der Position, also esum = esum + e.

Zumal ich dachte das man die Position erst brauchen kann wenn man einen Absoluten Wert bekommt, z.B. Von einem ACC und der Erdanziehungskraft.

Im übrigen hab ich’s glaub ich schon gesagt? Dein Copter Fliegt sehr gut. :)

Ich muss da mal ein paar Praktische Test machen.

Gruß Loewe

Terfagter
24.03.2009, 19:01
Hallo nochmal!!
Also, ich habe mal Meckpommers Schaltung probiert. Und siehe da, es funktioniert sehr schön (siehe Bild1). Nun habe ich natürlich nicht nur 1 Gyro sondern 3. Das zweite Gyro habe ich so angeschlossen wie in Bild 2. Nun funktioniert gar nichts mehr, am µC kommen nur noch wirre Werte an. Was mache ich falsch...? Braucht jedes Gyro seinen eigenen Spannungswandler...?!
Wenn mir jemand helfen könnte wäre das fein!

Hast du jetzt 5V Betriebsspannung für den lm324 genommen und den 1k Widerstand weggelassen???

Willa
24.03.2009, 19:15
Die Gyros laufen noch mit 5V am op und ohne 1k dazwischen. Für den ACC habe ich den OP mit 6V versorgt, dann kann man die 0-5V des ADC komplett ausnutzen.