Versuch 1 PWM-Motorsteuerung mit dem PowerPC 555 unter dem

Transcription

Versuch 1 PWM-Motorsteuerung mit dem PowerPC 555 unter dem
WS 2008/2009
Versuch1_33.doc
1
Versuch 1
PWM-Motorsteuerung mit dem
PowerPC 555 unter dem
Echtzeitbetriebssystem OS/9
Stand: 15.10.2008 10:42
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
2
Versuch1_33.doc
1
Einführung
1.1
Versuchsaufbau / Hardware - Übersicht
Das OAK-EMUF Board im Europakarten-Format ist mit einem Power-PC 555 (PPC)
von Motorola bestückt. Alle wesentlichen Peripherieeinheiten sind auf dem Chip des PPC
integriert. Das Board kommuniziert mit dem Bedienrechner (PC) wahlweise über eine serielle
Schnittstelle (RS232, 9600 Baud) oder eine Ethernet-LAN-Schnittstelle.
Encoder-Eingang
(DB15)
Dig. I/O (DB9)
LAN
RS232 (Serielle SSt.)
(DB9)
CAN-Bus
Auf dem OAK-EMUF Board ist mittels Stiftleisten ein Adapter-Board aufgesteckt. Die
Stromversorgung (+12V) des Adapterbords wird auf das EMUF-Board durchgeschleift. Ein
auf dem Adapter montierter Spannungsregler vom Typ MC7805CT erzeugt als zweite
Versorgungsspannung die benötigten +5 V.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
3
Versuch1_33.doc
Auf der Adapterplatine sind die Leitungen zur Encoderauswertung auf eine 15-polige
Buchsenleiste (DB15) herausgeführt. Frei verwendbare Digitale Ein- und Ausgänge (5VPegel) des EMUF sind auf eine 9-polige Buchsenleiste (DB9) der Adapterplatine
herausgeführt und mit einem kleinen „Schalterkästchen“ verbunden.
Die PWM-Endstufe besteht aus drei Halbbrücken mit FET- Leistungstransistoren. Die Platine
der PWM-Endstufe ist über ein 16-poliges Flachbandkabel mit der Adapterplatine verbunden.
Neben den Leistungstransistoren (BUZ32) ist sie (bei Vollbestückung für drei
Brückenzweige) mit drei Brückentreibern (IR 2111), drei Optokopplern (6N136), und drei
Stromwandler (HX 03P/SP2) bestückt.
Leistungs-Transistoren
Stromwandler
Brückentreiber
Optokoppler
Eingang ZK-Spannung (60V)
Ausgang Motorspannung (U,V,W)
Die Optokoppler sorgen für die galvanische Entkopplung zwischen der PWM-Endstufe und
der EMUF-Rechnerplatine
Die Stromwandler ermöglichen die potentialfreie Messung der Ausgangsströme der drei
Halbbrücken und erzeugen eine stromproportionale Spannung, die vom AD-Wandler des
EMUF verarbeitet werden kann.
Näheres kann den Schaltpläne der EMUF-Adapter Platine, der PWM-Endstufen Platine und
dem Block-Schaltbild der OAK-EMUF Platine mit dem Motorola Power PC 555 entnommen
werden.
1.2
PowerPC (PPC 555 von Motorola)
Das EMUF-Board baut auf der sehr verbreiteten Power-PC Prozessor Familie von Motorola
auf. Der auf dem Board angebrachte MPC555-Prozessor beinhaltet ChipSselect, Timer,
Counter und IRQ-Management. Zur hohen Integer-Rechenleistung kommt noch die davon
unabhängige Floatingpoint-Rechenleistung hinzu. Die Verwendung von schnellen BurstRAMs garantiert eine auch bei großen Programmen gleichbleibend hohe Rechenleistung . Der
Prozessor ist bei einer Frequenz von 40 MHz getaktet und kann mittels Software parametriert
werden.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
4
Versuch1_33.doc
Die meisten der Ein- und Ausgabe Features rühren von den 68376-Ein-Ausgabe
Schnittstellen her, die im MPC555 als peripherer Chip zur Verfügung stehen.
Dies ermöglicht die Kombination aller Ein- und Ausgabe Features des 68376 mit der
Rechenleistung des MPC 555. Der größte Teil der Funktionen des PPC555 ist auf der OAKEMUF Platine verfügbar. Die I/O- Schnittstellen sind über Stecker bzw. Stiftleisten
herausgeführt.
Die vollständige Beschreibung des Motorola PPC 555 mit all seinen Komponenten ist
ausführlich in dem umfangreichen „User Manual“ (MPC555UM.pdf) (ca. 12 MB)
beschrieben.
Von dem relativ breiten Angebot an integrierten Peripheriebausteinen wird in diesem Versuch
aber nur teilweise Gebrauch gemacht.
Folgende Bausteine des PowerPC werden im vorliegenden Versuch verwendet:
1.) MODULAR INPUT/OUTPUT SUBSYSTEM (MIOS1.pdf) und davon speziell das
• PULSE WIDTH MODULATION SUBMODULE (MPWMSM) für die
Erzeugung der PWM-Signale, das
• MODULUS COUNTER SUBMODULE (MMCSM) für Laufzeitmessungen
im Echtzeitprogramm und das
• 16-bit Parallel Port I/O Submodule (MPIOSM) für universell verwendbare
digitalen Ein- und Ausgabe.
2.) QUEUED ANALOG-TO-DIGITAL CONVERTER MODULE-64 (QADC64.pdf) für die
• zyklische, hardwaregesteuerte Erfassung von Analogwerten ohne Belastung
der CPU des PPC
3.) TIME PROCESSOR UNIT (TPU3.pdf)
• intelligentes Subsystem, das mit einem geeigneten Mikroprogramm
unabhängig von der CPU des PPC Echtzeitaufgaben im Anwendungsbereich
„Zählen und Zeitmessung“ durchführen kann. Im vorliegenden Versuch wird
die TPU für die vorzeichenrichtige Erfassung von Encodersignalen benutzt.
Das zugehörige Mikroprogramm für diese gängige Anwendung ist im ROM
des PPC555 bereits hinterlegt.
1.3
Echtzeitbetriebssystem OS/9
Auf dem OAK-EMUF Board ist für den PPC555 das Echtzeitbetriebssystem OS/9 hinterlegt.
Im Versuch kann mit der „Shell“ wahlweise direkt über die serielle Schnittstelle oder die
Ethernet-LAN-Schnittstelle (über Telnet) vom PC aus im Terminalbetrieb kommuniziert
werden. Mit Hilfe der „Shell“ werden insbesondere die für die PWM-Motorsteuerung
erforderlichen Programmmodule gestartet und überwacht. Die in diesem Versuch
erforderlichen OS/9 – Kenntnisse sollten aus der Vorlesung „Prozessdatentechnik“ bekannt
sein. Im Zweifelsfall kann in der OS/9-Hilfe (Laborseite von Herrn Prof. Dr. Seck)
nachgesehen werden.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
1.4
5
Versuch1_33.doc
Programmierung mit Hawk
Microware Hawk ist eine offene, integrierte Entwicklungsumgebung, mit der
man eine externe Zielhardware, in unserem Fall die OAK-EMUF Platine mit
dem Motorola PPC555, programmieren kann.
Für die Durchführung des Versuchs ist die Struktur der Software bereits vorab definiert und
steht als Rahmenprogramm zur Verfügung.
Die für den Versuch erforderlichen Software ist in der Hawk-Entwicklungsumgebung in
sogenannten „Project Spaces“ hinterlegt.
Innerhalb des „Project Space“ sind ein oder mehrere Projekte abgelegt.
In unserem Fall wurde für jedes benutzte Programmmodul ein separates Projekt angelegt.
Die einzelnen Projekte bestehen wiederum aus Komponenten (in unserem Fall nur eine
Komponente je Projekt) und diese enthalten die einzelnen C-Dateien oder Headerdateien.
Das Modul „io_init_su“ zur Initialisierung der Hardware wird in den Versuchen nicht
bearbeitet oder verändert. Zur Information ist aber der Source-Code einsehbar.
Die Dateien im Project Space „versuch1“ werden dagegen zumindest teilweise bei der
Versuchsdurchführung erstellt bzw. bearbeitet. Selbstverständlich ist auch hier der komplette
Source-Code offengelegt.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
6
Versuch1_33.doc
Kurzanleitung für den Umgang mit Hawk:
Öffnen des vorhandenen „Project Space“:
Project ⇒ Project Space ⇒ Open “C:\Mwos\PROJECTS\versuch1\versuch1.psp”
Auswahl eines bestimmten Projekts:
Project ⇒ Set Current ⇒ Auswählen aus der Liste vorhandener Projekte
Auswahl einer bestimmten Datei:
Markieren der Komponente (Modulname) im linken, oberen Fenster
Doppelklick auf die Datei im linken, unteren Fenster
Hinzufügen oder Entfernen von Dateien aus einer Komponente (Modul):
Komponente (linkes, oberes Fenster) mit rechter Maustaste anklicken
Befehl „Unit Maintanance“ auswählen
Datei mit Hilfe des geführten Dialogs hinzufügen oder entfernen
Programmmodul erzeugen:
Project ⇒ Build oder
Project ⇒ Rebuild
Programmmodul an Zielhardware (Target) übertragen:
Target ⇒ Load ⇒ (Auswahl des zu übertragenden OS/9-Moduls) ⇒ Load
Ob das übertragene Modul auch auf dem EMUF angekommen ist, kann dort über die „Shell“
mit dem Befehl „mdir“ (= Module Directory) überprüft werden.
Im Zweifelsfall kann auch die Hilfefunktion des Hawk benutzt werden. Selbstverständlich
hilft auch der Betreuer des Versuchs bei Unklarheiten weiter.
Eine ausführliche Beschreibung der Hawk-Entwicklungsumgebung ist im Hawk-User-Manual
zu finden.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
7
Versuch1_33.doc
2
Versuchsvorbereitung
2.1
PWM-Spannungserzeugung
2.1.1 Ein Brückenzweig (Halbbrücke)
Es soll zunächst die Ansteuerung und Funktionsweise eines einzelnen Brückenzweiges der
PWM-Endstufe betrachtet werden:
Die Taktfrequenz der Motorola 555 CPU beträgt, wie in der Einführung angegeben, 40 MHz.
Durch einen programmierbaren globalen Prescaler des PowerPC 555 wird diese Frequenz
durch 2 dividiert und durch einen weiteren 8-bit Prescaler werden die verbleibenden 20 MHz
nochmals durch 2 dividiert so dass sich eine Zählfrequenz von fZ = 10 MHz für den im Bild
oben dargestellten Zähler (Counter) ergibt.
Der Counter zählt jeweils bis zum Erreichen des im Register PERR gespeicherten Wertes und
fängt danach wieder von vorne an. Ein Durchlauf entspricht der Periodendauer TP des
PWM-Signals, so dass durch den Inhalt des Registers PERR die PWM-Periodendauer
programmiert wird.
Die Pulsbreite tE des PWM-Signals wird durch das Register PULR definiert. Am Ausgang
des Komparators erhält man
+ 5V,
wenn [Counter] < [PULR]
0 V,
wenn [Counter] >= [PULR]
Fragen:
1.1.
Bei der Initialisierung wird in das Register für die PWM-Periodendauer der
Wert [PERR] = PWMmax = 400 geschrieben . Dieser Initialwert wird während
des Versuchs nicht verändert. Berechnen Sie die sich ergebende
Periodendauer TP und die Pulsfrequenz fP des PWM-Signals.
1.2.
Berechnen Sie den Zahlenwert, der in das Register PULR geschrieben werden
muss, um eine Ausgangsspannung von UA = 18 V zu erzeugen
(Zwischenkreisspannung: UZK = 60V). Welche Pulsbreite tE ergibt sich dabei?
1.3.
Die Signalgröße u A * sei die normierte Ausgangsspannung der Halbbrücke.
Mit der Gleichung
[PULR] = u *A ⋅ PWM _ Bezugswert
wird der Wert für das Pulsbreitenregister berechnet. Wie lautet die Gleichung
zur Berechnung des Parameters PWM_Bezugswert ?
Hinweis: PWM_Bezugswert = f (UAN, UZK, PWMmax = 400).
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
8
Versuch1_33.doc
2.1.2 Zwei Brückenzweige (Gleichstromsteller, H-Brücke)
Es existieren unterschiedliche Verfahren zur Erzeugung einer Gleichspannung mit einer HBrückenschaltung.
Ein einfaches, erstes Verfahren funktioniert wie folgt:
a) Positive Brückenspannung (UA > 0)
T3 in Halbbrücke 1 ist immer durchgeschaltet
⇒
PWM1.PULR = 0;
Die positive Spannung wird nur mit der Halbbrücke 0 gesteuert:
⇒
PWM 0.PULR = u *A ⋅ PWM _ Bezugswert
b) Negative Brückenspannung (UA < 0)
T2 in Halbbrücke 0 ist immer durchgeschaltet
⇒
PWM0.PULR = 0;
Die negative Spannung wird nur mit der Halbbrücke 1 gesteuert:
⇒
PWM 1.PULR = u *A ⋅ PWM _ Bezugswert
Fragen:
2.1.
Berechnen Sie die mittlere Ausgangsspannung UA[V] für folgende drei Fälle:
a)
PWM1.PULR = 0;
PWM0.PULR = 250;
b)
PWM1.PULR = 0;
PWM0.PULR = 0;
c)
PWM1.PULR = 100;
PWM0.PULR = 0;
2.2.
Die Funktion des Brückentreibers (IR2111) ist nur bis zu einer maximalen
t
relativen Einschaltdauer des oberen Brückenzweiges τ E = E = 90%
TP
sichergestellt. Wie groß ist damit der Spannungsstellbereich der H-Brücke bei
UZK = 60 V ?
2.3.
Ergänzen Sie als Vorbereitung für die Versuchsdurchführung das vorliegende
C-Programm pwm_ausgabe.c. Es soll hier das oben beschriebene Verfahren
zur Gleichspannungserzeugung Anwendung finden.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
9
Versuch1_33.doc
Ein zweites Verfahren zur Spannungserzeugung kommt insbesondere dann zur Anwendung,
wenn eine dreiphasige Ausgangsspannung mit drei Brückenzweigen benötigt wird
(Dreiphasen-Frequenzumrichter).
Bei diesem Verfahren wird die Pulsbreite der Halbbrücken, ausgehend von der 50%Aussteuerung verändert. In unserem Beispiel sei OFFSET = 200, also die Hälfte des
(theoretischen) Wertes für die Vollaussteuerung.
⇒
⇒
u *A
⋅ PWM _ Bezugswert
2
u*
PWM 1.PULR = OFFSET − A ⋅ PWM _ Bezugswert
2
PWM 0.PULR = OFFSET +
Eine Fallunterscheidung hinsichtlich positiver oder negativer Ausgangsspannung ist hier nicht
nötig, da die normierte Stellgröße u *A vorzeichenrichtig berücksichtigt wird.
Fragen:
2.4. Berechnen Sie für das zweite Verfahren die Registerwerte PWM0.PULR und
PWM1.PULR für folgende drei mittlere Ausgangsspannungen UA[V] :
a) UA = 0 V
b) UA = + 48 V
c) UA = - 24 V
2.2
Winkel- und Drehzahlmessung mit Inkrementalgeber
Die im PPC555 enthaltene TPU (Time Prozessor Unit) kann dazu benutzt werden, die von
einem Inkrementalgeber erzeugten, phasenversetzten Rechtecksignale vorzeichenrichtig zu
zählen und damit die relative Winkellage des Gebers zu erfassen. Dabei wird jede Flanke
gezählt, was einer Impulsvervierfachung entspricht. Nähere Informationen hierzu sind in dem
Dokument TPU_QDEC.pdf von Motorola enthalten.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
10
Versuch1_33.doc
Der 16-bit Vor/Rückwärtszähler arbeitet freilaufend und hat einen Überlauf bei 0xFFFF nach
0x0000 bei positiver Zählrichtung bzw. von 0x0000 nach 0xFFFF bei negativer Zählrichtung.
Die Anwendersoftware sollte zyklisch den Zählerstand abfragen und kann so durch
Differenzbildung (Neu – Alt) im 16-bit-Zweierkomplement die Anzahl der eingelaufenen
Winkelinkremente vorzeichenrichtig erfassen. Dies funktioniert, solange im betrachteten
Zählintervall weniger als 215 Impulse anfallen.
....
/* Variable fuer die Geberauswertung (Motorgeber) */
short zaehlwert_16, zaehlwert_diff;
static short zaehlwert_16_alt;
/* Variable für die Drehzahlmessung */
float n_istwert;
....
/* Erfassung der Geberposition in Incrementen auf Kanal 14 der TPU*/
zaehlwert_16
= psTPU3->aPRAM[TPU_CHANNEL][R_POSITION_COUNT];
/* Winkelzuwachs in 16-bit-Integer-Arithmetik berechnen */
zaehlwert_diff
= zaehlwert_16 - zaehlwert_16_alt;
zaehlwert_16_alt = zaehlwert_16;
/* Istposition als 32-bit Integerwert berechnen */
pist->pos_wert_32 = pist->pos_wert_32 + zaehlwert_diff;
/* Berechnung des unnormierten Position-Istwerts in Millimeter */
pist->pos_wert_mm = pist->pos_wert_32 * pist->pos_Bezugswert;
/* Berechnung des normierten Drehzahl-Istwerts */
n_istwert =
...
...
...
Fragen:
Das Abtastintervall für die Software-Geberauswertung betrage 1 ms. Der Geber habe 500
Striche, was 2000 Zählimpulsen pro Umdrehung entspricht.
3.1. Wie viele Zählimpulse ergeben sich bei 3000 U/min im Abtastintervall ?
3.2. Wie groß ist der Quantisierungsfehler (in U/min) für die Drehzahlerfassung ?
3.3. Geben Sie die Gleichung an, mit der die normierte Motordrehzahl n*
(Variable n_istwert ) aus folgenden Messwerten bzw. Parametern berechnet
werden kann:
zaehlwert_diff : Anzahl der im letzten Abtastintervall erfassten Zählimpulse
Tzyk :
aktuelle Abtast-Zykluszeit in Sekunden (= Messzeit)
Imp_p_U :
Anzahl der Zählimpulse pro Umdrehung (hier 2000)
N_0N :
Normierungs-Bezugswert für die Drehzahl
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
2.3
11
Versuch1_33.doc
Strommessung
Mit Hilfe der auf der auf der PWM-Endstufe vorhandenen Stromwandler kann der
Ausgangsstrom eines Brückenzweiges potentialfrei gemessen werden. Das Messverfahren
beruht auf dem Hall-Effekt. Näheres ist im Datenblatt des Wandlers angegeben.
Der Wandler erzeugt aus dem positiven oder negativen, gemessenen Strom eine unipolare
Mess-Spannung nach folgender Kennlinie:
U Mess = 2,5 + 0,625 *
IP
I PN
[Volt ]
IP ist dabei der gemessene Primärstrom.
In unserem Fall hat der Wandler einen Nennstrom IPN = 3 Ampere.
Der A/D-Wandler des PPC555 hat eine Auflösung von 10 Bit (1024) bei einem unipolaren
Messbereich von 0 bis 5 Volt.
Fragen:
4.1. Welche Zahlenwerte (ia_adc_wert) liefert der A/D-Wandler bei folgenden
Strömen: a) –1 A,
b) 0 A,
c) 1 A ?
4.2. Wie groß ist der Quantisierungsfehler (A) für die Strommessung ?
4.3. Die Signalgröße ia_istwert sei der normierte Motorstrom und die Signalgröße
ia_adc_wert der vom A/D-Wandler gelieferte Integer-Zahlenwert.
Mit der Gleichung
ia_istwert = (ia_adc_wert – 512) / ia_Bezugswert;
wird der normierte Motorstrom berechnet. Wie lautet allgemein die Gleichung zur
Berechnung des Parameters ia_Bezugswert ?
Hinweis:
Prof. Dr. W. Höger
ia_Bezugswert =
f (IAN [A], AUFL_WANDLER =0 ,20833 [V/A]
AUFL_ADC = 204.8 [1/V] ).
Praktikum Mechatronik
Hochschule München
WS 2008/2009
2.4
12
Versuch1_33.doc
Steuerung eines Gleichstromantriebs
2.4.1 Kenndaten
Folgende Maschinendaten eines kleinen permanenterregten Gleichstrommotors
(Papst BCI 63.55) sind gegeben:
IAN = 1.95 A
LA = 12.0 mH
MN = 0.27 Nm
RA = 4.0 Ω
-1
-1
-6
2
N0N = 50 s = 3000 min
JM = 75·10 kg m
cΦN = 1 Vs
JL ≈ 90·10-6 kg m2
(Anmerkung: in RA seien auch die Verluste im PWM-Stellglied und den Zuleitungen enthalten)
Berechnen Sie aus den gegebenen Maschinendaten folgende Kenngrößen:
5.1. Ankernennspannung UAN (Hinweis: Die Ankernennspannung entspricht der
induzierten Spannung bei Leerlauf-Nenndrehzahl N0N)
5.2. Induzierte Spannung im Nennpunkt UiN
5.3. Luftspalt-Nennmoment MiN
5.4. Hochlaufzeitkonstante TH (Hinweis: Jges = JM + JL)
5.5. Ankerzeitkonstante TA
5.6. Normierter Ankerwiderstand rA*
2.4.2 Signalflussplan bei Ankerspannungssteuerung
5.7. Zeichnen Sie den normierten Signalflussplan der permanenterregten
Gleichstrommaschine bei Ankerspannungssteuerung an.
5.8. Berechnen Sie die Motorzeitkonstante TM =TH ⋅ rA* .
5.9. Geben Sie die Übertragungsfunktion Fun ( s ) =
i * (s)
n * ( s)
und Fui ( s ) = A
an.
u A * (s)
u A * (s)
Zusatzaufgaben (freiwillig, wenn MATLAB verfügbar ist)
5.10. Entwerfen Sie eine MATLAB-Skriptdatei oder ein SIMULINK-Modell mit der Sie
die Sprungantworten der beiden Übertragungsfunktionen Fun(s) und Fui(s)
erzeugen können.
5.11. Drucken Sie die beiden Sprungantworten aus, falls Sie Zugang zu MATLAB
haben.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
3
13
Versuch1_33.doc
Versuchsdurchführung
Wichtig: Schalten Sie die Versorgungsspannung für die PWM-Endstufe
nur nach Rücksprache mit Ihrem Betreuer ein.
3.1
Kommunikation mit dem EMUF
Starten Sie die Kommunikation mit dem EMUF über die serielle Schnittstelle (COM1) des
PC, indem Sie am Desktop den Ordner „EMUF-Programmierung“ öffnen und das
Hyperterminal mit dem Symbol EMUF.ht starten. Schalten Sie die Versorgungsspannung des
EMUF (Schalter „Steuerspannung“) ein. Das Betriebssystem sollte sich jetzt im
Terminalfenster melden.
Halten Sie das Terminalfenster während der weiteren Versuchsdurchführung offen.
3.2
Spannungssteuerung der Gleichstrommaschine
3.2.1 Programmierung der PWM-Ausgabe
Das in Aufgabe 2.3 entworfene bzw. ergänzte Programmmodul zur PWM-Ausgabe soll in das
vorbereitete Projekt v1_rtask eingebunden werden.
Vorgehensweise:
o Starten Sie am PC die Microware Hawk IDE und öffnen Sie im Verzeichnis
C:\Mwos\Projects\versuch1 den Project Space versuch1.psp mit
Project->Project Space->Open.
o Aktivieren Sie das Teilprojekt v1_rtask, indem Sie auf der Taskleiste Project -> Set
Current anklicken und C:\Mwos\Projects\Versuch1\v1_rtask.pjt auswählen.
o Rufen Sie jetzt die Datei pwm_ausgabe.c des Projekts v1_rtask auf und ergänzen das
Programm entsprechend Ihrer Vorbereitung.
Lassen Sie Ihr Programm vom Betreuer überprüfen!!
o Speichern Sie die modifizierte Datei und erzeugen Sie das OS/9-Programmmodul mit
der Befehlsfolge Project->Build oder Project->Rebuild.
o Laden Sie Ihr Programm auf den Target-Rechner (EMUF) mit den Kommandos
Target->Load und Auswahl des gerade erstellten Moduls versuch1\v1_rtask sowie des
vorhandenen Moduls versuch1\v1_bedienung. (IP-Adresse: 192.168.5.100)
3.2.2 Überprüfung der PWM-Ausgabe (Stationäres Betriebsverhalten)
o Überprüfen Sie am Hyperterminal mit Hilfe des Befehls mdir in der shell des EMUF,
ob die Module io_init_su, v1_rtask und v1_bedienung vorhanden sind.
o Starten Sie die Module wie folgt:
io_init_su ↵
v1_rtask^500& ↵
(als Task mit hoher Priorität (500) starten)
v1_bedienung ↵
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
14
Versuch1_33.doc
Mit dem sehr einfach gehaltenen Bedienprogramm ist es möglich, Sollwerte und Parameter
einzustellen, also z.B. die normierte PWM-Spannung vorzugeben. Die Befehlsübersicht für
das Bedienprogramm liegt am Arbeitsplatz aus. Vermeiden Sie dabei sprungförmige
Spannungsänderungen > 0.2, da dies sehr große Motorströme zur Folge hätte.
Messung 1:
Offsetabgleich Strommessung
Es ist zunächst ein Offsetabgleich für die Strommessung vorzunehmen. Hierzu wird
der Strom-Messwert der sich bei Ankerspannung (und Ankerstrom) Null ergibt erfasst
und als Korrekturparameter eingetragen. Die PWM-Endstufe ist dabei zunächst
ausgeschaltet (Zwischenkreisspannung 0V).
Bedienung:
Bef.code
ru
ai
pmo
ai
Kommentar
Betriebsart Spannungssteuerung einschalten
geglätteten Stromistwert (Messwert) anzeigen
Offsetwert zur Korrektur der Stromistwertmessung wird
automatisch ermittelt und verwendet
geglätteten Stromistwert (Messwert) anzeigen (sollte jetzt
näherungsweise Null sein)
Wiederholen Sie ggf. zur Kontrolle die Messung mit eingeschalteter
Zwischenkreisspannung (Schalter: PWM-Endstufe ein).
Messung 2:
Überprüfung der Software zur PWM-Ausgabe
Es soll zunächst rein qualitativ überprüft werden, ob die von Ihnen erstellte Software
zur PWM-Ausgabe funktioniert. Hierzu wird der normierte Spannungs- (bzw.
Drehzahl-) Sollwert verändert und auf Plausibilität überprüft.
Bedienung:
Bef.code
ru
nr
Parameter
0.1
Kommentar
Betriebsart Spannungssteuerung
einschalten
Sollwert für Rampen-Schalter
Schalten Sie nun die PWM-Endstufe ein und betätigen Sie am Handsteuerpult den
Rampenschalter. Der Motor sollte nun langsam drehen. Variieren Sie nun den
Drehzahlsollwert mit dem Befehl nr zwischen den Grenzwerten +1.0 und –1.0.
Informieren Sie Ihren Betreuer, wenn es Probleme gibt.
Hinweis: Erstellen Sie mit dem auf dem PC-Desktop vorhandenen WORDPAD eine Datei
zur Dokumentation Ihrer Versuchsdurchführung. Es ist zweckmäßig, die im
folgenden gemessenen und kommentierten Zeitverläufe aus MATLAB (mit
copy/paste) in diese WORDPAD-Datei zu übertragen. So erhalten Sie ohne viel
zusätzlichen Aufwand eine geordnete Dokumentation Ihrer Messungen, die Sie
durch eigene Kommentare ergänzen können. Am Ende des Versuchs können Sie
die Datei dann via email oder USB-Stick nach Hause mitnehmen .
Für die folgenden Versuche 2 und 3 empfiehlt sich die gleiche Vorgehensweise.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
Messung 3:
15
Versuch1_33.doc
Stationäres Betriebsverhalten der Spannungssteuerung
Ermitteln Sie in Abhängigkeit von dem im Bedienprogramm erzeugten, normierten
Stellwert die Ankerspannung uA*, die normierte Motordrehzahl nM* und den
normierten Motorstrom iA*. Fahren Sie hierzu den Motor mit einer Drehzahlrampe auf
Leerlauf-Nenndrehzahl und wieder zurück.
Bedienung:
Bef.code
ru
ls
nr
psr
Parameter
Kommentar
Betriebsart Spannungssteuerung
einschalten
Logspeicher 25 ms (Samplerate)
Sollwert für Rampen-Schalter
Rampensteilheit: ∆n* = 0.0001 pro ms
25
1.0
Schalten Sie nun die PWM-Endstufe ein und betätigen Sie den am Handsteuerpult den
Rampenschalter.
o Aktivieren Sie im Bedienprogramm die Funktion „Logspeicher in Datei
übertragen“ (ld 1000). D. h. alle 1000 Abtastzeitpunkt werden gesichert.
o Starten Sie auf dem PC das FTP-Programm WS-FTP und verschieben Sie damit
die Datei „logdatei.txt“ aus dem Speicher des EMUF in das Verzeichnis
C:\Mwos\Matlab des lokalen PCs.
o Starten Sie MATLAB und führen Sie das Skript readlog1.m aus. Sie erhalten die
Aufzeichnung des Verlaufs der normierten Stellgröße uA*, Drehzahl n* und Strom
iA*.
o Mit Edit/Copy figure können Sie das Bild in die Zwischenablage und dann in Ihre
Wordpad-Datei kopieren. Wenn Sie wollen, können Sie das Bild vorher in
MATLAB noch bearbeiten.
Auswertung:
Ergänzen Sie das MATLAB-Skriptfile readlog1.m um die Berechnung und
Darstellung der induzierten Motorspannung ui*.
Überprüfen Sie anhand der erhaltenen Messergebnisse die Genauigkeit der gegebenen
Maschinenparameter cΦN und RA. Versuchen Sie ggf., die Einstellung dieser
Maschinenparameter zu verbessern. Achtung: Die Voreinstellung der Parameter ist
näherungsweise richtig.
Bedienung:
Bef.code
pmm
Parameter
div. Maschinenparameter
Kommentar
Änderung von Maschinenparametern.
Führen Sie ggf. weitere Messungen durch (mit geänderten Sollvorgaben und/oder
Randbedingungen) und diskutieren Sie die Ergebnisse.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
Messung 4:
16
Versuch1_33.doc
Hochlaufzeitkonstante
Überprüfen Sie die Hochlaufzeitkonstante TH des Motors. Hierzu wird der Antrieb mit
Stromregelung betrieben (Strom-Sollwertsprung). Aus dem aufgezeichneten
Zeitverlauf des Ankerstroms und der Drehzahl kann dann die Hochlaufzeitkonstante
und das Trägheitsmoment berechnet werden.
Bedienung:
Bef.code
ri
ls
is
Parameter
1
1.0
Kommentar
Betriebsart Stromregelung
Logspeicher 1 ms (Samplerate)
Sollwert für Sprung-Taste (Nennstrom)
Schalten Sie nun, wenn noch nicht erfolgt, die PWM-Endstufe ein und betätigen Sie
die Sollwertsprung-Taste.
Mit dem Befehl ld 300 übertragen Sie den Inhalt des Logspeichers (z.B. 300
Abtastzeitpunkte) in die Textdatei „logdatei.txt“ im EMUF.
Die weitere Vorgehensweise ist wie bei Messung 3.
Auswertung:
Berechnen Sie oder ermitteln Sie grafisch anhand der aufgezeichneten Zeitverläufe die
Hochlaufzeitkonstante und das Trägheitsmoment der Anordnung.
3.2.3 Dynamisches Verhalten der spannungsgesteuerten Gleichstrommaschine
Messung 5
Nehmen Sie den Zeitverlauf des Ankerstroms iA* und der Drehzahl n* nach einem
Ankerspannungssprung ∆uA* auf. Der Spannungssprung soll nicht größer als 0.2
(normiert) sein.
Bedienung:
Bef.code
ru
ls
ns
Parameter
1
0.2
Kommentar
Betriebsart Spannungssteuerung
Logspeicher 1 ms (Samplerate)
Sollwert für Sprung-Taste (∆n*)
Die weitere Vorgehensweise ist wie bei Messung 4.
Auswertung:
Kommentieren und interpretieren Sie die gemessenen Zeitverläufe.
Öffnen Sie die vorhandene MATLAB-Skript-Datei simsprung.m in Ihr MATLABArbeitsverzeichnis und erzeugen Sie damit die eine simulierte Sprungantwort.
Übernehmen Sie die simulierten Zeitverläufe in das Bild mit den gemessenen
Zeitverläufen. (das geht mit copy/paste; wenden Sie sich ggf. an Ihren Betreuer)
Wie gut ist die Übereinstimmung? Welche Parameter müssen in der Simulation
verändert werden, um die Übereinstimmung zu verbessern?
Optimieren Sie die Parameter der Simulationsdatei um bestmögliche
Übereinstimmung mit der Messung zu erzielen.
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München
WS 2008/2009
17
Versuch1_33.doc
/* ---------------------------------------------------------------------| file :
pwm_ausgabe.c
author: ...............
| project :
v1_rtask, v2_rtask
| os:
os9000
|
| Prozedur zur PWM-Ausgabe
|
|----------------------------------------------------------------------- |
|
*/
/* -------------------------------------------------------------------- */
#include <systype.h>
#include <MIOS1.h>
#include <datamodule.h>
/* -------------------------------------------------------------------- */
void pwm_ausgabe(struct spwm_aus * ppwm)
{
/* Zugriff auf die Hardware MIOS1 */
MIOS1 *psMIOS;
/* Lokale Variable fuer die PWM-Ausgabe */
int
pwmwert;
/* Integer-Wert zur Ausgabe an die Hardware MIOS1 */
/* Base Pointer fuer MIOS1 setzen */
= (MIOS1 *)(MIOS1BASE);
psMIOS
/*********************************************************************/
/***
PWM-Ausgabe
***/
/*********************************************************************/
/* Hinweise (Schnittstellen):
/* Folgende Größen können aus dem Datenmodul gelesen werden:
normierte Ausgangsspannung: ppwm->Stellwert
(float)
PWM_Bezugswert:
ppwm->PWM_Bezugswert (float)
Zugriff auf die Pulsbreitenregister (16 bit) der beiden Halbbrücken:
Halbbrücke 1 :
psMIOS->MIOS1MPWM1.MPWMSMPULR
Halbbrücke 0 :
psMIOS->MIOS1MPWM0.MPWMSMPULR
*/
/* Beginn
eigenen Programmcode : */
/* Ende eigener Programmmcode */
} /* Ende pwm_ausgabe */
/* ======================= eof pwm_ausgabe.c ========================= */
Prof. Dr. W. Höger
Praktikum Mechatronik
Hochschule München