35
Digitale Regelung eines fahrerlosen Transportsystems Versuch im Labor: Praktikum für Automatisierungstechnik Betreuer : Steffen Lampke, M.Sc. Stand : 29. Mai 2018

Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

Digitale Regelung

eines fahrerlosen

Transportsystems

Versuch im Labor: Praktikum für Automatisierungstechnik

Betreuer : Steffen Lampke, M.Sc.Stand : 29. Mai 2018

Page 2: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für
Page 3: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

III

Inhaltsverzeichnis

1 Einleitung 1

2 Systemaufbau des fahrerlosen Transportfahrzeugs 2

3 Modellbildung 63.1 Definition der Systemgrößen . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 Ableitung der nichtlinearen Differentialgleichung . . . . . . . . . . . . . . . 83.3 Linearisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX 114.1 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Echtzeitfähigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.3 Berücksichtigung von Zeiteffekten bei der digitalen Reglerauslegung . . . . 164.4 QNX API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.4.1 Interprozess-Kommunikation mit Signalen . . . . . . . . . . . . . . 174.4.2 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.5 Peripherieansteuerung des FTF . . . . . . . . . . . . . . . . . . . . . . . . 214.6 Syntaxbeispiel in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5 Versuchsdurchfuhrung 235.1 Hausaufgabe: Reglerauslegung . . . . . . . . . . . . . . . . . . . . . . . . 235.2 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.2.1 Timer-Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . 275.2.2 Zugriff auf die Peripherie . . . . . . . . . . . . . . . . . . . . . . . . 27

5.3 Reglerimplementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Page 4: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

IV

Page 5: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

1

1 Einleitung

Autonome Fahrzeuge werden heute vielfach eingesetzt, sei es z. B. im industriellen Um-feld zur Automatisierung von Transportvorgängen oder im wissenschaftlichen Bereich zurErforschung unwirtlicher Regionen. So unterschiedlich die Anforderungen an diese Sys-teme, ihre Komplexität und ihre Einsatzgebiete auch sein mögen, so gleichermaßen iden-tisch sind sie in ihrem prinzipbedingten Aufbau, denn sie verfügen alle über:

• eine Umfeldsensorik zur Ermittlung der Position im Raum

• eine Steuereinheit mit einer Bahnplanung, die aus den Daten der Umfeldsensorikermittelt, wie das vorgegebene Ziel erreicht werden kann

• eine Aktorik zur Erreichung des Ziels

Wie sich dieser Aufbau praktisch darstellt, soll anhand dieses Laborversuchs demons-triert werden. Dazu wurde am Institut für Regelungstechnik ein einfaches, aber voll funkti-onsfähiges fahrerloses Transportfahrzeug (FTF) aufgebaut, welches zunächst vorgestelltwird. Nach einer allgemeinen Einführung in die Eigenschaften von Echtzeitbetriebssyste-men wird es die Aufgabe sein, hierfür einen digitalen Regler zu implementieren.

Page 6: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

2

2 Systemaufbau des fahrerlosen

Transportfahrzeugs

Für die Erfüllung der Transportaufgaben im innerwerklichen und innerbetrieblichen Be-reich stehen seit den 50er Jahren fahrerlose Transportsysteme zur Verfügung. Ein fah-rerloses Transportsystem (FTS) besteht im wesentlichen aus zwei Elementen, den Fahr-zeugen und der Anlage. Fahrerlose Transportfahrzeuge (FTF) sind spurgebundene För-dermittel mit einem eigenen Fahrantrieb, die automatisch geführt und gesteuert werden.Sie werden mit oder ohne Ladehilfsmittel zum Ziehen, Schieben, Tragen, Heben, Stapelnbzw. Einlagern von Transportgut eingesetzt. Durch ihre hohe Flexibilität in der Strecken-führung, ihren vollautomatischen Betrieb und ihren geringen Platzbedarf stellen sie einebetriebswirtschaftlich sinnvolle Alternative zu manuell bedienten Flurförderzeugen dar.

Das FTF dieses Labors ist als Dreiradfahrzeug aufgebaut und in Bild 2.1 dargestellt.Als Antriebseinheit wird eine aus Fahr- und Lenkantrieb kombinierte Einheit eingesetzt.Die beiden Gleichstrommotoren werden durch zwei PWM-Leistungsteile angesteuert. DieSpurführung erfolgt induktiv über einen Leitdraht.

Abbildung 2.1: Links: FTF ohne Verkleidung. Rechts: Kombinierte Antriebseinheit

Page 7: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

3

Der Systemaufbau des Fahrzeugs ist in Bild 2.2 veranschaulicht. Die einzelnen Kompo-nenten sollen im Anschluss kurz vorgestellt und ihr Zusammenwirken verdeutlicht wer-den. Sie umfassen neben Sensorik, Steuerung und Aktorik, auch ein Sicherheits- undNot-Aus-System.

Abbildung 2.2: Bestandteile des FTF. Wichtig ist vor allem die Lage der Sensoren undMotoren.

• 1 Antriebsmotor: Ein permanent erregter Gleichstrommotor mit einer Leistung von0,13 kW / 24V treibt das Fahrzeug mit einer maximalen Geschwindigkeit von 1ms−1

an.

• 2 Lenkmotor: Über den Lenkmotor kann das Fahrzeug gesteuert werden. Dabeiwird die komplette Antriebseinheit inklusive des Antriebsmotors gedreht.

• 3 & 18 Mikrolenksensoren: Das Fahrzeug besitzt zwei Mikrolenksensoren (MLS)am vorderen und hinteren Ende, die den Abstand zum Leitdraht messen. Nur derVordere von beiden wird in diesem Labor verwendet werden. Das Messprinzip ist inBild 2.3 veranschaulicht. Es beruht auf der eingekoppelten Spannung einer senk-recht und einer horizontal angeordneten Spule, die durch die vom Leitdraht verur-sachten magnetischen Wechselfelder induziert wird.

Page 8: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

4 2 Systemaufbau des fahrerlosen Transportfahrzeugs

Leitdraht

Lesehöhe

Differenzspule

Summenspule

Fahrebene

Mikrolenksensor

Abbildung 2.3: Skizze des Messprinzips der Mikrolenksensoren

• 4 Lenkpotentiometer: Mit dem Schwenken der Antriebseinheit wird über ein Zahn-rad ein kleines Präzisionspotentiometer verändert, aus dessen Stellung der Lenk-winkel ermittelt werden kann.

• 5 Inkrementalgeber: Gleichermaßen wichtig wie der Lenkwinkel ist auch die ge-fahrene Geschwindigkeit. Diese wird mit einem Inkrementalgeber gemessen, derdirekt an der Motornabe angebracht ist.

• 6 Ultraschallsensoren: Zur Erkennung von Hindernissen sind an der Vorderseitezwei Ultraschallsensoren angebracht, die den Bereich vor dem Fahrzeug abtastenund den Abstand zu möglichen Hindernissen messen.

• 8 Elektromagnetbremse: Im Falle eines Not-Aus zieht die Bremse an und stopptdas Fahrzeug unmittelbar. Dies erfolgt entweder bei Betätigung des Not-Aus-Schaltersoder bei Verformung des Bumpers, ein um das Fahrzeug herum angebrachtes gum-mischlauchartiges Detektionssystem, das auf Luftdruckänderungen im Innern rea-giert.

• 10 Energieversorgung: Zwei 10Ah / 12V Gel-Batterien sorgen für die nötige Ener-gieversorgung des Fahrzeugs, das im Fahrbetrieb etwa 4A Strom benötigt. DieseSpannung wird über den DC/DC-Wandler stabilisiert und der Steuereinheit zuge-führt.

Page 9: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

5

• 12 Industrie-PC: Auf dem Fahrzeug ist ein kompakt aufgebauter Computer (Penti-um 150MHz) untergebracht, der unter dem Echtzeitbetriebssystem QNX die Steue-rung des Fahrzeugs übernimmt. Alle Sensorsignale werden auf ihm zusammen-geführt und ausgewertet, entsprechende Stellsignale anschließend ausgegeben.Dazu ist der Rechner mit einer zusätzlichen Input-Output-Steuerkarte ausgerüstet,welche im Versuch mit als IP-Modul bezeichnet wird. Dieses ist über eine Kette vonKommunikationsbussen und Interfaces mit dem Rechner verbunden. Ein darauf be-findlicher FPGA enthält die Logik und Register, welche wiederum mit den Sensorenund PWM-Modulen kommunizieren.

• 13 & 14 PWM-Module: Die Motoren werden mit einer PWM-Spannung angetrie-ben. Die hier mit PWM-Modul bezeichneten Steckkarten sind Leistungsendstufender Motoren, die die digitalen PWM-Signale verstärken. Diese Signale werden vondem IP-Modul mit der Frequenz 10 kHz und einem vorgebbaren Tastverhältnis ge-neriert.

• 16 Hauptschalter, Start- und Not-Aus-Taster: Über den Hauptschalter wirddas Fahrzeug gestartet und ein Steuerstromkreis eingeschaltet, sodass der Rech-ner hochfährt. Durch Betätigung des Start-Tasters wird der Antriebsstromkreis zuge-schaltet. Die PWM-Module sind nun betriebsbereit und die Elektromagnetbremse istgelöst. Erst jetzt kann das Fahrzeug losfahren. Mittels des Not-Aus-Schalters oderdes Bumpers wird nur dieser Antriebsstromkreis unterbrochen und das Fahrzeugwird gestoppt, der Rechner und die Steuerung bleiben hingegen in Betrieb.

Page 10: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

6

3 Modellbildung

Ziel der zu entwickelnden Regelung ist eine Lenkung des FTFs durch repetitives Anpas-sen des Lenkwinkels durch Vergleich des gemessenen Querabstands q mit dem Sollwert0, sodass das Fahrzeug der Sollspur nachgeführt wird. Das dafür zu entwickelnde Modellder Regelstrecke ist daher auf diese Aufgabe zu spezialisieren. Dazu wird ein zunächstnichtlineares Modell aufgestellt und für die spätere Reglerauslegung linearisiert.

Die Modellbildung erfolgt mithilfe der Abbildung 3.1, die schematisch das FTF mit An-triebseinheit und einem hier geradlinig verlaufenden Leitdraht zeigt.

d

g

d+g

v dt

q0

q +dq0

Le

itd

rah

tdq

Abbildung 3.1: Modell der Querkinematik

Page 11: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

3.1 Definition der Systemgroßen 7

3.1 Definition der Systemgroßen

Der Leitdraht stellt das Referenzsystem für die Messung und Modellierung dar. Der Quer-abstand q wird Messprinzip-bedingt stets senkrecht zu ihm gemessen. Die Lage diesesReferenzsystems im Weltkoordinatensystem ist für die Regelung völlig ohne Belang. Re-lativ zum Draht schließt die Fahrzeugmittelachse den sogenannten Gierwinkel γ ein. Zu-sammen mit dem Lenkwinkel δ ergibt die Summe beider Winkel den Gesamtwinkel zwi-schen Leitdraht und der Orientierung des Antriebsrades. Alle Winkel werden wie im Bildangedeutet im mathematisch positiven Sinn gezählt. In Abbildung 3.2 sind diese Winkelzur Veranschaulichung noch einmal mit gebogenem Leitdraht dargestellt.

Abbildung 3.2: Modell der Querbewegung in einer Kurve

Gemäß der Regelungsaufgabe ist der Lenkwinkel des Fahrzeugs δ als Eingangsgrößeund der Querabstand q als Ausgangsgröße zu definieren. Der Gierwinkel γ, der nebeneiner möglicherweise nicht idealen Lenkung hauptsächlich durch Kurven des Leitdrahtsverursacht wird, wirkt als Störgröße auf den Streckenausgang. Da für die Lenkung eineSISO-Regelung anvisiert wird, ist zusätzlich die Vortriebsgeschwindigkeit v als externeStörgröße anzusehen. Die Vortriebsgeschwindigkeit kann demnach mit einer separatenRegelschleife vorgegeben werden, die aber nicht Teil des Praktikums ist.

In den Abbildungen wird deutlich, dass der im Bezug zur Lenkachse definierte Querab-stand q nicht genau gemessen wird, da der vordere MLS ca. 10 cm vor dem Rad befestigtist. Da die so ermittelte Messgröße der Fahrrichtung des FTF vorausgeht, wirkt diese An-ordnung als eine Art Vorsteuerung der Störung auf den Regelfehler. Die Regelung wirdalso aktiv bevor sich ein tatsächlicher Querabstand q aufbaut. Diese Tatsache wird für

Page 12: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

8 3 Modellbildung

die Modellierung und Reglerauslegung vernachlässigt werden, sollte für die Interpretati-on des Verhaltens der im Versuch implementierten Regelung aber im Hinterkopf behaltenwerden.

3.2 Ableitung der nichtlinearen Differentialgleichung

Ein jedes mechanisches System besitzt Position und Geschwindigkeit seiner frei bewegli-chen Teile als Zustandsgrößen. Im Falle der Querkinematik sind dies die Querabweichungq und dessen Ableitung q. Der Zusammenhang zwischen Eingangsgrößen und Verände-rung dieser Zustände soll zunächst durch eine Differentialgleichung beschrieben werden.Diese lässt sich aus der geometrischen Skizze und unter Annahme einer konstantennicht-beschleunigten Vorwärtsgeschwindigkeit v für den Zeitraums dt wie folgt ableiten:

dq = v sin (δ + γ) · dt (3.1)

⇔ dq

dt= q = v sin (δ (t) + γ (t)) (3.2)

Integriert man diese Gleichung und berücksichtigt den anfänglichen Querabstand q0, soerhält man die gesuchte Differentialgleichung für das Querverhalten:

q (t) = q0 +

∫ t

τ=0

v sin (δ + γ) dτ (3.3)

Mit der gefundenen Gleichung (3.3) lässt sich das nichtlineare Blockschaltbild in Abbil-dung 3.3 zeichnen, welches das Übertragungsverhalten der Querbewegung verdeutlicht.Dabei ist ein Proportionalitätsfaktor eingefügt, der den Winkel von Grad ins Bogenmaßüberführt, was später für die Linearisierung genutzt werden wird.

Abbildung 3.3: Blockschaltbild der Querkinematik

Page 13: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

3.3 Linearisierung 9

3.3 Linearisierung

Für die Linearisierung wird die Geschwindigkeit v wie bereits oben angedeutet verein-facht als konstant angenommen. Dadurch lässt sich die nichtlineare Multiplikation imBlockschaltbild in einen Verstärkungsblock umwandeln. Des Weiteren bleibt die Winke-länderung des Gierwinkels bei langen Kurven und geringer Fahrgeschwindigkeit niedrig,sodass das Fahrzeug mit ausreichend schnell funktionierender Regelung der Spur folgt.Daher bleibt in diesem Fall die Summe aus Lenk- und Gierwinkel δ + γ sehr klein. DieSinus-Funktion kann somit linearisiert werden, indem sie durch ihr Argument im Bogen-maß ersetzt wird.

Bei Normierung der Gleichung für eine standardisierte Darstellung auf einen Querabstandqn folgt für q0 = 0 somit die linearisierte Gleichung:

q

qn=

π v

180qn

∫ t

τ=0

δ dτ + d(t)︸︷︷︸π v

180qnγ t

(3.4)

Die Integrationszeitkonstante lautet dann:

T3 =180qnπ v

. (3.5)

Die Querdynamik lässt sich also mit der Übertragungsfunktion eines Integrators beschrei-ben:

G(s) =1

T3 s(3.6)

Da die Dynamik des Lenkmotors als Stellglied nicht zu vernachlässigen ist, wird sie zu-sätzlich der Strecke zugeordnet. Diese kann durch Sprungantwortsmessung leicht nach-prüfbar in seinem Übertragungsverhalten von Spannung zu Winkel mit einem IT1-Gliedmodelliert werden, sodass das gesamte linearisierte Dynamikmodell der Strecke wiein Abbildung 3.4 dargestellt werden kann. Die Gesamtübertragungsfunktion des PWM-Verhältnis uLM als Eingang bis zum Ausgang der Strecke q

qnlautet demnach:

G(s) =

qqn

uFM=

1

(T1s+ 1) T2s︸ ︷︷ ︸Lenkmotor

· 1

T3s︸︷︷︸Querdynamik

(3.7)

Page 14: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

10 3 Modellbildung

Abbildung 3.4: Modell der Querbewegung in einer Kurve

Die Zeitkonstanten T1 und T2 können durch eine Identifikation mittels Sprungantwort undRegression ermittelt werden. Der Abstandssensor misst in Millimetern weshalb der Nor-mierungsabstand qn zu 1mm gewählt wurde. Die Zeitkonstante T3 hängt von der gefah-renen Geschwindigkeit ab, es zeigt sich aber aus Praxisversuchen, dass eine Annahmevon v = 0,1ms−1 das gesamte Geschwindigkeitsspektrum ausreichend gut abdeckt. DieZeitkonstanten betragen folglich:

T1 = 57,9ms

T2 = 0,7296 s

T3 = 0,573 s

Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für die spätere Reglerauslegung verwendet werden.

Page 15: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

11

4 Digitale Regelung mit dem

Echtzeitbetriebssystem QNX

Regelungen werden heutzutage meist digital realisiert. Die dazu eingesetzten Rechen-plattformen reichen von sehr einfachen Systemen wie Mikrocontrollern bis hin zu komple-xen verteilten Steuergeräten mit verteilten Sensoren (Messglieder) und Aktoren (Stellglie-der), die über Busse und Gate-Ways kommunizieren. Das Management dieser Rechen-und Kommunikationsressourcen ist dabei sowohl entscheidend für die Zeitpunkte derMessungen als auch für die Dauer zwischen den Messzeitpunkten und dem Stellen derAktoren. Bei Bussen und Gateways wird dies durch Protokolle, bei einfachen Rechnerndurch den Programmierer und bei komplexen Rechnern durch ein Betriebssystem reali-siert.

Das Betriebssystem führt eine Abstraktionsschicht ein, die die Funktionalität der Hard-ware über eine Schnittstelle zur Verfügung stellt. Das geschieht zum Beispiel durch dieBereitstellung von Funktionen über C-Bibliotheken als sogenanntes Application Program-ming Interface (API). Eine solche Kapselung ermöglicht die Verwendung von Softwareauf unterschiedlichen Rechenplattformen. Unterhalb dieser Schicht siedeln sich die ver-schiedenen Ansteuerungstreiber der Hardware an, zu der auch die Kommunikation mitder Peripherie gehört.

4.1 Scheduling

Durch das Einziehen dieser Abstraktionsschicht ist die Aufgabe des Betriebssystemsauch die Verwaltung dieser Hardware. So muss bei der Ressource CPU entschiedenwerden, zu welcher Zeit die einzelnen Prozesse auf dieser ausgeführt werden, damit eineNebenläufigkeit mit effizienter Ausnutzung des Prozessors erreicht wird. Diese Reihenfol-ge legt ein Scheduling-Algorithmus im Betriebssystemkern (Kernel) fest. Dieser schaltet

Page 16: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

12 4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX

zwischen den einzelnen Prozessen um (Context-Switch) und entscheidet, welcher Pro-zess als nächstes ausgeführt werden soll. Die Verteilung von Speicherplatz in Cache undArbeitsspeicher sind vergleichbare Verwaltungsaufgaben von Ressourcen und beeinflus-sen ebenfalls die Zeitpunkte der Ausführung.

Ein Prozess kann dabei als ein ausgeführtes Programm verstanden werden, welchemzusätzlich gewisse Variablen zugeornet sind, die zur Verwaltung und zur Interaktion mitanderen Prozessen im Betriebssystem benötigt werden. Im Labor relevante Eigenschaf-ten sind der Ausführungszustand eines Prozesses und die Eventhandler für eintreffenedeSignale, von welchen erstere nun behandelt werden soll.

Der Scheduler verwaltet sämtliche Prozesse, indem er ihnen verschiedene Zustände zu-ordnet und zu jedem Zustand eine Warteschlange führt, in der alle Prozesse mit demjeweiligen Zustand eingereiht sind. Diese lauten:

• existent: Ein Prozess ist existent, wenn er der Prozessverwaltung bekannt ist, jedochnoch keinen anderen Zustand durchlaufen hat.

• ready: Ein Prozess ist bereit, wenn er den Prozessor nutzen möchte und nur auf dieZuteilung wartet.

• running: Ein Prozess ist laufend, wenn ihm der Prozessor zugewiesen ist und er ihnbenutzt.

• blocked: Wartet ein Prozess auf das Eintreffen eines Ereignisses oder die Freigabeeines Betriebsmittels, so ist er blockiert.1

• terminated: Nach Ausführung der letzten Anweisung wird der Prozess beendet.

Die Prozesszustände werden vom Scheduler im Kernel laufend überwacht und bei einemWechsel neu zugeordnet. Dazu wird die Rechenzeit in sogenannte Zeitscheiben diskre-tisiert. Bei jedem Ablauf einer Zeitscheibe oder bei asynchronen Ereignissen (Unterbre-chungsanforderung, laufender Prozess beendet sich, etc.) wird dieser aktiv, kontrolliertdie Prozesse und entscheidet, welcher Prozess seinen Zustand ändert und wem even-tuell der Prozessor neu zugeteilt wird. Wurde z. B. ein Betriebsmittel von einem Prozessfreigegeben, auf das ein anderer Prozess gewartet hat, so könnte dieser nun weiterar-beiten und wird daher aus der blocked -Warteschlange entnommen und in die ready -Warteschlange eingereiht. Aus dieser Warteschlange wird dann der nächste Prozess,

1QNX unterteilt diesen Zustand entsprechend der Blockierungsursache weiter in zwanzig verschiedene, dieaber an dieser Stelle nicht weiter interessieren sollen.

Page 17: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

4.1 Scheduling 13

dem der Prozessor zugeteilt werden soll, ausgewählt. Den genauen Wechsel zwischenden Zuständen erklärt die Abbildung 4.1.

un-

bekannt

termi-

nated

blocked

runningreadyexistent

Abbruch

Abbruch

Eigen-

blockade

Fremd-

blockade

Fort-

setzung

Entzug

Zuteilung

Start

Abmeldung

Anmel-

dung

Start

Abbildung 4.1: Zustandsubergange von Prozessen

Anhand dieser ready -Warteschlange wählt der Scheduler im Kernel aus den bereitenProzessen denjenigen aus, der als nächstes den Prozessor zugeteilt bekommen soll.Dazu wird jedem Prozess eine Priorität, die Auskunft über seine Dringlichkeit gibt, zuge-ordnet. Dies geschieht durch eine Vorabvergabe und kann sich während des laufendenBetriebes aber auch verändern.

Es gibt verschiedenste Scheduling-Algorithmen, wobei hier nur das wichtige und einfacheRound-robin -Verfahren anhand der Abbildung 4.2 vorgestellt werden soll: In der ready -Warteschlange wird zu jeder Priorität eine Liste der Prozesse, z. B. A, B, C geführt. EinProzess läuft nun solange, bis er selbst den Prozessor abgibt, von einem höherpriorenProzess unterbrochen wird oder sein Zeitbudget (Zeitscheibe) abgelaufen ist. Dann wirder an das Ende der Warteschlange eingereiht, in diesem Fall Prozess A, und der nächstekommt zur Ausführung (B). Für alle übrigen Zustände ist eine Einteilung entsprechendder Prioritäten natürlich nicht nötig.

Damit verschiedene Prozesse nicht gleichzeitig auf Ausgabemedien wie zum Beispieleinen Drucker schreiben, werden zudem Blockierungsmethoden eingeführt. Mit diesenkann ein Prozess eine Ressource für sich allein beantragen und beanspruchen, sobald

Page 18: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

14 4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX

Abbildung 4.2: Zustandsubergange von Prozessen

er das Recht dafür durch das Betriebssystem erhält. Falls das Betriebssystem nicht ein-schreitet muss der Prozess diese eigenständig wieder freigeben. Dadurch kann es leiderauch zu Problemen, z. B. Prioritäteninversionen und Dead-Locks kommen, die in speziel-len Situationen eine deutliche Verlängerung der Antwortzeiten von Prozessen auf externeSignale bedeuten können. Echtzeitbetriebssysteme implementieren Maßnahmen, um ei-ne solche Verzögerung zu minimieren.

4.2 Echtzeitfahigkeit

Für die digitale Regelung werden in vielen Fällen hohe Anforderungen an zeitlichen De-terminismus der Berechnung gestellt. Den Begriff der Determiniertheit definiert die DIN44300 folgendermaßen:

„Realzeitbetrieb ist der Betrieb eines Rechensystems, bei dem Programmezur Verarbeitung anfallender Daten ständig betriebsbereit sind, derart, dassdie Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne ver-fügbar sind. Die Daten können je nach Anwendungsfall nach einer zeitlichzufälligen Verteilung oder zu vorherbestimmten Zeitpunkten einmalig oder inregelmäßigen Abständen anfallen.“

Diese Möglichkeit zeitliche Determiniertheit festzulegen wird auch als Echtzeitfähigkeitbezeichnet.

Page 19: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

4.2 Echtzeitfahigkeit 15

Bei diesen Systemen gibt es eine Möglichkeit für den Systemkonfigurator, der die Einstel-lungen für die Ausführung der Software-Pakete auf der Rechenplattform vornimmt, aufdie Zeiteigenschaften der Prozesse und des Datentransports Einfluss zunehmen. Die-se sind hauptsächlich durch das Scheduling-Verfahren und dessen Parameter bestimmt.Es existieren zwei unterschiedliche Strategien in Echtzeitsystemen, um die gefordertenZeiteigenschaften zu garantieren:

• Der Scheduler implementiert eine Scheduling Strategie, die die Reihenfolge derProzesse dynamisch derart anordnet, dass eine spezifizierte Deadline eingehaltenwird. Für bestehende Verfahren ist die Beweisbarkeit für reale Rechensysteme je-doch noch nicht gegeben und die Anzahl der integrierbaren Funktionen ist geringerals bei der folgenden zweiten Methode.

• Das Verhalten von Scheduler mitsamt Prozesslaufzeiten ist hinreichend vorhersag-bar und konfigurierbar. Der Systemintegrator kann dann Abschätzungen über daszeitliche Verhalten machen und evtl. Software-Tools nutzen, die aus diesen Ab-schätzungen auch für komplizierte Systeme das Worst-Case Zeitverhalten berech-nen können. Die Beeinflussung des Zeitverhaltens wird hier durch die Vergabe vonPrioritäten und Ausführungsreihenfolgen bestimmt. Prozesse mit hohen Prioritätenerhalten Vorrang vor anderen und sind damit in ihrem Zeitverhalten annähernd un-abhängig von den niederprioren Prozessen und erfahren dadurch weniger Verzöge-rung.

Für ein vollständiges Echtzeitverhalten zu regelungstechnischen Zwecken muss hierfürjedoch nicht nur der Rechner selbst, sondern die gesamte Plattform ein Echtzeitverhaltenaufweisen. Das bedeutet, dass auch die Kommunikation und angeschlossene Hardware-Logik den Zeitansprüchen des Systems genügen müssen. Besonders bei verteilten Rege-lungssystemen ist dies von tragender Bedeutung. Ein Beispiel hierfür ist die Arbitrierungdes CAN-Kommunikationsstandards in der Automobilindustrie, das Prioritätenvergabe fürTelegramme mittels ihrer Message-ID ermöglicht.

Für regelungstechnische Zwecke ist nicht der Zeitpunkt des Ausführungsaufrufs einesProgramms relevant, sondern die Zeitpunkte der Messungen und Aktorbetätigungen. DieVariation dieser zeitlichen Größen wird Jitter genannt und ist in vielen Fällen unerwünscht.Die Stärke der Auswirkungen hiervon auf die Regelgüte des Systems sind im Allgemeinenabhängig von der Art des Reglers und der Strecke und ist schwer allgemein mittels einerTheorie zu berechnen. Daher wird häufig ein möglichst konstantes Delay angestrebt, wel-ches für die Regelung ein deterministisches, gut berechenbares und testbares Verhaltenbedeutet.

Page 20: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

16 4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX

4.3 Berucksichtigung von Zeiteffekten bei der digitalen

Reglerauslegung

Die Theorie zur Beschreibung von digitalen Systemen wurde in der Vorlesung Grundla-gen der Regelungstechnik ausführlich behandelt. Zur Reglerauslegung gibt es hiernachgrundsätzlich zwei Methoden:

• Die Auslegung in der digitalen Domäne: Der Regler wird direkt in z ausgelegt. Essind nicht alle Auslegungsverfahren des Kontinuierlichen verfügbar. Allerdings gibtes auch neue Reglerstrukturen, die im Kontinuierlichen nicht gut realisierbar sind.

• Die Auslegung des Reglers im Kontinuierlichen

– Die Strecke wird zunächst mittels der exakten z-Transformation diskretisiertund anschließend wieder mit Hilfe der Tustin-Formel inklusive zusätzlicher Null-stellen zurück nach s transformiert. Unter Benutzung dieser Näherung lässtsich nun der Regler mit konventionellen Methoden ausgelegen. Abschließendwerden die so bestimmten Koeffizienten im digitalen Regler hinterlegt. Die Me-thoden werden in Abbildung 4.3 veranschaulicht.

– Vereinfachte Auslegung: Der Regler wird zunächst als kontinuierlich angenom-men und es werden „traditionelle“ Auslegungsmethoden angewandt. Danachwird der Regler nach z transformiert. Jedoch vernachlässigt dies den verzö-gernden Effekt des Halteglieds und rechnet lediglich die Parameter approxi-mativ in die z-Ebene um. Die Nullstellen, welche meist bei der exakten Z-Transformation durch das Halteglied entstehen, werden bei diese Methodenicht berücksichtigt was ggf. zu stark abweichendem Verhalten bei höherenFrequenzen führt.

Gemäß der Vorlesung kann die Signallaufzeit vernachlässigt werden, wenn sie nicht 5%der Regelperiode überschreitet. Ist das nicht der Fall, lässt sich die Laufzeit als Totzeitsowohl in s (e−TLs) als auch in z (ganzzahlige Verzögerung um n Regeltakte mittels z−n

oder Benutzung der modifizierten Z-Transformation) modellieren. Sowohl im Zeitkonti-nuierlichen als auch im Zeitdiskreten lassen sich Verzögerungen auch als Allpass-Gliedannähern (Padé-Approximation). Die Berücksichtigung von Jitter ist dagegen analytischschwierig und sollte der Simulation unter Benutzung von Szenarien basierten Timing-Zeitreihen vorbehalten bleiben.

Page 21: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

4.4 QNX API 17

K(s)

��������� �

������������

������

����

������ � ���� ����

��������

Reglerauslegungin s (einfach)

Reglerauslegungin z (kompliziert)

� � � � � �������

�������� ����

���������� ���������

�����������

�������

����������

������ ������

Abbildung 4.3: Vorgehensweisen fur die Auslegung digitaler Regler

4.4 QNX API

Das im Versuch eingesetzte Echtzeitbetriebssystem QNX besteht aus verschiedenenProgramm-Komponenten und Schnittstellen. In diesem Labor wird vom Timer der Hard-ware, der Initialisierung von Prozessen und den Abstimmungsmechanismen zwischenProzessen in Form von Signalen Gebrauch gemacht. Es werden dabei sowohl Funktio-nen der standardisierten C API als auch der QNX eigenen Neutrino API genutzt. DieFunktionen sind in ihrer Deklarationsschreibweise gegeben, sodass zur Benutzung derBefehle ein einfaches Kopieren des Textausschnitts nicht ausreichend ist.

4.4.1 Interprozess-Kommunikation mit Signalen

Damit Prozesse miteinander kooperieren können, müssen sie Nachrichten und Informa-tionen miteinander austauschen. Es gibt drei grundlegende Techniken, die unter demBegriff Interprozess-Kommunikation zusammengefasst werden.

• Nachrichten (Message-passing): Ein Prozess schickt einem zweiten eine Nachricht,z. B. eine Struktur, der auf diese mit einer zweiten Nachricht antworten muss.

• Signale (Signals): Ein Signal kann als ein Software-Interrupt interpretiert werden,der von einem Prozess ausgelöst werden kann. Der Empfänger muss dieses Signal

Page 22: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

18 4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX

mit einer entsprechenden Software-Routine ähnlich einer Interrupt-Service-Routineabfangen.

• gemeinsamer Speicherbereich (Shared memory): Zwei Prozesse definieren einenglobalen Speicherbereich, auf den beide zugreifen dürfen ähnlich einer globalenVariable. Dieser Datenaustausch empfiehlt sich insbesondere für größere Daten-mengen.

Die meisten der in QNX benutzen Signale werden im Posix-Standard für Unix-artige Be-triebssysteme definiert. Beispiele einiger dieser Signale des Posix-Standards sind in derfolgenden Tabelle aufgeführt:

Makrobez. Signal-Nr. Beschreibung

SIGHUP 1 Hangup - Blockieren des kontrollierenden ProzessesSIGQUIT 3 Beenden durch die Tastatur (im Terminal)SIGILL 4 Illegal Instruction - Ungültige AnweisungSIGTRAP 5 Breakpoint Trap - Genutzt für Kommunikation mit DebuggerSIGKILL 9 Unblockbares Beenden.SIGSEGV 11 Segmentation Violation - Zugriff auf ungültige SpeicherreferenzSIGUSR1 16 Benutzerdefiniertes Signal 1SIGUSR2 17 Benutzerdefiniertes Signal 2SIGALRM 14 Wecker Signal - AlarmSIGTERM 15 Termination Request - Beendigungsanfrage.SIGCONT 25 Fahre mit angehaltenem Prozess fortSIGTTIN 26 Lesen vom Terminal im HintergrundSIGTTOU 27 Schreiben auf ein Terminal im Hintergrund

Auf diese Signale, welche meist vom Betriebssystem stammen, existiert ein Standard-Verhalten, welches Anwendungsprozessen zugeordnet ist, jedoch durch Anweisungen imQuelltext des Anwender-Programms konfiguriert werden kann (außer z.B. bei SIGKILL).Die Standardreaktionsweisen sind insbesondere das Anhalten des Prozesses, Fortsetzendes zuvor angehaltenen Prozesses, Beenden des Prozesses und Ignorieren des Signals.Neuere Linux-Versionen verwenden neben den üblichen ersten 31 Signalnummern nochbis zu 32 weitere Signale als Echtzeitsignale. Einige dieser Signale werden auch wie inder Tabelle ersichtlich für Debugging bzw. Ausnahmenbehandlung im Code benutzt. Einim Posix nicht aufgeführtes Beispiel wäre bspw. das Signal für "Division By Zero", wel-ches durch eine Interruptleitung in der Algorithmischen Einheit des Prozessors entstehtund durch das Betriebssystem an den verursachenden Prozess weitergeleitet wird. Diese

Page 23: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

4.4 QNX API 19

Signal-Struktur wird dann für Hochsprachen häufig auf die try {...} catch {...} Ausnahme-behandlung abgebildet.

Ein Prozess in QNX kann mit der Funktion sigaction() einem Signal einen bestimmtenFunktionsaufruf zuordnen, sodass diese Funktion bei Eingang dieses Signals von außenaufgerufen wird. Alternativ kann im Programmfluss auf eines oder mehrere ausgewählteSignale gewartet werden. Das Programm läuft so lange nicht weiter, bis eines dieserSignale von einem anderen Prozess oder einem Hardware-Baustein ausgesendet wird.Dazu existiert der Befehl sigwaitinfo():

#include <sys/signal.h>

// return: signal_id

int sigwaitinfo (const sigset_t *signale, NULL);

Der Funktion muss eine Adresse oder ein Pointer auf eine Liste mit Signalen vom Typsigset_t übergeben werden, auf die gewartet werden soll. Wenn ein Signal aus dieserListe eintrifft, wird der Prozess im Betriebssystem wieder als ausführungsfähig markiertund es wird durch den Scheduler wieder CPU-Zeit gewährt werden, wenn der Prozessin der Ausführungsreihenfolge der Prozesse an der Reihe ist. Das Programm fährt dannmit der nächsten Instruktion aus dem Quelltext fort. Als Rückgabewert wird die ID deseingegangenen Signals zurückgegeben.

4.4.2 Timer

Mit Timern wird eine Möglichkeit geschaffen, Aktionen zu bestimmten Zeitpunkten zu pla-nen, sei es periodisch, z. B. die regelmäßige Abtastung in einer Regelung, oder einmalig,z. B. beim zeitversetzten Eingriff in der Prozessautomatisierung. Zum Beispiel kann zudiesen Zeitpunkten ein Signal ausgelöst oder ein paralleler Thread gestartet werden.

Unter QNX sind Timer mit den beiden Funktionen timer_create() und timer_settime()

realisierbar. Der erste Befehl meldet den Timer beim Betriebssystem an, beschreibt dieAktion, die beim Ablauf des Timers gestartet werden soll und definiert eine Timer-ID fürihn. Diese Timer-ID dient der Identifizierung im System und wird vom Programmiererdefiniert. Sie lässt sich auf eine beliebige Integerzahl wie z.B. 1 setzen. Der zweite Befehlstellt die Zeiten des Timers ein und startet ihn anschließend.

Page 24: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

20 4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX

#include <time.h>

#include <sys/siginfo.h>

// return: ungleich 0 wenn Fehler

int timer_create (CLOCK_REALTIME, struct sigevent *event, timer_t *timer_id);

// return: ungleich 0 wenn Fehler

int timer_settime (timer_t timer_id, 0,

struct itimerspec *zeiteinstellung_des_timers,

NULL);

Zur Zeiteinstellung des Timers werden die Datenstrukturen struct timespec und struct

itimerspec benötigt. Sie sind wie folgt definiert:

#include <time.h>

// Definiert eine Zeit

struct timespec {

long tv_sec, // Zeit in Sekunden

tv_nsec; // plus Zeit in Nanosekunden

}

// Definiert die Einstellung des Timers

struct itimerspec {

struct timespec it_value, // Zeit, wann der Timer ausloesen soll

it_interval; // Periode fuer regelmaessiges Ausloesen des Timers

// ansonsten 0, wenn nur einmalig.

}

Die Struktur itimerspec erwartet also zwei Variablen vom Typ der Struktur timespec.

Mithilfe der Struktur struct sigevent kann weiterhin festgelegt werden, welche Aktionbeim Auslösen des Timers erfolgen soll. Diese Struktur ist sehr komplex, daher sind zurVereinfachung einige Makros definiert, mit denen die Initialisierung leicht erfolgen kann.Mit dem folgenden Makro kann ein Signal ausgelöst werden:

#include <sys/siginfo.h>

struct sigevent event;

SIGEV_SIGNAL_INIT (&event, signal_nummer);

Page 25: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

4.5 Peripherieansteuerung des FTF 21

4.5 Peripherieansteuerung des FTF

Die Schnittstelle des FTF-Rechners zur Peripherie wird über die Spezialkarte IP-Modulrealisiert. Dieses besteht aus einem programmierbaren Logikbaustein mit DA-/AD-Wandlern.Damit Sie sich mit der eigentlichen Programmierung der Hardware-Ansteuerung nicht be-schäftigen müssen, wurde die Klasse cIP_Modul implementiert, die die benötigten Funk-tionen zur Verfügung stellt.

#include <IP_Modul.h>

#include <SysDef_FTF.h>

cIP_Modul::cIP_Modul (IP_MODUL_SLOT)

Die Klasse ruft bei der Instanziierung automatisch ihren Konstruktor auf, der die nöti-gen Initialisierungen durchführt und auch den Lenkmotor ausrichtet. Mit den folgendenMember-Funktionen erfolgt der entsprechende Zugriff.

Aus Erfahrung muss der Konstruktor des Moduls zur Vermeidung von etwaigen Interfe-renzen vor der Definition des Timers aufgerufen werden. Dies lässt mit dem Aufruf

cIP_Modul cip (IP_MODUL_SLOT);

bewerkstelligen. Wobei IP_MODUL_SLOT ein im Header bereits definiertes Makro ist undcip die Referenz auf das zugehörige Objekt speichert. Die folgenden zugehörigen Funk-tionen lassen sich also in diesem Fall über den Punktoperator gemäß cip.funktion()

aufrufen.

float cIP_Modul::messeGeschwindigkeit ();

float cIP_Modul::messeLenkwinkel ();

cIP_Modul::steuerDrehzahlMotor ({FAHRMOTOR | LENKMOTOR}, float tastverhaeltnis);

Die ersten beiden Funktionen erklären sich von selbst, die dritte steuert die beiden Moto-ren an, wobei entweder das Makro FAHRMOTOR oder aber LENKMOTOR als erstes Argumentanzugeben ist. Der Wert des PWM-Tastverhältnisses kann im Bereich von -100 ... +100liegen. Ein positiver Wert entspricht einer Vorwärtsfahrt bzw. einer Rechtsdrehung derLenkung, ein negativer Wert wirkt entsprechend entgegengesetzt. Ein guter Wert für den

Page 26: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

22 4 Digitale Regelung mit dem Echtzeitbetriebssystem QNX

Test von Fahr- und Lenkmoteren ist z.B. 20 und kann später auf 60 erhöht werden, umdie .

Die Abstandssensoren sind hingegen nicht über die Klasse cIP_Modul angebunden, son-dern werden über die Klasse cMikrolenksensoren angesteuert:

#include <Mikrolenksensoren.h>

#include <SysDef_FTF.h>

cMikrolenksensoren::cMikrolenksensoren (false);

Die zugehörige Member-Funktion messeAbstand() misst den Abstand des vorderen undhinteren Mikrolenksensors vom Leitdraht in Millimeter, wobei für Vorwärtsfahrt der hintereSensor nicht interessiert und nicht weiter berücksichtigt werden braucht. Trotzdem sindzwei Pointer bzw. Adressen für den Funktionsaufruf anzugeben:

cMikrolenksensoren::messeAbstand (float *abstand_vorne, float *abstand_hinten);

4.6 Syntaxbeispiel in C++

Die Funktionen in den vorangegangenen Abschnitten wurden wie bereits erwähnt in De-klarationsschreibweise angegeben. Beispielhaft sind im Folgenden exemplarisch Beispie-le gegeben, welche die C++ Syntax für ihre initialisierung erläutern sollen. Bei Verständ-nisproblemen, sind die zugehörigen C++-Grundlagen in der Vorbereitung des Versuchszu widerholen.

cIP_Modul cip (IP_MODUL_SLOT); // initialisiere Objekt cip mittels Konstruktor cIP_Modul

struct sigevent event; // Initialisierung einer Variable vom Typ struct sigevent

// Ubergabe der Adresse von event, da ein Pointer in Makrodefinition erwartet wird

SIGEV_SIGNAL_INIT (&event, SIGUSR1);

struct itimerspec tspec; // Deklaration des verschachtelten structs

tspec.it_value.tv_sec = 20; // Schreiben der unterlagerten Variablen des Structs

tspec.it_value.tv_nsec = 500*1000*1000; // Einstellung auf 500 ms; -> Insg. 20.5 Sekunden

tspec.it_interval = tspec.it_value;

// Benutze Objekt cip, um Memberfunktion steuerDrehzahlMotor fur Fahrmotor auszufuhren

cip.steuerDrehzahlMotor (FAHRMOTOR, 25.0);

Page 27: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

23

5 Versuchsdurchfuhrung

5.1 Hausaufgabe: Reglerauslegung

Vorbereitung: Lesen und verstehen Sie den Inhalt dieses Laborskripts. WiederholenSie die Konzepte zur Auslegung nach dem Symmetrischem Optimum1, der Auslegungvon Regelkreisen mit Ersatzzeitkonstante2 und der Z-Transformation3. Weiterhin solltendie Syntax von C++ sowie das Konzept von Pointern und Klassen für die Bearbeitung desLabors bekannt sein.

Hausaufgabe 1:

Ein PI-Regler besitzt bekanntlich die kontinuierliche Übertragungsfunktion:

K(s) =u

e= Vpi

Tis+ 1

Tis

Da die Regelung aber aufgrund der Abtastung zeitdiskret ist, muss auch der Regler zeit-diskret sein. In einer ersten Näherung kann man bei einer Abtastperiode T die folgendeSubstitution durchführen:

s =2

T

1− z−1

1 + z−1

Setzen Sie diese Substitution in die Übertragungsfunktion ein und lösen Sie sie nach derStellgröße u auf. Wie sieht nun eine Programmsequenz für einen Abtastschritt aus, dieeinen zeitdiskreten PI-Regler implementiert? Geben Sie diese in Pseudo-Code an.

1Skript Grundlagen der Regelungstechnik auf https://www.ifr.ing.tu-bs.de/de/lehre/veranstaltungen/vorlesungen 1, Seite 163 ff.

2Skript: Grundlagen der Regelungstechnik, Seite 178 ff.3Skript: Grundlagen der Regelungstechnik, Kap.: 12, 13, 16, 19.1-19.3, 20

Page 28: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

24 5 Versuchsdurchfuhrung

Hinweis: Durch den Ausdruck z−1 wird auf alte Werte aus vorhergehenden Abtastungenzurückgegriffen, z. B. bedeutet

u z−1 = u(t− T ) und u z−2 = u(t− 2T ),

dass zum aktuellen Zeitpunkt t auch die berechneten Stellgrößen aus der letzten (t− T )und vorletzten Abtastung (t− 2T ) einfließen.

Hausaufgabe 2:

In der Praxis wird häufig der PI-Regler leicht modifiziert verwendet. Das Blockschaltbildin der Abbildung 5.1 zeigt diese etwas veränderte Form, die häufig etwas bessere Rege-lungsergebnisse liefert.

Zeigen Sie, dass es sich bei der in Abbildung 5.1 dargestellten Struktur tatsächlich umeinen PI-Regler handelt, indem Sie die Differenzengleichung für die Stellgröße berech-nen. Vernachlässigen Sie dazu den nichtlinearen Einfluss der Begrenzungen.

Abbildung 5.1: Blockschaltbild des diskreten PI-Querreglers

Hausaufgabe 3:

Der PI-Regler soll nun in Pseudo-Code implementiert werden. Wie lautet die Programm-sequenz unter Berücksichtigung der Stellgrößenbegrenzung für das in der Abbildung 5.1dargestellte Blockschaltbild?

Page 29: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

5.1 Hausaufgabe: Reglerauslegung 25

Hausaufgabe 4:

Die Übertragungsfunktion der Querbewegung lautet entsprechend der Modellbildung:

G(s) =

qqn

uFM=

1

(T1s+ 1) T2s︸ ︷︷ ︸Lenkmotor

· 1

T3s︸︷︷︸Querdynamik

(5.1)

Mit den Zeitkonstanten:

T1 = 57,9ms

T2 = 0,7296 s

T3 = 0,573 s

Es wird eine Kaskadenstruktur gewählt. Die innere Schleife regelt den Lenkwinkel, dieäußere den Querabstand. Die folgende Abbildung 5.2 stellt diese Struktur dar und zeigtdie beiden vorgeschlagenen Regler.

3

Abbildung 5.2: Kaskadenstruktur der Regelung

Im ersten Schritt wird die innere Kaskade ausgelegt. Der P-Regler arbeitet auf einer IT1-Strecke. Durch den Integrator ist der geschlossene Kreis im Führungsverhalten sogarstationär genau, jedoch nicht im Störübertragunsverhalten. Dies muss im Anschluss vonder äußeren Kaskade übernommen werden.

4.1: Bestimmen Sie zunächst die Übertragungsfunktion des inneren geschlossenen Krei-ses und berechnen Sie anschließend durch einen Koeffizientenvergleich mit der Normal-form eines PT2 die Verstärkung des P-Reglers für eine Dämpfung von D=1.

4.2: Approximieren Sie den inneren geschlossenen Kreis durch ein PT1-Glied. Legen Sieanschließend den PI-Regler für die sich ergebende IT1-Strecke nach dem symmetrischenOptimum bei einer Dämpfung von D=1 aus.

Page 30: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

26 5 Versuchsdurchfuhrung

5.2 Inbetriebnahme

Im ersten Teil des Labors soll die zur Versuchsdurchführung nötige Hardware bestehendaus Timer, Sensoren und Motoren mittels Ansteuerung über ein C++-Programm in Betriebgenommen werden. Im zweiten Teil soll die in den Hausaufgaben ausgelegte Regelungimplementiert werden.

Starten sie dazu zunächst den FTF-Rechner. Folgen Sie dazu den Aufforderungen amBildschirm und loggen sich ein (Login: root, Passwort: ftf). Der FTF-Rechner bootetnicht automatisch in die grafische Oberfläche. Diese heißt Photon und kann mit demBefehl ph gestartet werden.

Die graphische Oberfläche hat eine Taskleiste auf der rechten Seite, welche einen Datei-Explorer und eine Kommandozeile bereitstellt. Navigieren Sie mit Ersterem in das Ver-zeichnis /home/labor/ftf/versuch und rufen Sie dort mittels Doppelklick die Quelltext-Datei versuch.cpp auf. Diese ist der Ausgangspunkt für die folgende Programmierungder FTF-Regelung.

Rufen Sie für die spätere Programmausführung weiterhin eine Kommandozeile auf undnavigieren in selbiges Verzeichnis. Für das Labor nützliche Kommandozeilenbefehle sind:

• dir oder ls: zeigt die Verzeichnisstruktur an.

• cd: Wechselt in das als Parameter folgende Verzeichnis. ./ ist das aktuelle Ver-zeichnis, ../ bewirkt einen Wechsel in das übergeordnete Verzeichnis. / ist dasRoot-Verzeichnis analog zu C:\ bei Windowsbetriebssystemen.

• ps -A: Listet alle derzeit laufenden Prozesse mit ihrer Prozess-ID auf.

• kill ProzessID: Unter Angabe der Identifikationsnummer ProzessID als Parametervon kill wird der zugehörige Prozess beendet.

• Strg + C: Sendet das Kill-Signal an den gerade in der Kommandozeile laufendenProzess.

• make: Kompiliert und linkt gemäß dem im derzeitigen Ordner vorliegenden Makefile.

• stoppe: Ein für das FTF geschriebenes Programm, welches bei Ausführung denFahr- und den Lenkmotor stoppt.

Page 31: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

5.2 Inbetriebnahme 27

Zum sicheren Experimentieren weiterhin wichtig:

• Bocken Sie das FTF unbedingt mithilfe des kleinen roten Kunststoffblocks auf!

• Stellen Sie sicher, dass die Antriebseinheit etwas in der Luft hängt!

5.2.1 Timer-Programmierung

Eine grundlegende Voraussetzung für eine zeitdiskrete Regelung ist das Abtasten zuäquidistanten Zeitpunkten. Dazu muss ein Timer programmiert werden.

Aufgabe 1: Programmieren Sie einen Timer, der in periodischen Abständen das SignalSIGUSR1 generiert. Dieses Signal ist im System und den genutzten Headern in der Vor-lage bereits definiert. Erzeugen Sie eine regelmäßige Ausgabe mit Zeitinterval von einerSekunde auf dem Bildschirm und verifizieren Sie anschließend Ihre Lösung.[Zeitvorschlag: 15 min]

1. Ergänzen Sie die Vorlage versuch.cpp.

2. Compilieren und linken Sie Ihr Programm.

3. Starten Sie Ihr Programm und überprüfen Sie die zeitäquidistante Ausgabe, indemSie die eingebaute Stoppuhr in der Vorlagendatei benutzen und die Periodendauerin verschiedenen Iterationsschritten anpassen. Was lässt sich feststellen?

4. Stoppen Sie ihr Programm mit STRG+C.

5. Welche grundlegenden Programmabschnitte sind für eine Regelung des Fahrzeugszusätzlich nötig? Fügen Sie für diese Abschnitte Kommentare in den bestehendenQuelltext ein.

5.2.2 Zugriff auf die Peripherie

Nachdem Sie die allgemeine Grundstruktur einer Regelung diskutiert haben, sollen ineinem vorbereitenden Schritt zunächst die Sensoren und Motoren angesteuert werden.

Aufgabe 2: Geben Sie zu regelmäßigen Zeitpunkten die Messwerte für Lenkwinkel,Drahtabstand und Geschwindigkeit auf der Konsole aus. [Zeitvorschlag: 15 min]

Page 32: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

28 5 Versuchsdurchfuhrung

1. Ergänzen Sie die bisher verwendete Quelltextdatei. Die Sensorwerte sollten in derKonsole ca. 3 mal pro Sekunde aktualisiert werden, da sonst zu viel Rechenleistungverloren geht und später die Abtastintervalle evtl. nicht mehr eingehalten werdenkönnen. Außerdem ist die Ausgabe bei kurzen Regelzyklen sonst viel zu schnell füreine Beobachtung. Realisieren Sie dies über eine Zählervariable und if-Abfragen.

2. Schalten Sie die Stromversorgung für den Leitdraht ein und stellen Sie einen Wech-selstrom von 30mA bei einer Frequenz von 5,2 kHz an der Stromquelle ein.

3. Compilieren und starten Sie ihr Programm.

4. Drehen Sie die Antriebseinheit manuell über dem Lenkdraht und beobachten sie dieSensorausgaben. Kompensieren Sie bei Auffälligkeiten ggf. die aufgenommenenMesswerte in ihrem Quelltext. Notieren Sie sich auch die Zeit, bis die Sensorenrealistische Werte liefern.

5. Stoppen Sie ihr Programm mit STRG+C.

Aufgabe 3: Zum Testen der Aktoren soll nun eine Steuerung implementiert werden. Dazusoll der Fahrmotor abwechselnd langsam vorwärts und rückwärts drehen. Gleichzeitig sollder Lenkmotor die Antriebseinheit sprunghaft hin und her schwenken.[Zeitvorschlag: 10 min]

1. Ergänzen Sie die bisher verwendete Quelltextdatei. Implementieren sie für die Auf-gabe eine Rechtecksignal-Logik, welche mit einem Timer-Takt von 50 Hz läuft unddie Motorenlaufrichtung alle 5 Sekunden umschaltet. Nutzen sie dazu eine zusätzli-che Zählervariable und if-Anweisungen. Sie sollten einen festen PWM-Wert für bei-de Motoren von 20 einstellen, welchen sie bei Ablauf der 5 Sekunden invertieren.

2. Stellen Sie sicher, dass das FTF aufgebockt ist!

3. Starten Sie den Antriebsstromkreis durch Drücken des Start-Buttons. Ein deutli-ches Anziehen des Schützes muss durch ein Klacken hörbar sein. Ist dies nicht derFall, so ist wahrscheinlich der Not-Aus-Schalter noch eingerastet. Entrasten Sie ihndurch ein leichtes Drehen nach links.

4. Starten Sie ihr Programm, beobachten Sie die Motoren und vergleichen Sie dasVerhalten mit der Ausgabe auf dem Bildschirm.

5. Ermitteln Sie die maximalen Werte für Lenkmotor- und Fahrmotor-PWM sowie diemaximale Aussteuerung des Lenkwinkels.

Page 33: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

5.3 Reglerimplementierung 29

6. Stoppen Sie ihr Programm mit STRG+C.

7. Zum Stoppen und neu Ausrichten der Motoren rufen Sie in der Konsole die Funktionstoppe auf.

5.3 Reglerimplementierung

Nun soll das Fahrzeug in die Lage versetzt werden, dem Leitdraht selbsttätig zu folgen.Dazu sollen nacheinander erst die innere Kaskade und dann die äußere Kaskade derRegelung implementiert werden.

Aufgabe 4: Implementieren Sie nun die innere Reglerkaskade gemäß den ErgebnissenIhrer Hausaufgabe. [Zeitvorschlag: 20 min]

1. Überprüfen Sie, dass die Antriebseinheit etwas in der Luft hängt!

2. Ergänzen Sie die bisher verwendete Quelltextdatei. Erstellen Sie zum Testen einRechteck-förmiges Zeitsignal für die Sollwertvorgabe, um die Sprungantwort desRegelkreises zu studieren. Nutzen sie dazu eine Periodendauer von ca. 5 Sekun-den und eine zusätzliche Countervariable, sowie die zwei Sollwerte 0 und 10 grad.Geben Sie zur leichteren Verifikation das Signal mitsamt der Messwerte auf dieKonsole aus.

3. Testen Sie das Regelverhalten mit den Abtastraten 5Hz, 50Hz und 200Hz.

4. Kompilieren und starten Sie Ihr Programm für die jeweiligen Werte. Verhalten sichdie Sprungantworten wie Sie es erwarten würden? Falls nicht: Was ist für die Ab-weichung verantwortlich zu machen?

Page 34: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

30 5 Versuchsdurchfuhrung

Im zweiten Schritt soll nun die äußere Kaskade programmiert werden.

Aufgabe 5: Erweitern Sie Ihr Regelungsprogramm um die äußere Kaskade.[Zeitvorschlag: 20 min]

1. Überprüfen Sie, dass die Antriebseinheit etwas in der Luft hängt!

2. Fügen Sie den PI-Regler entsprechend dem Blockschaltbild aus Abbildung 5.1 inIhr Programm ein und parametrieren Sie ihn mit den Ergebnissen Ihrer Rechnung.

3. Berücksichtigen Sie ebenfalls die Wertbegrenzungen nach Vorbild des Pseudo-Codes aus Ihrer Hausaufgabe.

4. Implementieren Sie eine Logik, welche zunächst den Lenkwinkel der Antriebseinheitgerade nach vorne ausrichtet und wartet bis alle Sensoren betriebsbereit sind. Erstdann soll der Fahrmotor anfahren.

5. Steuern Sie die Fahrgeschwindigkeit, indem Sie zunächst einem PWM-Wert von 20nutzen.

6. Kompilieren und Starten Sie Ihr Programm und bewegen Sie das FTF im aufgebock-ten Zustand über den Lenkdraht hin und her. Folgt die Antriebseinheit dem Leitdrahtausreichend ruhig und schnell?

Ist dies der Fall, so können Sie das FTF auf dem Leitdraht fahren lassen. Stoppen Siedazu zunächst das Programm.

Aufgabe 6: Testen Sie die Regelung auf der Teststrecke [Zeitvorschlag: 20 min]

1. Da in dieser Regelung noch keinerlei Sicherheitsabschaltungen eingebaut

sind, sollte eine Person mit dem FTF mitgehen und eine Hand uber dem

Not-Aus-Button halten, falls eine kritische Situtation eintritt.

2. Entfernen Sie den kleinen roten Aufbockblock vom FTF

3. Geben Sie den Aufruf Ihres Regelungsprogramms in die Konsole ein, aber führenes noch nicht aus.

4. Lassen Sie Maus und Tastatur am FTF Rechner angeschlossen und legen Sie bei-des auf das FTF, da das System eine Wiederverbindung eventuell nicht erkennt.Bildschirm- und Ladekabel sind zu trennen.

5. Schalten Sie den Antriebsstromkreis ein, falls dieser abgeschaltet wurde.

Page 35: Digitale Regelung eines fahrerlosen Transportsystems · 3 = 0;573s Somit ist das Modell der Querdynamik vollständig entwickelt, linearisiert als auch para-metrisiert und kann für

5.3 Reglerimplementierung 31

6. Starten Sie mit Enter-Tastendruck die Regelung.

7. Falls die Überstrom-Abschaltung der PWM-Leistungsverstärker ein Anfahren ausdem Stand im nicht-aufgebockten Zustand verhindert, können Sie eine Trajektori-envorgabe durch eine Rampe für die Fahrgeschwindigkeit implementieren oder dasFTF durch aufbocken in der Luft anfahren lassen und dann absetzen.

8. Halten Sie das FTF in der Ausgangsposition an, nachdem es einige Zeit gefahrenist, indem Sie das pneumatische Bremssystem oder den roten Schalter betätigen.

9. Bei erfolgreicher Testfahrt, lassen Sie das FTF erneut mit einem PWM Wert für denFahrmotor von ca. 60 fahren. Wie beurteilen Sie die Abweichung vom Lenkdraht imVergleich zu der langsamen Fahrt?