PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC18F4431 und "Bohrmaschinen Regler"



Magge2k
07.01.2016, 17:49
Hallo Leute,

ich wollte mal fragen ob von euch schon einmal jemand den "Drehzahlregler für Mini-Bohrmaschinen" auf einem Mikrokontroller realisiert hat?

Beispiel Video hierfür: https://www.youtube.com/watch?v=zm5P0qfea78

Die Hardware auch welcher der Regler realisiert werden soll ist der besagte PIC 18F4431 (Datenblatt: http://ww1.microchip.com/downloads/en/DeviceDoc/39616d.pdf), welcher 2 DC-Motoren regeln soll.

Als Treiberstufe kommt von DF-Robotics 2x15A Lite ( "DRI0018" ) zum Einsatz (http://www.dfrobot.com/wiki/index.php/DC_Motor_Driver_2x15A_Lite_(SKU:_DRI0018)).
Tipps für die Implementierung der Strommessung unter Verwendung der BTS7960 nehme ich ebenfalls gerne entgegen ;-)
Bei diesen habe ich im Moment das Problem, dass ich keinen konstanten Strom messe sondern ebenfalls zufällig in einem Bereich innerhalb der PWM-Periode. Dann kommt halt manchmal 0 und manchmal irgend ein Wert heraus.

Als Motoren kommen Motoren vom Typ GR53x30 mit einem PLG52 Getriebe (Übersetzung 6,25:1) zum Einsatz.

Auf dem Mikrocontroller soll ebenfalls ein eigenes Kommunikationsprotokoll über RS485 realisiert werden (bereits vorhanden). Ich erwähne dies nur um anzumerken, dass noch genügend Rechenzeit vorhanden ist damit das Kommunikationsprotokoll verarbeitet werden kann.

Falls jemand einen Hinweis, ein Paper oder sonst eine Quelle hat wie ich relativ schnell diesen Regler umsetzen könnte wäre ich dankbar. Das ganze sollte natürlich ziemlich robust sein.


Vielen Dank schonmal im Vorraus,
Grüße M2k

PS: Falls eine Info fehlt einfach nachfragen.

Peter(TOO)
08.01.2016, 03:10
Hallo m2k

Tipps für die Implementierung der Strommessung unter Verwendung der BTS7960 nehme ich ebenfalls gerne entgegen ;-)
Bei diesen habe ich im Moment das Problem, dass ich keinen konstanten Strom messe sondern ebenfalls zufällig in einem Bereich innerhalb der PWM-Periode.
Dann kommt halt manchmal 0 und manchmal irgend ein Wert heraus.

Entweder ein RC-Glied dazwischen schalten, dann misst du den mittleren Strom über die Zeit.
Oder du musst den ADC mit der PWM synchronisieren, sodass du immer kurz vor dem Ausschalten der PWM misst.

Alternativ kann man den ADC mit einer wesentlich höheren Rate als die PWM betreiben und den Spitzenwert auswerten.

MfG Peter(TOO)

Magge2k
10.01.2016, 17:24
Entweder ein RC-Glied dazwischen schalten, dann misst du den mittleren Strom über die Zeit.
Oder du musst den ADC mit der PWM synchronisieren, sodass du immer kurz vor dem Ausschalten der PWM misst.

Alternativ kann man den ADC mit einer wesentlich höheren Rate als die PWM betreiben und den Spitzenwert auswerten.



Hallo Peter(TOO),

ich habe nun einmal die komplizierteste Variante genommen und mir einen aktiven Tiefpassfilter mit vorgelagerter Addiererschaltung aufgebaut.
Dadurch kann ich die beiden Messausgänge zusammenschalten und benötige am uC nur einen ADC Wandler Pin für einen Treiber. Auch spare ich mir dadurch
die Synchronisierung der Messung wie dein zweiter vorschlag war.

Der Grund warum ich mich für diese Schaltung entschieden habe ist, dass ich über den Vorverstärker die Ausgangsspannung an den gewünschten Messbereich anpassen kann und dadurch den ADC mit den 5V der Logikversorgung betreiben kann ohne mit speziellen Referenzspannungsquellen hantieren zu müssen.

Um mal einen Bezug zu deiner Signatur zu haben, ich habe die Schaltung für PWM Grundfrequenzen von 1kHz bis 20kHz und 1024bit Auflösung in der Simulation getestet. Sofern ich nichts falsch gemacht habe müsste ich über die Potis diesen Bereich komplett abdecken. Gerne nehme ich auch deinen Rat zur verbesserung der Schaltung an ;-)
Das gilt auch für alle, die den Post lesen ;-)

Viele Grüße


3111131110

PS: Habe hier noch ein paar Links zum Reglerproblem gefunden

https://acroname.com/blog/back-emf-motion-feedback-blog-post
http://frontrangerobotics.org/PIDbackEMF/DavesBEMFmotorArticle.htm
(http://frontrangerobotics.org/PIDbackEMF/DavesBEMFmotorArticle.htm)
PPS: Die Filterschaltung soll für die Motorströme verwendet werden, welche von dem BTS Bauteil bereitgestellt werden.
Für die Back-EMF Messung wird ein separater Filter benötigt. Wie aus den beiden Links zu entnehmen ist, wird die Back-EMF-Spannung direkt am Motoranschluss gemessen. Dabei wird die generierte Spannung höher als die Logikspannung und Spannungsspitzen werden teilweise sogar höher als die Spannung der Motorversorgung.
Im Prinzip denke ich, dass der Filter für die Motorströme auch bei dieser Messung eingesetzt werden kann. Allerdings wird dazu noch ein angepasster Eingangsteil benötigt. Dabei denke ich im Moment an eine Kombination aus Spannungsteiler und Z-Diode bzw. einen Varistor um die maximale Spannung zu begrenzen... weitere Vorschläge nehme ich gerne entgegen....