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