PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motorregler PID-Bascom



WL
06.02.2011, 09:32
Nachdem ich ca. 2 Jahre dieses Forum "aufgesaugt" habe möchte ich nun mal wieder etwas zurückgeben.........

Die Komunikation läuft bei mir noch nicht "astrein".
Das wird aber an der alten (Zusatz-)TWI Slave-Lib liegen. Die hat wohl Macken was die Interrupts angeht (deswegen die PUSHs und POPs). Ich kann im Augenblick leider nicht updaten.

Ihr könnt aber auch gern auf SPI oder Standart-Seriell umbauen.

WL
11.02.2011, 10:30
...... so geht es nicht !
Da war ich wohl ein wenig voreilig !

Hier das korrigierte (jetzt hoffentlich fehlerfreie) Programm:

Richard
11.02.2011, 13:32
...... so geht es nicht !
Da war ich wohl ein wenig voreilig !

Hier das korrigierte (jetzt hoffentlich fehlerfreie) Programm:

Moin moin.

Wozu I²C für den Motortreiber? Leider hat nicht jeder die Zusatz Lib. :-( So auf die Schnelle habe ich auch nicht gerafft wo was über I²C läuft und Möglicher Weise auch von normalen Port aus/Eingängen ersetzt werden kann? :-( Könntest Du dazu noch etwas bemerken?

Grüße Richard

oberallgeier
11.02.2011, 14:22
Schön schön, ein bisschen viel Hardwareaufwand, aber so etwas wollte ich auch (schon immer) mal machen. Die Bestimmung der Regelparameter lt. Deiner Dokumentation scheint mir etwas à la Bastelladen. Ich mache das mit der Auswertung einer Sprungantwort auf den Sprung "volle Kanne".

Was bitte heißt in der Dokumentation "... um die Antriebe so schnell wie möglich zu stoppen ... wird ohne Rampe gebremst ... der Antrieb ist "verriegelt" ..." Elektronisch kann man nix verriegeln. Und wenn man nur den Saft abdreht, wird ein Antrieb NICHT so schnell wie möglich gebremst. Das ist so, wie wenn Du zum Einparken nur die Kupplung trittst . . . DAS hört sich dann nicht gut an . . .

Hier ist der Unterschied für drei verschiedene Bremsstrategien (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=465839#465839) dokumentiert, siehe Links zu erster, zweiter und dritter Variante.

WL
12.02.2011, 11:32
Hallo Richard,



Wozu I²C für den Motortreiber?

Für die Kommunikation mit dem übergeordneten µC/Master ( Sollwertvorgaben / Rampe / Komandos / Modus ).
Das ist ähnlich aufgebaut wie beim MD 23/25 von Devantech.


Leider hat nicht jeder die Zusatz Lib

....ist ja nicht soooo teuer. Wie man sieht ist das damit aber einfach aufgebaut.
Außerdem steht euch frei das ganze über z.B. SPI zu steuern. Irgendwie müssen aber die Sollwerte rein und (u.a.) die Zählerstände für die Odometrie wieder raus.

Möglicher Weise auch von normalen Port aus/Eingängen ersetzt werden kann?
Warum nicht ? Wenn genügend Ports zur Verfügung stehen !? :-b

WL
12.02.2011, 12:08
ein bisschen viel Hardwareaufwand

Wirklich ? > Von nichts kommt nichts............


Die Bestimmung der Regelparameter lt. Deiner Dokumentation scheint mir etwas à la Bastelladen

Da muß ich Dir Recht geben. Ich wollte es halt einfach halten. Für Fortgeschrittene mit höheren Ansprüchen > http://www.rn-wissen.de/index.php/Regelungstechnik


"... um die Antriebe so schnell wie möglich zu stoppen ... wird ohne Rampe gebremst ...

Bei Eintreffen des "STOP" wird PWM auf "0" gesetzt. Deine Strategie #2 !


der Antrieb ist "verriegelt" ..."

Damit ist gemeint das der Stop wie ein (mechanischer) Not-Ausschalter wirkt. Den muß ich gezielt "entriegeln" um wieder Bewegung in den Laden zu bekommen ( Komando 3).


Und wenn man nur den Saft abdreht, wird ein Antrieb NICHT so schnell wie möglich gebremst. Das ist so, wie wenn Du zum Einparken nur die Kupplung trittst . . . DAS hört sich dann nicht gut an . . .

...na ja, ganz so ist es nicht. Es wird bei PWM=0 in den Akku zurückgespeist.
Grundlage hierfür ist folgender Beitrag: http://141.69.160.32/~krausg/Microcontroller/CD_Microcontroller/Unterricht%20und%20Beispiele%20und%20Projekte/Unterricht_Projekte/Projekt_PWM-Fahrtregler%20f%C3%BCr%20DC-Eisenbahnen/Projektdokumentation%20und%20Beschreibung%20als%20 WINWORD-File/Microsoft%20Word%20-%20PWM-Regler.pdf
Effektiver wäre :
Die Lowside-Transistoren des TLE5205 anzusteuern und damit den Motor "kurzzuschließen" .........Deine Strategie #3.

Dann wäre noch eine weitere Möglichkeit vorhanden (Strategie #4?):
Im "echten" 4 Quadrantenbetrieb Aktiv gegenzusteuern !

Richard
12.02.2011, 12:15
Hallo Richard,


Das ist ähnlich aufgebaut wie beim MD 23/25 von Devantech.
[

Was (mir) jetzt leider überhaupt nichts sagt, Google spuckt auch nichts bei MD 23/25 aus. :-(

An sich gefällt mir das Programm, aber um das z.B. für (meinen) RN Dual Motortreiber an zu passen werde ich mich damit noch sehr lange beschäftigen müssen.

Zur Zeit raffe ich herzlich wenig da ich absolut nicht weiß was auf der Slave Seite überhaupt abläuft.....

Gruß Richard

WL
12.02.2011, 13:11
Was (mir) jetzt leider überhaupt nichts sagt, Google spuckt auch nichts bei MD 23/25 aus.

http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=197


werde ich mich damit noch sehr lange beschäftigen müssen.

...das hoffe ich nicht !



Zur Zeit raffe ich herzlich wenig da ich absolut nicht weiß was auf der Slave Seite überhaupt abläuft.....

......das kommt schon noch !
Ich werde versuchen, das noch weiter "aufzudröseln".
Das wird aber noch ein Weilchen dauern.........

oberallgeier
12.02.2011, 15:04
... (Strategie #4?) ... Aktiv gegenzusteuern !Genau das mache ich in Variante 3 - da wird der Motor voll auf Gegenrichtung angesteuert - denn beim nur Kurzschließen sinkt die Bremswirkung mit der Geschwindigkeit. Gegenschub mach ich beim Bötchenfahren auch zum schnellen Stoppen. Muss man aufpassen, dass man nicht rückwärts fährt - das ist aber einfach abzuschätzen.

Richard
12.02.2011, 23:25
... (Strategie #4?) ... Aktiv gegenzusteuern !Genau das mache ich in Variante 3 - da wird der Motor voll auf Gegenrichtung angesteuert - denn beim nur Kurzschließen sinkt die Bremswirkung mit der Geschwindigkeit. Gegenschub mach ich beim Bötchenfahren auch zum schnellen Stoppen. Muss man aufpassen, dass man nicht rückwärts fährt - das ist aber einfach abzuschätzen.

Video Video, Oberallgeier gibt beim Brötcheholen mit dem Moded "Gegenschub". Köstlich. :-) Sorry, aber wenn ich mir das Bildlich vorstelle.....Gröl. :-)

Grüße Richard

oberallgeier
13.02.2011, 00:02
... Video Video, Oberallgeier gibt beim Brötcheholen mit dem Moded "Gegenschub" ...Ach, Kollege! Stimmt, Gegenschub mit dem Moped! DAS wär was. Na ja, mal runterschalten, einen Hauch einlenken, vorn voll bremsen, abrupt Gas voll aufziehen und einen Halbkreis driften, danach ginge das mit dem Gegenschub. Also - auf Schotter auf ner (tiefer gelegten) Enduro hab ich was Ähnliches schon sturzfrei geschafft. Aber im obigen Fall ist es ein
Bötchen mit Segel, ungefähr so

............Bild wieder entfernt, langsam wird mein web space voll
Weil ich Bötchen über der zehn Tonnenmarke fahre, geb ich bei Ankermanövern oder vor dem Einbomben in die Pier oder so Gegenschub (im Bötchen steckt hinten ein Volvo-Penta). In der Gewichtsklasse gibts sogar fast keine Kavitation.

Richard
13.02.2011, 11:34
- schick der "Dampfer":-)

Gruß Richard

WL
15.02.2011, 16:48
Zur Zeit raffe ich herzlich wenig da ich absolut nicht weiß was auf der Slave Seite überhaupt abläuft.....


.....also hier nochmal eine Version ohne Anbindung an den übergeordneten µC:

Hier kannst Du die Variablen nach Deinem Gusto schreiben / lesen !

Richard
15.02.2011, 18:42
Zur Zeit raffe ich herzlich wenig da ich absolut nicht weiß was auf der Slave Seite überhaupt abläuft.....


.....also hier nochmal eine Version ohne Anbindung an den übergeordneten µC:

Hier kannst Du die Variablen nach Deinem Gusto schreiben / lesen !

Danke Dir. :-) Nun muss ich noch herausfinden wie ich die 96 Byte zufiel eliminiere, ich habe nur die Bascom Demo. :-( Aber zur Not teile ich die Datei und füge das Ergebnis mittels Hex Editor zusammen. :-) Meine Motorsteuerung RN Motor und RN Dualmotor Treiber können als I²C Slave arbeiten.

Gruß Richard