Lehre.IW_P12 (Struktur)


Informatikwerkstatt - Gruppe MR, Interaktive Übungen zu Foliensatz 12

Bestimmung der Motorkennline (P12\Python\rotmess.py)

Hardware-Konfiguration:
  • Motoren über zwei H-Brücken PModHB5 und Y-Kabel an JL
  • PModUSBUSART an JH und über USB-Kabel mit PC verbinden.
  • JHX und JLX gekreuzt.

Programmdateien: rotmess.py , + Mikrorechnerprogramm zur Messung Umdrehungsgeschwindigkeit

Das Python-Programm rotmess.py nutzt conf_bstring als Modul. Es bestimmt für die PWM-Perioden 2ms, 1ms und 0,5ms für PWM-Werte von -100% bis +100% (aus dem Vorzeichen wird das Richtungssignal) die Anzahl der Winkelschritte pro Sekunde und stellt das Ergebnis tabellarisch und graphisch dar.

Test:
  • Auf dem Mikrorechner Programm test_rotmess starten.
  • HTerm schließen.
  • Konsole öffnen und in das Verzeichnis ...\Python wechseln.
  • Im Programm "rotmess.py" COM-Schnittstelle für die seriellen Verbindung anpassen.
  • "rotmess.py" auf dem PC starten und Ausgabe kontrollieren.

PI-Regler (P12\F12-test_regelung\regelung

Hardware-Konfiguration:
  • Motoren über zwei H-Brücken PModHB5 und Y-Kabel an JL
  • PModUSBUSART an JH und über USB-Kabel mit PC verbinden.
  • LCD (PmodLCS) an JD oben.
  • JHX und JLX gekreuzt.
  • Tasten-Modul (Schalter-Modul) an JA, Einschalten eines beliebigen Schalters/Tasters bewirkt ein Notaus (sofortigen Stop).

Programmdateien: test_regelung.c , regelung.py + Treiberdateien comir_lcd.h/c, comir_pc.h/c, comir_pwm.h/c und rotmess.h/c

Der zu testende PI-Regler ist ein Code-Baustein im Hauptprogramm, dass die Treiber "pwm.c", "rotmess.c", "comir.c" und "comir.lcd" nutzt. Für die Länge der Empfangs- und Sendenachrichten ist in "comir_pc.h" 10 bzw. 8 einzustellen:
 #define COM_PC_RMSG_LEN 10
 #define COM_PC_SMSG_LEN 8
Für die Anzahl der Abtastschritte je Messung ist in "pwm.h" einzustellen:
 #define ABTASTSCHRITTE 40 // 40*0,5ms = 20ms

Das LC-Display zeigt für beide Motoren die aktuelle Differenz vom Sollwert in Winkelschritten und die Integralteile sowie die Restzeit der Bewegungen und Informationen über (eventuelle) Fehlfunktionen an. Die Eingabenachrichten bestehen aus zwei vorzeichenbehafteten 16-Bit-Werte für die Sollgeschwindigkeiten, einem 16Bit-vorzeichenfreien Wert für die Bewegungsdauer in Regelschritten (Regelschrittdauer 20 ms), je einem 16Bit-vorzeichenfreien Wert für die Reglerparameter kp und ki. Rückgeschickt an den PC werden die Winkelabweichungen und die Integralteile für die Auswertung auf dem PC.

Das Python-Programm "regelung.py" steuert eine verkettete Bewegungsfolge, speichert die Winkelabweichungen der Sollwerte und die Integralanteile und stellt sie tabellarisch und graphisch dar. Es dient der Veranschaulichung der Reglerfunktion, der Bestimmung geeigneter Reglerparameter und später zum Testen von Fahrfunktionen.

Test:
  • Im Header comir_pc.h 10 Sende- und 8 Empfangsbytes einstellen
  • Im Header rotmess.h 40 Abtastschritte einstellen.
  • Programm übersetzen und ausführen.
  • Konsole öffnen und in das Verzeichnis ...\Python wechseln.
  • Im Programm "rotmess.py" COM-Schnittstelle für die seriellen Verbindung anpassen.
  • "regelung.py" auf dem PC starten. Motorbewegung und Ausgabe kontrollieren.


Autor: gkemnitz, Letzte Änderung: 15.04.2024 16:05:18


 TU Clausthal 2020  Impressum