Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber...

118
Regelungstechnisches Praktikum II: Versuchsanleitungen Institut für Automatisierungstechnik und Mechatronik Fachgebiet Regelungsmethoden und Robotik Prof. Dr.-Ing. J. Adamy

Transcript of Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber...

Page 1: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

RegelungstechnischesPraktikum II:VersuchsanleitungenInstitut für Automatisierungstechnik und MechatronikFachgebiet Regelungsmethoden und RobotikProf. Dr.-Ing. J. Adamy

Page 2: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Stand: Februar 2019

Page 3: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Inhaltsverzeichnis

0 Allgemeine Hinweise 2

1 Verkoppelte Regelung eines Helikopters (VRH) 31.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Modellierung des Hubschraubers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5 Versuchsdurchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.6 Vorlage für die Berechnung des Entkopplungsreglers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.7 Zusammenfassung aller verwendeten Symbole und Größen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Nichtlineare Regelung eines Gyroskops (NLR) 222.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2 Modellbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.4 Präzession und Nutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.5 Stabilisierung zweier Achsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.6 Gain-Scheduling-Regelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.7 Anhang A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.8 Anhang B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.9 Verwendete Symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3 Nichtlineare Mehrgrößenregelung eines Flugzeugs (NMF) 423.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2 Flugmechanik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.3 Eigenformen der Flugzeugbewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.4 Kurvenbewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.5 Flugregelungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.6 Anforderungen an den Autopilot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.7 Mehrgrößensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.8 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.9 Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4 Regelung von Servoantrieben (RSA) 634.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.2 Theoretische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.3 Simulationsbasierter Versuchsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.4 Versuchsdurchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5 Regelung einer Verladebrücke (REV) 745.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745.2 Versuchsvorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.3 Versuchsdurchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.4 Anhang A: Sicherheitshinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

6 Speicherprogrammierbare Steuerung eines Mischprozesses (SPS) 876.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.2 SPS-Programmierung nach IEC 61131 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.3 Ablauf- und Rezeptsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906.4 Versuchsaufbau - Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936.5 Versuchsaufbau - Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.6 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046.7 Durchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Page 4: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

0 Allgemeine Hinweise

• Die Vorbereitung der Versuche erfordert Zeit!

• Es sind einschlägige Literaturstellen und die Vorbereitung durchzuarbeiten und zu verstehen.

• Die gestellten Rechenaufgaben bzw. Fragen sollen die Grundlagen testen und festigen. Die Ergebnisse werden amVersuchstag überprüft.

• Es wird von jedem Versuchsteilnehmer erwartet, die Grundlagen und Rechnungen verstanden zu haben und re-produzieren zu können.

• Jeder Versuchsteilnehmer soll mit dem Versuchsaufbau und gestellten Versuchsteilen vertraut sein.

• Während der Versuchsdurchführung sind wesentliche Erkenntnisse und Ergebnisse in einem Protokoll festzuhalten,welches direkt im Anschluss an den entsprechenden Versuch überprüft werden.

• Der Umfang der Vor- und Nachbereitung kann von Versuch zu Versuch variieren.

Page 5: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1 Verkoppelte Regelung eines Helikopters (VRH)

1.1 Einleitung

Dieser Praktikumsversuch untersucht die Modellbildung und Regelung des Modellhubschraubers CE 150 von Hu-musoft [1]. Wie dargestellt1 in Bild 1.1 ist das vorliegende Hubschraubermodell um die Gier- und Nickachse drehbargelagert und hat somit im Gegensatz zu einem echten Helikopter anstatt 6 lediglich 2 Freiheitsgrade. Ziel dieses Versuchsist es, eine Lageregelung zu entwerfen, die den Helikopter um beide Achsen stabilisiert und Störungen gut ausregelt.

Das Hubschraubermodell ist nichtlinear. Daher soll es in einem ersten Schritt um einen Arbeitspunkt linearisiert werden.Dies führt zu einem linearen Mehrgrößensystem mit zwei Ein- und zwei Ausgängen. Die beiden Achsen des Hubschrau-bers sind dabei miteinander verkoppelt, das heißt, Eingriffe in die Nickachse beeinflussen die Gierachse und umgekehrt.

Bild 1.1: Modellhubschrauber CE 150 von Humusoft

Beim Reglerentwurf wird die Frage untersucht, welchen Einfluß die Verkopplung auf die Regelgüte hat. Dazu wird dieVerkopplung zunächst vernachlässigt und je ein PID-Regler für die Nickachse und für die Gierachse entworfen. Dabeiwird das Wurzelortskurvenverfahren (WOK) eingesetzt. Im Vergleich dazu wird dann ein besonderer Zustandsregler, derso genannte Entkopplungsregler, entworfen. Dieser berücksichtigt bereits beim Entwurf die Verkopplung der Achsen underreicht hierdurch eine deutlich bessere Regelgüte. Da nur die Achsenwinkel direkt meßbar sind, ist hierfür zudem derEntwurf eines Beobachters nötig. Die Regler werden schließlich in der Simulation und am Modell getestet und miteinan-der verglichen.

Auch wenn die Modellierung des Hubschraubers kein Bestandteil der Versuchsdurchführung ist, sollten Sie diese trotz-dem nachvollziehen, um ein besseres Verständnis für das Modell zu bekommen. Setzen Sie sich daher schon vor demVersuchsnachmittag mit der Versuchsdurchführung auseinander, um eventuelle Verständnisprobleme vorab mit dem Be-treuer abklären zu können.

1.2 Modellierung des Hubschraubers

1.2.1 Beschreibung des Hubschraubers

Das Hubschraubermodell Typ CE150 ist in Bild 1.2 schematisch dargestellt. Der Körper des Helikoptermodells lässt sichum die waagerechte Nulllage in der Nickachse um ±47.5° und in der Gierachse um ±130° drehen. Die beiden Roto-ren sitzen auf den Motorwellen von zwei Gleichstrom-Elektromotoren und werden somit direkt von diesen angetrieben.

1 Foto: V. Ansel, Fachgebiet rmr, TU Darmstadt.

3

Page 6: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

0

- 0.2

- 0.4

0.2

0.4

φ / radn

y1

y2

u1

u2

π2

0φ \ radg

Bild 1.2: Schematische Darstellung des Hubschraubers

Der Hauptmotor hat eine maximale Geschwindigkeit von 9000 U/min, der Heckmotor dreht mit einer maximalen Ge-schwindigkeit von 12000 U/min. Die Motoren werden von einer H-Brücke mittels einer PWM angesteuert. Dabei liegtdie Spannung u1 am Hauptmotor und Spannung u2 am Heckmotor an.

Für u1 > 0 steigt ϕn, d.h. der Hubschrauber hebt sich. Gleichzeitig existiert eine Verkopplung mit der Gierachse so,dass ϕg ansteigt. Schaut man von oben auf den Hubschrauber, bedeutet dies, dass sich der Hubschrauber im Uhrzeiger-sinn (UZS) dreht2. Bei u2 > 0 dreht sich der Hubschrauber ebenfalls so, dass ϕg steigt (im UZS).

Die beiden Winkel in der Gier- und Nickachse ϕn und ϕg werden mittels Inkrementalgebern gemessen und liegen anden Ausgängen y1 = yϕ,n und y2 = yϕ,g an.

Als zusätzliche Störgröße kann ein auf einer Gleitschiene gelagertes Gewicht mit einem Servo vor- und zurückbewegtwerden, wodurch sich der Schwerpunkt des Modells verschiebt.

1.2.2 Skalierung der Winkel

Die Inkrementalgeber geben die Messwerte yϕ,n und yϕ,g nicht in Radiant aus, sondern in ganzzahligen Ziffernschritten(Digits). Die Inkrementalgeber haben eine Auflösung von 11 Bit pro 360, somit entspricht ein Digit (Ziffernschritt) einerAuflösung von 360/2048= 0, 176.Die tatsächlichen Winkel ϕn und ϕg ergeben sich durch die Skalierung mit dem Faktor kϕ = 2π/2048 und dem Abzugder jeweiligen Offsetwerte yϕ,n0 = 267π/1024 und yϕ,g0 = 724π/1024:

ϕn = kϕ · yϕ,n − yϕ,n0 =π

1024·

yϕ,n − 267

ϕg = kϕ · yϕ,g − yϕ,g0 =π

1024·

yϕ,g − 724

Alle Skalierungswerte finden sich auch in Tabelle 1.1 im Anhang.

2 Der Winkel der Gierachse ist ausnahmsweise in mathematisch negativer Richtung definiert.

4

Page 7: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bemerkung:Die Nulllage ϕn = 0 bedeutet, dass sich der Helikopter in waagrechter Position befindet. Der weiße Pfeil auf der Halterungzeigt dabei auf den mit einer „0“ markierten Pfeil auf der Skala der Nickachse. In der Position ϕg = 0 ist der Helikopterso gedreht, dass der weiße Pfeil auf dem runden Sockel mit dem schwarzen Pfeil auf der drehbaren Aufhängung desHelikopters übereinstimmt und die Zentrierungsschraube der Gierachse angezogen ist.

1.2.3 Dynamik um die Nickachse

Es folgt aus der allgemeinen Gleichgewichtsbedingung

Jϕ =∑

i

Mi

→ Jϕ,nϕn = M1 −Mg −MBϕ,n −Mgyro (1.1)

mit dem Trägheitsmoment um die Nickachse Jϕ,n, der Winkelbeschleunigung ϕn, sowie den folgenden Drehmomenten:

Das Drehmoment M1, hervorgerufen durch den Schub des Hauptrotors, wurde experimentell bestimmt und durch einPolynom zweiten Grades angenähert. Zusätzlich gilt M1(−ω1mot) = −M1(ω1mot) mit

M1 =

¨

a1 ·ω1mot2 + b1 ·ω1mot für ω1mot ≥ 0

− a1 ·ω1mot2 + b1 ·ω1mot für ω1mot < 0

= a1 ·ω21mot · sgn(ω1mot) + b1 ·ω1mot. (1.2)

Das elektrische Verhalten des Motors wurde durch ein PT1-Glied3 angenähert. Es beschreibt die Übertragungsfunktionzwischen der Eingangsspannung u1 und der Winkelgeschwindigkeit4 ω1mot:

ω1mot(s) =1

T1s+ 1U1(s) (1.3)

Das Gravitationsmoment Mg um die Nickachse wird hervorgerufen durch die Gewichtskraft Fg des Helikopters und istabhängig vom Nickwinkel ϕn und der Entfernung l des Massenschwerpunktes zur Drehachse:

Mg = Fg · l · cos(ϕn) = KMg · cos(ϕn)

Das Reibmoment MBϕ,n besteht aus einem viskosen Anteil Bϕ,n1 und der Coulomb’schen Reibung Bϕ,n2. Dieses Momentist abhängig von der Drehgeschwindigkeit ϕn, beziehungsweise von deren Vorzeichen:

MBϕ,n = Bϕ,n1 · ϕn + Bϕ,n2 · sgn(ϕn)

Das Gyroskopische Moment Mgyro ist proportional zum Produkt aus der Winkelgeschwindigkeit des Hauptrotors, derWinkelgeschwindigket des Helikopters um die Gierachse ϕg und dem Sinus des Nickwinkels ϕn. Da die Winkelgeschwin-digkeit des Hauptrotors proportional zum Drehmoment M1 ist, wird dieses eingesetzt. Die gyroskopische Verkopplungvon Gier- zu Nickachse wird durch den Faktor Kgyro ausgedrückt:

Mgyro = Kgyro ·M1 · ϕg · sin(ϕn)

Die Größen der Nickachse sind in Tabelle 1.1 angegeben.

1.2.4 Dynamik um die Gierachse

Aus der bereits oben beschriebenen Gleichgewichtsbedingung folgt für die Gierachse

Jϕ,gϕg = M2 −MBϕ,g −Mv

3 In der Regel wird das Verhalten eines Gleichstrommotors durch ein PT2-Glied beschrieben. Da hier aber die el. Zeitkonstante wesentlichkleiner als die Mechanische ist, wird diese vernachlässigt und es ergibt sich das beschriebene PT1-Verhalten.

4 Die in der Modellierung aufgeführten Variablen ω1 und ω2 sind Kreisfrequenzen, besitzen hier aber einfachheitshalber die Einheit V bzw.MU.

5

Page 8: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

mit dem Trägheitsmoment um die Nickachse Jϕ,g, der Winkelbeschleunigung ϕg, sowie den folgenden Drehmomenten:

Das Drehmoment M2, welches durch den Schub des Heckrotors hervorgerufen, wurde wie oben experimentell bestimmtund durch eine Funktion zweiten Grades angenähert.

M2 =

¨

a2 ·ω2mot2 + b2 ·ω2mot für ω2mot ≥ 0

− a2 ·ω2mot2 + b2 ·ω2mot für ω2mot < 0

= a2 ·ω22mot · sgn(ω2mot) + b2 ·ω2mot.

Die Dynamik zwischen der Eingangsspannung u2 und der Rotationsgeschwindigkeit des Heckmotors ω2mot wurde wie-derum durch ein PT1-Glied angenähert:

ω2mot(s) =1

T2s+ 1U2(s)

Das Reibmoment MBϕ,g besteht aus einem viskosen Anteil Bϕ,g1 und der Coulomb’schen Reibung Bϕ,g2. Dieses Momentist abhängig von der Drehgeschwindigkeit ϕg, beziehungsweise von deren Vorzeichen:

MBϕ,g = Bϕ,g1 · ϕg + Bϕ,g2 · sgn(ϕg)

Das Verkopplungsmoment Mv, welches von dem Hauptrotor auf die Gierachse wirkt, lässt sich auf die verkoppelte Span-nung von Motor 1 zurückführen:

Mv = av ·ω1v2 + bv ·ω1v

Der Hauptrotor übt auch ein Drehmoment auf die Gierachse aus. Diese Verkopplung von Nick- zu Gierachse wird hierwie die Dynamik des Hauptmotor modelliert: So wird die Dynamik zwischen der Eingangsspannung u1 und die für dieVerkopplung wirksame Winkelgeschwindigkeit ω1v durch folgende Übertragungsfunktion beschrieben:

ω1v(s) =1

T1s+ 1U1(s)

Die Zahlenwerte der Parameter der Gierachse sind in Tabelle 1.1 angegeben. Aus der Modellierung ergibt sich das Block-schaltbild des Helikopters in Bild 1.3.

1.2.5 Arbeitspunkt des Hubschraubermodells

Der Arbeitspunkt, um den der Hubschrauber später geregelt werden soll, lautet:

ϕn = −0.4, ϕg = 0,

ϕn = 0, ϕg = 0.

Das heißt, der Helikopter ist in dieser Lage um etwa 23 nach unten geneigt, wie auf Seite 4 gezeigt. Im nächstenAbschnitt wird eine Linearisierung um diesen Arbeitspunkt betrachtet.

1.2.6 Zustandsraumdarstellung des Gesamtsystems

Das Blockschaltbild der linearisierten Dynamik des Gesamtsystems bei Vernachlässigung der Coulomb’schen Reibung istin Bild 1.4 dargestellt. Basierend auf der linearisierten Dynamik des Hubschraubers kann nun eine Zustandsraumdarstel-lung für das Gesamtmodell, d.h. mit Berücksichtigung der Verkopplungen, aufgestellt werden, dies ist auch Aufgabe derVorbereitung (Abschnitt 1.4.1). An dieser Stelle wird die Struktur des Modells daher ohne weitere Rechnung angegeben.Das Modell

x = A · x + B ·∆u, y = C · x (1.4)

hat die Gestalt

x11x12x13x21x22x23

=

0 1 0 0 0 0A1 A2 A3 0 A4 00 0 A5 0 0 00 0 0 0 1 00 0 A6 0 A7 A80 0 0 0 0 A9

·

x11x12x13x21x22x23

+

0 00 01 00 00 00 1

·

∆u1∆u2

y =

y1y2

=

1 0 0 0 0 00 0 0 1 0 0

· x

6

Page 9: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

u1

ω1mot

Mv

M2u2

ω1v

ω2mot

MBϕg

ϕg ϕg ϕg

ϕn ϕn ϕn

Mg

Mgyro

MBϕn

sgn()

sgn()

sgn()

sgn()

sgn()

M1

Bild 1.3: Nichtlineare Dynamik des Hubschraubers

mit den Zustandsgrößen

x11 :=∆ϕn = ϕn −ϕn, x12 :=∆ϕn = ϕn − ϕn, x13 := T1∆ω1mot, ∆ω1mot :=ω1mot −ω1mot,

x21 :=∆ϕg = ϕg −ϕg, x22 :=∆ϕg = ϕg − ϕg, x23 := T2∆ω2mot, ∆ω2mot :=ω2mot −ω2mot,

und den Eingangsgrößen

∆u1 := u1 − u1, ∆u2 = u2 − u2.

Dabei kennzeichnen alle Größen mit einem Überstrich die Werte der Ruhelage, um die linearisiert wurde. Die Herleitungder Werte der Koeffizienten Ai ist Teil der Vorbereitung.

1.2.7 Übertragungsmatrix des Gesamtsystems

Die Übertragungsmatrix des ungeregelten Systems ist wie folgt definiert:

G(s) =

y1(s)∆u1(s)

y2(s)∆u1(s)

y1(s)∆u2(s)

y2(s)∆u2(s)

=

g11(s) g12(s)

g21(s) g22(s)

. (1.5)

Dabei ist y1(s) die Laplace-Transformierte von y1(t), die anderen Größen sind analog definiert. Die Übertragungsmatrixeines MIMO-Systems ohne Durchgriff kann aus dem Zustandsraummodell durch eine Laplace-Transformation wie folgtberechnet werden:

G(s) = C(sI − A)−1B.

7

Page 10: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

∆u1 ∆ω1mot ∆M1

∆M2∆u2 ∆ω2mot

∆ϕn

∆ϕg

∆ϕn∆ϕn

∆ϕg∆ϕg

Bild 1.4: Linearisiertes Gesamtmodell

Hier ist I die Einheitsmatrix mit der gleichen Dimension wie A. Die Berechnung der Inversen in dieser Formel erfolgt fürhöhere Ordnungen des Systems am besten mit dem Gauß-Jordan-Algorithmus. Dazu wird die zu invertierende Matrixwie folgt neben der Einheitsmatrix geschrieben:

sI − A | I

,

und die Zeilen dieser Gesamtmatrix werden so lange umgeformt, bis links die Einheitsmatrix erscheint:

I | (sI − A)−1

.

Folgende Umformungen sind erlaubt:

• Zeile i := Zeile i * Faktor

• Zeile i := Zeile i + Zeile j * Faktor

Die Übertragungsmatrix lautet schließlich:

G(s) =

A4A6 + A3(s− A7)(s2 − A2s− A1)(s− A5)(s− A7)

A4A8

(s2 − A2s− A1)(s− A7)(s− A9)A6

s(s− A5)(s− A7)A8

s(s− A7)(s− A9)

. (1.6)

Hier ist sehr schön zu sehen, dass die Elemente der Nebendiagonale nicht gleich Null sind: Das System ist verkoppelt.Die Stellgröße i wirkt nicht nur auf den Ausgang i, sondern auch auf andere Ausgangsgrößen.

1.3 Methoden

1.3.1 Linearisierung

Gegeben sei ein nichtlineares System der Form

x = f (x , u), y = g(x),

8

Page 11: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

mit stetig differenzierbaren Vektorfeldern f und g.

f (x , u) =

f1(x , u). . .

fn(x , u)

, g(x) =

g1(x). . .

gq(x)

.

Eine Ruhelage x = xR, u= uR, y = yR

dieses Systems erfüllt die Gleichungen

0= f (xR, uR), yR= g(xR).

Ist eine gewünschte Ruhelage xR vorgegeben, so folgt für die Stellgröße der Ruhelage

uR = f (xR),

wobei diese Umformung nur in manchen Fällen analytisch möglich ist. Es werden nun kleine Abweichungen

∆x = x − xR, ∆u= u− uR, ∆y = y − yR

betrachtet. Die Linearisierung ist dann gegeben durch

ddt∆x = A ·∆x + B ·∆u,

∆y = C ·∆x

mit den Matrizen

A :=

∂ f1(xR,uR)∂ x1

. . .∂ f1(xR,uR)∂ xn

......

∂ fn(xR,uR)∂ x1

. . .∂ fn(xR,uR)∂ xn

, B :=

∂ f1(xR,uR)∂ u1

. . .∂ f1(xR,uR)∂ up

......

∂ fn(xR,uR)∂ u1

. . .∂ fn(xR,uR)∂ up

, C :=

∂ g1(xR,uR)∂ x1

. . .∂ g1(xR,uR)

∂ xn...

...∂ gq(xR,uR)

∂ x1. . .

∂ gq(xR,uR)∂ xn

.

Diese Matrizen werden auch als Jacobi-Matrizen bezeichnet. Wird ein Regler ∆u(x) für das linearisierte System entwor-fen, muss bei der Regelung des nichtlinearen Systems noch die Ruhelage berücksichtigt werden, d.h.

u(x) =∆u(x) + uR.

Bemerkung:Durch die Coulomb’sche Reibung im Helikoptermodell ergeben sich Verktorfelder, die nicht stetig differenzierbar sind.Die Coulomb’sche Reibung kann jedoch in erster Näherung vernachlässigt werden.

1.3.2 Koppelfaktor

Um die Stärke der Verkopplung des Systems (1.6) quantitativ zu beurteilen, kann man den Koppelfaktor

κ(G(s)) =g12(s)g21(s)g11(s)g22(s)

berechnen. Die Elemente gi j(s) sind dabei definiert wie in (1.5) angegeben. Für ein unverkoppeltes System ist κ somitgleich Null. Für die Herleitung wird auf [5, Abschnitt 4.5.2, S.178 ff.] verwiesen.

Der Koppelfaktor ist eine Funktion in der Laplace-Variable s = σ+ jω und damit eine komplexe Funktion. Gilt für denBetrag von κ für alle s

|κ(G(s))| 1,

so ist dies Indiz darauf, dass die Verkopplungen nicht zu stark sind. Ein Entwurf von einschleifigen Regelkreisen unterVernachlässigung der Verkopplung könnte in diesem Fall möglich sein. Dies ist allerdings nur ein Richtwert und solltez.B. durch eine Simulation überprüft werden.

9

Page 12: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1.3.3 Parameteridentifikation

Im Rahmen des Versuchs sollen die Parameter a1 und b1 aus Gleichung (1.2) experimentell geschätzt werden. Dazu wirddie Gierachse mechanisch fixiert, so dass keine Verkopplungen auftreten, d.h. Mgyro = 0. Dann wird ein konstantes u1(t)auf die Nickachse gegeben und nach dem Einschwingen der stationäre Endwert von ϕn ermittelt. Im stationären Fall gilt

ϕn = ϕn = 0

und damit auch MBϕ,n = 0. Insgesamt folgt also aus der Momentengleichung (1.1) die Gleichgewichtsbedingung

M1 = Mg.

Im stationären Fall gilt außerdem ω1mot = u1, vgl. (1.3), so dass schließlich folgt

a1u21 · sgn(u1) + b1 · u1 = KMg · cos(ϕn). (1.7)

Um eine möglichst genaue Schätzung zu erhalten, wird die Methode der kleinsten Quadrate (engl. least squares) ver-wendet [2]. Dazu werden N > 2 Messungen durchgeführt mit dem Ergebnis

u1 :=

u1,1 u1,2 . . . u1,N

T

ϕn

:=

ϕn,1 ϕn,2 . . . ϕn,N

T

in Vektorschreibweise. Mit (1.7) folgt das lineare Gleichungssystem

u21,1 · sgn(u1,1) u1,1

......

u21,N · sgn(u1,N ) u1,N

︸ ︷︷ ︸

=:M

·

a1b1

︸︷︷︸

=:p

= KMg ·

cos(ϕn,1)...

cos(ϕn,N)

︸ ︷︷ ︸

=:m

Dieses Gleichungssystem ist wegen N > 2 überbestimmt. Da die Messungen rauschbehaftet sind, hat es im Allgemeinenkeine Lösung. Man kann jedoch versuchen, den Fehler

e := M · p−m

gering zu halten, d.h. die Summe der Fehlerquadrate

N∑

i=1

e2i = eT · e =

M · p−mT·

M · p−m

= pT ·MT ·M · p− 2mT ·M · p+mT ·m

zu minimieren. Nullsetzen der partiellen Ableitung nach p führt zum Gleichungssystem

MT ·M · p = MT ·m,

das sich in MATLAB mit dem Befehl

>> p = (M’*M)\(M’*m)

numerisch effizient lösen lässt. Schreibt man das Gleichungssystem in der Form

p =

MT ·M−1 ·MT ·m= M pseudo ·m,

so nennt man M pseudo auch die Pseudo-Inverse von M . Sie kann als eine Verallgemeinerung der normalen Inverse fürnichtquadratische Matrizen angesehen werden.

10

Page 13: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

ER

w1

Entkoppeltes System

w2

u1

u2

x

Streckeϕn

ϕg

w1

w2

ϕn

ϕg

g11(s)

g22(s)

Bild 1.5: Prinzip der Entkopplung eines MIMO-Systems

1.3.4 Mehrgrößenregelung

Einleitung

Im Laufe des Versuchs soll ein Zustandsregler entworfen werden, der die Führungsgrößen entkoppelt. Dieser Regler, imfolgenden Entkopplungsregler genannt, wird hier nach dem Verfahren von Falb-Wolovich ausgelegt [3]. Eine Einführungin die Thematik Mehrgrößenregelung gibt z.B. [4].

Das Prinzip der Entkopplung ist in Bild 1.5 dargestellt. Die Strecke ist das lineare Mehrgrößensystem

x = Ax + Bu, x(t0) = x0

y = C x ,(1.8)

mit n Zuständsgrößen, p Eingangsgrößen und p Ausgangsgrößen. Es wird also angenommen, dass genauso vieleEingangs- wie Ausgangsgrößen zur Verfügung stehen. Die Ausgangsgrößen yi sollen gleich den vorgegebenen Führungs-größen wi sein, welche auch in einem Vektor

w=

w1 w2 . . . wp

T

zusammengefasst werden. Im Allgemeinen wirkt jede Eingangsgröße auf mehrere oder alle Ausgangsgrößen, das Systemist also verkoppelt. Das Ziel ist der Entwurf eines Entkopplungsreglers (ER)

u= −Rx + Fw, (1.9)

so dass die Führungsübertragungsmatrix Gw(s)

y(s) = C

Ins− A+ BR−1

BFw(s) = Gw(s)w(s)

=

g11(s) . . . g1p(s)...

. . ....

gq1(s) . . . gpp(s)

w(s)

eine reine Diagonalgestalt

Gw(s) = C

Ins− A+ BR−1

BF =

g11(s) . . . 0...

. . ....

0 . . . gpp(s)

(1.10)

erhält. Mit anderen Worten: Die Führungsgröße wi wirkt nur auf den Ausgang yi , da

yi(s) = gii(s) ·wi(s)

gilt. Dies ist rechts in Bild 1.5 dargestellt. Für das Helikoptermodell gilt p = 2.

Als Ansatz für die Übertragungsfunktionen gii(s) werden Übertragungsfunktionen der Art

gii(s) =yi(s)wi(s)

=ki

sδi + . . .+ qi,1s+ qi,0, i = 1, ..., p (1.11)

gewählt. Der Zählerkoeffizient ki wird mit Hilfe des Endwertsatzes so angepasst, dass sich für den geschlossenen Re-gelkreis stationäre Genauigkeit einstellt. Die Größe δi wird Differenzordnung genannt und wird im Folgenden nähererläutert.

11

Page 14: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Begriff der Differenzordnung

Für die Auslegung des Entkopplungsreglers wird die zuvor erwähnte Differenzordnung benötigt. Dazu wird der Ausgang

yi = cTi x

betrachtet (i = 1, . . . , p). Dabei bezeichnet cTi die i-te Zeile der Matrix C . Die erste Ableitung von yi lautet

yi = cTi x = cT

i Ax + cTi Bu.

Der Ausdruck cTi B ist oftmals gleich 0, so dass yi nicht direkt von u abhängig ist. Man kann also fortfahren mit Differen-

zieren und erhält

( j)yi= cT

i Aj x

solange cTi Aj−1B = 0 gilt, bis schließlich bei Ordnung j = δi

(δi )yi = cTi Aδi x + cT

i Aδi−1Bu

die Ableitung zum ersten Mal von der Eingangsgröße u direkt abhängt. Als Definition von δi gilt somit

cTi Aj−1B

¨

= 0 für j < δi

6= 0 für j = δi,

( j)yi =

¨

cTi Aj x für j < δi

cTi Aδi x + cT

i Aδi−1Bu für j = δi. (1.12)

Anschaulich gesprochen ist die Differenzordnung δi somit die Ordnung der Ableitung von Ausgang yi , auf die der Ein-gang u zum ersten Mal direkt wirkt.

Im Eingrößenfall mit der Übertragungsfunktion

G(s) =Y (s)U(s)

=bmsm + . . .+ b1s+ b0

ansn + . . .+ a1s+ a0, m≤ n

lässt sich zeigen, dass die Differenzordnung gerade die Differenz aus Nenner- und Zählerordnung δ = n−m ist.

Im Mehrgrößenfall mit einer Übertragungsmatrix G(s) besitzt jeder Ausgang yi eine eigene Differenzordnung. Wur-den alle δi bestimmt, so ergibt sich aus der Summe

δ =p∑

i=1

δi (1.13)

die Differenzordnung δ des Gesamtsystems.

Synthesegleichungen nach Falb – Wolovich

Die zuvor eingeführte Differenzordnung wird nun dazu verwendet, das System (1.8) in eine andere Beschreibungsformzu überführen, die die Grundlage für die Entkopplung ist. Mit (1.12) folgt für die Ableitungen des Ausgangs

(δ1)y...(δp)y

=: y∗ = C∗x + D∗u,

mit den Matrizen

C∗ =

cT1Aδ1

...cT

pAδp

, D∗ =

cT1Aδ1−1B

...cT

pAδp−1B

.

12

Page 15: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Nach Einsetzen des Entkopplungsreglers von (1.9) kann dies auch geschrieben werden als

y∗ = (C∗ − D∗R)x + D∗Fw.

Falls die Matrix D∗ invertierbar ist (Entkoppelbarkeitsbedingung), können Reglermatrix und Vorfilter wie folgt gewähltwerden:

R= (D∗)−1

C∗ +

∑δ1−1j=0 q1 j cT

1Aj

...∑δp−1

j=0 qp j cTpAj

, F = (D∗)−1

k1 0. . .

0 kp

.

Dabei sind die qi j und ki freie Parameter des Entwurfs. Diese Wahl führt zu den Zeilen

(δi )yi = −δi−1∑

j=0

qi, j cTi Aj x + kiwi

(1.12)= −

δi−1∑

j=0

qi, j( j)yi +kiwi

und damit zur Dynamik

yi(s)wi(s)

=ki

sδi + qi,δi−1sδi−1 + . . .+ qi,1s+ qi,0= gii(s).

Die Wahl der freien Parameter kann also mit Polplazierung erfolgen: Die Vorgabe von δi Polstellen für gii(s) legt die qi, jfest. Damit die statische Verstärkung gleich 1 ist, muss

ki = qi,0

gelten. Bestimmen lassen sich die Koeffizienten qi, j durch eine Vorgabe der Pole λi, j bis zur Ordnung δi

sδi + . . .+ qi,1s+ qi,0!= (s−λi,1) · (s−λi,2) · . . . · (s−λi,δi

) (1.14)

und anschließendem Koeffizientenvergleich. Dies wird für i = 1, . . . , p wiederholt. Insgesamt werden für das Gesamtsys-tem so δ Eigenwerte vorgegeben.

1.4 Vorbereitung

1.4.1 Linearisierung und Zustandsraummodell

Leiten Sie die Zustandsraumdarstellung aus Abschnitt 1.2.6 her. Gehen Sie wie folgt vor:

• Berechnen Sie folgende Werte im Arbeitspunkt: ω1mot , u1, Mv , ω2mot und u2

• Berechnen Sie die Konstanten k11 etc. der Linearisierung in Bild 1.4.

• Wählen Sie die Zustandsgrößen wie in Abschnitt 1.2.6 angegeben. Wie lauten die Koeffizienten A1 bis A9 desModells als Funktionen der Modellparameter?

• Wie lautet die Übertragungsmatrix G(s)?

1.4.2 Koppelfaktor

Bewerten Sie die Stärke der Verkopplung. Gehen Sie wie folgt vor:

• Berechnen Sie den Koppelfaktor κ in Abhängigkeit von der Laplace-Variablen s und den Koeffizienten A1 bis A9.

• Setzen Sie s = σ+ jω. Wie lautet der Betrag von κ?

• Schätzen Sie ab, ob |κ| 1 erfüllt ist.

13

Page 16: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1.4.3 Stationäre Genauigkeit

Da die Gierachse schon einen I-Anteil enthält, ist die Frage, welcher Reglertyp sinnvoll ist, bzw. ob auf einen I-Anteil imRegler verzichtet werden kann. Die Verkopplung mit der Nickachse kann als Störgröße d modelliert werden. Die geregelteGierachse sieht damit wie folgt aus:

∆w2∆u2

d

∆ϕgGPD(s) Gmotor(s) Gg(s)/s

Dabei kennzeichnen GPD, Gmotor undGgs respektive die Übertragungsfunktionen des Reglers, des Motors und des mecha-

nischen Teils der Gierachse.

• Zeigen Sie rechnerisch, dass mit einem Regler ohne I-Anteil (z.B. PD-Regler) die Störgröße d eine bleibendeRegelabweichung verursacht. Gehen Sie von ∆w2 = 0 und d = 1

s (sprungförmige Störgröße) aus.Hinweis:Stellen Sie

∆ϕgier(s)d(s) auf und berechnen Sie

limt→∞

∆ϕg(t) = lims→0+

s ·∆ϕg(s)

mit Hilfe des Endwertsatzes.

1.4.4 Reglerentwurf im Zustandsraum

• Bestimmen Sie die Differenzordnungen der p = 2 Teilsysteme und die Differenzordnung δ des Gesamtsystems.

• Überprüfen Sie, ob das vorliegende System entkoppelbar ist. Stellen Sie hierzu die Entkoppelbarkeitsmatrix D∗ aufund überprüfen Sie ob die notwendige Bedingung erfüllt ist.

• Überlegen Sie, wie Sie die Berechnung der Matrizen des Entkopplungsreglers in MATLAB durchführen können.Eine Grundstruktur eines solchen Skripts finden Sie in Abschnitt 1.6. Das Schreiben des Skripts ist nicht Teil derVorbereitung, beschleunigt aber die Durchführung des Versuchs.Hilfestellung zum Überprüfen des Skripts: Wenn alle Pole des Systems auf λi = −10 platziert werden, ergeben sichfür die (fiktiven) Werte

A1 = A2 = A4 = A5 = A7 = A9 = −1, A3 = A8 = 100, A6 = 1

die Reglermatrix R= [9.71, 2.7, 27.99, 0, -0.28, -1 ; -0.0971, -0.027, 0.0001, 10, 2.7128, 28.01] und für dieVorfiltermatrix F =[10, 0 ; -0.1, 10].

14

Page 17: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1.5 Versuchsdurchführung

1.5.1 Vergleich der Modelle

In diesem ersten Versuchsteil soll ein Vergleich des linearisierten und des nichtlinearen Modells erfolgen, wobei wir unsauf die Analyse der Nickachse beschränken. Es werden drei Modelle verglichen: das nichtlineare Modell des Helikopters,das linearisierte Modell der Nickachse und die Übertragungsfunktion Gn(s).

Aufgaben

• Öffnen Sie in MATLAB das Simulink-Modell „/VRH/01_Vergleich/Vergleich.mdl“und zusätzlich dort die Datei „Vergleich_Init.m“.

• Ergänzen Sie in dem markierten Teil ihre Werte aus der Vorbereitung für das lineare Modell und tragen Sie für„nom“ und „denom“ den Zähler und Nenner ihrer Übertragunsfunktion Gn(s) ein.

• Ergänzen Sie die M-Datei „/VRH/01_Vergleich/Verlauf_Stellgroesse.m“ so, dass folgender Stellgrößenverlauferreicht wird:

u1 =

u1,AP für t ∈ [0;20]su1,AP + 0.02 für t ∈ [20;40]su1,AP − 0.02 für t ∈ [40;60]su1,AP für t ∈ [60;80]s

• Ergänzen Sie die notwendigen Arbeitspunkte im Simulink-Modell (gelbe Blöcke).

• Simulieren Sie nun die Reaktion der drei Übertragungsglieder und vergleichen Sie die drei Kurvenverläufe.

Hinweise

• Durch die Funktion Verlauf_Stellgroesse.m kann der Verlauf der Stellgröße u1 vorgegeben werden.

• In einem Scope wird die Sprungantwort des nichtlinearen Modells gelb, die des linearisierten Modells magentaund die Sprungantwort der Übertragungsfunktion türkis geplottet.

Protokoll

• Bewerten Sie die Abweichungen der Modelle.

• Was passiert für u1(t) = 0?

1.5.2 Experimentelle Bestimmung von a1 und b1

Der Schub M1 des Hauptrotors wird über die Konstanten a1 und b1 festgelegt. Diese Werte sollen durch ein Experimentam Hubschrauber gemessen werden, indem verschiedene Spannungen u1 an das Modell angelegt und die resultierendenNickwinkel ϕn gemessen werden.

Aufgaben

• WICHTIG: Der Betreuer des Versuchs sichert zunächst die Gierachse mit der Feststellschraube.

• Öffnen Sie dazu das Simulink-Modell „/VRH/01_Identifikation/Bestimmung_a1_b1.mdl“.

• Erweitern Sie das Modell: Rechnen Sie die gemessenen Winkel in Radiant um.

• Erweitern Sie das Modell: An den Block RT-Out wird nun das Stellsignal (Spannung für den Hauptrotor) angelegt.Stellen Sie das Signal und die gemessenen Winkel in einem Scope dar.

• Stellen Sie sicher, dass der grüne Schalter in der oberen Schaltstellung „Eingang u_1 aktiv“ steht.

15

Page 18: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

• Starten Sie die Simulation. Sobald die Initialisierung abgeschlosssen ist, wird die von Ihnen an den Eingang vonRT-Out angelegte Spannung an den Hauptmotor weitergeleitet.

• Finden Sie heraus, welcher Wertebereich u1 für die Messung sinnvoll ist. Legen Sie dazu verschiedene Spannungenan das Modell an.

• Fertigen Sie nun eine Wertetabelle mit verschiedenen Spannungen u1 und den dazugehörigen Winkeln ϕn an(mindestens 8 Wertepaare) und ermitteln Sie die Parameter a1 und b1, so dass die zugehörige Kurve durch die vonihnen gemessenen Punkte geht.

• Die Parameter a1 und b1 sollen im Folgenden mit der Methode der kleinsten Quadrate berechnet werden. ErweiternSie in MATLAB das Skript „/VRH/4.4/berechnung_ab.m“, welches die Berechnung von a1 und b1 durchführt, undstellen Sie in einem Plot ihre gemessenen Wertepaare ϕn und u1 und die über die Gleichung M1 = a1 · u2

1 + b1 · u1berechneten Ergebnisse qualitativ dar.

• WICHTIG: Der Betreuer des Versuchs löst am Ende dieses Abschnitts wieder die Feststellschraube.

Hinweise

• In Simulink-Modell gibt es zwei Blöcke, „Encoder-Input“ und „RT-Out“. Am Ausgang von „Encoder-Input“ liegen dieMesssignale der Winkelencoder in Form eines Vektors mit zwei Einträgen an. Der erste Eintrag ist der Sensorwertder Nickachse, der zweite Wert kommt vom Gierwinkelsensor.

• An den Eingang „Motorspannung u_1“ von „RT-Out“ kann eine normierte (d.h. in MU) Motorspannung −1≤ u1 ≤1 angelegt werden. Diese wird verstärkt und liegt am Hauptmotor an. Ein Wert von u1 = −1 entspricht vollerLeistung mit M1 < 0, der Wert u1 = 0 bedeutet „Motor aus“ und u1 = 1 ist die volle Leistung M1 > 0.

• Sie brauchen die Blöcke „constant“, „demux“, „gain“, „scope“ und „sum“.

Protokoll

• Wie lauten a1 und b1?

• Wie groß ist die relative Abweichung Ihrer Werte im Vergleich zu den Werten der Versuchsanleitung?

1.5.3 PID-Reglerentwurf mit dem Wurzelortskurvenverfahren

In diesem Abschnitt wird für jede Achse getrennt ein PID-Regler mit Hilfe des Wurzelortskurvenverfahrens entworfen.Die Übertragungsfunktion des PIDT1-Reglers lautet

GR(s) = KP + KI1s+ KD

s1+ TDs

.

Aufgaben

• Öffnen Sie „/03_PID/pid_entwurf.m“ und ergänzen Sie das Skript wie folgt:

• Berechnung der Übertragungsfunktion G(s)

• Auswahl der Übertragungsfunktionen g11(s) und g22(s)

• Berechnung der Pole: Sind g11(s) und g22(s) stabil?

• Benutzen Sie den Befehl rltool, um die Wurzelortskurve darzustellen. Können Nickachse und Gierachse miteinem P-Regler stabilisiert werden und wenn ja, für welchen Bereich von KP?

• Benutzen Sie den Befehl rltool, um jeweils einen PIDT1-Regler für Nick- und Gierachse zu entwerfen. Das Über-schwingen sollte nicht größer als 20% sein.

Hinweise

• Mit der Eingabe s = tf(’s’) kann die Variable s in MATLAB direkt als Laplace-Variable benutzt werden. Für dieBerechnung der Pole bieten sich die Befehle pole, eig oder roots an.

16

Page 19: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

• Für den Regler der Nickachse empfiehlt es sich, dass der PID-Regler das komplexe Polpaar kompensiert.

• Für den Regler der Gierachse kann die Polstelle bei s = −0.28 kompensiert werden.

• Im “Control and Estimation Tools Manager” kann im Reiter “Architecture” unter “System Data” die Strecke geladenwerden: Mit “Browse” lässt sich die Übertragungsfunktion der Nick- oder Gierachse importieren.

• Im Reiter “Compensator Editor” lässt sich die Reglerverstärkung ändern. Außerdem können Pole und Nullstellendes Regler hinzugefügt werden.

• Im Fenster mit der Wurzelortskurve lassen sich diese Einstellung auch direkt mit der Maus vornehmen. Das Sprung-verhalten lässt sich über direkt anzeigen: Über “Analysis -> Response to step command”.

• Wird die Sprungantwort angezeigt, kann man über “Edit -> Viewer Preferences -> Options” den Schlauch für dieAusregelzeit anzeigen lassen.

Protokoll

• Wie lauten die Regler?

• Wie ist die Ausregelzeit der entworfenen Regler (5%-Schlauch)?

• Kann die Kompensation des komplexen Polpaares auch problematisch sein?

1.5.4 Regler- und Beobachterentwurf im Zustandsraum

Aufgaben Regler

• Öffnen Sie das Skript „/04_Entkopplung/modellentkopplung.m“ und ergänzen Sie es.

• Ist das System vollständig steuerbar?

• Berechnen Sie mit einem Skript die Regler- und Vorfiltermatrix des Entkopplungsreglers für die Polplatzierung mitλ= [−8,−3,−5,−6,−3,−5].

• Zeigen Sie mit Hilfe des MATLAB-Befehls eig(), dass dieser Regler das Gesamtsystem stabilisiert.

• Bestimmen sie die Führungsübertragungsmatrix Gw(s).

• Was erwarten Sie beim Einsatz des Reglers bzgl. seiner stationären Genauigkeit in Gier- und Nickachse?

Es soll nun ein vollständiger Beobachter für die Strecke entworfen werden. Benutzen Sie für den Beobachterentwurf dieMATLAB-Funktion place(). Da

(A− L · C)T = (AT − CT · LT)

gilt, kann der Beobachterentwurf auf einen Reglerentwurf zurückgeführt werden. Es gilt die Dualität

A→ AT, B→ CT, K → LT.

Aufgaben Beobachter

• Öffnen Sie die Datei „/05_Beobachter/beobachterentwurf.m“.

• Überprüfen Sie, ob das Gesamtsystem vollständig beobachtbar ist.

• Entwerfen Sie einen Gesamtbeobachter, der die Eigenwerte auf[−38.2−38.1−38.0−30.2−30.1−30.0] legt. Überprüfen Sie mit Hilfe des MATLAB-Befehls eig() die Eigenwertedes Gesamtbeobachters.

Protokoll

• Wie lauten R, F und L?

• Entscheiden Sie an Hand der Führungsübertragungsmatrix Gw(s), ob das System erfolgreich entkoppelt wurde.

17

Page 20: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1.5.5 Simulation der Regler

Der PID- und der Entkopplungsregler sollen nun in der Simulation am linearisierten und am nichtlinearen System getestetwerden. Anschließend sollen die Ergebnisse des Entkopplungsreglers mit denen der PID-Regelung verglichen werden.

Aufgaben

• Geben Sie die entworfenen Regler und den Beobachter in „/06_Simulation/reglerparameter.m“ ein.

• Öffnen Sie das Simulink-Modell „/06_Simulation/simulation_pid_hubschrauber.mdl“.

• Simulieren Sie die PID-Regelung. Wird die Stellgrößenbeschränkung eingehalten? Wenn nein: Fügen Sie Sätti-gungskennlinien ein, die die Stellgrößen beschränken und simulieren Sie erneut.

• Öffnen Sie das Simulink-Modell „/06_Simulation/simulation_ekr_hubschrauber.mdl“.

• Ergänzen Sie die Blöcke, die für die Umrechnung von relativen in absoluten Größen (und umgekehrt) zuständigsind.

• Simulieren Sie den Entkopplungsregler.

• Zeigt der Entkopplungsregler mit Vorfilter das prognostizierte Verhalten bzgl. stationärer Genauigkeit?

Protokoll

• Warum funktioniert die PID-Regelung gleich, während bei der Entkopplungsregelung die Umrechnung von relati-ven in absoluten Größen berücksichtigt werden muss?

• Wie könnte man die stationäre Genauigkeit des Entkopplungsreglers sicherstellen?

• Welche Regelung funktioniert besser?

1.5.6 Regelung des Hubschraubermodells

Die entworfenen Regler sollen nun am realen Modell getestet werden.

Aufgaben

• WICHTIG: Es muss sichergestellt werden, dass die Nick- und die Gierachsen frei beweglich sind, die Feststell-schrauben dürfen nicht angezogen sein.

• Tragen Sie in der Datei „/07_Experiment/reglerparameter.m“ die entworfenen Regler ein.

• Starten Sie das Modell „/07_Experiment/hubschrauber_pid.mdl“. Die Initialisierung mit anschließender Fahrtin den Arbeitspunkt dauert 60 Sekunden. Danach beginnt die eigentliche Regelung.

• Starten Sie danach das Modell „/07_Experiment/hubschrauber_ekr.mdl“, um die Entkopplungssregelung zutesten.

• Führen Sie die Funktion „/07_Experiment/erstelle_plots.m“ aus und speichern Sie die Verläufe für Ihre Aus-arbeitung. Bewerten Sie das Ergebnis.

Protokoll

• Welcher Regler funktioniert am realen Versuch besser?

18

Page 21: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1.6 Vorlage für die Berechnung des Entkopplungsreglers

Folgender MATLAB-Code dient als Vorlage für die Berechnung des Entkopplungsreglers. Die Systemmatrizen werden mitHilfe der Funktion modellparameter geladen und heißen A, B und C. Die zu ergänzenden Stellen sind mit . . . gekenn-zeichnet.

%% Die Modellparameter A, B, C laden und Initialisierung von Variablen:

modellparameter;

p = 2;

D_star = [];

%% Geben Sie hier die Differenzordnung der i Teilsysteme an:

delta(1) = ... ;

delta(2) = ... ;

%% Geben Sie hier die Wunschpole der i Teilsysteme an.

% Das Teilsystem i braucht delta(i) Pole:

wpole(1,:) = [ ... ];

wpole(2,:) = [ ... ];

%% Berechnen Sie hier die Entkoppelbarkeitsmatrix D*

for i=1:p

D_star =[D_star; ... ];

end;

%% Bestimmen Sie hier die Inverse der Matrix D^*

inv_D_star = ... ;

%% Bestimmung der Koeffizienten qij und ki

for i=1:p

denom = poly(wpole(i,:));

q(i,:) = ... ; % Koeffizienten q(i,j)

k(i) = ... ; % Koeffizienten k(i)

end;

%% Geben Sie hier die Berechnungvorschrift des Vorfilteres F an:

F = ...;

%% Berechnung der Reglermatrix R

compR = []; % Hilfsmatrix, R = inv_D_star*compR

for i=1:p

compR(i,:) = ... ; % Anteil von C_star

for j=0:delta(i)-1 % Summe ueber j

compR(i,:) = ... ;

end

end

R = ...;

19

Page 22: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

1.7 Zusammenfassung aller verwendeten Symbole und Größen

Tabelle 1.1: ModellparameterSymbol Bedeutung Wert Einheit

Sensorwerteyϕ,n Nicksensorwert −1 bis 541 [Digits]yϕ,g Giersensorwert −11 bis 1450 [Digits]kϕ Winkelskalierungsfaktor π/1024 [rad]

yϕ,n0 Nicksensoroffset 267π/1024 [rad]yϕ,g0 Giersensoroffset 724π/1024 [rad]ϕn Nickwinkel −0.82 bis 0.84 [rad]ϕg Gierwinkel −2.22 bis 2.25 [rad]

HauptmotorT1 Motorzeitkonstante Hauptmotor 0.1866 [s]a1 Parameter der Hauptmotor-Propeller Charakteristik 0.1244 [Nms2]b1 Parameter der Hauptmotor-Propeller Charakteristik 0.0496 [Nms]

HeckmotorT2 Motorzeitkonstante Heckmotor 0.1170 [s]a2 Parameter der Heckmotor-Propeller Charakteristik 0.2331 [Nms2]b2 Parameter der Heckmotor-Propeller Charakteristik 0.0080 [Nms]

Verkopplung des Hauptrotors auf die Gierachseav Parameter der Hauptmotor-Gierachsen Charakteristik 0.025 [Nms2]bv Parameter der Hauptmotor-Gierachsen Charakteristik −0.0322 [Nms]

NickdynamikJϕn

Trägheitsmoment um die Nickachse 0.0048 [kg·m2]Bϕn1

Dämpfungskonstante der Viskosereibung 0.0024 [kg·m2/s]Bϕn2

Dämpfungskonstante der Coulomb’schen Reibung 0.0000103 [kg·m2/s]KMg Gravitationsdrehmoment des Helikopters 0.07088 [Nm]Kgyro Gyroskopischer Verkopplungsfaktor −0.4 [Nm/s]

GierdynamikJϕg

Trägheitsmoment um die Gierachse 0.0047 [kg·m2]Bϕg1

Dämpfungskonstante um die Gierachse 0.0013 [kg·m2/s]Bϕg2

Dämpfungskonstante um die Gierachse 0.000596 [kg·m2/s]Sonstige Werte

u1 Eingangsspannung des Hauptmotors −1 bis 1 [MU]max(|u1|) Stellgrößenbeschränkung für u1 0.6 [MU]

u2 Eingangsspannung des Heckmotors −1 bis 1 [MU]max(|u2|) Stellgrößenbeschränkung für u2 0.6 [MU]

20

Page 23: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Literaturverzeichnis[1] HUMUSOFT: CE 150 Helicopter Model, user’s manual. Version 3.2, 2007

[2] ISERMANN, R. UND M. MÜNCHHOF: Identification of Dynamic Systems: An Introduction with Applications. Springer BerlinHeidelberg, 2010

[3] FALB, P. L. UND W. A. WOLOVICH: Decoupling in the Design and Synthesis of Multivariable Control Systems. IEEE Transac-tions on Automatic Control, AC-12:651-659, 1967

[4] FÖLLINGER, O. ; F. DÖRRSCHEIDT UND M. KLITTICH: Regelungstechnik. Einführung in die Methoden und ihre Anwendung.Hüthig Verlag, 10. Auflage, 2008

[5] LUNZE, J.: Regelungstechnik 2. Mehrgrößensysteme. Digitale Regelung. Springer Verlag, 3. Auflage, 2005

21

Page 24: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2 Nichtlineare Regelung eines Gyroskops (NLR)Hinweise:

• Bringen Sie bitte am Versuchstag einen USB-Stick mit ca. 50 MB freiem Speicherplatz mit, so dass Sie die Ergeb-nisplots für die Klausurvorbereitung mit nach Hause nehmen können.

• Einige der Vorbereitungsfragen werden in Matlab bearbeitet. Bitte bringen Sie die Ergebnisse der Vorbereitungsfragendennoch in schriftlicher Form mit.

• Bitte beantworten Sie während der Versuchsdurchführung die jeweiligen Fragen für das Protokoll. Die Zusatzfragenzur Vertiefung können nach dem Versuch bearbeitet werden, sind aber freiwillig.

2.1 Einleitung

In diesem Versuch sollen an einem Gyroskop verschiedene Regler kennengelernt und die Kreiseleffekte Präzessionund Nutation verdeutlicht werden. Technische Anwendung finden Gyroskope bei der Messung von Orientierungs- undRichtungsänderungen sowie der Navigation. Beispiele sind die Verwendung in Autos, Flugzeugen und in der Raumfahrt.

2.1.1 Bedienung des Gyroskopes

Das Gyroskop besteht aus vier Körpern (siehe Bild 2.3), von denen zwei mit Stellmotoren ausgestattet sind (A und B). DiePositionen aller Körper werden mit Winkelencodern gemessen. Diese sind nicht identisch und besitzen unterschiedlicheAuflösungen (siehe Anhang A). Für einen Teil der Versuche ist es sinnvoll, bestimmte Körper gegeneinander zu fixieren.Hierzu sind die Körper B, C und D mit Bremsen ausgestattet. Die Schalter zum Aktivieren der Bremse für die Körper Cund D befinden sich am Steuergerät (siehe Bild 2.1), die Bremse für Körper B ist in der Software implementiert.

Bild 2.1: Steuergerät

22

Page 25: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.1.2 Handhabung der Software

Die Gyroskop-Software gestattet das Implementieren von Regelalgorithmen, Abfahren von Trajektorien und Aufneh-men von Messreihen. Der Hauptbildschirm zeigt die vorgegebenen Positionen, die Rotorgeschwindigkeit der innerenDrehscheibe, die aktuellen Werte der Winkelencoder sowie Statusmeldungen über die Motoren und den Regler. Da diesweitgehend selbsterklärend ist, wird darauf hier nicht genauer eingegangen. Wie weiter oben erwähnt verfügt der KörperB über eine Software-Bremse. Diese kann ebenfalls im Hauptbildschirm eingestellt werden (siehe Bild 2.2).

Bild 2.2: Hauptbildschirm der Software

Eine Übersicht über alle wichtigen Funktionen, die auch in den Versuchen immer wieder benötigt werden zeigt Tabel-le 2.1.

Aktion Menü Unterpunkt

Rotorgeschwindigkeit einstellen Command Initialize Rotor Speed

Encoderwinkel Null setzen Utility Zero Position

Trajektorie konfigurieren Command Trajectory 1(/2)

Trajektorie ausführen Command Execute

Regelalgorithmus zurücksetzen Utility Reset Controller

Regelalgorithmus laden/starten Setup Control Algorithm

Regelalgorithmus stoppen Hauptbildschirm Abort Control

Messreihen aufnehmen Data Setup Data Aquisition

Ergebnisse auswählen Plotting Setup Plot

Ergebnisse darstellen Plotting Plot Data

Ergebnisse drucken Plotting Print Plot

Sample Period einstellen Data Setup Data Acquisition

Tabelle 2.1: Darstellung der wichtigsten Funktionen zur Durchführung des Versuchs

!Anzumerken ist dazu noch, dass das Ausdrucken der Ergebnisse nur funktioniert, wenn der zu druckendePlot gerade am Bildschirm angezeigt wird. Außerdem muss, um einen Versuch zu beenden, zuerst AbortControl im Hauptbildschirm gedrückt werden und wenn sich dann das Gyrokop nicht mehr bewegt, mussjedes mal der Regler zurückgesetzt werden (siehe Tabelle 2.1).

23

Page 26: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.2 Modellbildung

Die Modellgleichungen des Gyroskops werden mit Hilfe des Lagrange-Formalismus erstellt. Zuerst gibt es hierzu einekleine Einführung, bevor im Anschluß die Bewegungsgleichungen des Gyroskops hergeleitet werden.

2.2.1 Der Lagrange-Formalismus

Die Bewegungsgleichungen eines mechanischen Systems können auf verschieden Arten hergeleitet werden. Eine Möglich-keit ist, durch Freischneiden einzelner Körper, Einführen von Bindungskräften und -momenten und Aufstellen des Käfte-und Momentengleichgewichtes für die entstandenen Teilsysteme, zum Ziel zu kommen. Eine weitere Möglichkeit bietenso genannte Energiemethoden. Hierzu gehört das Prinzip der virtuellen Verrückung und der Lagrange-Formalismus1.Auch diese Prinzipien können auf die mechanischen Grundaxiome zurückgeführt und ineinander überführt werden. Eingroßer Vorteil ist, das innere Kräfte in idealen Bindungen nicht in den Gleichungen auftreten und daher nicht eliminiertwerden müssen. Zur Beschreibung der Bewegung eines Körpers mit N Freiheitsgraden benötigt man N generalisierteKoordinaten q1, q2, ..., qn. Werden mehr als N generalisierte Koordinaten verwendet, so existieren so viele Zwangsbedin-gungen wie überzählige Koordinaten. Hängen diese Zwangsbedingungen nur von den generalisierten Koordinaten abund nicht von deren zeitlichen Ableitungen, so nennt man das System holonom.

Man kann zeigen, dass die potentielle Energie U eines holonomen Systems nur von den generalisierten Koordinatenabhängt

U = f (q1, q2, ..., qn).

Weiter hängt die kinetische Energie T eines holonomen Systems nur von den generalisierten Koordinaten und derenzeitlichen Ableitungen ab, d.h.

T = h(q1, q2, ..., qn, q1, q2, ..., qn).

Die Differenz zwischen kinetischer und potentieller Energie

L = T − U = g(q1, q2, ...,qn, q1, q2, ..., qn)

wird als Lagrange-Funktion bezeichnet. Mit Hilfe dieser Definitionen und mit der Voraussetzung, dass das System holo-nom ist, lässt sich die Lagrange’sche Methode zweiter Art

dd t∂ L∂ qk−∂ L∂ qk

=Qk mit k = 1, ..., N (2.1)

zur Aufstellung der Bewegungsgleichungen nutzen. Hierbei beschreibt Qk die an dem Körper angreifenden, generalisier-ten Kräfte und Momente. Die Lagrange’sche Methode zweiter Art liefert N unabhängige, gewöhnliche Differenzialglei-chungen, die die Dynamik des Systems vollständig beschreiben.

2.2.2 Anwendung auf das Gyroskop

Das Gyroskop besteht aus drei Aufhängeringen und einer inneren, sich drehenden Scheibe. Die Aufhängeringe bzw.Körper des Gyroskops sind, wie in Bild 2.3 zu sehen, mit A, B, C und D bezeichnet. Das Koordinatensystem ai−a j−ak istkörperfest mit dem Körper A verbunden, das Koordinatensystem bi − b j − bk körperfest mit dem Körper B und so weiter.Über die Winkel q1 bis q4 sind auch die Winkelgeschwindigkeiten um die körperfesten Achsen festgelegt:

ω1 =ω1 · a j; ω1 = q1

ω2 =ω2 · bi; ω2 = q2

ω3 =ω3 · c j; ω3 = q3

ω4 =ω4 · dk; ω4 = q4

Die Trägheitsmatrizen in körperfesten Koordinaten haben für jeden einzelnen Körper die Gestalt einer Diagonalmatrixalso z.B. JA = diag(IA, JA, KA) für den Körper A . Dabei sind IA, JA, KA die skalaren Massenträgheitsmomente des Körpers

1 vgl. R. Markert: Technische Mechanik Teil B, 1. Auflage, TU Darmstadt, 2002

24

Page 27: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

A

B

C

D

ai

a j

ak

bi

b j

bk

ci

c j

ck

di

d j

dk ni

n j

nk

ω1

ω2ω3

ω4

τ1

τ2

Achse 2

Achse 3

Achse 4

Bild 2.3: Modell des Gyroskops

A um die Koordinatenachsen ai , a j , ak und so weiter. Die körperfesten Koordinaten sind so gewählt, dass sie den zen-tralen Hauptachsen entsprechen. Hauptachsensysteme sind dadurch gekennzeichnet, dass nur die (zeitlich konstanten)Massenträgheitsmomente von null verschieden sind, während die Deviationsmomente null sind. Man nennt ein Haupt-achsensystem zentral, wenn der Koordinatenursprung im Schwerpunkt des Körpers liegt. Die Trägheitsmatrizen besitzenin diesem Fall also Diagonalgestalt und der Ursprung des körperfesten Koordinatensystems liegt im Schwerpunkt desKörpers. Das Verschwinden der Deviationsmomente ist allerdings nur eine Näherung.

Da die sich drehende Scheibe (Körper A) rotationssymetrisch ist, gilt KA = IA. Die körperfesten Koordinaten könnenmit Hilfe von Transformationsmatrizen Rmn (m und n bezeichnen dabei zwei unterschiedliche Koordinatensysteme) wiefolgt ineinander transformiert werden:

v d =

cos(q3) 0 sin(q3)0 1 0

− sin(q3) 0 cos(q3)

· v c = Rdc · v c , (2.2)

v c =

1 0 00 cos(q2) − sin(q2)0 sin(q2) cos(q2)

· v b = Rcb · v b, (2.3)

v b =

cos(q1) 0 sin(q1)0 1 0

− sin(q1) 0 cos(q1)

· v a = Rba · v a. (2.4)

Dabei gibt v i jeweils einen Vektor im i-ten Koordinatensystem an. Durch die mechanische Struktur erkennt man aus (2.4)leicht, dass

b j = a j (2.5)

gilt.Als generalisierte Koordinaten wählt man die vier Winkel q1, ...,q4. Das System besitzt vier Freiheitsgerade und ist

holonom. Die Winkelgeschwindigkeit jedes einzelnen Körpers kann leicht berechnet werden. Sie setzt sich additiv aus

25

Page 28: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

den eingezeichneten Winkelgeschwindigkeiten zusammen. Hierbei müssen die Winkelgeschwindigkeiten entsprechendtransformiert werden, so dass

ωD =

00ω4

, (2.6)

ωC = R−1dc

00ω4

+

0ω30

, (2.7)

ωB = R−1cb

R−1dc

00ω4

+

0ω30

+

ω200

, (2.8)

ωA = R−1ba

R−1cb R−1

dc

00ω4

+ R−1cb

0ω30

+

ω200

+

0ω10

. (2.9)

Für das Modell des Gyroskops vereinfacht sich die Lagrange-Funktion, da die potentielle Energie U = 0 ist, zu

L = T − U = T.

Die kinetische Energie Tk eines rotierenden Körpers (k = A, B, C , D) ergibt sich zu

Tk =12·ωT

k · Jk ·ωk. (2.10)

Durch Einsetzen von (2.6) bis (2.9) in (2.10) erhält man für die gesamte kinetische Energie des Gyroskops

L = TGesamt = TA+ TB + TC + TD (2.11)

=12

ωTA · J

A ·ωA+ωTB · J

B ·ωB +ωTC · J

C ·ωC +ωTD · J

D ·ωD

.

Durch Anwenden der Lagrange’schen Methode zweiter Art (2.1) erhält man nun vier nichtlineare, gewöhnliche Diffe-rentialgleichungen, die die Dynamik des Gyroskops vollständig beschreiben. Da diese Gleichungen sehr kompliziert sind,wird hier, beispielhaft, nur eine explizit angegeben. Der interessierte Student kann die weiteren Gleichungen mit Hil-fe eines Computers bestimmen (z.B. mit Matlab™/Symbolic Math Toolbox oder Mathematica™). Für die generalisierteKoordinate q1 gilt

JD · (cos(q2) · cos(q3) ·ω2 ·ω4 − sin(q2) ·ω2 ·ω3 − sin(q2) · sin(q3) ·ω3 ·ω4 + ...

+ω1 + cos(q2) · ω3 + sin(q2) · cos(q3)ω4) = τ1.

Durch Zusammenfassen der Gleichungen kann das System in Matrizenform überführt werden. Man erhält

M(q) · ω+H(q,ω) ·ω= τ. (2.12)

Hierbei ist ω= (ω1 ω2 ω3 ω4)T der Vektor der Winkelbeschleunigungen und~ω= (ω1 ω2 ω3 ω4)T der Vektor der Winkelgeschwindigkeiten. Die Einträge der Matrix M hängen von den Winkelnab, die Einträge der Matrix H von den Winkeln und den Winkelgeschwindigkeiten. Durch diese Abhängigkeiten wird dasSystem nichtlinear. In dem Vektor τ = (τ1 τ2 τ3 τ4)T sind die an dem System angreifenden Momente zusammen-gefasst. Da nur Momente um die Achsen 1 und 2 (Körper A und B) aufgebracht werden können, vereinfacht sich derStellgrößenvektor zu τ= (τ1 τ2 0 0)T .

26

Page 29: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.3 Programmierung

Die Regelalgorithmen für das Gyroskop werden in einer eigenen, stark an der Programmiersprache C orientierten Sprachegeschrieben. Hierfür steht ein eigener Editor zur Verfügung. Ein Programm besteht aus 3 Teilen.

• Definition (Definitionsteil): In diesem Programmabschnitt können Variablen Namen zugewiesen werden. DemProgrammierer stehen 100 Variablen q1 bis q100 zur Verfügung. Zusätzlich existieren die folgenden globalenVariablen, die nicht mehr definiert werden müssen:cmdz_pos: Sollposition des Winkels qz für z = 1,2encz_pos: Wert des Winkelgebers des Winkels qz für z = 1,...,4control_effortz: Drehmoment als Stellgröße τz für z = 1,2Diese Bezeichnungen dürfen nicht doppelt verwendet werden. Auch eine Doppelverwendung aller anderen Namenist untersagt.

• Initialization (Initialisierungsteil): In diesem Abschnitt werden den verwendeten Variablen Initialisierungwertezugeweisen. Die Initialisierung sollte nicht im Echtzeitteil erfolgen, da sonst die Ausführung des Codes unnötigverlangsamt wird.

• Servo Loop (Echtzeitteil): Dieser Abschnitt wird zu jedem Abtastzeitpunkt ausgeführt. Er beginnt mit begin undendet mit end.

Weitere Elemente der Programmiersprache sind hier kurz zusammen gefasst:

• Vergleiche: < (kleiner), !< (nicht kleiner), > (größer), ! > (nicht größer), != (ungleich), = (gleich)

• Arithmetische Operationen: Es existieren die Operatoren +, -, *, /

• Mathematische Funktionen: Folgende Funktionen sind implementiert: sin (Sinus), cos (Cosinus), asin (Arcus-Sinus), acos (Arcus-Cosinus), ln (Logarithmus zur Basis e), exp (Exponentialfunktion), sqrt (Wurzel), abs (Betrag)

• Kommentierung: Als Kommentierungszeichen dient das Strichkomma (;), als Dezimaltrennzeichen der Punkt (.)

• Groß- und Kleinschreibung: Der Editor unterscheidet nicht zwischen Groß- und Kleinschreibung.

• Schleifen: Es stehen keine Schleifenstrukturen zur Verfügung.

Das folgende Beispiel dämpft die Nutationsbewegung des Gyroskops mit einem PD-Regler:

*********** define user variables *************

#define Ts q1

#define kd q2

#define kdd q3

#define enc2_last q4

;********** Initialize variables **************

Ts=0.00442

kp=1/32

kd=0.04

kdd=kd/Ts

;****************** Servo Loop *****************

begin

control_effort2=kp*(cmd1_pos-enc2_pos)-kdd*(enc2_pos-enc2_last) ;CONTROL LAW

enc2_last=enc2_pos ;UPDATE

end

27

Page 30: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.4 Präzession und Nutation

Präzession und Nutation sind Effekte, die bei Kreiseln auftreten und ihre Ursache in der Drehimpulserhaltung haben.Diese Effekte können mit Hilfe des Gyroskops gemessen und veranschaulicht werden.2

Vereinfacht sind beide Bewegungen anhand der Darstellung in Bild 2.4 zu sehen. Das Bild zeigt, beispielhaft, die Erdeals Kreisel und man kann sowohl ihre Präzessionsbewegung (P) als auch ihre Nutationsbewegung (N) sehen. Beidezusammen bewirken, dass die Rotationsachse der Erde einem Kegelmantel folgt, der, durch die Nutation, die Form eines„Wellblechkegels“bekommt. Im Folgenden sollen beide Begriffe etwas näher erläutert und erklärt werden.

Bild 2.4: Rotations- (R), Präzessions- (P) und Nutationsbewegung (N) eines Kreisels am Beispiel der Er-de [www.wikipedia.org]

2.4.1 Präzession

Ein rotationssymmetrischer Kreisel besitzt um zwei seiner Achsen das gleiche Trägheitsmoment während um die dritteAchse das Trägheitsmoment unterschiedlich ist. Diese Achse bezeichnet man als Figurenachse eines Kreisels. Versetzt mannun einen solchen Kreisel in Drehung und ist seine Figurenachse nicht parallel zum Einfluss einer äußeren Kraft (zumBeispiel der Schwerkraft ~Fg - vgl. Bild 2.5), so beginnt sich die Figurenachse, um eine Achse in Richtung der äußeren Kraftzu drehen (im Bild die Senkrechte Achse in Richtung der Schwerkraft). Gemäß den Kreiselgesetzen sagt man, dass einäußeren Kräften unterworfener Kreisel versucht, der (durch die äußere Kraft verursachten) Neigung seiner Figurenachsesenkrecht auszuweichen. Diese Ausweichbewegung nennt man Präzession3.

Die Ausweichbewegung erfolgt aufgrund einer Änderung des Drehimpulses eines Körpers. Der Drehimpuls ~L einesstarren Körpers ist ganz allgemein

L = Jωrot,

mit dem Trägheitstensor J und der Rotationsgeschwindigkeit ωrot. Die zeitliche Änderung des Drehimpulses ist

L = τ (2.13)

also gleich dem angreifenden Moment. Ist nun, wie in Bild 2.5, die Figurenachse (= Rotationsachse) nicht parallel zurSchwerkraftrichtung (grün), so entsteht ein zusätzliches Moment τg = r × F g , so dass dann

L = τ+τg

gilt und die Richtung von τg einfach aus der Kreuzproduktoperation folgt (siehe Bild 2.5).

2 vgl. z.B. C. Gerthsen: Physik, Springer Lehrbuchverlag 2006, 23. Auflage3 lat. praecedere = voranschreiten

28

Page 31: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.4.2 Nutation

Physikalisch gesehen hat die Nutation4 dieselbe Ursache wie die Präzession. Sie ist eine der Präzession überlagerteBewegung und wird dadurch verursacht, dass die Figurenachse nicht parallel zum Drehimpuls des rotierenden Körpersist. Dies entsteht wenn der in Rotation versetzte Körper nicht parallel zur Schwerkraftrichtung „aufgezogen“ wird. Da,nach den Erhaltungssätzen der Physik, der Drehimpuls konstant bleibt, rotiert nun die Figurenachse des Körpers umdie Richtung des Drehimpulses. Damit ändert sich, vom rotierenden Körper aus betrachtet, ständig die Wirkung desDrehimpulses auf den Körper und die Figurenachse „schwankt“ um die Präzessionsbewegung (die ja gleichermaßendurch das nicht parallele Aufziehen entsteht). Dieses Schwanken wird als Nutation bezeichnet.

2.4.3 Aufgaben zur Präzession und Nutation

HINWEIS: Vor dem Ausführen der Messung sind die Einstellung der Software und die Stellung des Gyroskops vombetreuenden HIWI zu überprüfen! Warten Sie vor dem Initialisieren einer neuen Rotorgeschwindigkeit bis der Rotorsteht. Vor jedem Messdurchgang: Reset Controller!

Vorbereitung

Aufgabe 1: Aus den nichtlinearen Modellgleichungen lässt sich für den vorliegenden Fall (Achse 3 fixiert, q20 = 0,q30 = 0) das folgende Modell ableiten. Hierbei istω1,V1.i für alle i = 1, ..., 4 der Arbeitspunkt der Drehgeschwindigkeitdes Körpers A, also der inneren Scheibe.

q2q4ω2ω4

=

0 0 1 00 0 0 10 0 0

JA·ω1,V1.iIB+IA

0 0−JA·ω1,V1.i

IA+KB+KC+KD0

·

q2q4ω2ω4

+

001

IA+IB0

τ2. (2.14)

Berechnen Sie für die Rotationsgeschwindigkeiten n1,V1.1 = 200 Umin , n1,V1.2 = 400 U

min , n1,V1.3 = 600 Umin und n1,V1.4 =

800 Umin (ω = 2πn, n in U

s ) die Eigenwerte der Systemmatrix und daraus die Eigenfrequenzen in Hz. (Die benötigtenKonstanten befinden sich im Anhang A).

4 griech. für Nicken

Figurenachse

Präzession

Boden

S

ωrot

Fg

τgr

Bild 2.5: Verdeutlichung der Präzession eines Kreisels

29

Page 32: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Versuch 1

Nehmen Sie für den ersten Versuch die Messkurven der Winkelpositionen q2 (Encoder 2 Position) und q4 (Encoder 4Position) mit Sample Period = 4 auf.

1. Bringen Sie das Gyroskop per Hand in die in Bild 2.6 gezeigte Stellung. Achten Sie dabei darauf, dass der amGyroskop angebrachte rote Punkt oben ist.Winkel: q20 = 0, q30 = 0Achse 4: Bremse AUSAchse 3: Bremse ANAchse 2: Bremse AUS

Bild 2.6: Einstellung des Gyroskops

2. Konfigurieren Sie Trajektorie 1 (Stellwert τ2) wie folgt (siehe Seite 23):Impuls mit: Amplitude = 16000 counts, Pulse Width = 50 ms, Dwell Time = 4000 ms,Repetitions = 1.Vergessen Sie nicht, dass vor jedem Versuch den Regelalgorithmus zurückgesetzt werden muss (Utility−> Reset Controller).

3. Stellen Sie eine Rotorgeschwindigkeit von n1,V1.1 = 200 Umin ein (siehe Seite 23).

4. Laden Sie den Algorithmus praenut.alg (zu finden im Ordner algorithms auf dem Desktop). Implementie-ren Sie den Algorithmus (Button Implement Algorithm) mit einer Abtastzeit von TS = 0.00442s. Hierbei wirdder programmierte Algorithmus auf das Steuergerät übertragen und ausgeführt. Setzen Sie anschliessend dieEncoderpositionen zu null (siehe Seite 23).

5. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Sie sollten eine kurze Oszillationgefolgt von einer gleichmäßigen Bewegung sehen. Beenden Sie die Ausführung mittels Abort Control. Dokumen-tieren Sie Ihre Ergebnisse durch einen geeigneten Plot (Plots erstellen: siehe Seite 23).

6. Wiederholen Sie die Messung mit n1,V1.2 = 400 Umin , n1,V1.3 = 600 U

min und n1,V1.4 = 800 Umin .

Speichern Sie Ihre Ergebnisse als pdf ab. Achten Sie auf eine sinnvolle Skalierung der Achsen (Menüpunkt Plotting >Axis Scaling).

Versuch 2

Nehmen Sie für den zweiten Versuch q2 =ω2 (Encoder 2 Velocity), q4 =ω4 (Encoder 4 Velocity) und den Winkelq4 (Encoder 4 Position) mit Sample Period = 4 auf.

1. Bringen Sie das Gyroskop in die in Bild 2.6 gezeigte Stellung analog zu Versuch 1.

2. Konfigurieren Sie Trajektorie 1 (Stellwert τ2) wie folgt:Impuls mit: Amplitude = 6000counts, Pulse Width = 8000ms, Dwell Time = 0ms,Repetitions = 1.

3. Stellen Sie eine Rotorgeschwindigkeit von n1,V2.1 = 200 Umin ein.

4. Laden Sie den Algorithmus praenut.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS =0.00442s und setzen Sie anschliessend die Encoderpositionen zu null.

30

Page 33: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

5. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Dokumentieren Sie Ihre Ergebnissedurch einen geeigneten Plot.

6. Wiederholen Sie die Messung mit n1,V2.2 = 400 Umin , n1,V2.3 = 600 U

min und n1,V2.4 = 800 Umin .

Speichern Sie Ihre Ergebnisse als pdf ab. Achten Sie auf eine sinnvolle Skalierung der Achsen.

Für das Protokoll

1. In welchem Versuch wurde die Nutation und in welchem die Präzession gemessen?

2. Ermitteln Sie aus einer der aufgezeichneten Messkurven für die Nutation die Frequenz und die Periodendauer.Stimmt der gemessene Wert mit dem berechneten überein?

3. Ermitteln Sie aus einer der aufgezeichneten Messkurven auch die Frequenz und die Periodendauer der Präzession.

Optionale Fragen zur Vertiefung

1. Ermitteln Sie aus den aufgezeichneten Messkurven für die Nutation die Frequenz und die Periodendauer.

2. Vergleichen Sie die in der Vorbereitung berechneten Frequenzen mit den gemessenen Werten.

3. Welcher Zusammenhang besteht zwischen der Nutationsfrequenz und der Rotordrehzahl?

4. Für die Geschwindigkeit der Präzessionsbewegung gilt der Zusammenhang

ω4 = Ku2 · KC E1

MRotor, MRotor = JA ·ω1,V1.1.

Berechnen Sieω4 für die getesteten Rotorgeschwindigkeiten und vergleichen Sie ihr Ergebnis mit den gemessenenWerten.

5. Welcher Zusammenhang besteht zwischen Präzessionsbewegung und der Rotordrehzahl?

31

Page 34: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.5 Stabilisierung zweier Achsen

Das Gyroskop ist mit zwei Eingängen und zwei Ausgängen ein MIMO-System (Multiple-Input-Multiple-Output). In die-sem Abschnitt sollen die zwei äußeren Körper des Gyroskops (Körper C und Körper D) mit verschiedenen Reglern sta-bilisiert werden. Diese Achsen werden nicht direkt über einen Motor gesteuert sondern können nur über den Satz derDrehmomenterhaltung durch die inneren Körper (A und B) beeinflusst werden. Dies ist der selbe Effekt, der auch beiAufgabe 1 (Nutation und der Präzession) beobachtet und gemessen wurde. In der Software werden die Körper nicht mitden Buchstaben A bis D bezeichnet, sondern mit Ziffern. Körper A trägt die Ziffer 1, Körper B die Ziffer 2 und so fort.

Zur Vorbereitung ist es erforderlich, dass einige vorbereitende Aufgaben mit Matlab™ gelöst werden, wofür die PC’s imET-Pool oder im RTR-Lernzentrum genutzt werden können. Im Anhang B sind einige Matlab-Befehle zusammengestellt,die dabei helfen.

2.5.1 Aufgaben zur Stabilisierung zweier Achsen

Im Internet

http://www.rmr.tu-darmstadt.de/praktikum_regelungstechnik2

finden Sie in einer ZIP-Datei das Matlab-Skript GetLinModel.m. Es berechnet das linearisierte Modell des Gyroskops fürverschiedene Arbeitspunkte. Der Aufruf erfolgt über die Matlab-Konsole5, als Argument wird der Arbeitspunkt übergeben.

Vorbereitung

Aufgabe 2:

2.1 Wie wird allgemein ein System x = f (x , u), y = g(x) im Arbeitspunkt (xAP , uAP) linearisiert?

2.2 Entwerfen Sie mit Hilfe des bereitgestellten Matlab-Skripts ein Modell um den Arbeitspunkt q20 = 0, q30 = 0,n1,V3 = 400 U

min .

2.3 Entwerfen Sie ein zweites Modell um den Arbeitspunkt q20 = 20, q30 = −20, n1,V3 = 400 Umin .

2.4 Vergleichen Sie die Modelle. Was fällt Ihnen auf?Hinweis: Der Zustandsvektor des Systems ist x T =

q1 q2 q3 q4 ω1 ω2 ω3 ω4

und der Eingangsvektor ist uT =

τ1 τ2

.

Aufgabe 3: Da das System im ersten Arbeitspunkt nicht verkoppelt ist, können für beide Strecken getrennte Regelungenentworfen werden. Das System kann in zwei SISO-Systeme zerlegt werden.

3.1 Leiten Sie aus dem Modell um den ersten Arbeitspunkt die Übertragungsfunktion G1(s) =q3τ1

ab.

3.2 Dieses System soll mit einem PD-Regler geregelt werden, welcher die Übertragungsfunktion

GPD(s) = kp + kd · s

besitzt. Die Verstärkung des D-Gliedes ist mit kd = −0.87 gegeben. Zeichnen Sie die eigentliche und die komple-mentäre Wurzelortskurve für den Parameter kp mit Hilfe von Matlab.

3.3 Die Strecke soll aperiodisch gedämpft werden. Wählen Sie kp entsprechend!

Aufgabe 4: Nun zur Regelung der zweiten Achse:

4.1 Leiten Sie zuerst aus dem für den ersten Arbeitspunkt bestimmten Modell ein reduziertes Modell mit dem Zu-standsvektor

x =

q4ω2ω4

y = C · x =

1 0 0

· x

ab. Prüfen Sie das Modell auf vollständige Steuerbarkeit und Beobachtbarkeit. Nutzen Sie Matlab!

5 Die Matlab-Hilfe kann über help befehl aufgerufen werden.

32

Page 35: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4.2 Es soll ein Riccatti-Regler entworfen werden. Hierzu wird der Regler so entworfen, dass das Güteintegral

J =

x TQx + u2 · r

d t

minimal wird.6 Wählen Sie die Gewichtungsmatrizen wie folgt

Q = C T · C , r = 0.05

Q = C T · C , r = 0.01

Q = C T · C , r = 0.1.

4.3 Entwerfen Sie auch das Vorfilter. Was ist an der Wahl von Q zu bemängeln? Plotten Sie die Sprungantworten dermit den entworfenen Reglern geregelten Systeme in ein Diagramm. Welchen Regler wählen Sie? Warum?

Versuch 3.1: Regelung von Achse 3 und 4 um Arbeitspunkt 1

Nehmen Sie für diese Versuche folgende Daten mit Sample Period = 1 auf:Linke Achse: q3 (Encoder 3 Position), q3,sol l (Commanded Position 1).Rechte Achse:q4 Encoder 4 Position, q4,sol l (Commanded Position 2).Stellen Sie Ihre Ergebnisse in geeignet gewählten Koordinaten dar und speichern Sie diese ab.

1. Bringen Sie das Gyroskop per Hand in die in Bild 2.6 gezeigte Stellung.Winkel: q20 = 0, q30 = 0Achse 4: Bremse ANAchse 3: Bremse ANAchse 2: Bremse AUS

2. Konfigurieren Sie Trajektorie 1 (q3,sol l) und Trajektorie 2 (q4,sol l) wie folgt:Step mit: Step Size = 400 counts, Dwell Time = 1000 ms, Repetitions = 1

3. Stellen Sie eine Rotorgeschwindigkeit von n1,V3 = 400 Umin ein.

4. Laden Sie die Datei q34.alg. Programmieren Sie die von Ihnen entworfenen Regler. Lassen Sie den Algorithmusdurch den zuständigen HiWi überprüfen! Implementieren Sie den Algorithmus mit einer Abtastzeit von TS =0.00884s. Lösen Sie SOFORT nach der Implementierung die Bremsen.

5. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Dokumentieren Sie Ihre Ergebnissedurch einen geeigneten Plot.

6. Führen Sie jetzt Trajektorie 2 aus. Überprüfen Sie zuerst die Stellung und die Rotationsgeschwindigkeit des Gyro-skops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

7. Führen Sie abschließend die eingestellten Trajektorien zusammen aus. Überprüfen Sie zuerst die Stellung und dieRotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

Speichern Sie Ihre Ergebnisse als pdf ab. Achten Sie auf eine sinnvolle Skalierung der Achsen.

Versuch 3.2: Regelung von Achse 3 und 4 um Arbeitspunkt 2

1. Bringen Sie das Gyroskop in die in Bild 2.7 gezeigte Stellung.Winkel: q20 = −20, q30 = 20Achse 4: Bremse ANAchse 3: Bremse ANAchse 2: Bremse AUS

6 vergl.: J. Adamy: Regelungstechnik II, Shaker Verlag 2007, 1. Auflage.

33

Page 36: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bild 2.7: Ausgangsstellung des Gyroskops für Versuch 3.2

2. Stellen Sie eine Rotorgeschwindigkeit von n1,V3 = 400 Umin ein und setzen Sie danach die Position zu null (Zero

Position).

3. Implementieren Sie ihren Algorithmus mit einer Abtastzeit von TS = 0.00884s. Lösen Sie SOFORT nach derImplementierung beide Bremsen.

4. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Dokumentieren Sie Ihre Ergebnissedurch einen geeigneten Plot.

5. Führen Sie jetzt Trajektorie 2 aus. Überprüfen Sie zuerst die Stellung und die Rotationsgeschwindigkeit des Gyro-skops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

6. Führen Sie jetzt beide Trajektorien aus. Überprüfen Sie zuerst die Stellung und die Rotationsgeschwindigkeit desGyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

Speichern Sie Ihre Ergebnisse als pdf ab. Achten Sie auf eine sinnvolle Skalierung der Achsen.

Für das Protokoll

1. Beurteilen Sie die Qualität der entworfenen Regler im Bezug auf Ausregelzeit und stationäre Genauigkeit für diebeiden Arbeitspunkte.

2. Entspricht das Ergebnis Ihren Erwartungen? Woher kommen die Abweichungen zur Simulation?

3. Beurteilen Sie die Verkopplung in beiden Arbeitspunkten.

34

Page 37: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.6 Gain-Scheduling-Regelung

In diesem Abschnitt sollen, wie in der vorherigen Aufgabe, zwei Achsen geregelt werden. Hierzu werden nichtlineareGain-Scheduling-Regler und ein Zustandsregler verwendet.

Häufig ist das Einzugsgebiet im Zustandsraum eines linearen Reglers für ein nichtlineares System zu klein. Dies um-geht man beim Gain-Scheduling, indem man die nichtlineare Strecke um mehrere Arbeitspunkte linearisiert und inAbhängigkeit eines Scheduling-Parameters zwischen den Reglern interpoliert. Die Gültigkeitsbereiche sollten hierbei dengesamten Bereich des Zustandsraumes, in dem das System arbeiten soll, abdecken. 7 8. Die Regelstrecke lässt sich durchdie Funktion

x = f (x , u)

beschreiben. Die Arbeitspunkte des Systems, die der Gleichung

0= f (xR, uR)

genügen, lassen sich in Abhängigkeit eines Parametervektors ρ der Dimension l ≤ n darstellen

xR = xR(ρ, uR) = xR(ρ),

wobei n die Zustandsdimension des Systems ist. Aus der Menge der Ruhelagen und Arbeitspunkte werden nun p ausge-wählt und jeweils ein linearisiertes Modell hergeleitet.

∆ x i = Ai∆x i + Bi∆ui

∆y = Ci∆x i

Die Menge der linearisierten Modelle bezeichnet man als „parametrisierte Linearisierungsfamilie der Regelstrecke“. Jetztwerden für die p Modelle Regler entworfen. Hierbei kommen verschiedene Reglertypen in Frage. In diesem Versuchwerden Zustandsregler verwendet. Man erhält also die p Regler aus

∆ui = −K i ·∆x + F i ·∆w. (2.15)

Häufig ist der Parametervektor nicht messbar oder bestimmbar. Man ersetzt ihn dann durch den Scheduling-Vektor β ,welcher Zustandsgrößen, Ausgangsgrößen, Sollgrößen oder Stellgrößen enthalten kann. Die Interpolation zwischen denReglern ist linear und durch

∆u= λ(β)∆ui + (1−λ(β))∆u j (2.16)

mit

λ(β) =(ρ

i−ρ

j)T (β −ρ

j)

||ρi−ρ

j||2

(2.17)

gegeben. Der Index i gibt hierbei den Regler mit der kleinsten Abweichung vom Arbeitspunkt an, der Index j den Reglermit der zweitkleinsten Abweichung. Ist ρ ein Skalar vereinfacht sich Gleichung (2.17) zu

λ(β) =|β −ρ j ||ρi −ρ j |

. (2.18)

Insgesamt erhält man für den Stellgrößenvektor nach einer Koordinatentransformation in die Arbeitspunkte die Glei-chung

u=∆u+ uR(ρi).

7 vergl.: J. Adamy: Systemdynamik und Regelungstechnik III. Vorlesungsskript, TU Darmstadt, 20128 vergl.: Hassan K. Khalil: Nonlinear Systems, Prentice Hall 2003, 3. Auflage.

35

Page 38: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.6.1 Reglerentwurf

Das System soll entlang folgender Trajektorien arbeiten

• A: Änderung von q30 = 0 nach q3,End = 75 wobei q4 = 0.

• B: Änderung von q40 = 0 nach q4,End = 45 wobei q3 = 0.

• C: Änderung von q40 = 0 nach q4,End = 60 und von q30 = 0 nach q3,End = 60.

Man kann leicht zeigen, dass in allen Arbeitspunkten keine Stellgröße nötig ist, um das System in diesem Punkt zu halten(uR(ρi

) = 0 ∀ i = 1...p). Ausgehend von der abgeleiteten Beziehung

M · ω+H ·ω= τ

folgt mit x1 = q und x2 =ω= q = x1, dass

x1 = x2,

x2 = M−1 · (τ−H · x2). (2.19)

Für den stationären Fall gilt

x1 = x2 = 0.

Setzt man dies in Gleichung (2.19) ein, so erhält man

0= M−1 · (τ−H · 0)⇒ τ= 0.

Jede mögliche Stellung des Gyroskops ist also eine Ruhelage. Aus der Beziehung für die Stellgröße

u=∆u+ uR(ρi)

folgt, wegen uR(ρi) = 0, mit (2.16)

u= λ(β)∆ui + (1−λ(β))∆u j .

Wie gesagt sollen hier Zustandsregler verwendet werden. Setzt man das entsprechende Regelgesetz (2.15) ein, erhältman

u= λ · (−K i ·∆x + F i ·∆w) + (1−λ) · (−K j ·∆x + F j ·∆w)

= −(λ · K i + (1−λ) · K j) ·∆x + (λ · F i + (1−λ) · F j) ·∆w

Die Regelung mittels eines Gain-Scheduling-Reglers kann hier als lineare Interpolation der Reglerparameter in Abhänig-keit von λ interpretiert werden.

2.6.2 Aufgaben zur Gain-Scheduling Regelung

In der Zip-Datei NLR_Vorbereitung.zip befindet sich auch das Matlab-Skript GetLinRedModel.m. Es berechnet das re-duzierte, linearisierte Modell des Gyroskops für verschiedene Arbeitspunkte.

Vorbereitung

Aufgabe 5:

5.1 Entwerfen Sie Modelle um die folgenden Arbeitspunkte

a) q20 = 0, q30 = 0, n1,V4 = 400 Umin ,

b) q20 = 0, q30 = 45, n1,V4 = 400 Umin ,

c) q20 = 0, q30 = 80, n1,V4 = 400 Umin ,

d) q20 = 15, q30 = 45, n1,V4 = 400 Umin ,

36

Page 39: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

e) q20 = −15, q30 = 45, n1,V4 = 400 Umin ,

5.2 Entwerfen Sie für die Modelle die fünf Zustandsregler so, dass alle Eigenwerte des geschlossenen Regelkreisesbei λ1 = −7.5, λ2 = −7.5, λ3 = −8, λ4 = −8, λ5 = −9 liegen. Entwerfen Sie auch die Vorfilter!9 Sind dieFreiheitsgrade des Reglers damit voll ausgeschöpft?

5.3 Machen Sie sich Gedanken über die Wahl des Scheduling-Vektors der beiden Regler. Welche Größen eignen sichals Scheduling-Parameter? Geben Sie Vor- und Nachteile der folgenden Auswahl an: β = q4, β = q3, ~β = (q2 q3).

5.4 Welche Probleme können bei Trajektorie A auftreten? Machen Sie sich hierzu Gedanken zur Steuerbarkeit undBeobachtbarkeit des Systems im Punkt q20 = 0, q30 = 90. Welche physikalische Ursache liegt hier zu Grunde?

Versuch 4.1: Trajektorie A

HINWEIS: Vor dem Ausführen der Messung sind die Einstellung der Software und die Stellung des Gyroskops vom betreuendenVersuchsbetreuer zu überprüfen! Warten Sie vor dem Initialisieren einer neuen Rotorgeschwindigkeit bis der Rotor steht.Vor jedem Messdurchgang: Reset Controller!

Für die Messungen stehen zwei Gain-Scheduling-Regler zur Verfügung:

Der Regler GS1 (gs_1.alg) ist ein Gain-Scheduling-Regler, der den Winkel q3 als Scheduling-Variable nutzt. DerScheduling-Vektor ist hier also ein Skalar. Da die Arbeitspunkte linear von q3 abhängen, gilt hier der Zusammenhangρ = β = q3. Es wird zwischen den drei Arbeitspunkten (a), (b) und (c) interpoliert.

Der Regler GS2 (gs_2.alg) nutzt die beiden Winkel q2 und q3 als Scheduling-Variablen. Der Scheduling-Vektor hat al-so die Form β = (q2 q3)T . q2 ist hierbei die Stellgröße zum Regeln von Achse 4, weshalb der Verlauf von q2 aus derTrajektorie nicht ersichtlich ist. Der Vektor ρ, von dem die Arbeitspunkte linear abhängen, wird hier durch den Vektor βersetzt. Es wird zwischen den vier Arbeitspunkten (a), (c), (d) und (e) interpoliert.

Ausgangsstellung für alle Versuche ist die in Bild 2.6 gezeigte Stellung. Nehmen Sie für diese Versuche wieder die folgen-den Daten mit Sample Period = 1 auf:Linke Achse: q3 (Encoder 3 Position), q3,sol l (Commanded Position 1)Rechte Achse: q4 (Encoder 4 Position),q4,sol l (Commanded Position 2)Achse 4: Bremse ANAchse 3: Bremse ANAchse 2: Bremse AUSStellen Sie Ihre Ergebnisse in geeignet gewählten Koordinaten dar und speichern Sie diese ab.

1. Konfigurieren Sie Trajektorie 1 (q3,sol l) wie folgt:Step mit: Amplitude = 3334counts, Dwell Time = 3000ms, Repetitions = 2,unidirectional moves aktiv

2. Stellen Sie eine Rotorgeschwindigkeit von n1,V4 = 400 Umin ein.

3. Laden Sie die Datei zsr.alg. Diese Datei implementiert einen Zustandsregler für den Arbeitspunkt q20 = 0,q30 = 0. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s. Lösen Sie SOFORT nachder Implementierung die Bremsen.

4. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Dokumentieren Sie Ihre Ergebnissedurch einen geeigneten Plot.

5. Laden Sie die Datei gs_1.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s.Lösen Sie SOFORT nach der Implementierung die Bremsen.

6. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Überprüfen Sie zuerst die Stellungund die Rotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

7. Laden Sie die Datei gs_2.alg. Diese Datei implementiert einen weiteren Gain-Scheduling-Regler, der zwei Va-riablen als Scheduling-Parameter nutzt. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS =0.006188s. Lösen Sie SOFORT nach der Implementierung die Bremsen.

9 Nutzen Sie die Matlab-Funktion place!

37

Page 40: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

8. Lassen Sie Trajektorie 1 mit der Einstellung Normal Data Sampling ausführen. Überprüfen Sie zuerst die Stellungund die Rotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

Speichern Sie Ihre Ergebnisse als pdf ab.

Versuch 4.2: Trajektorie B

1. Konfigurieren Sie Trajektorie 2 (q4,sol l) wie folgt:Step mit: Amplitude = 2000counts, Dwell Time = 3000ms, Repetitions = 2,unidirectional moves aktiv

2. Stellen Sie eine Rotorgeschwindigkeit von n1,V4 = 400 Umin ein.

3. Laden Sie die Datei zsr.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s. LösenSie SOFORT nach der Implementierung die Bremsen.

4. Lassen Sie Trajektorie 2 mit der Einstellung Normal Data Sampling ausführen. Dokumentieren Sie Ihre Ergebnissedurch einen geeigneten Plot.

5. Laden Sie die Datei gs_1.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s.Lösen Sie SOFORT nach der Implementierung die Bremsen.

6. Lassen Sie Trajektorie 2 mit der Einstellung Normal Data Sampling ausführen. Überprüfen Sie zuerst die Stel-lung/Rotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

7. Laden Sie die Datei gs_2.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s.Lösen Sie SOFORT nach der Implementierung die Bremsen.

8. Lassen Sie Trajektorie 2 mit der Einstellung Normal Data Sampling ausführen. Überprüfen Sie zuerst die Stel-lung/Rotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeigneten Plot.

Speichern Sie Ihre Ergebnisse als pdf ab. Achten Sie auf eine sinnvolle Skalierung der Achsen.

Versuch 4.3: Trajektorie C

1. Konfigurieren Sie Trajektorie 2 (q3,sol l) wie folgt:Step mit: Amplitude = 2000counts, Dwell Time = 3000ms, Repetitions = 2,unidirectional moves aktiv

2. Konfigurieren Sie Trajektorie 2 (q4,sol l) wie folgt:Step mit: Amplitude = 2000counts, Dwell Time = 3000ms, Repetitions = 2,unidirectional moves aktiv

3. Stellen Sie eine Rotorgeschwindigkeit von n1,V4 = 400 Umin ein.

4. Laden Sie die Datei zsr.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s. LösenSie SOFORTnach der Implementierung die Bremsen.

5. Lassen Sie beide Trajektorien mit der Einstellung Normal Data Sampling ausführen. Dokumentieren Sie Ihre Er-gebnisse durch einen geeigneten Plot.

6. Laden Sie die Datei gs_1.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s.Lösen Sie SOFORT nach der Implementierung die Bremsen.

7. Lassen Sie beide Trajektorien mit der Einstellung Normal Data Sampling ausführen. Überprüfen Sie zuerst dieStellung und die Rotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeig-neten Plot.

8. Laden Sie die Datei gs_2.alg. Implementieren Sie den Algorithmus mit einer Abtastzeit von TS = 0.006188s.Lösen Sie SOFORT nach der Implementierung die Bremsen.

9. Lassen Sie beide Trajektorien mit der Einstellung Normal Data Sampling ausführen. Überprüfen Sie zuerst dieStellung und die Rotationsgeschwindigkeit des Gyroskops. Dokumentieren Sie Ihre Ergebnisse durch einen geeig-neten Plot.

Speichern Sie Ihre Ergebnisse als pdf ab. Achten Sie auf eine sinnvolle Skalierung der Achsen.

38

Page 41: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Für das Protokoll

1. Beurteilen Sie die Qualität der entworfenen Regler im Bezug auf Ausregelzeit und stationäre Genauigkeit. Ent-spricht das Ergebnis ihren Erwartungen?

2. Welche Möglichkeiten hat man gerade beim Gain-Scheduling-Regler zur Verbesserung des Verhaltens?

3. Welche Vorteile/Nachteile bietet der Gain-Scheduling-Regler?

39

Page 42: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.7 Anhang A

Für die Berechnungen werden einige Konstanten benötigt:Massenträgheitsmomente: (in kg ·m2)

Ii Ji Ki

A IA = 0.0148 JA = 0.0273 KA = 0.0148B IB = 0.0108 JB = 0.0269 KB = 0.0221C IC = 0.0119 JC = 0.0178 KC = 0.0297D k.A. k.A. KD = 0.0648

Winkelsensor Achse 2:

KC E = 6000

Ku2 = 8.9355 · 10−5

Encoder-Auflösung

Achse 1: 6667Counts

Umdrehung

Achse 2: 24400Counts

Umdrehung

Achse 3: 16000Counts

Umdrehung

Achse 4: 16000Counts

Umdrehung

40

Page 43: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

2.8 Anhang B

Hilfreiche Matlabbefehle:

• sys = ss(A,B,C,D) Bestimmt die Zustandsraumdarstellung mit den Matrizen A,B,C und D

• step(sys1,sys2,...) Berechnet die Sprungantworten der Systeme sys1,sys2,...

• K = place(A,B,P) Berechnet die Reglermatrix K so, das die Pole des geschlossenen Kreises wie in P definiertliegen.

• [e,v] = eig(A) Berechnet die Eigenwerte e und Eigenvektoren v der Matrix A

• G = tf(Z,N) Bestimmt die Übertragungsfunktion mit dem Zähler Z und dem Nenner N

• rlocus(G) Bestimmt die WOK der Übertragungsfunktion G

• K = lqr(A,B,Q,R,0) Führt einen Riccatti-Entwurf mit den Gewichtungsmatrizen Q und R durch.

• rank(A) Gibt den Rang der Matrix A an

• ctrb(A,B) Berechnet die Steuerbarkeitsmatrix. Hierbei sind A und B die Systemmatrix bzw. die Eingangsmatrixdes Systems

• obsv(A,C) Berechnet die Beobachtbarkeitsmatrix. Hierbei sind A und C die Systemmatrix bzw. die Ausgangsmatrixdes Systems

• [A,B,C,D]=ssdata(sys) Bestimmt die Matrizen A,B,C und D des Systems sys in Zustandsraumdarstellung

• help befehl Zeigt die Texthilfe zu dem Befehl befehl an.

• doc befehl Zeigt die Dokumentation zu dem Befehl befehl an.

2.9 Verwendete Symbole

Symbol Bedeutung

L Lagrange-FunktionL DrehimpulsvektorT kinetische EnergieU potentielle Energie

q1,q2, q3, q4 Winkel in körperfesten Koordinatenω1,...,ω4 Winkelgeschwindigkeiten um die körperfesten Achsena, b, c, d Einheitsvektoren der körperfesten KoordinatensystemeIA, JA, KA Massenträgheitsmomente um zentrale Hauptachsen des Körpers AIB, JB, KB Massenträgheitsmomente um zentrale Hauptachsen des Körpers BIC , JC , KC Massenträgheitsmomente um zentrale Hauptachsen des Körpers CID, JD, KD Massenträgheitsmomente um zentrale Hauptachsen des Körpers D

JA, JB, JC , J D Trägheitsmatrizen der Körper A, B, C und DωA,...,ωD Winkelgeschwindigkeiten der Körper im raumfesten Inertialsystem

τ Aufgebrachtes Drehmoment (Stellgrößen)ω1,V1,...,ω1,V4 unterschiedliche Drehgeschwindigkeiten des Körpers A (innerste Scheibe)

ρ Parametervekor für Arbeitspunkteβ Ersatzvektor für den Parametervekor, falls nicht messbar

Ai , Bi , C i Matrizen für System in Zustandsraumdarstellung∆ui Stellgröße für das linearisierte System um Arbeitspunkt iλ InterpolationsparameterK i Reglermatrix iF i Vorfiltermatrix i

41

Page 44: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

3 Nichtlineare Mehrgrößenregelung einesFlugzeugs (NMF)

3.1 Einführung

Die Steuerung eines Flugzeugs ist keine einfache Aufgabe. Der Pilot muss die Fluglage um alle drei Achsen stabilisie-ren, einer vorgegebenen Flugbahn folgen, mit schwierigen atmosphärischen Bedingungen zurecht kommen und ggfs.auf besondere Vorkommnisse reagieren. Dabei stößt der Mensch schnell an seine Grenzen bezüglich der Belastbarkeit,Reaktion und der „Messung“ von Größen der Flugzeugbewegung. Aus diesem Grund haben Autopiloten immer mehrRegelungsaufgaben übernommen um den Piloten zu entlasten und ihn für wichtige Aufgaben, wie der Luftraumüberwa-chung, freizustellen.

Ziel dieses Praktikumversuchs ist es, am Beispiel eines Flugzeugmodells Möglichkeiten aufzuzeigen, wie ein komple-xes nichtlineares Mehrgrößensystem durch eine Kombination aus linearen und nichtlinearen Verfahren robust geregeltwerden kann. Darüber hinaus wird ein Einblick in die Funktionen eines Flugzeugautopiloten gegeben und verdeutlicht,welche regelungstechnischen Herausforderungen sich für dieses automatisierungstechnische System ergeben.

Zur anschaulichen Simulation der Flugzeugbewegung wurde am IAT ein Flugsimulator aufgebaut, der Studenten dieMöglichkeit geben soll ihre Regelungsergebnisse realitätsnah zu testen. Der Reglerentwurf selbst wird mit Hilfe der Soft-wareumgebung Matlab/Simulink durchgeführt.

Die Versuchsbeschreibung gliedert sich in Grundlagen der Flugdynamik und -regelung, Merkmale von Mehrgrößensyste-men, Erläuterung des Entkopplungsreglers und der Fuzzy-Gain-Scheduling-Regelung sowie der Versuchsdurchführung.Im Anhang findet sich ein Exkurs zum Thema Linearisierung und der Matlab Symbolic Math Toolbox. Es wird empfohlensich im Rahmen der Versuchsvorbereitung mit diesen Themen auseinanderzusetzen.

3.2 Flugmechanik

In diesem Praktikum wird das nichtlineare Zustandsraummodell des einmotorigen Flugzeugs vom Typ De HavillandCanada DHC-2 Beaver verwendet. Das Modell ist sowohl als Simulink-Block als auch in Form von nichtlinearen Zu-standsdifferentialgleichungen gegeben. Die folgende Ausführung beschränkt sich auf das Verständnis der Modellgrößen.Bei der Modellbildung wurden vereinfachende Annahmen gemacht, auf die hier nicht eingegangen wird, weil die Herlei-tung des Modells zur Versuchsdurchführung nicht notwendig ist.

Das gesamte Modell zur Simulation der Flugzeugdynamik im dreidimensionalen Raum ist in Form eines Blockdia-gramms in Bild 3.1 dargestellt. Es setzt sich zusammen aus den Bewegungsgleichungen des Flugzeugs sowie Modellenzur Beschreibung der Kräfte und Momente bedingt durch Aerodynamik, Triebwerk, Gravitation und Atmosphäreneinflüs-se.

Die Flugzeugbewegung im dreidimensionalen Raum ergibt sich aus der Überlagerung der Translations- und Rotati-onsbewegung des Flugzeugs bezüglich des im Schwerpunkt verankerten, körperfesten Achsensystems (Bild 3.2). Siewird beschrieben durch Vektoren der Geschwindigkeit V und Winkelgeschwindigkeit Ω:

V= [ u v w ]T , Ω= [ p q r ]T .

Drehbewegungen um die Achsen x , y , z werden als Rollen, Nicken bzw. Gieren bezeichnet. Die Winkelgeschwindig-keitskomponente p um die x-Achse wird bspw. Rollgeschwindigkeit genannt etc. Da aerodynamische Auftriebs- undWiderstandskräfte von der Richtung der anströmenden Luft abhängen, wird die Geschwindigkeit V bevorzugt in Kugel-koordinaten

42

Page 45: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Aerodynamik

Triebwerk

Gravitation

Wind-korrektur

Atmosphare

uaero

uprop

uwind

∫dt

∑ x xBewegungs-gleichungen

x = f (x, F, M)Tef

F

M

Faero

Maero

Fprop

Mprop

F egrav Fgrav

Fwind

Bild 3.1: Blockdiagramm der Starrkörperdynamik

x,X,uy,Y,v

z,Z,w

L,p M,q

N,r

(a) Körperfesten Koordinatenachsen [1]

δ (+)r

δ (+)e

δaleft

( )δaright

(+)

δaleft

δarightδ

a =

(b) Querruder δa an den Flügeln, Seitenruder δr und Hö-henruder δe an der Heckflosse [3]

Bild 3.2: Bewegungsgrößen und Steuerruder

Va = [ V α β ]T

dargestellt. Die Transformation in Kugelkoordinaten ist ein nichtlinearer Vorgang. Mit dem Anstellwinkel α und demSchiebewinkel β bestimmt sich die Richtung der anströmenden Luft in Bezug auf das körperfeste Koordinatensystem(Bild 3.2a), V beschreibt den Betrag der Fluggeschwindigkeit.

Darüber hinaus sind die Position, Höhe und Fluglage des Flugzeugs in Bezug auf ein parallel zur Erde aufgespanntes(geodätisches) Koordinatensystem interessant. Position x , y und Höhe H werden im Positionsvektor

r= [ x y H ]T

zusammengefasst. Zu ihrer Bestimmung müssen Geschwindigkeitskomponenten vom körperfesten in das geodätischeAchsensystem transformiert werden. Diese Transformation ist ebenfalls nichtlinear und geschieht mit Hilfe der Eulerwin-kel

Φ= [ Φ Θ Ψ ]T .

Sie beschreiben gleichzeitig die Lage des Flugzeugs in der Luft bezüglich der Erdoberfläche über das Hängen Φ, dieLängsneigung Θ und den Azimuth (Kurswinkel) Ψ.

Die Flugzeugbewegung wird nach Bild 3.1 beeinflusst durch die Resultierende aller auf das Flugzeug wirkenden ae-rodynamischen, Gravitations- und Triebwerkskräfte und -momente:

43

Page 46: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

F= [ X Y Z ]T , M= [ L M N ]T .

Das Flugzeug überwindet die Gravitation dank der aerodynamischen Kraft. Sie tritt während der Relativbewegung desFlugzeugs mit dem umgebenden Medium Luft auf. Die Relativbewegung wird mit Hilfe des Triebwerkschubs erzeugt.Aufgrund einer besonderen Formgebung der Tragflächen entstehen Druckunterschiede, welche die aerodynamische Krafthervor rufen. Sie wird üblicherweise in zwei Komponenten zerlegt

FW =12ρV 2 · S · CW , FA =

12ρV 2 · S · CA. (3.1)

Die erste Kraftkomponente wirkt in Strömungsrichtung und wird Widerstandskraft genannt (Index W ). Die zweite Kraft-komponente wirkt senkrecht zur Strömungsrichtung und wird als dynamischer Auftrieb bezeichnet (Index A). Beide sindabhängig von der Luftdichte ρ, dem Quadrat der Anströmgeschwindigkeit der Luft V , der Auftriebsfläche S und demWiderstands- und Auftriebsbeiwert CA bzw. CW . Die Beiwerte sind dimensionslose Größen, welche abhängig sind von

• der Geometrie des umströmten Körpers, welche durch Ausschlag von Rudern und Klappen verändert werden kann,

• der Anströmrichtung der Luft, welche durch Anstellwinkel α und Schiebewinkel β definiert ist,

• dem Flugzustand wie Geschwindigkeit, Eigenrotation, Höhe.

Betrachtet man das ganze Flugzeug, so nehmen der Rumpf, die Flügel und das Leitwerk Einfluss auf die aerodynamischeKraft. Weil nicht alle Teilkräfte im Schwerpunkt angreifen, werden Momente generiert. Dies nutzt man aus, um das Flug-zeug in der Luft zu steuern. Zuständig dafür sind die Steuerruder und -klappen (Bild 3.2b), die nichts anderes tun, alseine Geometrieänderung zu bewirken und damit Kräfte bzw. Momente hervorzurufen.

Triebwerkskräfte zur Erzeugung der Schubkraft können mit dem Ladedruck pz beeinflusst werden, welcher über dieDrosselklappe eingestellt wird und Einfluss auf das Drehmoment des Kolbenmotors nimmt.

Kräfte der Aerodynamik und des Triebwerks sind von Atmosphärenparametern wie Luftdichte, Luftdruck und Tem-peratur abhängig. Atmosphärenparameter variieren höhenbedingt und sind in einem genormten Atmosphärenmodellfestgelegt.

Werden Kräftegleichungen in die Bewegungsgleichungen eingesetzt, ergibt sich das Gesamtmodell aus zwölf gewöhn-lichen nichtlinearen DGLs der Form

x = f(x,u)y = h(x,u) (3.2)

mit dem Zustandsvektor

x=

VαβpqrΦΘΨxyH

Relativgeschwindigkeit gegenüber Luft in m/sAnstellwinkel (angle of attack) in radSchiebewinkel (sideslip angle) in radRollrate um körperfeste x-Achse in rad/sNickrate um körperfeste y-Achse in rad/sGierrate um körperfeste z-Achse in rad/sHängewinkel (bank angle) in radLängsneigung (pitch angle) in radAzimuth oder Kurswinkel gegenüber Nord (yaw angle) in raderdbezogene x-Position in merdbezogene y-Position in mHöhe über dem Meeresspiegel in m.

und dem Stellgrößenvektor

u=

δeδaδrδ fnpz

Höhenruderwinkel in rad (elevator)Querruderwinkel in rad (aileron)Seitenruderwinkel in rad (rudder)Landeklappenwinkel in rad (flaps)Propellerdrehzahl in RPM (engine speed)Ladedruck in inch Hg (manifold pressure)

.

44

Page 47: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Die Dynamik der Stellglieder wird im Praktikumversuch vernachlässigt. Die Landeklappen δ f werden immer auf Nullgesetzt, weil nur der Reiseflug betrachtet wird und die Drehzahl n wird zur Vereinfachung als konstant angenommen.Zustands- und Steuergrößen sind in ihrem Ausschlag begrenzt. Die Grenzen sind im Anhang 3.9.3 zu finden.

Flugleistungen werden bevorzugt in einem Höhen-Geschwindigkeitsdiagramm verglichen, der sog. Flugenveloppe.Bild 3.3 zeigt die Flugenveloppe der DHC-2 Beaver. Das innere Rechteck markiert den im Praktikum betrachteten Be-triebsbereich.

V [ m/s ]

AP5

AP7 AP8 AP9

AP4 AP6

AP1 AP2 AP3

H/m

Flugenveloppe Bereich 30-70 m/s TAS

20 40 60 80 100

1000

2000

3000

0

Bild 3.3: Flugenveloppe der DHC-2 Beaver

3.3 Eigenformen der Flugzeugbewegung

Das Eigenverhalten beschreibt die Flugzeugbewegung infolge einer Auslenkung aus der kräftefreien Ruhelage. Eine sol-che Auslenkung kann durch einen Ruderausschlag oder eine Störgröße wie z.B. Wind hervorgerufen werden. Hat dasFlugzeug ein stabiles Eigenverhalten, so stellt sich nach einer endlichen Zeit entweder die ursprüngliche oder eine neueRuhelage ein. Das Eigenverhalten lässt sich als Überlagerung folgender Längs- und Seitenbewegungen beschreiben:

• Anstellwinkelschwingung: meist gut gedämpfte, kurzperiodische Schwingung des Anstellwinkels α und des Längs-neigungswinkels Θ, während die Geschwindigkeit V nahezu konstant bleibt.

• Phygoide: relativ langsame Bahnschwingung, bei der sich die Geschwindigkeit V und deren Richtung (Bahnwinkel)ändern, während der Anstellwinkel annähernd konstant bleibt.

• Rollbewegung: aperiodische Bewegung des Flugzeugs um die körperfeste x f -Achse mit einer kleinen Zeitkonstante.Sie wird durch einen Querruderausschlag angeregt und beeinflusst im Wesentlichen die Rollgeschwindigkeit p undden Rollwinkel Φ.

• Spiralbewegung: aperiodische Bewegung mit einer großen Zeitkonstante, die aus einer Gierbewegung gekoppeltmit einer langsamen Rollbewegung besteht und je nach Betriebszustand stabil oder leicht instabil sein kann. Iminstabilen Fall fliegt das Flugzeug eine Kurve mit abnehmendem Kurvenradius und immer größer werdendemHängewinkel, was i.d.R. zu einem Spiralsturz führt.

• Roll-Gier-Schwingung (dutch roll): Änderung des Schiebewinkels β , verbunden mit einer leichten Rollbewegung.Bei zu geringer Dämpfung kann diese Bewegung zu einer schwer kontrollierbaren Taumelschwingung ausarten.

45

Page 48: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

a

aa

Flugbahn:unverändert

Da Dq

(a) Anstellwinkelschwingung

Flugbahna = const

(b) Phygoide

(c) Spiralbewegung (d) Roll-Gier-Bewegung

Bild 3.4: Eigenbewegungen eines Flugzeugs [1]

46

Page 49: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

3.4 Kurvenbewegung

Um den Steuerkurs Ψ des Flugzeugs zu ändern, muss eine Kurve geflogen werden. Von großer Bedeutung ist der hori-zontale, stationäre Kurvenflug mit konstantem Radius, Hängewinkel und gleich bleibender Höhe (Bild 3.6).

Das Kurvenmanöver besteht aus drei Elementen: der Kurveneinleitung, der Kurvenkompensation und der Kurvenkoor-dination.

1. Die Kurveneinleitung beginnt mit dem gegensinnigen Ausschlag der Querruder δa und führt zum Rollen des Flug-zeugs um die Längsachse, bis die gewünschte Querneigung erreicht ist. Durch das Schwenken des Auftriebsvektorstritt die für den Kurvenflug benötigte Querkraft auf.

2. Im Gegenzug verringert sich die der Gewichtskraft entgegen wirkende Auftriebskomponente. Um nicht an Höhezu verlieren muss der Auftriebsverlust durch Ausschlag des Höhenruders δe kompensiert werden. Diesen Vorgangbezeichnet man als Kompensation. Der Ausschlag des Höhenruders vergrößert wiederum den Widerstand desFlugzeugs. Zur Beibehaltung einer konstanten Geschwindigkeit muss der Triebwerkschub über den Ladedruck pzerhöht werden.

3. Aufgrund der Querkraft beginnt das Flugzeug zu schieben, weil der Flugzeugbug nicht mehr in Richtung der zu flie-genden Kurve zeigt. Dieses Schieben ist, wegen dann spürbarer Fliehkräfte1, unangenehm für Pilot und Passagiere.Deshalb erzeugt man mit Hilfe des Seitenruders δr ein Giermoment, welches den Flugzeugbug wieder in Richtungder Flugzeugbewegung V dreht und den Schiebewinkel β minimiert. Das koordinierte Ausschlagen von Quer- undSeitenruder wird als Kurvenkoordinierung bezeichnet. Der Pilot kann an der Libelle im Wendezeigerinstrument(Bild 3.5) ablesen, ob die geflogene Kurve koordiniert abläuft.

(a) Schiebekurve (b) Koordination (c) Schmierkurve

Bild 3.5: Wendezeigerinstrument mit Libelle [3]

Beim Fliegen einer Kurve treten weitere Nebeneffekte auf wie Bild 3.6b verdeutlicht. Die äußere Tragfläche hat einehöhere Geschwindigkeit als die innere. Nach Gleichung (3.1) sind Widerstand und Auftrieb außen größer als innen. Dashat zum einen zur Folge, dass das Flugzeug trotz Neutralisation der Querruder weiterrollt, also übersteuert. Um dem ent-gegen zu wirken, müssen die Querruder in die Gegenrichtung ausgelenkt werden, bis sich die gewünschte Lage einstellt.Zum anderen bewirkt der Unterschied des Widerstandes beider Tragflächen eine Vergrößerung des Schiebewinkels β .Um die Tendenz zum Schieben auszugleichen, muss wiederum das Seitenruder δr nachgeführt werden. Alle genanntenEffekte werden von dem im Praktikum verwendeten, nichtlinearen Modell berücksichtigt.

3.5 Flugregelungssysteme

Flugregelungssysteme bestehen aus der Zusammenfassung einer Vielzahl von Reglerfunktionen, die aufeinander ab-gestimmt sind und in unterschiedlicher Kombination vom Piloten eingesetzt werden können. Die wichtigsten und imPraktikumversuch gebrauchten Betriebsarten für die Seiten- und Längsbewegung sind

• Roll Attitude Hold (RAH) mit Kurvenkoordinierung: zur Einhaltung eines vorgegebenen Hängewinkels Φ und derMinimierung des Schiebewinkels β im Kurvenflug,

• Heading Hold (HH): zur Einhaltung eines vorgegebenen Kurses Ψ,

1 Zeigt die Flugzeugnase beim Kurvenflug in Richtung der Fluggeschwindigkeit, bleibt das Scheinlot (Resultierende aus Schwerkraft undFliehkraft) in der Flugzeugsymmetrieebene. Das Flugzeug wirkt dadurch um ein Lastvielfaches schwerer. Mit zunehmendem Schieben wirktfür Flugzeuginsassen auch die Trägheit entgegengesetzt zur Querkraft.

47

Page 50: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

(a) Stationärer Kurvenflug (b) Nebeneffekte im Kurvenflug

Bild 3.6: Kurvenbewegung [2]

• Pitch Attitude Hold (PAH): zur Einhaltung der vorgegebenen Längsneigung Θ,

• Altitude Hold (ALH): zur Einhaltung der vorgegebenen Höhe H.

Die wesentliche Funktion eines solchen Autopiloten ist es, den Piloten von der permanenten Überwachung der Fluglageund Bahnführung zu entlasten. Bild 3.7 zeigt den hierarchischen Aufbau des Gesamtsystems. Die Regelungsaufgabenwerden in drei Ebenen aufgeteilt:

1. Dämpfung: Im innersten Regelkreis werden die rotatorischen Eigenbewegungen Ω gedämpft. Dadurch ist es einfa-cher, die Lage des Flugzeugs in der Luft zu beherrschen.

2. Lageregelung (RAH, PAH): Die Stabilisierung der Fluglage (β , Θ, Φ) ist das wichtigste Ziel der gesamten Regelung,da deren Kontrolle alle weiteren übergeordneten Aufgaben, wie Flugmanöver und Flugbahnführung, erheblicherleichtert. Diese Arbeit wird im nächst äußeren Regelkreis vom Lageregler übernommen. Dämpfer und Lagereglerwerden oft als Basisregler bezeichnet, weil sie die Ausgangsbasis für den Bahnregler darstellen.

3. Flugbahnregelung (HH, ALH): Die dritte Ebene dient der Kurs- und Höhenregelung (Ψ, H, H), welche der Flug-bahnregler übernimmt.

3.6 Anforderungen an den Autopilot

Das gesuchte Flugregelungssystem sollte mit allen Betriebsarten folgende Forderungen erfüllen:

• Stabilität: Das Flugzeug darf durch die Regelung zu keiner Zeit instabiles Verhalten annehmen. Umgekehrt soll derRegler stabilisierend wirken.

• Dynamik: Die Transport- und Passagiermaschine DHC2 Beaver soll bei Sollwertänderungen möglichst kraftarmeBewegungen ausführen. Eigenschwingungen sollen gedämpft werden. Der Autopilot (Bild 3.7) ist kaskadenför-mig aufgebaut. Regelgrößen der inneren Regelkreise müssen deshalb schneller ausgeregelt werden, als die derübergeordneten Regelschleifen.

• Stationäre Genauigkeit: Die Genauigkeit des Hängewinkels sollte in ruhiger Luft bei Transportflugzeugen∆Φ< ±1°betragen. Der Schiebewinkel sollte im Geradeausflug |β | ≤ 1° und im stationären Kurvenflug |β | ≤ 2° sein.

48

Page 51: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

regler

Flugbahnu

Wind

Turbulenz

Flugzeug-

dynamik

Dampfer

Pilot

Lageregler

p, q, r

Φ, β

V, ΘH, H

Ψ

Bild 3.7: Hierarchie der Flugführungsaufgaben

• Robustheit: Der Autopilot soll innerhalb des Betriebsbereichs 30m/s ≤ V ≤ 70m/s, 100m ≤ H ≤ 3000m und−30°≤ Φ≤ 30° funktionieren, unter Beibehaltung der Flugeigenschaften.

Wünsche:

• Der stationäre, koordinierte Kurvenflug verdeutlicht, dass zur Steuerung des Flugzeugs eine gezielte Betätigungaller Steuergrößen notwendig ist. Die zu regelnden Größen sollten sich gegenseitig nicht beeinflussen. Ist diesunvermeidbar, so soll der Kopplungseinfluss so gering wie möglich sein.

Damit sind alle notwendigen Größen, Struktur und Anforderungen für die Regelung bestimmt. Im nächsten Abschnittwird auf deren Realisierung eingegangen.

3.7 Mehrgrößensysteme

3.7.1 Systembeschreibung und Systemverhalten

Das im Praktikum verwendete Flugzeugmodell nach Gleichung (3.2) ist ein nichtlineares, verkoppeltes Mehrgrößen-system (MIMO). In der unmittelbaren Umgebung einer Ruhelage (x0, u0) kann es näherungsweise durch ein lineares,zeitinvariantes Modell der Form

x = Ax+Buy = Cx+Du (3.3)

beschrieben werden, mit n Zuständen sowie p Ein- und Ausgängen. Zu beachten ist, dass in (3.3) x, y und u Abweichun-gen von der Ruhelage beschreiben. Näheres zur Linearisierung findet sich im Anhang 3.9.2.

Im Frequenzbereich ergibt sich hieraus für Systeme ohne Durchgriff die Ausgangsgleichung

y(s) = C(sIn −A)−1x0 +C(sIn −A)−1Bu(s) = G0(s)x0 +G(s)u(s). (3.4)

Die Ausgangsgleichung setzt sich zusammen aus dem durch Anfangsauslenkung angeregten Eigenverhalten und demEin/Ausgangs-Verhalten (Übertragungsfunktion). Die Lösung der charakteristischen Gleichung

det(sIn −A) = 0 (3.5)

49

Page 52: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

ergibt die Eigenwerte des dynamischen Systems. Zu jedem Eigenwert si gehört ein Eigenvektor vi , der sich durch Lösendes Gleichungssystems

(siIn −A)vi = 0 (3.6)

ergibt. Zusammen beschreiben sie das Systemverhalten nach einer Anregung entweder durch eine Anfangsauslenkungx0 6= 0 oder durch Anregung der Eingänge. Während ein Eigenwert si = σ + jω über Eigenfrequenz und Dämpfung dieAusregelzeit und Überschwingweite charakterisiert, beschreibt der dazugehörige Eigenvektor vi die Aufteilung der Eigen-bewegung esi t auf die einzelnen Zustände und damit auch die Kopplung zwischen den Zuständen des Systems.

Invariante Nullstellen des Systems (3.3) können durch Lösen der Beziehung

det (Ze(s)) = det

sIn −A −BC D

= 0 (3.7)

mit der Rosenbrock’schen Systemmatrix Ze und der Einheitsmatrix In, ermittelt werden. Gleichung (3.7) enthält sowohldie Übertragungsnullstellen als auch Nullstellen, die durch entsprechende nicht steuer- und beobachtbare Eigenwertekompensiert werden. Nullstellen eines dynamischen Systems werden von einer Zustandsrückführung oder Zustands-transformation nicht beeinflusst und sind deshalb invariant. Minimalphasigkeit liegt vor, wenn sämtliche invariante Null-stellen des Systems einen negativen Realteil haben.

3.7.2 Regelung von Mehrgrößensystemen

Zur Regelung eines linearen Mehrgrößensystems gibt es mehrere Ansätze. Eine Möglichkeit bietet die Dezentrale Re-gelung. Dabei wird jeder Regelgröße ein Eingang zugeordnet, der den größten Einfluss auf sie hat und für dieseEin-/Ausgangskombination jeweils ein geeigneter Regler entworfen,2 z.B. ein PID oder ein Zustandsregler. Bei Mehr-größensystemen, deren Zustandsgrößen untereinander verkoppelt sind, wirkt sich die Ansteuerung eines Eingangs i.d.R.auf mehrere Zustände und Ausgänge aus. Werden einzelne Regelgrößen ohne Rücksicht auf die anderen geregelt undjeder Regelkreis so ausgelegt, dass er für sich allein ein gutes dynamisches Verhalten zeigt, wird das Verhalten des Gesamt-systems i. A. schlecht sein, zum Schwingen neigen und möglicherweise instabil werden. Ein solcher Ansatz funktioniertnur, wenn die Kopplungen schwach sind.Ein weiterer Ansatz ist das Verfahren der Eigenwertplatzierung, welches wie bei SISO-Systemen erlaubt, die Eigenwerte

Bild 3.8: Dezentrale Regelung

des geschlossenen Regelkreises unter Einhaltung der Stellgrößenbeschränkung beliebig zu platzieren.3 In diesem Fallwerden alle Stelleingänge des MIMO-Systems mit einem einzigen Zustandsregler angesteuert. Ein mit dem linearenGesetz

u= −Rx+ Fw. (3.8)

zustandsgeregeltes, lineares Mehrgrößensystem hat die Systemmatrizen

AR = A−BR, BR = BF, CR = C, DR = D (3.9)

2 Hier wird der einfachste Fall betrachtet, bei dem ein Ausgang auf einen Eingang zurückgeführt wird. Prinzipiell könnten genauso mehrerenAusgängen ebenso viele Eingänge zugeordnet werden. Entscheidend ist, dass Teilsysteme eines Gesamtsystems getrennt voneinander geregeltwerden. Es wird vorausgesetzt, dass es gleich viele Ein- und Ausgänge gibt.

3 Vorausgesetzt, alle Zustände des Systems können gemessen oder mittels Beobachter geschätzt werden.

50

Page 53: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

und im Laplacebereich für x0 = 0 die Führungsübertragungsfunktion

Gw(s) = C (sIn −A+BR)−1 BF, (3.10)

mit der Einheitsmatrix In ∈ Rn×n, der Reglermatrix R ∈ Rp×n und der Vorfiltermatrix F ∈ Rp×p, sodass für das Führungs-verhalten gilt

y1(s)...

yp(s)

=

g11(s) · · · g1p(s)...

. . ....

gp1(s) · · · gpp(s)

w1(s)...

wp(s)

. (3.11)

Für gewöhnlich sind die Nebendiagonalelemente gi j(s), i 6= j von Null verschieden, was bedeutet, dass die Änderungeiner Führungsgröße w j alle Regelgrößen yi beeinflusst. Um zu erreichen, dass jede Ausgangsgröße yi nur noch voneiner ihr zugeordneten Führungsgröße wi beeinflusst wird, müssen zusätzliche Kopplungen in den Regelkreis eingefügtwerden, die vorhandene Kopplungen kompensieren, sodass in (3.11) gi j(s) = 0, i 6= j ist. Diese Aufgabe erfüllt ein Ent-kopplungsregler, der im nächsten Abschnitt beschrieben wird.

Bei der Regelung eines dynamischen Systems höherer Ordnung hat der Regelungstechniker mit weiteren Problemenzu kämpfen. Die Schlussfolgerung von der Eigenwertkonfiguration auf das Zeitverhalten (Überschwingen u, AusregelzeitTa) ist bei mehr als zwei Eigenwerten nicht mehr exakt möglich.4 Die Lage der Eigenwerte des geschlossenen Regelkrei-ses entscheidet außerdem über den Verlauf der Stellgrößen. Die Vorgabe des zeitlichen Verhaltens unter Einhaltung derStellgrößenbeschränkung ist also keine einfache Aufgabe. Eine Lösung des Problems für SISO- und MIMO-Systeme bietetdie Linear-quadratische Regelung aus SDRT2, welche oft experimentell durch wiederholte Wahl der Gewichtungsmatri-zen Q und R gelöst wird. Speziell für MIMO-Systeme mit genügend Stell- und Regelgrößen wird in diesem Praktikumeine weitere Lösungsmöglichkeit vorgestellt, bei der ein MIMO-System höherer Ordnung durch geeignete Regelung inmehrere unabhängige SISO-Systeme niedrigerer Ordnung zerlegt wird.

3.7.3 Entkopplungsregler

Im Folgenden wird die Entkopplungsmethode nach Falb-Wolovich vorgestellt. Die Idee dabei ist, ein Zustandsregelgesetz

u= −Rx+ Fw. (3.12)

zu finden, welches die Eingänge u so ansteuert, dass die Anregung einer Führungsgröße wi nur eine entsprechendeAusgangsgröße5 yi beeinflusst (vgl. Bild 3.9). Während im SISO-Fall durch eine Zustandsregelung nur die Eigenwertebeliebig platziert werden können, ist es im MIMO-Fall auch möglich auf Eigenvektoren Einfluss zu nehmen und damitdie Aufteilung der Eigenbewegung auf die Ausgänge zu beeinflussen.6

Zum Auffinden des Entkopplungsgesetztes (3.12) werden die Ausgänge yi nach der Zeit abgeleitet bis der differen-

w1

wp

w y1

yp

y

u

x

MIMOR

F SISO

SISO

.

.

....

.

.

.=

Bild 3.9: Prinzip einer Entkopplungsregelung

zierte Ausgang von mindestens einer Eingangsgröße u j abhängt. Ist dies der Fall, kann die Gleichung explizit nach u

4 siehe Skript SDRT25 Eine komplette Zustandsentkopplung lässt sich erreichen, wenn es eine ebenso große Zahl an Stellmöglichkeiten gibt (p = n).6 Die Methode nach Falb-Wolovich verändert die Eigenvektoren nur dahingehend, dass bestimmte Zustände bzw. Linearkombinationen davon

von einigen Eigenbewegungen nicht mehr beeinflusst werden. Eine gezielte Manipulation der Eigenvektoren ist mit dem Verfahren derVollständigen Modalen Synthese möglich (Vorlesung Mehrgrößenreglerentwurf im Zustandsraum).

51

Page 54: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

umgestellt und ein Regelgesetz gebildet werden. Die minimale Ordnung der Ableitung, bei der yi von mindestens einemu j abhängt, wird Differenzordnung genannt.7 Die Differenzordnungen aller Ausgänge werden im Vektor

γ=

γ1 γ2 . . . γp

T(3.13)

zusammengefasst. Die Summe der Differenzordnungen über alle Ausgänge

γ=p∑

i=1

γi (3.14)

ist die Differenzordnung des Gesamtsystems, für die gilt γ≤ n, wobei n die Systemordnung repräsentiert. Differenzord-nungen gehören zu den Systemeigenschaften, welche bereits durch die ungeregelte Strecke eindeutig festgelegt sind.Die Gesamtdifferenzordnung γ sagt u.a. aus, unter welchen Voraussetzungen das System entkoppelt werden kann. Dif-ferenzordnungen der Ausgänge γi bestimmen wie viele Eigenwerte zur Regelung der entkoppelten Regelgröße yi freivorgegeben werden können.

Ist ein System mit Differenzordnung δ = n entkoppelbar, so kann Stabilität immer gewährleistet werden, da alle nEigenwerte im stabilen Bereich der komplexen Ebene platziert werden können.

Anders ist dies im Fall δ < n bei entkoppelbaren Systemen: Hier treten in der Übertragungsmatrix (n − δ) invarianteNullstellen auf. Diese müssen durch den Entkopplungsregler mittels (n− δ) Polstellen kompensiert werden, damit jederAusgang direkt einer Führungsgröße folgen kann8. Die verbleibenden (n−δ) Eigenwerte können nicht beliebig vorgege-ben werden, sondern kompensieren entsprechende Nullstellen der Strecke und wirken sich lediglich auf die nach außennicht sichtbare interne Dynamik aus. Somit können lediglich δ Eigenwerte der geregelten externen Dynamik frei vorgege-ben werden, welche sich auf die Ausgänge auswirken.

Da in der Realität die Kompensation invarianter Nullstellen nie exakt erfolgt, muss gefordert werden, dass diese Null-stellen in der linken s-Halbebene liegen (Minimalphasigkeit). Ist dies nicht der Fall, wäre ein instabiler Eigenwert zurKompensation einer Nullstelle in der rechten s-Halbebene notwendig. Dann wäre die Strecke zwar immer noch entkop-pelbar, aber nicht stabilisierbar.

Das entkoppelte Gesamtsystem ist bezüglich des Ein-Ausgangsverhaltens völlig äquivalent zu p getrennten Eingrößen-systemen der Ordnung γi < n.

Vorgehensweise beim Entwurf

Zunächst wird für jeden Ausgang die Differenzordnung γi bestimmt, durch Auswerten der Bedingungen

cTi B = 0T ,

cTi A B = 0T ,

......

cTi Aγi−2 B = 0T ,

cTi Aγi−1 B 6= 0T

(3.15)

mit den Zeilenvektoren cTi der Ausgangsmatrix C. Die Differenzordnung bezüglich des Ausgangs yi ist die kleinste Zahl

γi , die (3.15) erfüllt. Die Differenzordnungen aller Ausgänge werden im Vektor (3.13) zusammengefasst und die Ge-samtdifferenzordnung γ nach (3.14) bestimmt.

Für den Fall γ < n werden die invarianten Nullstellen der Strecke nach (3.7) berechnet. Haben diese keinen negati-ven Realteil, kann das System im Allgemeinen nicht stabil entkoppelt werden.

Konnte für jeden Ausgang die Differenzordnung (3.13) ermittelt werden, wird die Entkopplungsmatrix

D∗ =

cT1 Aγ1−1 B

...cT

p Aγp−1 B

(3.16)

7 Dies gilt für den linearen Fall. Im nichtlinearen Fall wird γi als relativer Grad bezeichnet.8 Herleitung siehe Otto Föllinger: Regelungstechnik: Einführung in die Methoden und ihre Anwendung. Hüthig, 2008.

52

Page 55: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

aufgestellt, die eine Entkopplung des Gesamtsystems unter der Bedingung ihrer Invertierbarkeit mit

det(D∗) 6= 0 (3.17)

garantiert.

Ist (3.17) erfüllt, wird für die gewünschten Hauptdiagonalelemente in (3.11) der Ansatz

gii(s) =Fi

sγi + . . .+ ai2 · s2 + ai1 · s+ ai0=

Fi

Pi(s), i = 1, . . . , p (3.18)

gewählt.9 Für die gewünschte Dynamik werden die Pole der Übertragungsfunktionen gii(s) durch Wahl der Eigenwertesik, k = 1, . . . ,γi mit

Pi(s) = (s− si1) · . . . ·

s− siγi

= sγi + . . .+ ai2 · s2 + ai1 · s+ ai0 (3.19)

vorgegeben. Stationär genaues Führungsverhalten ist gewährleistet, wenn

Fi = Pi(0) = ai0, i = 1, . . . , p (3.20)

gewählt wird. Mit diesen Vorgaben kann nun der Vorfilter für stationäre Genauigkeit im Arbeitspunkt mit

F= D∗−1

a10 0. . .

0 ap0

(3.21)

und die Reglermatrix, bestehend aus einem entkoppelnden Anteil und einem Anteil für die Dynamikvorgabe (Eigenwert-platzierung) mit

R= D∗−1

cT1 Aγ1

...cT

p Aγp

︸ ︷︷ ︸

Entkopplung

+D∗−1

γ1−1∑

k=0a1k · cT

1 Ak

...γp−1∑

k=0apk · cT

p Ak

︸ ︷︷ ︸

Eigenwer tplatzierung

(3.22)

berechnet werden.

3.7.4 Fuzzy Gain-Scheduling-Regelung nichtlinearer Systeme

Nichtlineare Systeme, deren Betriebspunkte stark variieren, können mit einem konstanten, linearen Regler nicht robustgeregelt werden. Denn große Änderungen des Betriebszustands führen zur entsprechenden Variation der Parameter deslinearisierten Modells. Abhilfe schafft die Gain-Scheduling-Regelung. Dabei wird das System in mehreren Arbeitspunktendes betrachteten Betriebsbereichs linearisiert. Die Menge der erhaltenen linearisierten Modelle wird parametrierte Linea-risierungsfamilie der Regelstrecke genannt. Für jedes dieser Modelle wird ein Regler gleicher Struktur entworfen, dessenParameter von einer oder mehreren Variablen abhängig sind und zwischen den Arbeitspunkten entsprechend angepasstwerden. Als Variablen, auch Schedulingparameter genannt, können bspw. Zustandsvariablen, Ausgangsvariablen oderStellgrößen gewählt werden. Es gibt eine Reihe von Verfahren für die Anpassung der Reglerparameter an den Betriebszu-stand (z.B. durch Umschaltung oder Interpolation). In diesem Praktikum wird die Fuzzy-Gain-Scheduling-Regelung nachTakagi und Sugeno verwendet, welche die Wahl der Reglerparameter mittels Fuzzy-Logik bestimmt.

Die Fuzzy-Logik erlaubt es sprachlich formulierte Wenn-Dann-Regeln in mathematische Formeln umzusetzen. Die erfor-derlichen Schritte dafür sind im Allgemeinen: Fuzzifizierung, Inferenz und Defuzzifizierung. Funktionale Fuzzy-Reglernach Takagi und Sugeno bilden mit scharfen Schlussfolgerungen (DANN-Teil der Regel) Stellgrößenwerte als Funktionender Eingangsgrößen. Im Gegensatz zu relationalen Fuzzy-Reglern nach Mamdani entfällt hierbei die Defuzzifizierung.Stattdessen wird die scharfe Stellgröße aus der Summe der gewichteten Stellgrößenanteile mit den zugehörigen Erfüllungs-graden ermittelt.

9 Die Differenzordnungen beschreiben die Differenz zwischen dem Nennergrad und dem Zählergrad des Übertragungssystems gii(s).

53

Page 56: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

w

u

x

u1

uk

...... ρ

Regler 1

Regler k

Summe

und

Normierung

Bild 3.10: Nichtlineare Fuzzy-Gain-Scheduling-Regelung

Der Fuzzy-Gain-Scheduling-Regler mit der Struktur eines linearen Zustandsreglers (3.8) hat die Regelbasis mit Regelnder Form

Regel k : WENN ρ1 = LW1, j UND . . . UND ρt = LWt,mDANN uk = −Rkx+ Fkw (3.23)

mit linguistischen Werten LW1, j , . . . , LWt,m der linguistischen Schedulingvariablen ρ1, . . . ,ρt . Der Vektor uk ist der scharfeStellgrößenanteil für die Regel k. Die Matrizen Rk und Fk sind entsprechende, konstante Regler- bzw. Vorfiltermatrizen.Im Fall des Flugzeugs kann eine Regel z.B. wie folgt aussehen:

Regel 3 : WENN V = „schnell“ UND H = „tief“DANN u3 = −R3x+ F3w (3.24)

mit den Schedulingvariablen ρ1 = V und ρ2 = H und den zugehörigen linguistischen Werten „langsam“, „mittel“,„schnell“ bzw. „tief“, „mittel“, „hoch“.

Die Zuordnung eines Zahlenwertes zu linguistischen Werten der Schedulingvariablen geschieht mit Hilfe von Zuge-hörigkeitsfunktionen wie z.B. der Gauß-Funktion (Bild 3.11)

µi,k = e−

12

ρi −ρi,k

σi,k

!2

. (3.25)

1

µi,k

ρiρi,k

(a) Gauß-Funktion

1

µ1

”langsam“

”mittel“

”schnell“

30 50 70 V (ms−1)

(b) Fuzzifizierung von ρ1 = V

Bild 3.11: Zugehörigkeitsfunktionen

54

Page 57: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Sie beschreiben mit welcher Wahrscheinlichkeit oder zu wieviel Prozent Zahlenwerte der Schedulungvariablen ρi zudefinierten linguistischen Werten LWx ,y und zur Regel k gehören. Der gesamte Erfüllungsgrad einer Regel k folgt ausdem Produkt der Zugehörigkeitsfunktionen µi,k aller Schedulingvariablen ρi zu

µk = µ1,k ·µ2,k · . . . ·µt,k. (3.26)

Der scharfe Stellgrößenwert

u=

r∑

k=1uk ·µk

r∑

k=1µk

=

r∑

k=1(−Rkx+ Fkw) ·µk

r∑

k=1µk

(3.27)

resultiert aus der Summe der einzelnen Stellgrößenanteile uk, die mit den zugehörigen Erfüllungsgraden µk der Regelngewichtet und auf deren Summe normiert werden.

Die Methode bietet einen effektiven Weg zur „weichen“ Adaption der Reglerparameter als Funktion einer oder meh-rerer Schedulingvariablen. Der Einfluss eines Reglers k auf die Stellgröße u variiert je nach Wert der Schedulingvariablenρ. Die nichtlineare Gewichtung der Stellgrößenanteile uk macht den Regler nichtlinear.

3.8 Aufgaben

3.8.1 Versuchsvorbereitung

Vorbereitungsaufgaben dienen dazu, zu Beginn des Versuchsnachmittags zu prüfen, ob sich Studenten mit dem Stoffauseinandergesetzt und diesen verstanden haben. Mit zunehmender Kenntnis und Verständnis der Thematik wird dasVorankommen am Versuchsnachmittag erheblich beschleunigt.

Programmieren Sie ein Matlab Skript, in dem für ein gegebenes System die Matrizen F und R nach Gleichung 3.21bzw. 3.22 berechnet werden.

Auf folgende Fragen sollten Sie zu Beginn des Versuchs vorbereitet sein:

1. Welche Kräfte wirken auf das Flugzeug? Von welchen Faktoren werden aerodynamische Kräfte beeinflusst und washat den größten Einfluss?

2. Schildern Sie kurz was während der Kurvenbewegung des Flugzeugs geschieht. Beschreiben Sie die Kurvenmanö-ver. Welche Nebeneffekte treten auf und wie kriegt man sie in den Griff?

3. Beschreiben Sie wie ein Autopilot aufgebaut ist und welche Funktionen er erfüllen muss (Betriebsarten).

4. Was sagen die Matrizen A, B, C, D über ein System aus?

5. Worin unterscheidet sich ein Pol von einem Eigenwert?

6. Was versteht man unter interner Dynamik? Wie kann ermittelt werden, ob ein System eine interne Dynamikbesitzt?

7. Was versteht man unter Minimalphasigkeit und warum ist sie wichtig bei der Entkopplung von Regelgrößen?

8. Welche beiden Bedingungen müssen für eine stabile Entkopplung bei γ < n erfüllt sein?

9. Geben Sie die Formeln für die Entkopplungsmatrix und die Rosenbrock’sche Systemmatrix an.

10. Was sind die Ziele der Gain-Scheduling Regelung? Variiert die Reglerstruktur oder die Reglerparameter in Abhän-gigkeit von den Schedulingvariablen?

55

Page 58: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

3.8.2 Versuchsdurchführung

Aufgabe 0: Manuelles Fliegen anspruchsvoller ManöverBevor Sie mit der Entwicklung des Autopiloten beginnen, sollen durch manuelle Steuerung des Flugzeugs die Schwierig-keiten von Flugmanövern verdeutlicht und die Eigenbewegungen des Flugzeugs sichtbar gemacht werden.

1. Stellen Sie sich vor, Sie sind Pilot und müssen das Frachtflugzeug DHC-2 Beaver mit sensiblen Gütern über meh-rere tausend Kilometer transportieren. Die Ware darf nicht mehr als Φ=30° gegenüber der Horizontalen gekipptwerden. Kurz vor der Ankunft am Zielflughafen, wird vom zuständigen Tower mitgeteilt, dass Sie vorübergehendkeine Landeerlaubnis erhalten und deshalb einige Zeit um den Flughafen kreisen müssen. Steuern Sie nun dasFlugzeug koordiniert in die Kurve um den Flughafen, sodass die Ware nicht beschädigt wird und keine Trägheits-kräfte auftreten. Öffnen Sie auch die Plots des Simulink-Modells und achten Sie auf den Schiebewinkel β und denRollwinkel Φ (soll 30° werden). Welche Schwierigkeiten fallen Ihnen beim Kurvenflug auf?

2. Der Flug findet in einer turbulenten und windigen Atmosphäre statt. Steuern Sie das Flugzeug so, dass es trotzWind möglichst in der Horizontallage bleibt. Bemühen Sie sich darüber hinaus den vorgegebenen Kurs von Ψ=30°gegenüber Nord einzuhalten und die Ware nicht zu beschädigen. Was fällt Ihnen beim Fliegen auf?

Am Versuchsnachmittag soll der Autopilot mit allen vorgestellten Betriebsarten hierarchisch (Bild 3.7) entworfen wer-den. Alle Zustandsgrößen seien direkt messbar. Zur Simulation sind mehrere Simulink-Blockdiagramme verfügbar: fürEchtzeitsimulation mit dem Flugsimulator SIM_ECHTZEIT.mdl und zur schnellen Simulation SIM_SCHNELL.mdl. Für denReglerentwurf soll der reduzierte Zustandsvektor

xred = [V α β p q r Φ Θ]T (3.28)

verwendet werden. Aus der Kenntnis dieser Größen, werden die übrigen Zustände in Simulink durch eine einfache In-tegration mit bekannten Anfangszuständen berechnet. Die entsprechenden acht gewöhnlichen, nichtlinearen Zustands-DGLs werden samt Parametern nach Ausführung des Skripts equations.m in den Workspace geladen. Sie finden sich dortals symbolische Ausdrücke unter den Variablen Vdot, alphadot, betadot, pdot, qdot, rdot, phidot, thetadot. Verwen-den Sie den Befehl pretty, um die Gleichungen darzustellen.

Folgende Aufgaben sollen überwiegend in Matlab gelöst werden. Relevante Matlab-Befehle zu den Aufgaben sind inKlammern gegeben. Zur genauen Anwendung wird empfohlen die Matlab-Dokumentation oder Hilfe zu verwenden (Be-fehle doc bzw. help). Weitere Hilfestellung ist im Anhang zu finden.

Aufgabe 1: Linearisierung und SystemanalyseZur Analyse des dynamischen Verhaltens des Flugzeugs soll das nichtlineare Gleichungssystem zunächst im ArbeitspunktAP5 und später in den restlichen Ruhelagen AP1 bis AP9 durch ein lineares Modell angenähert werden. Öffnen Sie hierfürdie Datei aufgabe1.m.

1. Linearisieren Sie die nichtlinearen Zustands-DGLs der Flugzeugbewegung um die Ruhelage AP5 indem Sie ander entsprechenden Stelle im M-File aufgabe1.m den Code ergänzen. Verwenden Sie xred als Zustandsvektor, alsEingangsgrößen [δa δe δr pz]

T und als Ausgangsgrößen die Zustände [V Θ β Φ]T . (jacobian, subs, ss)

2. Ist das linearisierte System im betrachteten Arbeitspunkt steuerbar und beobachtbar? (ctrb, obsv, rank)

3. Berechnen Sie die Eigenwerte, Eigenvektoren und invariante Nullstellen im Arbeitspunkt und stellen Sie die Poleund Nullstellen im Pol-Nullstellen-Diagramm dar. Ist das System im Arbeitspunkt stabil? Ist das System minimal-phasig? (eig, zero, pzmap)

4. Die Lösung des Eigenwertproblems nach Gleichung (3.5) und (3.6) ergibt für den Betriebspunkt AP5 dieEigenwerte- und vektoren nach Tabelle 3.1. Weisen Sie jeder Eigenform aus Abschnitt 3.3 die entsprechendenEigenwerte und Eigenvektoren zu. Berücksichtigen Sie dabei das Schwingverhalten und die Dämpfung der Eigen-bewegung und deren Aufteilung auf die einzelnen Zustände.

5. Nun soll das dynamische Verhalten des Flugzeugs im kompletten Betriebsbereich und insbesondere an dessenGrenzen untersucht werden. Ist das System immer stabil bzw. minimalphasig? Analysieren Sie das Systemvehaltenin Abhängigkeit von der Höhe und Geschwindigkeit. Was hat größeren Einfluss auf die Systemdynamik? Ist dieRegelung des gesamten Betriebsbereichs mit konstanten Reglerparametern möglich und sinnvoll?

56

Page 59: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

EV v1 v2 v3 v4 v5 v6 v7 v8

V 0.01 -0.1+0.1i -0.1-0.1i -0.1+0.1i -0.1-0.1i 1 1 -0.9α -0.01 -0.1+0.3i -0.1-0.3i -0.02+0.001i -0.02-0.001i -0.01+0.001i -0.01-0.001i 0.01β 0.02 -0.002-0.01i -0.002+0.01i -0.2-0.5i -0.2+0.5i 0.001-0.001i 0.001+0.001i -0.06p 1 -0.02-0.01i -0.02+0.01i 0.02+0.5i 0.02-0.5i 0.001+0.0004i 0.001-0.0004i 0.03q 0.01 0.9 0.9 0.02+0.02i 0.02-0.02i 0.004-0.0003i 0.004+0.0003i -0.0003r 0.2 -0.04-0.1i -0.04+0.1i -0.5 -0.5 0.001-0.001i 0.001+0.001i -0.1Φ -0.2 0.002+0.01i 0.002-0.01i 0.4-0.2i 0.4+0.2i 0.001-0.01i 0.001+0.01i -0.4Θ -0.002 -0.2-0.2i -0.2+0.2i 0.004-0.02i 0.004+0.02i -0.003-0.02i -0.003+0.02i 0.01

EW -6 -2.5+2.5i -2.5-2.5i -0.5+1.1i -0.5-1.1i -0.02+0.2i -0.02-0.2i -0.05

Tabelle 3.1: Eigenwerte si und dazu gehörende Eigenvektoren vi der Systemmatrix A im Betriebspunkt AP5 (Wertestark gerundet)

Als nächstes soll der Basisregler (innerer Regekreis nach Bild 3.7) zur Dämpfung der Eigenbewegung und Lageregelungmit den Betriebsarten RAH mit Kurvenkoordinierung und PAH realisiert werden. Für die Fluglage sind die Zustände V ,Θ (Längsbewegung) und β , Φ (Seitenbewegung) sowie die Stellgrößen δe, pz (Längsbewegung) und δa, δr (Seitenbe-wegung) relevant.

Der Dämpfer hat die Aufgabe Eigenschwingungen des Flugzeugs zu reduzieren. Da alle Zustandsgrößen direkt messbarsind, können Dämpfer und Lageregler in einem gemeinsamen Zustandsregler realisiert werden. Weil die Lageregelung fürübergeordnete Aufgaben (Regelschleifen) besonders wichtig ist, soll der geschlossene Regelkreis zur Basisregelung einemöglichst einfache Struktur besitzen, sodass jede Regelgröße nur durch die jeweilige Führungsgröße beeinflusst wird.

Für die folgenden zwei Aufgaben wird nur die unmittelbare Umgebung der Ruhelage AP5 betrachtet, dessen LTI-Modellsys5 aus der vorherigen Aufgabe verwendet und dafür die Regler berechnet.

Aufgabe 2: Regelung mittels PolplatzierungIn dieser Aufgabe soll das linearisierte Mehrgrößensystem um AP5 mittels SISO- und MIMO-Polplatzierung geregelt wer-den. Öffnen Sie hierfür die Datei aufgabe2a_dezentral.m und fügen Sie den Lösungscode an die entsprechende Stelleein. Verwenden Sie bitte die im Skript-File angegebenen Variablen für die Regler und Vorfiltermatrizen.

1. Dezentrale Regelung: Entwerfen Sie für die Ein-/Ausgangs-Paare (pz , V ), (δe, Θ), (δr , β), (δa, Φ) jeweils einenEingrößen-Zustandsregler nach der Methode der Polplatzierung für SISO-Systeme, mit Vorfilter für stationäre Ge-nauigkeit. Verwenden Sie für jede Regelschleife den Matlab-Befehl acker(A,b,p) um die Reglerparameter mittelsAckermann-Formel (SDRT2) zu bestimmen. Die Eigenwerte der vier geschlossenen Regelkreise sollen so gewähltwerden, dass möglichst viele davon durch minimalphasige Nullstellen der jeweiligen SISO-Strecke kompensiertwerden und die restlichen platzieren Sie am besten auf der reellen Achse (siehe M-File). Plotten Sie nun dieSprungantworten der geregelten Einzelsysteme und die Sprungantwort des geregelten Gesamtsystems mit demBefehl step. Beschreiben Sie das Systemverhalten. Sind SISO-Systeme bzw. das Gesamtsystem stationär genau?Wie sieht es mit der Kopplung aus? Wie haben sich die Eigenwerte des Gesamtsystems verändert?

2. MIMO-Polplatzierung: Öffnen Sie aufgabe2b_polplatzierung.m. Geben Sie nun die Eigenwerte des geschlossenenRegelkreises des gesamten Mehrgrößensystems vor, indem Sie den Befehl place(A,B,p) zur Berechnung der Reg-lerparameter verwenden. Welche Verbesserung stellen Sie gegenüber der dezentralen Regelung fest? Welches Pro-blem besteht nach wie vor?

Aufgabe 3: EntkopplungsreglerZur Lösung des Probleme aus der vorherigen Aufgabe soll nun ein Entkopplungsregler entworfen werden. VerwendenSie dieselben Stell- und Regelgrößen wie in Aufgabe 2 und regeln Sie die im AP5 linearisierte Strecke so, dass dergeschlossene MIMO-Regelkreis aus vier SISO-Systemen besteht und folgende Dynamik besitzt ew_V=[-0.2], ew_theta= [-0.8,-1.6], ew_beta = [-1.5], ew_phi = [-0.5, -0.9].Zu diesem Zweck soll an der vorgesehenen Stelle im Skript aufgabe3.m der Algorithmus zur Bestimmung der Regler- undVorfilterparameter des Entkopplungsreglers nach Falb-Wolovich geschrieben werden. Gehen Sie dabei vor wie in Kapitel3.7.3 beschrieben.

1. Berechnen Sie die Differenzordnungen und überprüfen Sie das System auf stabile Entkoppelbarkeit. (zero, real)

2. Berechnen Sie die Regler- und Vorfiltermatrizen R und F nach Gleichung (3.22) und (3.21). (Skript aus Vorberei-tungsaufgabe)

57

Page 60: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

3. Berechnen Sie nun mit dem vorgegebenen Skript die System-, Steuer-, Beobachtungs- und Durchgangsmatrix desgeschlossenen Regelkreises nach Gleichung (3.9) und plotten Sie die Sprungantwort des Gesamtsystems. (step)

4. Bestimmen Sie die Übertragungsmatrix des geregelten Systems. Ist das System entkoppelt? Welche Übertragungs-funktionen können vernachlässigt werden und warum? (zpk)

5. Berechnen Sie vergleichend zur Übertragungsfunktion die Eigenwerte, Eigenvektoren und Nullstellen des entkop-pelten Systems. Betrachten Sie auch die Eigenvektoren. Welche Zustände und Regelgrößen werden durch welcheEigenwerte beeinflusst? Liegen Zustandskopplungen vor? (eig, zero)

6. Ist das entkoppelte System vollständig beobachtbar? Begründen Sie Ihre Erkenntnis. (obsv, rank)

7. Simulieren Sie im Simulinkmodell SIM_SCHNELL3.mdl einen Führungsgrößensprung von Φ = 0° auf Φ = 30°. Istder geschlossene Regelkreis stationär genau? Achten Sie auf den Kurswinkel, dieser muss von Ψ = 0° auf Ψ = 180°geändert werden.

Die Folgenden Aufgaben sollen weitgehend in Simulink gelöst werden.

Aufgabe 4: FlugbahnreglerIn dieser Aufgabe sollen im Simulink-Modell SimSchnell5.mdl im Block Sollwertvorgabe u. Regelung->FLUGBAHNREGELUNGein Höhenregler zur Kurvenkompensation und ein Kursregler für die Betriebsarten ALH und HH implementiert werden.Ein Fuzzy-Gain-Scheduling Regler ist im Modell bereits implementiert. Führen Sie zunächst das Skript aufgabe4.maus.

1. Kursregelung (Betriebsart HH): Zunächst soll der Ausgang Ψ zurückgeführt und mit einem P-Regler Kp = 1 geregeltwerden. Begrenzen Sie den Stelleingang mit einem Sättigungsglied für wΦ auf ±30°. Mehr soll sich das Flugzeugnicht neigen. Ist die Regelung linear oder nichtlinear?

2. Simulieren Sie einen Führungsgrößensprung von Ψ = 0° auf Ψ = 180°. Ist die Regelung stationär genau? WelcheLösung bietet sich an? Warum schwingt der Zustand Ψ? Welche Lösung bietet sich an?

3. Höhenregelung (Betriebsart ALH): Entwerfen Sie einen P-Regler Kp = 1 zur Kurvenkompensation.

Aufgabe 5: Echtzeitsimulation des AutopilotenIn dieser Aufgabe soll der entworfene Autopilot in Echtzeit am Simulator simuliert werden. Führen Sie hierzuautopilotSimulation.m aus.

58

Page 61: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

3.9 Anhang

3.9.1 Symbolic Math Toolbox

Das Softwarepacket Matlab wurde ursprünglich für numerische Berechnungen mit Matrizen entwickelt. Die SymbolicMath Toolbox erweitert Matlab um die Fähigkeit algebraische Rechenoperationen durchzuführen. Nachfolgend werdeneinige für das Praktikum relevante Befehle der Toolbox erläutert.10 Für weitere Informationen wird auf die Matlab-Onlinehilfe bzw. auf die Dokumentation der Symbolic Math Toolbox verwiesen.11

Die nichtlinearen Zustandsdifferentialgleichungen des Flugzeugmodells im Praktikum sind zweierlei verfügbar:

• als Blockdiagramm für Simulink zur Simulation der Zustandsverläufe und

• als symbolische Zustandsgleichungen, die durch Ausführen des Skripts equations.m in den Workspace geladenwerden können und zur Berechnung von Reglern eingesetzt werden sollen.

Mit den Befehlen sym oder besser syms werden neue symbolische Variablen (Objekte vom Typ sym) erzeugt. Der Befehl

syms x1 x2 x3 real;

erzeugt bspw. mehrere symbolische Variablen x1, x2 und x3 gleichzeitig. Die zusätzliche Option real beschränkt den Wer-tebereich der Variablen auf reelle Zahlen. Diese Einschränkung ist für das automatisierte Vereinfachen von Ausdrückenwichtig. Da alle Zustände und andere verwendete Variablen des Flugzeugmodells nur reelle Werte annehmen können,sollte diese Einschränkung gebraucht werden. Die Eingabe von syms ohne Parameter listet alle im Workspace vorhande-nen Variablen auf, denen ein symbolischer Ausdruck zugewiesen wurde.

Des Weiteren können auch Zahlen symbolisch dargestellt werden wie

sym(’3/4’)

Der Vorteil ist, dass Matlab mit diesen Zahlen symbolisch rechnet und numerische Fehler vermieden werden.

Der Ausdruck

x4 = x1 + 2*x2/x3

ist nicht als Gleichung zu betrachten, sondern als Zuweisung, die der Variablen x4 den „Wert“ x1 + 2*x2/x3 zuweist.Dementsprechend ist x4 keine symbolische Variable.

Mit dem Befehl subs (substitute = ersetzen) kann ein Ausdruck in einem symbolischen Ausdruck durch einen ande-ren ersetzt werden. Im folgenden Beispiel wird in x3 die symbolische Variable x2 durch den Wert −5 ersetzt:

>> x3 = x1 + 2*x2;

>> subs(x3,x2,-5)

ans =

x1 - 10

Es können auch mehrere Variablen gleichzeitig ersetzt werden:

>> x4 = x1^2 - 5*x2 + cos(2*x3) ;

>> subs(x4,x1,x2,x3,2,3,pi)

ans =

-10

In diesem Fall wird in x4 jedes Element des Cell-Arrays x1,x2,x3 durch ein entsprechendes Element aus 2,3,piersetzt.

Zur Bestimmung von Ableitungen existiert der Befehl diff wie das folgende Beispiel zeigt:

10 Dise Beschreibung wurde auszugsweise der Versuchsbeschreibung zur Modellbildung des Matlab/Simulink-Praktikum II entnommen.11 Symbolic Math Toolbox User’s Guide

59

Page 62: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

>> diff(’x1^2’, ’x1’)

ans =

2*x1

Der Befehl jacobian(f,var) berechnet die Jacobi-Matrix einer Funktion f für die Variablen var:

>> syms x y z real;

>> jacobian([x*y*z; y; x+z],[x y z])

ans =

[y*z, x*z, x*y]

[ 0, 1, 0]

[ 1, 0, 1]

Ab einer gewissen Komplexität von Gleichungen ist deren Darstellung in Matlab kaum lesbar. Der Befehl pretty erzeugteine besser lesbare Darstellung:

>> pretty( 2*x1 + x2^x3 )

ans =

x3~

2 x1~ + x2~

Die Tilde ∼ neben den Variablen kennzeichnet die Einschränkung, die bei der Deklaration der entsprechenden Variablengetroffen wurde. Der Befehl simplify hingegen vereinfacht einen symbolischen Ausdruck wie z.B.:

>> simplify( exp( x3*log( sqrt( x1+x2 ) ) ) )

ans =

(x1+x2)^(1/2*x3)

Zur besseren Darstellung großer Gleichungen ist auch der Befehl vpa(A,d) hilfreich. Er begrenzt die Darstellung jedesElements von A auf d Nachkommastellen.

Ein weiterer nützlicher Befehl ist solve. Mit ihm können Gleichungen und Gleichungssysteme gelöst werden:

>> solve( ’x1^2=1’ )

ans =

1

-1

3.9.2 Linearisierung

Reale dynamische Systeme werden im Allgemeinen durch nichtlineare Differentialgleichungen beschrieben. Oft ist esjedoch möglich, ein solches System, in einem Gebiet um einen stationären Zustand, durch ein lineares Modell hinrei-chend genau zu beschreiben. Das linearisierte System erlaubt es, eine Aussage über das Eigen- und Steuerverhalten desFlugzeugs in der unmittelbaren Umgebung des betrachteten Betriebspunktes zu machen. Ruhelagen werden in der Flug-mechanik als Trimmzustände bezeichnet und sind dadurch charakterisiert, dass die Bewegungsgrößen V , α, β und p, q, raus dem Kräfte- und Momentensatz konstante Werte annehmen, d.h. ihre Ableitungen verschwinden. Um einen solchenZustand zu erreichen, müssen durch geeignete Steuergrößen u, Kräfte und -momente erzeugt werden, welche die aufdas Flugzeug wirkenden Kräfte und Momente kompensieren und das System in der Ruhelage halten. Dieser Prozess wirdals Trimmung bezeichnet, die entsprechenden Ruhelagen als Trimmzustände (x0,u0). Für den Praktikumversuch wurdendie Ruhelagen AP1 bis AP9 (siehe Bild 3.3) mit Hilfe eines Suchalgorithmus ermittelt. Sie können wahlweise mit derMatlab-Funktion trimstates.m in den Workspace geladen werden.

Die Linearisierung von (3.2) erfolgt mit der Approximation durch das Taylorpolynom ersten Grades im Punkt (x0, u0):

x = f(x0,u0) +∂ f(x,u)∂ x

x=x0u=u0

· (x− x0) +∂ f(x,u)∂ u

x=x0u=u0

· (u− u0)

y = h(x0,u0) +∂ h(x,u)∂ x

x=x0u=u0

· (x− x0) +∂ h(x,u)∂ u

x=x0u=u0

· (u− u0).(3.29)

Die Substitution

∆_x= _x− _x0 = _x− f(x0,u0), ∆x= x− x0, (3.30)

∆y= y− y0 = y− h(x0,u0), ∆u= u− u0, (3.31)

60

Page 63: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

A= Jf,x

AP=∂ f(x,u)∂ x

x=x0u=u0

, B= Jf,u

AP=∂ f(x,u)∂ u

x=x0u=u0

,

C= Jh,x

AP=∂ h(x,u)∂ x

x=x0u=u0

, D= Jh,u

AP=∂ h(x,u)∂ u

x=x0u=u0

(3.32)

resultiert in linearen System- und Ausgangsgleichungen

∆x = A ·∆x+B ·∆u∆y = C ·∆x+D ·∆u (3.33)

mit den System-, Steuer-, Beobachtungs- und Durchgangsmatrizen A ∈ Rn×n, B ∈ Rn×p, C ∈ Rp×n und D ∈ Rp×p, wobein = dim(x), p = dim(u) = dim(y). Die Matrizen werden in der Umgebung der Ruhelage als konstant angenommen. Aufdie Bezeichnung mit ∆ wird im Allgemeinen verzichtet.

Die partielle Ableitung des Vektorfeldes f(x) =

f1(x) · · · fk(x)T

nach einem Vektor x = (x1 · · · xn)T kann in derJacobi-Matrix zusammengefasst dargestellt werden

J f =∂ f(x)∂ x

=

∂ f1∂ x1

∂ f1∂ x2

· · · ∂ f1∂ xn

......

. . ....

∂ fk∂ x1

∂ fk∂ x2

· · · ∂ fk∂ xn

. (3.34)

Der entsprechende Matlab-Befehl ist jacobian(f,x).

3.9.3 Begrenzung der Stellgrößen und Zustände

Die Begrenzung der Stellgrößenausschläge und Zustandsgrößen ist einzuhalten und bei der Wahl der Eigenwerte zuberücksichtigen.

Größe Einheit untere Gr. obere Gr. Größe Einheit untere Gr. obere Gr.β ° -2 +2 δe ° -20 +20Φ ° -30 +30 δa ° -15 +15p °/s -12 +12 δr ° -25 +25r °/s -12 +12 δ f ° 0 +58Θ ° -8 +18 n RPM 0 2300q °/s -12 +12 pz ”Hg 0 26

Tabelle 3.2: Begrenzung der Zustände und Stellausschläge

61

Page 64: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Literaturverzeichnis[1] UWE KLINGAUF: Flugmechanik 2: Flugdynamik. Darmstadt, 2007. – Manuskript Technische Universität Darmstadt

[2] PRIMBS: Kräfte und Momente am Flugzeug. Webseite, 2000. – Online verfügbar unter http://technologie.uni-duisburg.de/FV/Primbs/Kurvenflug.html; Stand: 23.03.2009

[3] MARC RAUW: A SIMULINK environment for Flight Dynamics and Control Analysis – Application to the DHC-2 ’Beaver’.Part 1: Implementation of a model library in Simulink Delft University of Technology, Online verfügbar unterhttp://home.wanadoo.nl/dutchroll/other.html; Stand: 23.03.2009

62

Page 65: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4 Regelung von Servoantrieben (RSA)

4.1 Einleitung

Regelungen von Servoantrieben werden in vielen technischen Ausführungsformen bei der Steuerung von Maschinen allerArt in der Industrie verwendet. Das Gebiet der Servoregler hat sich deshalb im Laufe der Zeit als abgeschlossenes Gebietmit eigenen Bauformen entwickelt. Es gibt Servoregler mit kleinen Leistungen, z.B. für Instrumenten- und Rechnerzwe-cke. Sie werden aber auch für große Leistungen gebaut, z.B. als Antennen-Nachführungen oder Kopierfräßmaschinen.

In diesem Versuch sollen in einer Simulation verschiedene Reglertypen zur Ausregelung des Servoantriebs verwendetwerden. Im ersten Teil wird ein linearer Regler benutzt. Das Ergebnis soll dann im zweiten Teil mit einem strukturvaria-blen Regler verglichen werden. In diesem Abschnitt soll auch ein Verständnis für die Effekte vermittelt werden, die beistrukturvariablen Reglern auftreten können (Instabilitäten, Gleitzustände, Schwingungen). In einem dritten Teil soll derRegelkreis mit verschiedenen Nichtlinearitäten erweitert und auf Dauerschwingungen untersucht werden.

4.2 Theoretische Grundlagen

4.2.1 Die Phasenebene als spezielle Zustandsebene

Die Phasenebene einer Größe x wird aufgespannt durch die Größe x selbst und ihre zeitliche Ableitung x . Stellt man einezeitlich veränderliche Größe x(t) in ihrer Phasenebene dar, so wird x über x aufgetragen und die Zeit t als Parameterder Kurve verwendet. Diese Kurve x(x) heißt auch Trajektorie des Systems in der Phasenebene. Ist die Funktion x(t)gegeben, so kann man leicht x(t) und damit die Trajektorie x(x) in der Phasenebene berechnen. Auch der umgekehrteFall ist möglich: Aus der Trajektorie des Systems x(x) in der Phasenebene läßt sich wieder die Zeit t und damit dieZeitsignale x(t) und x(t) rekonstruieren.

Zeitsignal Trajektorie

Gegeben ist jeweils: x(t), t x , x(x)

Gesucht wird bei der Umrechnung: x(t) =d x

d tt − t0 =

∫ x t

x t0

1x(x)

d x

Vorbereitung

1. Wie kommt man auf die Gleichung: t − t0 =

∫ x t

x t0

1x(x)

d x ?

Hinweis: Lösen Sie die triviale Gleichung x = d x/d t nach t auf.

Trägt man 1/ x(x) über x auf, so entspricht die Fläche unterhalb der resultierenden Trajektorie der gesuchten Zeit.

4.2.2 Linearer Regler

Die Regelstrecke des Servoantriebs wird durch eine Kombination eines PT1-Gliedes und eines I-Gliedes modelliert. Folg-lich ist der Zustandsraum zweidimensional (Zustandsebene). Sind die Zustandgrößen der Winkel x1 = ϕ und die Winkel-geschwindigkeit x2 = ϕ, so sind die Zustandsebene und die Phasenebene von ϕ in diesem Fall identisch. Dies ermöglichtden Entwurf des strukturvariablen Reglers auf einem einfacheren Weg. Zuerst sollen die Trajektorien eines vereinfach-ten Lageregelkreises in der Phasenebene untersucht werden. Bild 4.1 zeigt den vereinfachten Lageregelkreis mit einemlinearen Lageregler k und Geschwindigkeitsrückkopplung kd .

63

Page 66: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bild 4.1: Vereinfachter Regelkreis

Vorbereitung

1. Wie lautet die Übertragungsfunktion des geschlossenen Kreises?

2. Der lineare Regler soll ein möglichst schnelles Ausregeln ohne Überschwingen erlauben. Dies geschieht bei einemPT2-Glied genau im aperiodischen Grenzfall, d.h. wenn die beiden Polstellen des geschlossenen Kreises identischsind. Wie ist kd in Abhängigkeit von der Verstärkung k zu wählen, damit sich der aperiodische Grenzfall ergibt?

3. In der Phasenebene hat die Trajektorie des geschlossenen Kreises für x(0) = x0 den in Bild 4.2 dargestelltenVerlauf. Warum bleibt die Trajektorie unter der Geraden I?

Bild 4.2: Trajektorie des geschlossenen Kreises

Hinweise:

• Stellen Sie die Systemmatrix A in der Zustandraumdarstellung mit den Zuständen x und x auf. (Ergebnis: A =

0 1

− kT −2

q

kT

)

• Welche Eigenwerte und Eigenvektor(en) hat diese Matrix? Hinweis: Zu einem zweifachen Eigenwert gehören einHaupteigenvektor und ein Nebeneigenvektor. Diese werden nach der folgenden Formel berechnet:

(A−λI)v 1 = 0, v 1 −Haupteigenvektor

(A−λI)v 2 = v 1, v 2 −Nebeneigenvektor

• Wie ist die Änderung des Zustandvektors bei einer Anfangsauslenkung, die auf der Geraden I: x +p

k/T · x = 0liegt? Welche Trajektorie beschreibt er?

• Wie ist die Änderung des Zustandvektors bei einer Anfangsauslenkung, die leicht unterhalb der Geraden I liegt?

Hinweis: Die Steigung einer Trajektorie in einem Punkt kann man auch durchx2

x1angeben.

64

Page 67: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4.2.3 Strukturvariabler Regler

Ein strukturvariabler Regler schaltet durch eine Steuerlogik zwischen verschiedenen Reglern hin und her. In dem hierbetrachteten Fall (Bild 4.3) unterscheiden sich die einzelnen Regler in ihren Verstärkungen Vr1

bis Vrn.

Bild 4.3: Strukturbild des strukturvariablen Reglers

Einfache Steuerlogiken lassen sich auch mit analogen Bauteilen und Relais verwirklichen. Oder das Umschaltgesetzwird von einem Microcontroller oder Computer vorgegeben. Da die Verstärkungen je nach den Werten der Zustandgrößenund Sollgröße gewählt werden, kann man für eine feste Sollgröße Bereiche im Zustandsraum angeben, in welchen diejeweilige Verstärkung gilt. Hier ist die Sollgröße xs der Einfachheit halber xs = 0 gesetzt; im Allgemeinen muß derAusdruck x in den nachfolgenden Formeln durch x − xs ersetzt werden. Die Bereichsgrenzen werden in unserem Falldurch Geraden beschrieben, sogenannte Schaltgeraden.

Bild 4.4: Lage der Schaltgeraden

Bild 4.4 zeigt die Bereiche im Zustandsraum, in denen eine bestimmte Verstärkung gilt. Die beiden Schaltgeradenwerden durch x = 0 und x + a · x = 0 beschrieben. In den hellen Sektoren ist x · ( x + a · x) > 0 und es wird dieVerstärkung Vr1

ausgewählt. In den dunklen Sektoren ist x · ( x + a · x)< 0 und die Verstärkung hat den Wert Vr2.

Als Beispiel wird der Regelkreis aus Bild 4.5 betrachtet: Für die Verstärkung Vr1= k lautet der Frequenzgang des

Bild 4.5: Strukturbild

65

Page 68: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

geschlossenen Kreises: G1(s) =k

s · (1+ sT ) + k. Für die Verstärkung Vr2

= −k entsprechend: G2(s) =− k

s · (1+ sT )− k. Aus

der Lage der Polstellen läßt sich das Verhalten der Einzelkreise folgern. Bei Vr1= k ist der Kreis oszillatorisch stabil und

bei Vr2= −k ist er instabil. Die Trajektorien sind in Bild 4.6 bzw. Bild 4.7 dargestellt.

Bild 4.6: Trajektorien für Vr2 = k. Bild 4.7: Trajektorien für Vr2 = −k. Bild 4.8: Trajektorien des Gesamtsystems.

Bei genauer Betrachtung der Trajektorien im zweiten Fall sieht man, dass sich das System auf der Geraden II in die

Ruhelage bewegt. Diese Gerade wird durch die Gleichung x + (Ç

14·T2 +

kT +

12·T ) · x = 0 beschrieben. Wählt man diese

Gerade und die Gerade x = 0 als Schaltgeraden, so kann man das Verhalten aus Bild 4.8 erreichen. Betrachtet man denVerlauf des Zustandes bei einer Anfangsauslenkung von x(0) = x0, so läuft er erst auf einer Spirale bis zu der einzigenstabilen Trajektorie der zweiten Struktur. Jetzt wird auf Vr2

= −k umgeschaltet. Der Kreis läuft auf der Geraden in dieRuhelage ein.

Vorbereitung

1. Wie sehen die Trajektorien aus, wenn die Schaltgerade eine leicht kleinere bzw. größere Steigung hat, also unter-halb bzw. oberhalb der Gerade II liegt? (Skizze)

2. Bild 4.9 zeigt die oben beschriebene Trajektorie und die Trajektorie des linearen Regelkreises im Vergleich. Ist derlineare oder der strukturvariable Regelkreis schneller? (Begründung)

Bild 4.9: Trajektorien des linearen und des strukturvariablen Regelkreises

66

Page 69: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4.2.4 Nichtlinearlitäten im Regelkreis

Tauchen in einem Regelkreis Nichtlinearitäten auf, so kann man die lineare Theorie im Allgemeinen nicht mehr anwen-den. Während es in linearen Regelkreisen in der Praxis nur stabile und instabile Regelkreise gibt, können schon kleinenichtlineare Einflüsse zu Dauerschwingungen führen. Diese sind beim Ausregeln meist unerwünscht.

Mit Hilfe der Methode der Harmonischen Balance lassen sich unter bestimmten Voraussetzungen Regelkreise mit Nicht-linearitäten auf Dauerschwingungen hin untersuchen. Wenn ein nichtlinearer Regelkreis nur eine Ruhelage besitzt undman alle wesentlichen Nichtlinearitäten im Regelkreis erfasst hat, so kann man erwarten, dass diese Ruhelage globalasymptotisch stabil ist, wenn keine Dauerschwingungen auftreten1. Dafür sollte sich der Regelkreis in den in Bild 4.10gezeigten Standardregelkreis umformen lassen.

NL L(j )ω-

yue

Bild 4.10: Nichtlinearer Standardregelkreis

Die Methode der Harmonischen Balance und die BeschreibungsfunktionWird am Eingang eines nichtlinearen Gliedes eine harmonische Schwingung e = Asin(ω0 t) angelegt, so hat die nichtli-

neare Schwingung am Ausgang unter bestimmten Voraussetzungen, die erfüllt seien, die gleiche Periode wie die harmo-nische Schwingung am Eingang. Entwickelt man diese nichtlineare Schwingung in eine Fourierreihe, so besteht sie dannaus einem Gleichanteil, einer Grundharmonischen und weiteren Oberharmonischen.

u(t) = c0(A) +∞∑

k=1

ck(A) sin(kω0 t +ϕk(A))

Bei punktsymmetrischen Nichtlinearitäten ist der Gleichanteil null. Wirkt das lineare Glied als Tiefpaß, so werden dieOberharmonischen durch das lineare Übertragungsglied herausgefiltert und die Schwingung am Ausgang des linearenGliedes bildet den neuen Eingang der Nichtlinearität, d.h.

y(t) =∞∑

k=1

|L( jkω0)|ck(A) sin(kω0 t +ϕk(A) + arg L( jkω0))

≈ |L( jω0)|c1(A) sin(ω0 t +ϕ1(A) + arg L( jω0))

Da sich also die Oberwellen des Ausgangssignals der Nichtlinearität im geschlossenen Kreis nicht auswirken, kann manauch das Ausgangssignal durch eine harmonische Schwingung u(t) ≈ c1(A) sin(ω0 t + ϕ1(A)) approximieren. Die Wir-kung des Kennliniengliedes besteht also darin, aus einer harmonischen Schwingung am Eingang eine näherungsweiseharmonische Schwingung mit anderer Amplitude und Phase am Ausgang zu erzeugen. Deren Quotient bildet den Ersatz-frequenzgang des Kennliniengliedes (Beschreibungsfunktion N(A)).

e(t) = Asin(ω0 t) = Ae jω0 t

u(t)≈ c1(A) sin(ω0 t +ϕ1(A)) = c1(A)ej(ω0 t+ϕ1(A))

N(A) =c1(A)

Ae jϕ1(A) =

c1(A) cos(ϕ1(A))A

+ jc1(A) sin(ϕ1(A))

A=

a1

A+ j

b1

A

wobei, mit ψ=ω0 t

a1 =1πA

∫ 2π

0

u

ψ

ω0

sin(ψ)dψ

b1 =1πA

∫ 2π

0

u

ψ

ω0

cos(ψ)dψ (= 0 für Nichtlinearitäten, die nur von e abhängen)

1 Vgl. Föllinger, O.: Nichtlineare Regelungen II, Oldenbourg, 1993

67

Page 70: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Ist die Schwingung am Ausgang des linearen Gliedes bis auf das Vorzeichen gleich der ursprünglichen harmonischenSchwingung, so spricht man von einer Dauerschwinung (Grenzzyklus). Diese Bedingung ist gleichbedeutend mit

−e = N(A)L( jω)e⇒ N(A)L( jω) + 1= 0⇒ L( jω) = −1

N(A)

Diese Beziehung stellt die charakteristische Gleichung des nichtlinearen Regelkreises und wird Gleichung der Harmoni-schen Balance genannt. Die Lösung dieser komplexen Gleichung ergibt die unbekannten Amplitude A und Frequenz ωder Dauerschwingung.

Die Stabilität von Grenzzyklen und das Zweiortskurven-VerfahrenEine graphische Methode zur Lösung dieser Gleichung ist das Zweiortskurven-Verfahren. Damit bekommt man zwar

nur eine qualitative Aussage über die Existenz eines oder mehrerer Grenzzyklen, es ermöglicht aber auch Aussagen überderen Stabilität. Dabei skizziert man die beiden Ortskurven (des linearen Frequenzgangs L( jω) und der negativ Inversendes Ersatzfrequenzgangs −1/N(A)) in der komplexen Ebene und man überprüft, ob ein oder mehrere Schnittpunkteexistieren. Ein Schnittpunkt der beiden Ortskurven erfüllt die Gleichung der Harmonischen Balance und deutet auf einenGrenzzyklus hin. Dieser Grenzzyklus2 ist

1. stabil, wenn die nichtlineare Ortskurve mit wachsendem A die lineare von rechts nach links kreuzt;

2. semistabil, wenn die nichtlineare Ortskurve die lineare tangiert;

3. instabil, wenn die nichtlineare Ortskurve mit wachsendem A die lineare von links nach rechts kreuzt

Weitere LiteraturhinweiseAdamy, J.: Systemdynamik und Regelungstechnik III, 2007Föllinger, O.: Nichtlineare Regelungen II, Oldenbourg, 1993

Vorbereitung

1. Nennen Sie die Eigenschaften eines linearen Gliedes mit Tiefpaßcharakter.

2. Fassen Sie die Voraussetzungen für die Anwendbarkeit der Methode der Harmonischen Balance zusammen (bzgl.Führungsgröße, nichtlinearer Teil und linearer Teil). Warum muss die Führungsgröße null oder zumindest konstantsein?

3. Welche Unterschiede gibt es zwischen einer grenzstabilen Schwingung in einem linearen Regelkreis und einemGrenzzyklus in einem nichtlinearen Regelkreis?

4. Wenn ein nichtlineares System eine einzige Ruhelage hat, aber im geschlossenen Regelkreis vermutlich ein Grenz-zyklus existiert, was kann man dann über die Stabilität der Ruhelage sagen?

2 Die Ortskurve des linearen Frequenzgangs wird in Richtung steigender Frequenz betrachtet.

68

Page 71: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4.3 Simulationsbasierter Versuchsaufbau

Simuliert wird der Regelkreis aus Bild 4.11. Der Positionssollwert wird durch das Eingangspotentiometer angegeben.Das Ausgangspotentiometer läuft im Falle einer funktionierenden Positionsregelung nach. Der Vorverstärker besitzt zweiEingangskanäle und einen Gegentaktausgang zur direkten Ansteuerung des Servoverstärkers, der wiederum den Motoransteuert. Die Motoreinheit besteht aus Servomotor, Tachogenerator und 30 : 1 Untersetzungsgetriebe. Die Reglereinheitbeinhaltet einen Lageregler und eine Tachorückkopplung.

Bild 4.11: Komplette Regelstruktur

4.3.1 Die Regelstrecke

Das Blockschaltbild der Positionsstrecke zeigt Bild 4.12. Die dazugehörigen Konstanten sind in Tabelle 4.1 aufgeführt.

Bild 4.12: Blockschaltbild der Positionsstrecke

ks = −6.4 (invertierender Vorverstärker)Tm = 0,27 s (definierte Zeitkonstante)

ki =Uϕ−n0· −n0

n ·n

Ut= −7.27 s−1 Integrationskonstante mit

Uϕ−n0= 36V (Spannungabgriff an Potentiometer

pro Umdrehung des Potentiometers)n−n0= −30 (Getriebeübersetzung)

Utn = 0.00275V/min−1 (Kalibrierung des Tachos)

Tabelle 4.1: Parameter der Positionsstrecke

69

Page 72: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4.3.2 Die Regler

Die einzelnen Reglertypen sind durch ein Computerprogramm realisiert. Ihren Aufbau findet man in Bild 4.13, Bild 4.14und Bild 4.15. Die auftretenden Konstanten sind je nach Versuchsteil einzustellen.

Bild 4.13: Linearer Lageregler und Tachorückkopplung kt

Bild 4.14: Strukturvariabler Regler und Tachorückkopplung kt

Bild 4.15: Nichtlinearer Regler ohne Tachorückkopplung

70

Page 73: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Vorbereitung

1. Setzen Sie aus dem linearen Regler und der Positionsstrecke das Blockschaltbild des Lageregelkreises zusammen.Wie muß kt gewählt werden, damit sich für eine Verstärkung Vr = 0.5 der aperiodische Grenzfall ergibt?

Für den strukturvariablen Regler werden die Parameter folgendermaßen gesetzt: Vr1= 0.5, Vr2

= 0.1, kt = 0.156.

2. Welche Art von Trajektorien liegen bei der jeweiligen Verstärkung vor?

Hinweis: Ganz kleine Beiträge (im Bereich 10−3) können vernachläßigt werden.

3. Wie müssen die Schaltgeraden für eine optimale Regelung in diesem Beispiel gewählt werden? Skizzieren Sie dieTrajektorien.

In den Regelkreis werden als Nichtlinearitäten jeweils ein Zwei- oder Dreipunktschalter eingesetzt (Bild 4.16).

Bild 4.16: Zweipunkt- und Dreipunktschalter

4. Bringen Sie den Regelkreis auf Standardform, um die Methode der Harmonischen Balance anwenden zu können.Bestimmen Sie die Übertragungsfunktion G(s) des linearen Teils.

5. Bestimmen Sie mit Hilfe der entsprechenden Beschreibungsfunktionen die Amplituden und Frequenzen der Dau-erschwingungen in den sich ergebenen Fällen.

6. Überprüfen Sie mit Hilfe des Zweiortskurven-Verfahrens ob die Grenzzyklen stabil, semistabil oder instabil sind.

71

Page 74: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

4.4 Versuchsdurchführung

Der Betreuer startet die Versuchsumgebung von Matlab/Simulink. Tragen Sie die Ergebnisse der gestellten Aufgaben indas Protokollblatt ein. Nutzen Sie die Möglichkeit mit den Simulationsmodellen zu spielen und weitere Experimentedurchzuführen.

4.4.1 Linearer Regler

Im Folgenden soll ein linearer Lageregler entworfen werden. Wählen Sie die Simulation ’linear_control.slx’.

Parameter kt = 0

Tragen Sie die Verstärkung kt = 0 ein und wählen Sie eine Verstärkung Vr , sodass der Regelkreis stabilisiert wird. ErhöhenSie die Verstärkung Vr und messen Sie die Ausregelzeit (ta5%) und die Überschwingweite (üb) aus dem Zustandsverlaufvon Uϕ. Tragen Sie die Werte in die dazugehörige Tabelle im Protokollblatt ein. Was beobachten Sie? Skizzieren Sie dieWurzelortskurve des geschlossenen Regelkreises für kt = 0 und Vr variabel und begründen Sie damit Ihre Beobachtung.

Parameter Vr = 0.5

Tragen Sie die Verstärkungen Vr und kt , die Sie in der Vorbereitung für den aperiodischen Grenzfall errechnet haben,ein und starten Sie die Simulation. Welches Verhalten erzielt man für niedrigere bzw. höhere Werte von kt? TragenSie die Werte in die dazugehörige Tabelle im Protokollblatt ein. Skizzieren Sie die Wurzelortskurve des geschlossenenRegelkreises für Vr = 0.5 und kt variabel und begründen Sie damit Ihre Beobachtung.

Weitere Protokollfragen

• Was lässt sich bezüglich der Regelgüte bei der linearen Positionsregelung über die Verstärkung kt der Tachorück-kopplung beobachten? Welche Vorteile bringt diese Rückkopplung bei der Lageregelung?

4.4.2 Strukturvariabler Regler

Im Folgenden soll ein strukturvariabler Regler mit Gleitzustand (Sliding-Mode Regler) entworfen werden. Wählen Sie dieSimulation ’struktur.slx’.

Parameter: kt = 0

Untersuchen Sie die folgenden Fälle:

• Für feste Verstärkung Vr = Vr1= Vr2

= 0.5 (qualitatives Verhalten).

• Für feste Verstärkung Vr = Vr1= Vr2

= −0.5 (qualitatives Verhalten).

• Für Verstärkungen Vr1= 0.5, Vr2

= −0.5 und bei den Steigungen a = 5, a = 15, aopt der Schaltgeraden. aopt

ist die Steigung, bei der gerade kein Überschwingen mehr auftritt. Sie soll experimentell grob bestimmt werden.(Ergebnisse?)

Parameter: kt = 0.156

Stellen Sie obige Parameter ein. Wählen Sie für die Steigung a der Schaltgeraden den in der Vorbereitung bestimmtenWert und starten Sie die Simulation. Untersuchen Sie die folgenden Fälle:

• Für feste Verstärkung Vr = Vr1= Vr2

= 0.5. (qualitatives Verhalten)

• Für feste Verstärkung Vr = Vr1= Vr2

= 0.1. (qualitatives Verhalten)

• Für Verstärkungen Vr1= 0.5, Vr2

= 0.1 und bei verschiedenen Steigungen a der Schaltgeraden. (Ergebnisse?)

72

Page 75: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Parameter: kt = 0.312

Untersuchen Sie die folgenden Fälle:

• Für feste Verstärkung Vr = Vr1= Vr2

= 0.5. (qualitatives Verhalten)

• Für feste Verstärkung Vr = Vr1= Vr2

= −0.5. (qualitatives Verhalten)

• Für Verstärkungen Vr1= 0.5, Vr2

= −0.5 und bei den Steigungen a = 5, a = 9, a = 10, aopt der Schaltgeraden. aopt

ist die Steigung, bei der gerade kein Überschwingen mehr auftritt. Sie soll experimentell grob bestimmt werden.(Ergebnisse?)

Weitere Protokollfragen

• Untersuchen Sie den strukturvariablen Regler mit den Parametern Vr1= 0.5, Vr2

= −0.5, kt = 0.312 und aoptnäher: Berechnen Sie die Polstellen der beiden Strukturen (Vr1

= Vr2= −0.5 bzw. Vr1

= Vr2= 0.5). Wie sehen die

zugehörigen Trajektorien aus? Sind die beiden Strukturen stabil? Welche theoretische Steigung sollte die Schalt-gerade haben? Vergleichen Sie theoretische und die aus der Simulation bestimmte Steigung der Schaltgeraden.

• Welchen Vorteil bringt die Tachorückkopplung bei der strukturvariablen Regelung?

• Vergleichen Sie die Sprungantworten des linearen Reglers, und der drei strukturvariablen Regler bei jeweils opti-maler Schaltgeradensteigung aopt . Vergleichskriterien sind unter anderem Ausregelzeit ta5%, Überschwingung undVerhalten in der Ruhelage. Welchen Regler würden Sie einsetzen?

4.4.3 Nichtlinearer Regler

Wählen Sie die Simulation ’nlinear.slx’.Stellen Sie die Parameter für die Nichtlinearitäten ein, die Sie in der Vorbereitung bearbeitet haben (Zwei- und Drei-

punktschalter, d.h. a = 0 und a = 0.5). Zeichen Sie dann die Trajektorien auf.

Weitere Protokollfragen

• Diskutieren Sie das Verhalten bei großen Schaltparametern (z.B. a = 1.5). Ist die Ruhelage des Systems globalasymptotisch stabil?

• Stimmen die Frequenzen bzw. Amplituden der stabilen Dauerschwingungen bei Zwei- und Dreipunktschalter mitden in der Vorbereitung ermittelten Werten überein? Begründen Sie Ihre Antwort.

73

Page 76: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

5 Regelung einer Verladebrücke (REV)

Bei diesem Versuch soll mit Methoden des so genannten „Rapid Control Prototyping“ ein Zustandsregler für das physischeModell einer Verladebrücke entwickelt werden.

Verladebrücken werden dazu eingesetzt, Lasten von einer Startposition A zu einer Zielposition B zu transportieren, z.B.als Containerbrücken zur Be- und Entladung von Schiffen, Eisenbahnwaggons und Lastkraftwagen oder als Laufkrane1

in Montagehallen.Solange sich Personen im Gefahrenbereich der Last aufhalten, ist aus Gründen der Arbeitssicherheit das Heben, Senken

und Verfahren der Last Aufgabe eines Kranführers, der z.B. von mechanischen Lastpendeldämpfungen unterstützt wird.Bei großen Anlagen ist die Belastung des in der Verladebrücke sitzenden Kranführers so groß, dass er bereits nacheiner Stunde ausgewechselt werden muss. Durch den Einsatz einer Regelung kann der Kranführer bei seiner Aufgabeunterstützt und damit bei seiner Arbeit entlastet werden.

In diesem Versuch soll der Entwurf verschiedener Zustandsregelungen mittels der Methoden des so genannten „RapidControl Prototyping“ unter Verwendung von MATLAB bzw. SIMULINK demonstriert werden. Dabei wird die Regelung aufeinem PC mittels einer graphischen Oberfläche entworfen und mit der realen Strecke getestet, statt direkt auf der späterenZielhardware 2. Wie gezeigt werden wird, führt dies nicht nur dazu, dass Fehler im Entwicklungsprozess frühzeitigererkannt werden, sondern auch dazu, dass man im Vergleich zu herkömmlichen Entwicklungsmethoden auch Zeit unddamit Geld spart.

5.1 Einführung3

5.1.1 Einfluss moderner Rechner auf die Entwicklung von Regelungen

Die Entwicklung von Rechner- und Softwaretechnologien in den vergangenen Jahrzehnten hat starke Veränderungen desEntwicklungsprozesses von Regelungen hervorgerufen.Früher wurden Regler immer direkt am Prozess entwickelt. Komplexere Regelalgorithmen mit dieser Methode zuverlässigeinzustellen gestaltet sich wegen fehlender Einstellregeln teilweise recht schwierig, weshalb man sich oft auf einfache,weniger leistungsfähige, dafür aber leicht einstellbare Regelungen (wie z. B. PID) beschränkte.Heutige Rechnertechnik erlaubt es nicht nur auch Prozesse zu regeln, die z. B. Totzeitverhalten oder Mehrgrößencharak-ter aufweisen, sondern mittels geeigneter mathematischer Modelle auch Prozesse einschließlich der geplanten Regelungzu simulieren. Damit wurde es möglich unterschiedliche Reglerstrukturen und -parameter schnell und gefahrlos simulativzu erproben. Aber auch der günstigen und gefahrlosen Weitervermittlung des Umgangs mit komplexeren Regelstrategienan das Bedienpersonal dienen Simulatoren.Aktuelle Entwicklungstrends erweitern den Einsatz von Rechnern bei der Entwicklung von Steuerung bzw. Regelungendarüber hinaus. Dies beinhaltet unter anderem. . .

• die Festlegung von Prozessinformationen und -spezifikationen in umfangreichen Modellen.• die Entwicklung von Verfahren zur Verifikation und Validierung entworfener Funktionen anhand von Modellen.• die automatische Code-Generierung des Codes für den Serieneinsatz unmittelbar aus der Entwurfsumgebung.

Man bezeichnet diese Vorgehensweisen als „modellbasierte“ Entwurfs- bzw. Entwicklungsverfahren. Um sie verwendenzu können, ist neben ausreichend detaillierten Modellen eine durchgängig nutzbare Werkzeugkette notwendig.

5.1.2 V-Zyklus

Der moderne Entwicklungsprozess eines Produkts kann mit Hilfe des so genannten V-Zyklus Bild 5.1 beschrieben werden.Ausgehend von einer Produktidee oder einem Kundenwunsch auf einem hohen Abstraktionsniveau, wird der linke Zweig

1 Für Liebhaber der deutschen Sprache: Der Plural von Kran ist umgangssprachlich Kräne, fachsprachlich für Hebevorrichtungen ist jedochKrane

2 meist ein eingebettetes System unter Verwendung eines µ-Controllers3 Hier kann nur sehr knapp auf die Thematik eingegangen werden. Wer das Thema vertiefen möchte, sei auf die Literatur (am Ende der

Versuchsbeschreibung) verwiesen.

74

Page 77: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Implementierung

Validierung

VerifikationEntwurf

TestsEntwicklung

RückwirkungenIdee

Anforderung

Produkt

Bild 5.1: Die generelle Form des V-Zyklus

mit immer höherem Detaillierungsgrad nach unten verfolgt. Dabei entstehen zunächst die Anforderungen an das Systemund anschließend Entwürfe für einzelne Komponenten des Systems. Sind alle Anforderungen geklärt und die einzelnenKomponenten entworfen, ist die untere Spitze erreicht. Hier erfolgt die Implementierung der einzelnen Komponenten.Beim anschließenden Aufstieg auf dem rechten Zweig des V-Modells nimmt der Detaillierungsgrad wieder ab. Die Kom-ponenten werden getestet und zu Modulen zusammengesetzt, die wiederum getestet werden. Schließlich werden dieeinzelnen Module zum fertigen Produkt4 zusammengesetzt, welches wiederum getestet wird. Dabei erfolgt stets die Ve-rifikation und Validierung von Entwurf und Anforderung. Falls notwendig, müssen diese dann entsprechend angepasstwerden und der Zyklus wird erneut durchlaufen.Der V-Zyklus wird normalerweise in Makrozyklen mehrfach durchlaufen. Dabei wird das „Produkt“ stufenweise vom La-bormuster über das Funktionsmuster zum Vorserienprodukt und schließlich zum fertigen Serienprodukt weiterentwickelt.Ziel der Entwicklung nach dem oben dargestellten V-Zyklus ist ein komfortablerer Umgang mit Änderungen, Korrekturenund Fehlerbehandlung bei gleichzeitiger Gewährleistung von hohen Qualitätsstandards, ohne dass dabei hohe Kostenentstehen.Der Erfolg dieser Entwicklungsmethode hängt entscheidend von der Verfügbarkeit von Softwarepaketen für die jeweiligenEntwicklungsschritte und der möglichst reibungsfreien Austauschbarkeit der gewonnen Ergebnisse unter den Program-men und Entwicklern ab.Diese Entwicklungsmethode hat jedoch einen entscheidenden Nachteil: Fehler, die auf der linken Seite des V-Zyklus ge-macht werden, treten erst auf der gleichen Stufe auf der rechten Seite zu Tage. Je später ein solcher Fehler erkannt wirdumso früher in der Entwicklungsphase muss neu angesetzt werden und umso teurer sind die Auswirkungen.Falls durch die verwendete Software möglich, ist daher auch eine horizontale Verknüpfung der Entwicklungsschrittewünschenswert5. Der Entwicklungsprozess mittels Rapid Control Prototyping bietet eine Möglichkeit zur Lösung diesesProblems.

5.1.3 Rapid Control Prototyping (RCP)

. . . unterstützt den integrierten, rechnergestützten Entwicklungsprozess mechatronischer Systeme. RCP ist eine neueEntwicklungsmethode, welche die Nachteile des V-Zyklus ausgleichen soll, ohne dessen Vorteile zu verlieren, weshalb sieheute in den unterschiedlichsten Disziplinen bei der Entwicklung von neuen Produkten Verwendung findet. Sie greift aufdie bewährten Methoden des V-Zyklus zurück, wobei diese neu kombiniert und integriert werden.

Der Entwicklungsprozess wird weiterhin in einzelne Schritte aufgeteilt, die jedoch nicht, wie beim V-Zyklus, zwangsläu-fig in einer bestimmten Reihenfolge durchlaufen werden. Dies resultiert aus der Erkenntnis, dass, nicht zuletzt aufgrundmoderner Rechnertechnik, einzelne Phasen nicht unbedingt an bestimmte Stellen des Entwicklungsprozesses gekoppeltsind. Hierzu zählen z. B. die Test-, Simulations- und Analysephasen der Entwicklung.

Voraussetzung für einen integrierten Ansatz ist eine durchgängige Werkzeugkette mit Schnittstellen zwischen denverschieden Spezialanwendungen, sprich eine sich über alle Schritte der Entwicklung erstreckende integrierte Entwick-

4 meist ein Prototyp5 z. B. ein unmittelbar im Anschluss an die Entwicklung des Regleralgorithmus stattfindender Test mit Hilfe der realen Strecke

75

Page 78: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

lungsumgebung. Dadurch wird gewährleistet, dass die zu einer Funktion gehörende Methodik an einer zentralen Stellezur Verfügung gestellt und gepflegt wird.

Ein Beispiel hierfür ist die automatische Code-Generierung, die z. B. aus den in der Simulation erstellten Reglern au-tomatisch einen an die Zielhardware angepassten Programmcode erstellt. Die fehleranfällige manuelle Implementierungdes entworfenen Reglers entfällt völlig. Werden Änderungen durch den Regelungstechniker vorgenommen, stehen dieseunmittelbar den beim nächsten Arbeitsschritt tätigen Experten zur Verfügung. Der Regelungstechniker kann Änderun-gen zentral mit seiner gewohnten Umgebung vornehmen und die automatische Code-Generierung garantiert stets dieMöglichkeit einer aktuellen Version des verwendeten Reglers bei den anderen Entwicklungsschritten.

Durch die Arbeit in einer einzigen integrierten Entwicklungsumgebung ist die Möglichkeit gegeben, im V-Zyklus auchhorizontale Iterationsschleifen durchführen zu können. So ist es möglich eine Regelung an bereits zur Verfügung stehen-der Hardware zu testen, ohne das fertige Steuergerät für die Regelung selbst zur Verfügung zu haben. Ein solcher Testkönnte zum Beispiel die Spezifikationen für dessen Anschaffung liefern. Genau dieses Szenario liegt im hier durchgeführ-ten Praktikum vor!

Die Entwicklung einer automatisierungstechnischen Lösung mittels RCP gliedert sich idealerweise in folgende Schritte:

1. Festlegung der Anforderungen unter Verwendung automatisierungstechnisch relevanter Beschreibungsmittel.

2. Ableitung der sich ergebenden Spezifikationen. Angestrebt werden „ausführbare Spezifikationen“. Das sind Model-le und Prüfverfahren, die in der Simulationsumgebung festgehalten werden und während des gesamten Prozessesder Evaluation dienen. Das heißt, dass das beauftragte Unternehmen umsetzen soll, was das Modell vorgibt. Feh-leranfälliger Text ist, insbesondere bei großen, unübersichtlichen Projekten mit vielen Beteiligten, möglichst zuvermeiden.

3. Modellierung, Entwurf und Erprobung. Um größtmögliche Effizienz zu erreichen ist ein automatischer Code-Generator notwendig, der die Software für das Steuergerät automatisch erzeugt. Der Test kann unter Verwendungder Simulation und/oder des realen Systems erfolgen. Es gibt dabei verschiedene Kombinationsmöglichkeiten.Diese lassen sich auf drei Grundkombinationen reduzieren (siehe auch Bild 5.2):

Systemsimulation Das Gesamtsystem wird komplett auf einem beliebigen Rechner simuliert. Dies entspricht derErprobung des Systems auf der linken Seite in Bild 5.2.

Software-in-the-Loop-Simulation (SiL) Der Regelalgorithmus wird auf einem Entwicklungsrechner, meist einnormaler PC, unter Verwendung des realen Prozesses evaluiert.

Hardware-in-the-Loop-Simulation (HiL) Der auf der Zielhardware6 implementierte Regelungs- und Steuerungs-algorithmus wird mit Hilfe einer Simulation eines Modells des Prozesses erprobt.

Es sei hier erwähnt, dass diese Begriffe, wie auch der Begriff RCP selbst, in der Literatur nicht einheitlich verwendetwerden und darüber hinaus weitere ähnliche Begriffe existieren, die aber meist auf einen der oben genanntezurückgeführt werden kann.

replacements

Hardwarein theLoop

Softwarein theLoop

System-simulation

ProzessProzess

ReglerRegler

Simulation Reales System

Bild 5.2: Schematische Darstellung verschiedener Rapid Control Prototyping Strukturen nach [3]

Nachfolgend die wesentlichen Vorteile der Entwicklung von Regelungen unter Verwendung von RCP:

• Schnelle, einfache und kostengünstige Erprobung unterschiedlicher Regelungs-/ Steuerungsverfahren.• Möglichkeit gefahrlos mit dem System zu experimentieren und Erfahrungen zu sammeln.• Einfache und schnelle Anpassung und Optimierung von Parametern.

6 meist ein Steuergerät

76

Page 79: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

• Datenerfassung, -aufbereitung, -visualisierung und -analyse mit fortschrittlichen Werkzeugen.• Genügend Rechenleistung, um auch komplexere Algorithmen oder noch ineffizienten Code zu testen.• Erhöhung der Sicherheit durch verbesserte Testmöglichkeiten.• Oft graphische Programmierumgebung. Dies birgt eine große Liste an weiteren Vorteilen für sich. RCP relevante

Vorteile sind die Verwendung des Modells als Dokumentation und die wesentlich bessere Wiederverwendbarkeitvon einzelnen Modellen und Komponenten.

Wer das Thema vertiefen möchte sei auf [3] und [4] verwiesen.

5.1.4 MATLAB

In diesem Versuch wird MATLAB mit der integrierten Simulationsumgebung SIMULINK als Entwicklungsumgebung für Ra-pid Control Prototyping verwendet. MATLAB findet sowohl in der Industrie als auch an der Hochschule Verwendung.Berechnung, Visualisierung und Programmierung werden in einer einfach benutzbaren und über eine einfache Syntaxprogrammierbaren Oberfläche vereinigt. MATLAB bringt eine eigene, sehr leistungsfähige Programmiersprache für techni-sche Berechnungsprobleme mit sich. Ihre Stärken liegen in der numerischen Berechnung, insbesondere von Arrays undMatrizen, wobei MATLAB auch einen Maple-Kernel mitbringt und damit symbolische Berechnungen beherrscht.

Die Grundfunktionalität von MATLAB umfasst bereits eine große Menge an grundlegenden mathematischen Befehlen.Zusammen mit den zukaufbaren Add-Ons (Toolboxen genannt) und den online [6] zusätzlich erhältlichen Open-SourceLösungen ist das Spektrum der verfügbaren Funktionen in MATLAB nahezu unbegrenzt. Wem dies nicht reicht, kann überverschiedene Programmierschnittstellen auch auf andere Programmiersprachen zurückgreifen.

Nachteilig an der Verwendung von MATLAB sind die hohen Lizenzkosten, die für Unternehmen, pro Rechner leicht im6-stelligen Bereich7 liegen können, wenn auch noch Toolboxen hinzukommen. Hinzu kommen Kosten für Schulungs-und Weiterbildungsmaßnahmen.

Hier kann und soll aus mehreren Gründen nicht näher auf die Funktionalität von MATLAB eingegangen werden:

• MATLAB zu erklären würde selbst den Rahmen des kompletten Praktikums sprengen. MATLAB ist sehr umfangreich!8

• MATLAB bringt eine hervorragende Hilfe für die meisten Funktionalitäten mit.• Es existieren weit mehr als 100 Bücher zu MATLAB bzw. SIMULINK.• MATLAB selbst findet im Praktikum (fast) keine Verwendung. Der Hauptteil geschieht in SIMULINK.

5.1.5 SIMULINK

SIMULINK ist eine graphische Programmierumgebung zur Modellierung, Simulation, und Analyse von dynamischen Syste-men. Es unterstützt sowohl lineare als auch nichtlineare Systeme, die sowohl zeitkontinuierlich als auch zeitdiskret oderauch beides sein dürfen. Die wichtigste Eigenschaft von SIMULINK ist hier die Möglichkeit mit SIMULINK Methoden desmodellbasierten Entwurfs anzuwenden, da es die benötigte Funktionalität mitbringt.

Die Modellierung geschieht in SIMULINK in einem graphischen User-Interface (kurz: GUI) mittels Blöcken in Formvon verschachtelten Blockschaltbildern. Diese intuitive und übersichtliche Darstellung verhindert Fehler, die bei anderenProgrammiersprachen durch die textbasierte Programmierart leicht entstehen können.

Die Blöcke können dabei hierarchisch ineinander verschachtelt sein, d. h. dass jeder Block Subsysteme, die wiederumaus Blöcken bestehen, beinhalten kann. So lassen sich selbst umfangreiche Systeme in einer übersichtlichen Form dar-stellen. Dennoch lässt sich die Funktion bis ins kleinste Detail analysieren indem man die entsprechenden Subsystemeöffnet (siehe Bild 5.3).

SIMULINK bringt eine sehr umfangreiche Block-Bibliothek mit sich, welche bereits ein großes Spektrum der notwendigenFunktionen beinhaltet. Hierzu zählen die verschiedensten Quellen und Senken, lineare und nichtlineare Elemente undVerbindungselemente. Es existiert eine große Auswahl an Möglichkeiten sich Signale bereits während der Simulationanzeigen zu lassen oder interaktiv in die Simulation einzugreifen.

Auch eigene Blöcke mit zusätzlichen Funktionen lassen sich leicht ergänzen. Bei Bedarf kann man jedoch auch auf einegroße Auswahl an zukaufbaren Block-Bibliotheken für Spezialfunktionen zurückgreifen. Darüber hinaus existieren auchhier Schnittstellen zu anderen Programmiersprachen, die jedoch nicht mehr ganz trivial zu verwenden sind.

Die Simulation selbst kann mittels verschiedener mathematischer Integrationsmethoden durchgeführt werden, die bisins Detail konfiguriert werden können.

Aus ähnlichen Gründen wie beim vorhergehenden Artikel soll hier nicht näher auf SIMULINK eingegangen werden. Aufeinzelne Funktionen wird, sofern nötig, später eingegangen.

7 Diese Summe mag zunächst sehr hoch erscheinen, amortisiert sich aber unter Umständen schnell wieder, da teure Entwicklungs- und Perso-nalkosten durch beschleunigte Entwicklungsprozesse eingespart werden können.

8 Selbst nach Jahren der Verwendung entdeckt der Autor dieser Anleitung noch hin und wieder sehr nützliche Funktionalitäten.

77

Page 80: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bild 5.3: Beispiel für ein umfangreiches System übersichtlich dargestellt mit ineinander verschachtelten Blöcken [5]

5.1.6 Real-Time-Workshop und das Real-Time-Windows-Target

Die Toolbox Real-Time-Workshop ergänzt SIMULINK und MATLAB um die automatisierte C-Code Generierung und Kompi-lierung. Der Code wird stets für eine bestimmte Zielumgebung, Target genannt, optimiert erstellt und kompiliert. Targetskönnen z. B. spezielle µ-Controller oder DSPs sein. Hier wird alternativ das als zusätzliche Toolbox erhältliche Realtime-Windows-Target verwendet. Mit diesem ist es möglich, echtzeitfähige Anwendungen neben dem nicht-echtzeitfähigenWindows auf dem gleichen Rechner laufen zu lassen. Dies wird durch einen eigenen, neben Windows laufenden Ker-nel erreicht, auf dem die vom Realtime-Workshop aus den SIMULINK-Modellen automatisch erstellten Programme laufen.Dabei kann mittels der eingebauten Messkarten die entworfene Regelung mit der realen Hardware im Echtzeitbetriebgetestet werden. Die Auswertung und Analyse wird dabei durch die umfangreichen Mittel, die SIMULINK bzw. MATLAB

mitbringen, unterstützt.

5.2 Versuchsvorbereitung

5.2.1 Allgemeine Fragen

Aufgabe 1 Lesen Sie bitte zunächst das Kapitel 5.1 gründlich durch. Die Kenntnis des Inhalts wird am Anfang des Versuchsdurch Kontrollfragen überprüft.

Bitte beantworten Sie die folgenden Fragen9 schriftlich (Stichpunkte reichen aus):

Aufgabe 2 Nennen Sie zwingende und wünschenswerte Anforderungen bezüglich der Regelung, die beim Transport einerschweren Last zu berücksichtigen sind. Bedenken Sie dabei auch wirtschaftliche Aspekte.

Aufgabe 3 Welchen Belastungen ist der Kranführer beim Betrieb ausgesetzt?

Aufgabe 4 Welche Störgrößen wirken auf eine reale Verladebrücke ein?

Aufgabe 5 Worin unterscheiden sich die Begriffe „validieren“ und „verifizieren“? Falls nötig, schlagen Sie in einem Wörter-buch die Begriffe nach.

Aufgabe 6 Lesen Sie die Sicherheitshinweise in 5.4 und prägen Sie sich die Hinweise ein. Während des Praktikums sind dieseunbedingt zu beachten. Unkenntnis oder Nichtbeachtung der Hinweise führt zum Ausschluss aus dem Praktikum.

9 Die Antworten ergeben sich nicht unbedingt aus dieser Praktikumsanleitung. Überlegen Sie vielmehr, wie sinnvolle Antworten lauten könnten.Sie können auch die in Abschnitt 5.4 angegebene Literatur oder andere Sekundärliteratur hinzuziehen.

78

Page 81: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

5.2.2 Modellbildung

Am Institut existiert ein eindimensionales Modell einer Verladebrücke. Die Verladebrücke ist mit zwei Gleichstrommo-toren ausgestattet von denen hier allerdings nur der zum Verstellen der Katzposition verwendet werden soll. Dieser iststationär montiert und treibt über ein Getriebe und einem Linearmodul die Laufkatze an. Über die Leistungselektro-nik lässt sich direkt die am Motor angelegte Spannung über den PC einstellen. Sowohl die Katzposition als auch derPendelwinkel lassen sich über Lagesensoren erfassen.

Auf diesem PC stehen MATLAB, SIMULINK, der Realtime-Workshop und das Realtime-Windows-Target zur Verfügung.Damit sind alle technischen Voraussetzungen für das angestrebte Rapid Control Prototyping erfüllt.

Symbol Einheit Bedeutung Wert

mk [kg] Masse der Laufkatze 13.5mL [kg] Masse der Last 5l [m] Seillänge 1FR [N] Reibung in der Linearführung ≈ 0

J [kg·m2] Massenträgheit des Motors 0.13 · 10−3

MMreib[Nm] Reibmoment des Motors ≈ 0

L [H] Motorinduktivität ≈ 0R [Ω] Motorwiderstand 0.5KE [V·s/rad] Spannungskonstante des Motors 0.082KM [N · m / A] Drehmomentkonstante 0.08KU [−] Spannungsverstärkungsfaktor des Servoverstärkers 3.352Kred [−] Getriebereduktion 21r [m] Umlenkradius am Linearmodul 0.043

xmax [m] max. horizontaler Verfahrweg 1.5vmax [m/s] Betrag der max. Horizontalgeschw. d. Katze 1UPC ,max [V] Betrag der max. Spannung am PC 10

Tabelle 5.1: Modellparameter

Symbol Einheit Bedeutung

F [N] AntriebskraftS [N] Seilkraftxsol l [m] Sollpositionxk [m] x-Position LaufkatzexL [m] x-Position PendelzL [m] z-Position Pendelβ [rad] PendelwinkelMM [Nm] MotordrehmomentωM [rad/s] Winkelgeschwindigkeit des MotorsUE [V] Eingangsspannung des GleichstrommotorsUPC [V] Ausgangsspannung des PCs

Tabelle 5.2: Modellvariablen

Die Modellbildung des Systems untergliedert sich in zwei Teile:

• Mechanische Beschreibung der Strecke• Modellierung des Motorverhaltens.

Die nachfolgenden Berechnungen (Aufgabe 7 bis Aufgabe 11) sind zunächst rein analytisch durchzuführen, d. h. diekonkreten Werte der Parameter des Systems sollen zunächst nicht eingesetzt werden.

Ab Aufgabe 10 empfiehlt es sich MATLAB zu verwenden. Sie finden dazu an den entsprechenden Stellen kurze Hinweise.Sie können aber auch schon zur Vereinfachung der Zustandsraumdarstellung eine Aufgabe früher MATLAB einsetzen.

79

Page 82: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

xLxK

x

z

zL

β

F

S

mK

mL

l

xsoll

Bild 5.4: Schematische Darstellung der Verladebrücke

Aufgabe 7 Stellen Sie zunächst die Bewegungsgleichungen des mechanischen Teils des Modells der Verladebrücke entspre-chend Bild 5.4 auf. Die Eingangsgröße des Systems sei zunächst die an der Laufkatze vom Motor erzeugte Kraft F . DieAusgangsgröße ist die Lastposition xL .Hinweis: Die zu verwendenden Variablennamen und deren Laufrichtung sind in Bild 5.4 dargestellt und in der Tabelle 5.2aufgeführt. Die Werte der konstanten Parameter des Systems sind in Tabelle 5.1 gegeben.

Um das Modell auch mit den aus der Literatur bekannten linearen Methoden untersuchen zu können, wird nachfolgendvon folgenden vereinfachenden Annahmen ausgegangen:

• Bewegungsvorgänge finden nur in einer Ebene als zweidimensionale Bewegungen statt.

• Die Laufkatze sei eine Punktmasse im Aufhängepunkt des Seiles.

• Die Last lässt sich als Punktmasse beschreiben.

• Lastmasse und Seillänge sind während des Verfahrens konstant.

• Das Seil wird als starre, masselose Stange modelliert, so dass die Last nur auf einem Kreisbogen um die Laufkatzependeln kann.

• Der Pendelausschlag während des Verfahrens ist klein (β π/2).

• Reibungskräfte im Motor und Antriebsstrang sind zu vernachlässigen.

• Das Gestell der Verladebrücke wird als steif angenommen.

Gehen Sie bei der Modellbildung in folgenden Schritten vor:

1. Stellen Sie die Kräftegleichgewichte der Katze und der Last in x- und z-Richtung auf.

2. Bestimmen Sie die nicht direkt messbare Lastposition in x- und z-Koordinaten anhand der messbaren Größen und dengegebenen geometrischen Beziehungen. Wie lauten die erste und zweite Ableitung nach der Zeit dieser beiden Größen?

3. Eliminieren Sie alle nicht messbaren oder gegebenen Größen aus den gewonnenen Gleichungen. Wie lautet das sichergebende Gleichungssystem?

Aufgabe 8 Stellen Sie nun den dynamischen Zusammenhang zwischen der Eingangsgröße des Systems (der am PC eingestell-ten Spannung UPC) und der auf die Katze ausgeübten Kraft F auf.

80

Page 83: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Hinweis: Folgendes Differentialgleichungssystem soll den Gleichstrommotor beschreiben:

UE(t) = R · i(t) + Ldi(t)

d t+ KE ·ωM (t) (5.1)

J ·dωM (t)

d t= MM (t)−MMreib

(t)−r

Kred· (FR(t) + F(t)) (5.2)

Zusätzlich gelten folgende Gleichungen:

MM = KM · i (5.3)

UE = KU · UPC (5.4)ωM

xK=

Kred

r(5.5)

Eliminieren Sie alle nicht gemessenen10 und vernachlässigbaren Größen aus dem Gleichungssystem. Wie lautet der funktionaleZusammenhang zwischen der Spannung UPC , der Kraft F und den messbaren Koordinaten des Systems?

Aufgabe 9 Fassen Sie die in den letzten beiden Aufgaben hergeleiteten Systeme zu einem dynamischen System zusammen,indem Sie die Kraft F eliminieren. Was ist die Ein- und Ausgangsgröße des Systems? Ermitteln Sie aus den gewonnenenGleichungen die Zustandsraumdarstellung des Systems! Die Zustandsgrößen seien:

x =

xK xK β βT

(5.6)

Mit der Substitution mK = mK +K2

redr2 J sollten kein mK und kein J mehr vorkommen. Verzichten Sie bitte in dieser Teilaufgabe

weitestgehend auf weitere Substitutionen.Warum werden, trotz zusätzlicher Berücksichtigung des Motors, weiterhin11 nur 4 Zustände für eine Zustandsraumdarstellungdes Systems benötigt?

Im Idealfall sollten alle folgenden Aufgaben direkt in MATLAB implementiert und nur wesentliche Formeln und dieErgebnisse stichpunktartig auf Papier notiert werden. Beides bitte zum Versuch mitbringen.Da die numerische Bestimmung des Rangs in MATLAB häufig Probleme bereitet, ist es manchmal ratsam, die Steuer-und Beobachtbarkeit anhand der analytischen Systembeschreibung zu bestimmen. Hierzu können mit dem Befehl symssymbolische Variablen definiert werden, z.B. syms mk. Numerische Variablen wie die Einheitsmatrix eye(n) werden mitdem Befehl sym(eye(n)) in symbolische umgeschrieben. Mit simplify kann das Ergebnis vereinfacht werden.

Aufgabe 10 Ist das System vollständig beobachtbar, wenn als Ausgangsgröße nur die Lastposition xL zur Verfügung steht? Be-rechnen Sie die Determinante der Beobachtbarkeitsmatrix. Schließen Sie davon auf die Beobachtbarkeit mit den zur Verfügungstehenden Messgrößen, der Katzposition (xk = x1) und dem Winkel (β = x3).

Aufgabe 11 Zeigen Sie, dass sich für die Determinante der Steuerbarkeitsmatrix |MS |= g2

KM Kred KUlRrmK

4ergibt.

Aufgabe 12 Um das System linearisieren zu können, wurde bei der Modellbildung von kleinen Pendelwinkeln ausgegangen.Ermitteln Sie grob, d. h. auf 1 wertige Stelle genau, in welchem Bereich der daraus resultierende Fehler höchstens 5% beträgt.Ordnen Sie den in Bild 5.5 dargestellten relativen Fehlern die Linearisierung des Sinus bzw. des Cosinus zu und notieren Siedies in der Legende.

Aufgabe 13 Setzen Sie die Parameter des Systems in die Zustandsraumdarstellung ein (Nachdem sie allen Variablen inMATLAB numerische Werte zugeordnet haben, z.B. mk=13.5, könne Sie diese mit dem Befehl subs in dem symbolischen Matri-zen ersetzen, z.B. Anum=subs(Asym).) und beantworten Sie die folgenden Fragen:

1. Wie lautet das sich ergebende System?2. Ermitteln Sie mit Hilfe von MATLAB die Eigenwerte des Systems! Wie lauten sie?3. Welche Stabilitätseigenschaften des vereinfachten mathematischen Modells der Verladebrücke ergeben sich daraus?4. Welche Eigenfrequenz ergibt sich für das Pendel?

Zur Kontrolle: Für das sich ergebende System gilt:

a22 = a42 · l ≈ −70 a23 ≈ −1 a43 ≈ −11 b2 = b4 · l ≈ 6 (5.7)10 bzw. aus messbaren Größen ableitbaren11 wie bei dem Beispiel in [1]

81

Page 84: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

0 0.1 0.2 0.3 0.4 0.5 0.60

1

2

3

4

5

6

7

8

9

10

Winkel [rad]

Fehl

er[%

]

Bild 5.5: Fehler der Linearisierung trigonometrischer Funktionen

5.2.3 Zustandsregelung und Beobachter

Am Versuchsnachmittag sollen drei verschiedene Zustandsregelungen entworfen werden. Sie unterscheiden sich primärin der Rekonstruktion der nicht gemessenen Zustände:

• Messung / Berechnung aller Zustände (kein Beobachter)

• vollständiger Beobachter

• reduzierter Beobachter

Aufgabe 14 Die Verladebrücke ist lediglich mit Positionssensoren ausgestattet. Wie lassen sich dennoch mit Hilfe dieser ohneden Einsatz eines Beobachters die Geschwindigkeiten ermitteln? Welches zusätzliche Element kann dabei ggf. die Auswirkungder quantisierten Messwerte vermindern?

Aufgabe 15 Wo sollten die Pole der geregelten Strecke in der s-Ebene liegen? Beachten Sie, dass die Ausregel-Geschwindigkeitin diesem Versuch unter anderem durch die Stellgrößenbegrenzung eingeschränkt wird. Schreiben Sie mit Hilfe von MATLABein Skript, mit dem Sie am Versuchsnachmittag die Zustandsrückführung und das Vorfilter für eine beliebige Pollage berechnenkönnen. Verwenden Sie hierfür die Methode nach Ackermann (siehe [1]). Bringen Sie dieses Skript am Versuchsnachmittagmit.

Aufgabe 16 Überlegen Sie sich, welche Anforderungen an die Regelungen gestellt werden könnten. Welche Versuche wärendaher geeignet um die Leistungsfähigkeit der entworfenen Regelung zu testen?

Aufgabe 17 Wo sollten die Pole des vollständigen Beobachters im Verhältnis zu den Polen der geregelten Strecke liegen?Spielen die Pole der ungeregelten Strecke dabei eine Rolle?

Aufgabe 18 Es stehen 2 Messgrößen zur Verfügung, die Katzposition (= x1) und der Winkel (= x3).

• Welches C ergibt sich, wenn diese Messgrößen als “Ausgang” betrachtet werden?• Welche Dimension hat die Beobachterrückführmatrix L?• Da mehr Freiheitsgrade (Einträge in L) als Gleichungen (Pole für Polvorgabe) zur Verfügung stehen, kann die Be-

rechnung der Matrix mittels Polvorgabe über den MATLAB-Befehl place erfolgen oder mittels der Riccati-Gleichung(Kalman-Filter). Schreiben Sie mit Hilfe von MATLAB ein Skript, mit dem Sie am Versuchsnachmittag die Beobachter-rückführung sowohl für eine beliebige Pollage mittels place als auch mittels der Riccati-Gleichung berechnen können.Verwenden Sie für die Gewichtungsmatrizen Q und R Einheitsmatrizen (siehe [1]).

82

Page 85: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

• Wie sieht die Struktur des vollständigen Beobachters aus? Erstellen Sie das SIMULINK-Subsystem (Bild 5.6) des vollstän-digen Beobachters oder zeichnen Sie dies, falls Sie kein SIMULINK zur Verfügung haben. Für die Modellbildung sollen,wie bei allen nachfolgenden Aufgaben auch, keine „State-Space-Blöcke“, sondern elementare Blöcke, wie Integratorenund Gain-Blöcke verwendet werden.

Aufgabe 19 Welche zusätzliche Nichtlinearität ist am Eingang des Beobachters notwendig?

Aufgabe 20 Beim reduzierten Beobachter seien die messbaren Zustandsgrößen die Katzposition (= x1) und der Winkel(= x3). Die jeweiligen Geschwindigkeiten (x2, x4) sollen beobachtet werden.

• Wie lauten die Matrizen A11, A12, A21, A22, b1 b2, C1undC2 nach [1]?

• Welche Dimension hat die Beobachterrückführmatrix L?

• Da mehr Freiheitsgrade (Einträge in L) als Gleichungen (Pole für Polvorgabe) zur Verfügung stehen, kann die Berech-nung der Matrix auch hier mittels Polvorgabe über den MATLAB-Befehl place erfolgen oder mittels der Riccati-Gleichung(Kalman-Filter). Schreiben Sie mit Hilfe von MATLAB ein Skript, mit dem Sie am Versuchsnachmittag die Beobachter-rückführung sowohl für eine beliebige Pollage mittels place als auch mittels der Riccati-Gleichung berechnen können.Verwenden Sie für die Gewichtungsmatrizen Q und R Einheitsmatrizen (siehe [1]). Bringen Sie dieses Skript am Ver-suchsnachmittag mit.

• Wie sieht die Struktur des reduzierten Beobachters aus? Erstellen Sie das SIMULINK-Subsystem (Bild 5.6) des reduziertenBeobachters oder zeichnen Sie dies, falls Sie kein SIMULINK zur Verfügung haben.

Aufgabe 21 Überlegen Sie, welche Tests geeignet wären, um die verschiedenen Beobachter hinsichtlich ihrer Leistungsfähig-keit zu testen.

Aufgabe 22 Diese Aufgabe ist freiwillig, kann aber die Dauer des Versuchsnachmittags deutlich verkürzen! Modellieren Siedas gesamte System (Bild 5.6) in SIMULINK. Probieren Sie verschiedene Pollagen anhand der Modelle aus. Sammeln SieErfahrung mit dem System.

5.3 Versuchsdurchführung

Hinweis: Bei allen der nachfolgenden Versuche sollten Sie wesentliche Erkenntnisse und Ergebnisse in einem Protokollfestzuhalten. Zusätzlich sollten Sie wichtige Simulationsergebnisse abspeichern.

5.3.1 Simulation

Versuch 1 Öffnen Sie die SIMULINK-Vorlage Vorlage_Sim.mdl12 (siehe Bild 5.6) und ergänzen Sie zunächst nur den Zu-standsregler (Aufgabe 15) und das Subsystem aus Aufgabe 14. Da der Winkelsensor einer nicht vernachlässigbaren Quanti-sierung unterliegt, ist evtl. ein zusätzliches Element nötig um einen glatten Verlauf des Zustandes β = x4 und damit auch derStellgröße u zu erreichen.

Verwenden Sie für den Entwurf das in Aufgabe 15 erstellte Skript. Testen Sie den Regler mit den in Aufgabe 16 entworfenenVersuchen. Ermitteln Sie die günstigste Pollage. Wie schnell lässt sich die neue Position erreichen?

Versuch 2 Fügen Sie nun den mit dem in Aufgabe 18 erstellten Skript entworfenen vollständigen Beobachter ein. VerwendenSie den in Versuch 1 entworfenen Zustandsregler. Validieren Sie die Leistungsfähigkeit des Beobachters mit den Versuchen ausAufgabe 21. In welchem Bereich der Pollage des Beobachters stellt sich das günstigste Verhalten ein?

Versuch 3 Setzen Sie nun den in Versuch 1 entworfenen Zustandsregler in Verbindung mit einem reduzierten Beobachter ein.Ermitteln Sie wieder den Bereich günstiger Pollagen für den Beobachter. Entsprechen diese in etwa denen aus der vorherigenAufgabe?

Versuch 4 Die 3 Simulationen sollen verglichen werden. Ermitteln Sie die Sprungantworten der Systeme und vergleichen Siediese. Was passiert, wenn die Lastmasse/Seillänge variiert wird? In welchem Bereich der Lastmasse/Seillänge funktioniert dieRegelung dennoch zuverlässig? Gilt dies auch für die mittels der Riccati-Gleichung entworfenen Beobachter?

12 Sie dürfen natürlich auch neue SIMULINK-Modelle erstellen.

83

Page 86: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

5.3.2 Manueller Betrieb

Öffnen Sie die Vorlage Vorlage_Man.mdl13 und verwenden Sie den fertigen Block aus der rtr-Bibliothek für die An-bindung an die reale Strecke. Als Eingang soll zunächst nicht das von der Zustandsrückführung berechnete Stellsignal,sondern der Joystick verwendet werden. Hierfür existiert ebenfalls ein fertiger Block.

Versuch 5 Die Verladebrücke soll nun manuell verfahren werden. Dazu werden Sie als Kranführer eingesetzt. Als Steuerknüp-pel steht Ihnen ein Joystick zur Verfügung; versuchen Sie möglichst gute Ergebnisse zu erzielen. Visualisieren Sie die Ausgängedes Systems und speichern Sie die Daten ab, um sie später mit den Regelungen vergleichen zu können.

Versuch 6 Lassen Sie das System auch aus einer anfänglichen Schwingung heraus starten. Versuchen Sie diese Störungmöglichst schnell auszuregeln. Protokollieren Sie diese Versuche ebenfalls.

5.3.3 Software in the Loop

Nun soll die Leistungsfähigkeit der in der Simulation entworfenen Regelungen anhand der realen Strecke getestet und mitder manuellen Regelung des Systems verglichen werden. Kopieren Sie hierfür das in 5.3.1 erstellte Modell in die VorlageVorlage_SiL.mdl13 und ersetzen Sie das Modell der Strecke gegen die in der rtr-Bibliothek erhältliche Anbindung andie reale Strecke.

Versuch 7 Führen Sie die mit der simulierten Strecke gemachten Versuche für die drei Fälle

• ohne Beobachter14

• mit vollständigem Beobachter• mit reduziertem Beobachter

nochmals mit der realen Strecke aus. Welche Gemeinsamkeiten und Unterschiede sind festzustellen?

5.4 Anhang A: Sicherheitshinweise

Folgende Sicherheitshinweise sind bei diesem Versuch unbedingt zu beachten:

• Die Praktikumsunterlagen sind vor dem Beginn von praktischen Versuchen am Aufbau genau durchzuarbeiten.• Versuche mit der Laufkatze dürfen erst ausgeführt werden, nachdem eine Einweisung durch den entsprechenden

wissenschaftlichen Mitarbeiter oder den zuständigen Hilfsassistenten erfolgt ist.• Versuche im Rahmen des regelungstechnischen Praktikums dürfen nur in Gegenwart des Hilfsassistenten erfolgen.

Hardwarearbeiten mit betriebsbereiten Geräten dürfen nur in Anwesenheit von mindestens 2 Personen im Labordurchgeführt werden.

• Veränderungen an der Hardware sind nur für Untersuchungen zulässig und dürfen nur vom Betreuer und nur beiausgeschalteten Geräten durchgeführt werden. Vor Beginn solcher Arbeiten sind die ausliegenden Vorschriften zurErsten Hilfe durchzulesen.

• Bei Verlassen des Raumes muss der Aufbau ausgeschaltet werden; bei kurzzeitigem Verlassen zumindest die Leis-tungsteile (z.B. NOTAUS-Schalter betätigen).

• Ein Erste-Hilfe-Kasten befindet sich auf dem Flur gegenüber von Raum 8.

13 Hier wurden nur die Simulationsparameter für das Anbinden an die Hardware (SiL) schon eingestellt um den Versuchsnachmittag zu ver-kürzen. Es muss lediglich noch der Parameter sample_time = 10−3 zur Verfügung gestellt werden. Wenn Sie mehr Informationen zu denEinstellungen wünschen, erfragen Sie diese bitte bei dem zuständigen Hilfsassistenten. Sie dürfen natürlich auch hier neue SIMULINK-Modelle erstellen.

14 Bitte stellen Sie zunächst einen glatten Verlauf der Stellgröße u bzw. des Zustandes β = x4 sicher (siehe Versuch 1).

84

Page 87: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Aufgabe 14

Aufgabe 18

Aufgabe 20

Aufgabe 15

?

Aufgabe 19

?

Quantisierungder Messwerte

?

?

?

?

?

Bild 5.6: SIMULINK-Modell mit zu bearbeitenden Subsystemen

85

Page 88: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Literaturverzeichnis[1] JÜRGEN ADAMY. Systemdynamik und Regelungstechnik II. Shaker, 2007.

[2] JAN LUNZE. Regelungstechnik 2. Springer Verlag, 2004.

[3] DIRK ABEL UND ALEXANDER BOLLIG. Rapid Control Prototyping: Methoden und Anwendungen Springer, 2006. (überULB online verfügbar)

[4] VDI-GESELLSCHAFT ENTWICKLUNG KONSTRUKTION VERTRIEB. VDI Richtlinie 2206: Entwicklungsmethodik für mechatro-nische Systeme. Beuth, 2004.

[5] www.mathworks.com/access/helpdesk/help/helpdesk.html

[6] www.mathworks.com/matlabcentral

86

Page 89: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6 Speicherprogrammierbare Steuerung einesMischprozesses (SPS)

Wichtiger Hinweis: Für diesen Versuch muss im Rahmen der Versuchsvorbereitung Programmcode erstellt werden. WennSie zum konkreten Versuchstermin die beschriebenen Programmteile nicht vorbereitet haben, ist es nicht möglich diegestellte Aufgabe zu lösen.Bringen Sie nur Programmcode mit, den Sie selbst erstellt haben! Aufgrund von Änderungen am Software-Frameworksind Lösungen der vergangenen Jahre nicht mehr gültig.

6.1 Einleitung

Im Laufe der Jahre hat sich der Umfang und die Komplexität von automatisierungstechnischen Anlagen stetig vergrö-ßert. In Folge dessen sind auch die Anforderungen an die entsprechenden Steuerungssysteme enorm gestiegen. Diesmündete zu Beginn der 90er Jahre in der Formulierung der Norm IEC 1131 (heute: IEC 61131), die dem Wildwuchsder Systeme Einhalt geboten hat, da ihr der größte Teil der Hersteller gefolgt ist. Teil III dieser Norm befasst sich mitProgrammiersprachen für Speicherprogrammierbare Steuerungen (SPS) und ermöglicht eine deutlich transparentereSoftwareentwicklung.

In diesem Praktikumsversuch wird das in der Norm intendierte strukturierte und effiziente Vorgehen beim Steuerungs-entwurf anhand der Steuerung eines Mischprozesses durchgespielt. Es erfolgt der Entwurf einer Rezeptsteuerung, dieden gesamten Prozess ähnlich dem Kochen nach Rezept abarbeitet. Zur Verfügung stehen ein Modell einer Mischanlageund die Kompakt-SPS SIMATIC S7-300 CPU313C der Firma SIEMENS, deren Programmierung über einen PC mit Hilfeder Software SIMATIC Step 7 V5.5 erfolgt. Ziel ist es, das Steuerungsprogramm modularisiert vorzubereiten, sodass eineAnpassung an ein konkretes Rezept bequem möglich ist.

Der vorliegende Versuch besteht aus einer überschaubaren Anzahl von Aktoren und Sensoren. Sicherlich würde aucheine unstrukturierte und nicht modular aufgebaute Programmierweise zum Erfolg führen. Verlässt man jedoch die Mo-dellwelt und betrachtet reale Projekte aus der Automatisierungstechnik, z.B. eine Mälzerei zur Herstellung von Malz fürBier (200 Antriebe, 1400 Stellsignale,...), kann man mit der richtigen Herangehensweise effizienter zum Erfolg gelangen.

Im Folgenden werden die Bestandteile der IEC 61131 angesprochen und erläutert, und die Hard- und Software desVersuchs erklärt. Anschließend werden bereits implementierte und die noch zu implementierenden Funktionen – also dieeigentliche Aufgabe – angegeben.

6.2 SPS-Programmierung nach IEC 61131

Gemäß IEC 61131 gliedert sich jedes SPS-Programmiersystem in drei Teile: Das Softwaremodell, das Kommunikations-modell und das Programmiermodell.Das Softwaremodell beschreibt die Architektur des gesamten SPS-Programmiersystems. Das Kommunikationsmodell legtfest, wie die Kommunikation zwischen den einzelnen Programmorganisationseinheiten (POE) definiert ist. Das Program-miermodell beschreibt, wie Anwenderprogramme erstellt werden. Dies umfasst die Wahl der Programmiersprache undder Anwender-Funktionsbausteine.

87

Page 90: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.2.1 Softwaremodell

Das Softwaremodell beschreibt die Architektur des gesamten SPS-Programmiersystems und ist in Bild 6.1 dargestellt. Inder Systemkonfiguration wird die Hardwarestruktur für das Programmiersystem definiert (z.B. Zuordnung von Variablenund E/A-Kanälen). Ressourcen sind Einsteckkarten wie CPUs oder Feldbusankopplungen.

STEUERUNGSKONFIGURATION

Ressource 1

Task MTask 1 ...

...Programm 1 Programm N

FBs FCsFBsFCs

Ressource X

Task MTask 1 ...

...Programm 1 Programm N

FBs FCsFBsFCs

globale Variablen

Bild 6.1: Architektur des Programmiersystems1

Auf einer CPU können eine oder mehrere Tasks ablaufen, die das zeitliche Nacheinander der Programme organisieren.Wichtig ist hierbei, dass alle Programme, die einer Task zugeordnet sind, mit der gleichen Zykluszeit ablaufen und nachdem so genannten EVA-Prinzip abgearbeitet werden:

• Einlesen der Eingangszustände,• Verarbeitung der Informationen im SPS-Programm,• Ausgeben der Ausgangssignale.

Das heißt, erst nachdem alle Programme einer Task abgearbeitet sind, erfolgt die gleichzeitige Ausgabe der Ausgangssi-gnale.

Die Programmierung findet in den Programmorganisationseinheiten (POE) statt. Hierbei unterscheidet man zwischen:

• Programm (Gruppierung von Funktionen und Funktionsbausteinen),• Funktion (kann keine internen Werte speichern) und• Funktionsbaustein (FB) (kann interne Zwischenwerte speichern).

FBs können selbst wieder aus Funktionen und FBs bestehen. Neben der Möglichkeit, eigene Funktionen und Funkti-onsbausteine zu programmieren, können auch Standard-Funktionen und -Funktionsbausteine verwendet werden. ImVersuch können jedoch nur Funktionsbausteine selbst programmiert werden.Jede POE besteht aus zwei Teilen: dem Deklarationsteil und dem Anweisungsteil. Im Deklarationsteil werden die ver-wendeten Ein- und Ausgänge, sowie die internen Variablen und eventuell verwendete FBs deklariert. Im Anweisungsteilfindet die eigentliche Programmierung statt.Schließlich sind noch die Variablen zu nennen. Variablen bezeichnen Datenelemente, deren Inhalt sich ändern kann. DieVariablen können in zwei Gruppen eingeteilt werden: Variablen, die zum Zwischenspeichern von internen Daten dienenund direkt dargestellte Variablen, die mit Ein- und Ausgängen der SPS verbunden sind. Eine Variable wird durch einen Na-men – den Bezeichner – gekennzeichnet. Der Name beginnt mit einem Buchstaben (a bis z) oder einem Unterstrichzeichenund kann aus einer Folge von Groß- und Kleinbuchstaben, Ziffern und Unterstrichzeichen bestehen.

• Variablen zum Zwischenspeichern von internen Daten werden blockweise deklariert, d.h. Variablen mit dem glei-chen Gültigkeitsbereich werden in einem Block begrenzt. Ein einleitendes Schlüsselwort, welchem ein Gültig-keitsbereich zugewiesen ist, beginnt den Block und das abschließende Schlüsselwort END_VAR beendet den Block.Sollen z.B. zwei lokale Variablen (Schlüsselwort VAR) vom Datentyp BOOL (lokaleBool1 und lokaleBool2) verwen-det werden, so muss die Deklaration folgendermaßen aussehen:

1 aus: Speicherprogrammierbare Steuerungen, Seitz, S. 51, Bild 3.1

88

Page 91: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

VAR

lokaleBool1: BOOL;

lokaleBool2: BOOL;

END_VAR

Hier eine Übersicht über die wichtigsten Gültigkeitsbereiche und ihre Schlüsselwörter:

VAR „Lokale Variable“, nur gültig innerhalb der POE, in der sie deklariert wurde.

VAR_GLOBAL Eine Variable wird als „globale Variable“ deklariert, wenn sie in einem Programm gelten soll undin allen FBs, die von diesem Programm aufgerufen werden. Eine im Programm deklarierte globale Variable istinnerhalb des Programms sowie innerhalb der FBs bekannt, die von diesem Programm aufgerufen werden.In allen aufgerufenen FBs, in denen diese globale Variable verwendet wird, muss sie als VAR_EXTERNAL mitdemselben Bezeichner (Namen) deklariert werden.

VAR_EXTERNAL Wird eine globale Variable innerhalb eines FB verwendet, so muss sie als „VAR_EXTERNAL“mit demselben Bezeichner (Namen) deklariert werden.

VAR_INPUT Deklariert eine „Eingangsvariable“, wenn die Variable innerhalb eines FB nur gelesen werden solloder wenn sie für die Parameterübergabe in einem FB benutzt werden soll. Damit darf die Variable in diesemFB nicht verändert werden.

VAR_OUTPUT „Ausgangsvariable“ eines FBs.

VAR_IN_OUT Eine IN_OUT-Variable wird vom FB gelesen, verarbeitet und unter demselben Namen ausgege-ben; sie wird daher auch Durchgangsparameter genannt. Da sich eine Operation auf eine IN_OUT-Variabledirekt auf den Inhalt der übergebenen Variable auswirkt, darf diese übergebene Variable keinen Schreib-schutz besitzen, wie z. B. Variablen mit dem Attribut CONSTANT.

• Direkt dargestellte Variablen: Bei der Deklaration einer direkt dargestellten Variablen wird das Schlüsselwort ATbenutzt. Es steht vor der physikalischen Adresse der Variablen. Des Weiteren enthält die Deklaration unter ande-rem Informationen darüber, ob es sich um einen Eingang oder einen Ausgang handelt.Beispielsweise soll dem digitalen Eingang 0.1 der Name dEingang1 und dem digitalen Ausgang 1.0 der NamedAusgang1 zugeordnet werden. Beide Variablen sollen global verfügbar sein. Die Deklaration sieht folgenderma-ßen aus:

VAR_GLOBAL

dEingang1 AT %I0.0.0.0.1 : BOOL ;

dAusgang1 AT %Q0.0.0.1.0 : BOOL ;

END_VAR

Direkt dargestellte Variablen können im Funktionsbaustein entweder als externe Variablen verwendet werden,oder die Parameterübergabe der Variablen geschieht über VAR_IN_OUT an den Funktionsbaustein.

6.2.2 Kommunikationsmodell

Der Datenaustausch kann nicht nur innerhalb eines Programms, sondern auch zwischen Programmen erfolgen.Der Datenaustausch innerhalb eines Programms erfolgt durch Verquellung der Ein- und Ausgangsvariablen, d.h., ver-wendete Funktionen oder Funktionsbausteine liefern Rückgabewerte, die weiterverarbeitet werden. Funktionsbausteinemüssen im Deklarationsteil instanziert werden.Als Beispiel betrachten wir einen Funktionsbaustein, der zwei Eingänge e1 und e2 und einen Ausgang a1 – jeweilsvom Datentyp Integer – besitzt. Des Weiteren wird lokal ein RS-Flipflop und eine Variable vom Datentyp Bool mit derBezeichnung varBool benötigt. Der Deklarationsteil sieht dann folgendermaßen aus:

VAR_INPUT

e1: INT;

e2: INT;

END_VAR

VAR_OUTPUT

a1: INT;

END_VAR

VAR

89

Page 92: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

varBool: BOOL;

rsInstanz: RS;

END_VAR

rsInstanz steht hierbei für den Namen der Instanz bzw. Variablen, RS bezeichnet den Funktionsbaustein.Der Datenaustausch zwischen Programmen kann nur mittels globaler Variablen erfolgen. Dies birgt die Gefahr dass derProgrammcode unübersichtlich wird. Daher sollte die Kommunikation zwischen Programmen auf das Nötigste beschränktbleiben.

6.2.3 Programmiermodell

Insgesamt sind zwei Textsprachen und drei grafische Sprachen normiert. Bei den Textsprachen handelt es sich um dieAssembler-ähnliche Anweisungsliste (AWL) und den Strukturierten Text (ST), einer Pascal oder C ähnlichen Hochsprache.Die drei grafischen Sprachen sind

• die Ablaufsprache (AS, Programmierung von Schrittketten),

• die Funktionsbausteinsprache (FBS/FUP, angelehnt an Blockschaltbilder) und

• der Kontaktplan (KOP, Abbildung früherer Relais-Schaltungen).

Es ist möglich, Anwender-Funktionsbausteine zu erstellen und damit das Programmieren modular und übersichtlich zugestalten. In Anlehnung an die Terminologie der objektorientierten Programmierung kann der Funktionsbaustein alsKlasse und dessen Einfügen im Programmcode als Instanzierung eines Objektes bezeichnet werden.

6.2.4 Hinweis

In diesem Versuch sollen ausschließlich der IEC 61131 Norm entsprechende Funktionen und Funktionsbausteine (FBs),sowie die vorgegebenen und von den Studenten programmierten FBs, verwendet werden. Das Einhalten der Normermöglicht eine herstellerübergreifende Programmierung. Als Programmiersprache soll die Funktionsbausteinspracheverwendet werden.

6.3 Ablauf- und Rezeptsteuerung

6.3.1 Ablaufsteuerung

Mit Hilfe von Ablaufsteuerungen lassen sich Prozessabläufe sehr einfach nachbilden. Im Gegensatz zu Verknüpfungs-steuerungen, die meist quasikontinuierlich ablaufen, sind Ablaufsteuerungen ereignisdiskret. Die einzelnen Schritte sinddurch Weiterschaltbedingungen getrennt und werden aktiviert, wenn die vorangehende Weiterschaltbedingung erfülltist. Ein einfaches Beispiel zeigt Bild 6.2.

6.3.2 Ablaufkette in Funktionsbausteinsprache (FBS)

Da mit der Ablaufsprache (AS) nach IEC 61131 eine sehr intuitive, grafische Möglichkeit zur Programmierung von se-quenziellen Prozessen zur Verfügung steht, liegt es nahe, Ablaufsteuerungen mittels AS zu realisieren. Zwei Gründekönnen jedoch gegen die Verwendung von AS sprechen. Erstens kann es sein, dass der Kunde eine bestimmte Sprachezur Programmierung des Steuerungssystems vorgibt. Dies ist z. B. der Fall, wenn eine bestehende Steuerung erweitertwerden soll, oder wenn betriebsinterne Gründe wie die Qualifikation des Bedienpersonals dem Wechsel auf eine ande-re Sprache entgegenstehen. Ein zweiter, softwaretechnischer Grund ist, dass ab einem bestimmten Umfang des Steue-rungsprogramms die grafische Darstellung in AS kompliziert und sehr unübersichtlich wird - vor allem, wenn zwischenBetriebsarten (Automatik-/Handbetrieb) umgeschaltet werden muss. Deshalb ist als Sprache FBS vorgegeben, um dieMischprozesssteuerung des Versuches zu realisieren.Bild 6.3 zeigt den prinzipiellen Aufbau einer Ablaufsteuerung in FBS (Deklarations- und Anweisungsteil sind nur Aus-schnitte).Jeder Zustand besteht aus einer Instanz des Funktionsblocks „SCHRITTBAUSTEIN“ und einem Anweisungsteil. Der An-weisungsteil wird bearbeitet bzw. darf Variablen setzen oder zurücksetzen, falls er durch den ihm zugeordneten Schritt-baustein aktiviert wird. Eine Aktivierung bleibt solange bestehen, bis die Transitionsbedingungen des aktiven Schrittbau-steins erfüllt sind. Ist dies der Fall, wird die lokale Variable Schrittzeiger auf die Nummer des nächsten Schrittes gesetztund der nächste Schritt somit aktiviert.

90

Page 93: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Initialisierung

Zustand 1

Anweisung 1Anweisung 2...

Transition

Bedingung 1Bedingung 2...

Zustand 2

Anweisung 1Anweisung 2...

Transition

Bedingung 1Bedingung 2...

Transition

Bedingung 1Bedingung 2...

Bild 6.2: Elemente der Ablaufsprache

Transitions-bedingung

Nummer

Schrittzeiger Schrittzeiger

aktiv

Schritt 1

Nächster

Zustand 1

Anweisung 1Anweisung 2...

Transitions-bedingung

Nummer

Schrittzeiger Schrittzeiger

aktiv

Schritt 2

Nächster

Zustand 2

Anweisung 1Anweisung 2...

1

2

2

3

POE Funktionsbaustein/Programm

Deklarationsteil Anweisungsteil

VARSchritt 1: SCHRITTBAUSTEIN;Schritt 2: SCHRITTBAUSTEIN;Schrittzeiger: INT;END_VAR

Bild 6.3: Aufbau einer Ablaufsteuerung in FBS

91

Page 94: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.3.3 Rezeptsteuerung

Um die Übersichtlichkeit von Ablaufketten weiter zu erhöhen ist es sinnvoll, diese in kurze, wiederverwendbare Kettenaufzuteilen. Die kurzen Ketten werden dann von einer übergeordneten Rezeptsteuerung aufgerufen. Dieses Vorgeheneignet sich z. B. zur Steuerung von diskontinuierlichen Prozessen der chemischen Industrie.Als Beispiel wollen wir die Zubereitung eines Menüs betrachten. Dieser Prozess lässt sich in Grundoperationen wie z. B.“Suppe kochen” oder “Hauptgang zubereiten” aufteilen. Die Grundoperationen wiederum bestehen aus einer Abfolge vonGrundfunktionen wie Rühren, Salzen, Erhitzen, usw. Sowohl Grundoperationen als auch Grundfunktionen sind kurze,wiederverwendbare Ablaufketten, die je nach Rezept miteinander kombiniert werden. Ein bestimmtes Menü entstehtdann, indem die unabhängigen Grundoperationen und -funktionen gemäß einem Rezept miteinander kombiniert werden.Weiterhin sind durch das Rezept die Art und Menge der Zutaten festgelegt.

92

Page 95: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.4 Versuchsaufbau - Hardware

6.4.1 Gunt RT 800

Die Mischanlage (Bild 6.4) besteht aus dem Grundgestell mit einem Vorratstank, einer Zentrifugalpumpe und einer De-monstrationstafel.

Sensor 1

Sensor 2

Sensor 3

Sensor 4

Sensor 5

Sensor 6

Sensor 7

Sensor 8

Sensor 9

Valve 1 Valve 2 Valve 3 Valve 4 Valve 5 Valve 6

Valve 7

Valve 8

Stirrer

Pump

Tank links (TL) Tank mitte (TM) Tank rechts (TR)

Mischtank (MT)

Bild 6.4: Schematischer Aufbau der Mischanlage RT 800

Eine Pumpe fördert Wasser und befüllt, gesteuert über Magnetventile, drei kleinere Tanks (TL, TM, TR). Mit Hilfe vonje zwei kapazitiven Näherungsschaltern, deren Empfindlichkeit eingestellt werden kann, wird der Füllstand in den dreikleineren Tanks überwacht.Im nachgeschalteten Mischtank (MT) lässt sich ein Mischvorgang des Fluids aus den drei kleineren Tanks realisieren. DerMischbehälter ist mit drei Näherungsschaltern versehen. Ein Rührwerk unterstützt den Mischvorgang.Das Modell besitzt ein Laborbuchsenfeld, über welches Signale der kapazitiven Näherungsschalter an die SPS geleitetund verarbeitet werden können. Umgekehrt können mit Signalen von der SPS alle Magnetventile individuell angesteuertwerden.Um Wasser vom Vorratstank in einen der drei kleineren Tanks zu befördern, muss die Pumpe aktiviert und das Zulauf-ventil des entsprechenden Tanks geöffnet sein.

Ist die Pumpe aktiv, muss zusätzlich das Ventil für den Wasserkreislauf (Ventil 7) geöffnet sein. Damit wird verhin-dert, dass ein zu hoher Druck im Kreislauf aufgebaut wird, falls alle Zulaufventile geschlossen sind.

93

Page 96: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.4.2 Siemens SIMATIC S7− 300 CPU313C

Zur Steuerung der Mischanlage wird die speicherprogrammierbare Steuerung CPU313c (Bild 6.5) der Firma SIEMENS

eingesetzt. Insgesamt verfügt die SPS über 24 integrierte Digitaleingänge sowie 16 Digitalausgänge. Darüber hinaus sind5 Analogein- und 2 Analogausgänge für Strom-/Spannungssignale vorhanden.

Bild 6.5: Vorderansicht der im Versuch verwendeten SPS CPU313C, © Siemens AG 2015, Alle Rechte vorbehalten

6.4.3 SPS Modul IA 130

Das SPS Modul IA 130 (Bild 6.6) der G.U.N.T. Gerätebau GmbH dient der einfachen und flexiblen Verbindung von SPSund Mischanlage. Auf der Frontplatte befinden sich eine Stromversorgung für 24VDC, 8 Meldeleuchten und 8 Schalter (4Taster, 2 Schließer, 2 Öffner). Leuchten und Schalter sind mit Laborbuchsen verbunden. Weiter sind 16 Anschlussbuchsenfür digitale Eingänge der SPS und 14 für digitale Ausgänge sowie 2 Analogeingänge und 1 Analogausgang vorhanden.

Bild 6.6: IA 130 mit SPS CPU313c

94

Page 97: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.5 Versuchsaufbau - Software

6.5.1 Siemens SIMATIC Step 7 V5.5

Zur Programmierung der SPS im Versuch steht die Software SIMATIC Step 7 V5.5 zur Verfügung. Nachfolgend werdendie wichtigsten Grundelemente zum Umgang mit der Software erläutert.

Simatic Manager

Beim Aufruf von SIMATIC STEP 7 öffnet sich zunächst der SIMATIC Manager (Bild 6.7). In diesem werden aktuell ge-öffnete Projekte angezeigt. Auf der linken Seite ist die Programmstruktur dargestellt. Diese beinhaltet die Hardware-Konfiguration unter Projektname → SIMATIC 300(1) → Hardware (hier: CPU 313C) sowie das S7-Programm. DasS7-Programm besteht aus mehreren Unterprogrammen, den sogenannten Bausteinen, zu finden unter Projektname →SIMATIC 300(1) → Hardware → S7-Programm → Bausteine. Es empfiehlt sich die Ansicht auf Details umzustellen,da so die Symbolnamen neben den Baustein-Objektnamen gelistet werden.Durch das Klicken auf die Schaltfläche Laden (8. Symbol in der Symbolleiste) oder über Zielsystem→ Laden werden dieBausteine kompiliert und auf die SPS-Anlage übertragen. Dabei ist darauf zu achten, dass nur aktuell markierte Bausteineübertragen werden.

Bild 6.7: Oberfläche des SIMATIC Manager

95

Page 98: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Erstellen einer POE

Über Einfügen → S7-Baustein kann eine neue POE (Programmorganisationseinheit) vom gewünschten Typ erstelltwerden. Anschließend muss der POE eine eindeutige Nummer zugewiesen werden. Zur besseren Übersicht ist es empfeh-lenswert, dem Baustein auch einen symbolischen Namen zu geben. Als Erstellsprache ist die Funktionsbausteinsprache„FUP“ auszuwählen. Wird ein neuer Funktionsbaustein erstellt, ist darauf zu achten, dass der Haken bei „Multiinstanzfä-hig“ gesetzt ist.Sind alle Eingaben gemacht, wird mit einem Klick auf „OK“ der Baustein erstellt. Er ist nun in der Liste der Bausteineverfügbar.

Der KOP/AWL/FUP-Editor

Ein Baustein wird durch einen Doppelklick im KOP/AWL/FUP-Editor geöffnet und kann bearbeitet werden. Der Editor istwie in Bild 6.8 in die drei Fenster Deklarationsteil (oben rechts), Anweisungsteil (unten rechts) und Programmelemente(links) gegliedert.

Bild 6.8: Oberfläche des Editors

96

Page 99: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Variablendeklaration und SymboltabelleEntgegen der in Abschnitt 6.2.1 vorgestellten Variablendeklaration weicht die Deklaration in Step 7 etwas ab und wird

daher an dieser Stelle kurz erläutert.Die verwendeten Variablen werden der entsprechenden Schnittstelle in Tabellenform zugeordnet. Durch diese Zuord-nung sind einleitendes und abschließendes Schlüsselwort (VAR, END_VAR) nicht erforderlich. Step 7 verwendet folgendeSchnittstellen:

IN Eingangsvariable

OUT Ausgangsvariable

IN_OUT IN_OUT-Variable

STAT Eine statische Variable behält ihren Wert über den Aufruf des Bausteins hinaus bei. Werden andere Funktions-bausteine verwendet, müssen sie als statische Variable instanziert werden. Anschließend stehen die deklariertenInstanzen unter Multiinstanzen zur Verfügung.

TEMP Eine „temporäre“ bzw. „lokale“ Variable wird bei jedem Zyklus neu erzeugt.

Globale Variablen werden in der Symboltabelle deklariert. Sie können von allen Programmen aufgerufen werden undhaben die speichernde Eigenschaft statischer Variablen, ohne dass sie im Programm deklariert werden müssen. DieSymboltabelle wird im Editor über Extras → Symboltabelle geöffnet. In ihr werden auch symbolische Namen für diephysikalischen Ein- und Ausgängen der SPS festgelegt.

Verwenden einer FunktionBevor eine Funktion verwendet werden kann, muss ein neues Netzwerk erstellt werden. Dies geschieht durch

Rechtsklick an eine freie Stelle im Anweisungsteil und Auswahl des Punktes „Netzwerk einfügen“ im Kontextmenü.Anschließend kann die Funktion per Drag & Drop aus den Progammelementen unter FC Bausteine dem Netzwerk hin-zugefügt werden.

Verwenden eines FunktionsbausteinsBevor ein Funktionsbaustein verwendet werden kann, muss im SIMATIC Manager ein Datenbaustein für diesen Funk-

tionsbaustein erstellt werden. Dies geschieht wie zuvor über Einfügen → S7-Baustein. Dem Datenbaustein muss eineeindeutige Nummer zugewiesen werden. Für den Typ wählt man im Untermenü „Instanz-DB“ aus und setzt schließlichden Verweis auf den Funktionsbaustein, für den der Datenbaustein erstellt werden soll. Nun kann der Funktionsbausteinim Deklarationsteil der POE unter der Schnittstelle „STAT“ instanziert werden, sodass er als Multiinstanz zur Verfügungsteht. Pro Funktionsbaustein ist nur ein Datenbaustein erforderlich. Der Funktionsbaustein kann dann beliebig oft inunterschiedlichen Programmen verwendet werden. Zu beachten ist, dass bei mehrfacher Verwendung in einer POE auchmehrere Instanzen deklariert werden müssen.

Hinweis:

• Der Funktionsbaustein wird als rechteckiges Schaltzeichen dargestellt. An den linken Anschlusslinien werden dieEingangsoperanden und an den rechten Anschlusslinien die Ausgangsoperanden angegeben. Innerhalb des Recht-ecks steht der Name des Funktionsbausteins, auf der linken Seite die Namen der Eingänge, auf der rechten Seitedie Namen der Ausgänge.

• Ein Funktionsbaustein stellt ein eigenes Netzwerk dar, d. h. es können keine Funktionen und Funktionsbausteinedirekt mit den Ein- oder Ausgängen eines Funktionsbausteins verbunden werden.

• Die Ein- und Ausgänge des Funktionsbausteins, die nicht verwendet werden, erhalten keinen Operanden. Die zu-gehörigen Anschlusslinien bleiben ohne Bezeichnung frei stehen. Dafür den entsprechenden Anschluss markierenund aus dem Kontextmenü (rechte Maustaste) löschen wählen. Die Parameterübergabe kann auch außerhalb desFunktionsbausteins erfolgen. In diesem Fall wird der Funktionsbaustein ohne äußere Beschaltung abgebildet.

• In Step 7 verfügen Funktionen und Funktionsbausteine über einen Freigabeeingang EN sowie einen Freigabeaus-gang ENO. Über EN kann die Abarbeitung eines Bausteins an ein Freigabesignal geknüpft werden. Der AusgangENO führt eine 1, wenn der Baustein fehlerfrei abgearbeitet wurde. Da diese Freigaben nicht dem IEC Standardentsprechen, werden sie in diesem Versuch nicht verwendet.

• Solange Fehler im Funktionsbaustein bestehen bzw. sich die Inputs/Outputs des Funktionsbausteins mit deneneiner Instanz unterscheiden, kommt es im Anweisungsteil zu Problemen (Instanzen werden nicht erkannt, Instanzkann nicht eingefügt werden, etc.).

97

Page 100: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.5.2 WinSPS-S7 V6

Da Step 7 eine kostenpflichtige Lizenz erfordert und keine geeignete Demoversion existiert, kann zur Programmierungder Vorbereitungsaufgaben die Software WinSPS-S7 V6 der MHJ-Software GmbH & Co. KG verwendet werden. Zwar istauch dieses Programm kommerziell, eine zeitlich beschränkte Nutzung als Demoversion ist jedoch möglich. Eine weitereEinschränkung in der Demo ist die limitierte Anzahl an Netzwerken pro Baustein. Es können maximal 20 Netzwerkeeingefügt werden. Für die Vorbereitung ist dies mehr als ausreichend. Um die Funktionalität eines Programms ohne ver-fügbare Hardware zu testen, bietet die Software einen Simulator an. Dieser ist in der Demo auf 300 Befehle im Zyklusbeschränkt. Daher können lediglich kleine Programme getestet werden.

Downloaden und installieren Sie die WinSPS-S7 Software von folgender Webseite: http://www.winplc7.com/v6/

Laden Sie sich zusätzlich von der Homepage des Praktikums Regelungstechnik II das vorbereitete Projekt mit dem NamenSPS_Student herunter und entpacken es.

Nach dem Start von WinSPS-S7 wird der HOME-Bereich angezeigt. Der gelbe Kasten weist darauf hin, dass es sichum eine Demoversion handelt. Die Nutzungsdauer ist auf 5 Nutzungstage begrenzt.

Vom HOME-Bereich aus kann unter Nächste Aktionen eine Projektmappe geöffnet werden. Wählen Sie im Öffnen-Dialog die zuvor entpackte Datei SPS_Student.WS7 aus.

Das Programmfenster wird nun in unterschiedliche Bereiche aufgeteilt (Bild 6.9). Auf der linken Seite ist die Pro-jektmappe mit dem Projektbaum dargestellt. Hier können bei Bedarf zusätzliche Informationen wie beispielsweise dieZielhardware eingetragen werden. Im großen Hauptfenster wird das geöffnete Projekt unter dem Reiter Projektinhaltangezeigt. Im unteren Bereich befindet sich die Symboltabelle. Sie wird dauerhaft angezeigt und beinhaltet bereits dievorhandenen Symbolzuordnungen. Jeder neue Baustein, der einen symbolischen Namen erhalten soll, muss hier ein-getragen werden. Im Gegensatz dazu wird in Step 7 ein symbolischer Name direkt bei der Erstellung eines Bausteinsangegeben. Am rechten Bildschirmrand ist eine Schnellstartleiste zu finden, die direkten Zugriff auf verschiedene Funk-tionen bietet.

Um einen vorhandenen Baustein zu bearbeiten, muss er markiert und über die Schaltfläche Öffnen aufgerufen wer-den. Alternativ ist auch ein Doppelklick auf das Objekt möglich. Es öffnet sich im Hauptfenster ein neuer Reiter mitdem Objektnamen des Bausteins. Analog zu Step 7 werden im oberen Bereich die Variablen in Tabellenform deklariert.Darunter erfolgt die Implementierung der Netzwerke mithilfe der Programmelemente, die unter dem Reiter Katalog amlinken Bildschirmrand zu finden sind. Bei der Eingabe neuer Variablen ist es sinnvoll die Tab-Taste zu verwenden, um zumnächsten Eingabefeld zu springen. Am Ende der Zeile wird mit dem nächsten Tab automatisch eine neue leere Zeile desselben Variablentyps eingefügt. Alternativ lässt sich über einen Rechtsklick eine Zeile einfügen. Zum Deklarieren einerMultiinstanz eines vorhandenen Bausteins muss bei Typ der Objektname, z. B. FB3, eingetragen werden. Mit einem Klickauf das Minus-Symbol links neben der Tabelle lässt sich diese ausblenden. Durch Verschieben der grauen Balken mit derMaus kann die Größe der einzelnen Anzeigebereiche angepasst werden.

98

Page 101: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bild 6.9: WinSPS mit dem zu vervollständigenden Projekt

6.5.3 Software-Framework

Das heruntergeladene Projekt ist schon teilweise funktionsfähig und soll im Rahmen der Vorbereitung von Ihnen ver-vollständigt werden. Bild 6.27 auf Seite 114 zeigt schematisch den Aufbau des gesamten Programms aus einzelnenFunktionsbausteinen und wie diese miteinander in Beziehung stehen. Noch nicht implementierte Funktionsbausteinesind gestrichelt gezeichnet, bereits vorhandene durchgezogen.

6.5.4 Bereits implementierte Bausteine

Nachfolgend werden die bereits vorhandenen Funktionsbausteine „ZUSTAND“, „MODUS“, „ANZEIGE“, „BLINK“, „ANLA-GE“ und „TIMER“, sowie die Funktion „SELECT“ beschrieben. Ihre Funktionsweise sollte zum besseren Verständnis auchanhand ihrer Implementierung in WinSPS betrachtet werden.

ZUSTAND

Die drei Ausgänge des Funktionsbausteins „ZUSTAND“ geben den augenblicklichen Zustand der Anlage an. Sie werdenin Abhängigkeit der Signale von Start- und Stoptaster, dem gewählten Modus, der Rezeptsteuerung und dem Fehlersignalgesetzt. Die Anlage kann sich also entweder im Zustand „STOP“, „STANDBY“ oder „REZEPT_LAEUFT“ befinden.Wenn Sie den Baustein öffnen, wird Ihnen nicht das Bild 6.10 angezeigt, sondern was in ihm steckt, d. h., wie er im-plementiert ist. Bild 6.10 zeigt Ihnen die Ein- und Ausgänge des Bausteins und wie er bei der Verwendung in anderenProgrammen angezeigt wird.

99

Page 102: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

"ZUSTAND"FB11FB11

EN

TASTER_START

TASTER_STOP

REZEPT_FERTIG

MODUS_AUTO

MT_OBEN

REZEPT_LAEUFT

STANDBY

STOP

ENO

TM_UNTEN PUMPE

Bild 6.10: Schnittstellen des Funktionsbausteins „ZUSTAND“

MODUS

Es gibt zwei Betriebsarten: Manuell und Automatisch. In welchem sich die Anlage befindet, hängt vom Taster für dieBetriebsart sowie von etwaigen Fehlermeldungen der Anlage ab. Im manuellen Modus wird das Rezept nur einmaldurchlaufen, im automatischen Modus dauerhaft.

"MODUS"FB12FB12

EN

REZEPT_LAEUFT

STOP

TASTER_MODUS

MANUELL

AUTO

ENO

Bild 6.11: Schnittstellen des Funktionsbausteins „MODUS“

ANZEIGE

In Abhängigkeit von Zustand und Modus der Mischanlage werden hier die Ausgangssignale für die Anzeigeinstrumentegeneriert (Bild 6.12).

• „ANZEIGE_ZUSTAND“: aus: STOP, an: STANDBY, blinken: Rezept läuft,

• „ANZEIGE_MODUS“: aus: Manuell, an: Automatisch,

• „ANZEIGE_FEHLER“: aus: kein Fehler, blinken: Fehler,

• „ANZEIGE_AKTOR“: aus: Pumpe aus, an: Pumpe läuft.

100

Page 103: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

"ANZEIGE"FB13FB13

EN

REZEPT_LAEUFT

STANDBY

MODUS_AUTO

PUMPE

ANZEIGE_ZUSTAND

ANZEIGE_MODUS

ANZEIGE_FEHLER

ANZEIGE_AKTOR

ENO

TM_UNTEN

Bild 6.12: Schnittstellen des Funktionsbausteins „ANZEIGE“

BLINK

Der Funktionsbaustein „BLINK“ ist ein Impulsgenerator mit vorgebbarer Impuls- und Pausendauer.

"BLINK"FB131FB131

EN

ZEIT_AN

ZEIT_AUS

BLINK

ENO

Bild 6.13: Schnittstellen des Funktionsbausteins „BLINK“

ANLAGE

Der Funktionsbaustein „ANLAGE“ übernimmt die Verwaltung des Mischprozesses. Im Einzelnen bedeutet dies:

• Ermittlung des Modus („automatik“ oder „manuell“) aus dem Signal des Moduswahl-Tasters und dem Fehlersignal.

• Ermittlung des Zustandes der Anlage („STOP“, „STANDBY“ oder „REZEPT_LAUEFT“) aus den Signalen von Start-und Stoptaster und dem aktuellen Modus („automatik“ oder „manuell“). Ebenso hängt der Zustand davon ab, obdas aktuelle Rezept abgearbeitet wurde und ob ein Fehler vorliegt.

• Ansteuern der Anzeige für Zustand, Modus und Fehler.

• Erkennen, ob die Sensoren unzulässige Signale liefern. Dieser Teil soll von Ihnen durch Implementieren einesFunktionsbausteins „SENSORFEHLER“ übernommen werden.

101

Page 104: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

"ANLAGE"FB1FB1

EN

TASTER_START

TASTER_STOP

TASTER_MODUS

REZEPT_FERTIG

TL_OBEN

TL_UNTEN

TM_OBEN

TM_UNTEN

TR_OBEN

TR_UNTEN

MT_OBEN

MT_MITTE

MT_UNTEN

PUMPE

REZEPT_LAEUFT

STANDBY

STOP

ANZEIGE_ZUSTAND

ANZEIGE_MODUS

ANZEIGE_FEHLER

ANZEIGE_AKTOR

ENO

TM_UNTEN PUMPE

Bild 6.14: Schnittstellen des Funktionsbausteins „ANLAGE“

SELECT

Dieser FC Baustein ist eine Art Multiplexer. An Eingang G wird eine Variable vom Datentyp BOOL erwartet. Ist dieseVariable FALSE, so wird der Eingang IN0 mit dem Ausgang verbunden. Ist sie TRUE, so wird Eingang IN1 mit demAusgang verbunden.

"SELECT"

FC1FC1

EN

G

IN0

IN1

OUT

ENO

Bild 6.15: Schnittstellen des Funktionsbausteins „SELECT“

102

Page 105: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

TON

Der TON-Baustein ist ein Timer, mit dem eine Einschaltverzögerung realisiert wird. Am Eingang PT kann eine beliebigeZeitdauer vorgegeben werden. Diese muss im Format „T#15S“ angegeben werden. In diesem Fall reagiert der AusgangOUT mit einer Verzögerung von 15 Sekunden auf eine positive Flanke am Eingang IN. Bei einer negativen Flanke amEingang folgt der Ausgang sofort. Die Funktionsweise des Timers wird in Bild 6.17 veranschaulicht.

Bild 6.16: Schnittstellen des Funktionsbausteins „TON“

IN

Q

ET

t0 t1 t2 t3 t

t

t

PT

t0+ PT

PT

Bild 6.17: Funktionsweise eines Timers mit Einschaltverzögerung

103

Page 106: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.6 Vorbereitung

In diesem Praktikumsversuch soll die Mischanlage mithilfe der SPS in Betrieb genommen werden. Dazu muss die SPSprogrammiert werden. Als Vorbereitung sind daher mehrere Funktionsbausteine zu implementieren. Je besser Sie dieProgramme verstanden haben, desto schneller sind Sie am Versuchsnachmittag mit der Implementierung der Funktions-bausteine in der SPS.

Um das Framework zu vervollständigen, müssen von Ihnen die folgenden Funktionen implementiert werden:

• Kontinuierliche Überwachung der Füllstände. D. h. wird in einem der Tanks (TL, TM, TR) der untere Füllstands-sensor unterschritten, soll dieser wieder aufgefüllt werden.

• Rezeptsteuerung mit wahlweise automatischer oder manueller Wiederholung (das genaue Rezept wird erst imPraktikum bekannt gegeben)

• Kontinuierliche Fehlerüberwachung (Laufzeitfehler, unzulässige Sensorsignale)

Eine günstige Aufteilung dieser Funktionen auf Funktionsbausteine ist bereits erfolgt. Ihre Aufgabe ist die Ergänzung desvorhandenen Programms um die noch fehlenden Bausteine.

6.6.1 Zu implementierende Funktionsbausteine

In der Vorbereitung sollen Sie die Funktionsbausteine „SENSORFEHLER“, „SCHRITTBAUSTEIN“, „DOSIEREN“, „AUF-FUELLEN“, „RUEHREN“, „WARTEN“ und „FUELLSTAND“ implementieren. Zusätzlich ist die Grundoperation „ANLAGE“mit der Überwachung der Sensoren „SENSORFEHLER“ zu erweitern.

Die Implementierung der Funktionen soll unter folgenden Rahmenbedingungen erfolgen:

• Als Sprache wird die Funktionsbausteinsprache verwendet. Das bedeutet, dass Ablaufketten mit Hilfe von Schritt-bausteinen nachgebildet werden müssen. Es kann jedoch für das Verständnis der Bausteine hilfreich sein, wenndie Funktionalität zunächst als Ablaufkette (vgl. Abb. 6.2) gezeichnet wird.

• Einhaltung der IEC 61131, d. h. strukturiertes und modulares Programmieren.

• Benennen Sie die Ein- und Ausgänge der Bausteine entsprechend der Abbildungen im Skript.

Symboltabelle vervollständigen

Bevor Sie mit der Programmierung starten, sollen zunächst die benötigten Ein- und Ausgänge der SPS in die Symbol-tabelle aufgenommen werden. Obwohl es möglich ist, die direkt adressierten Variablen über ihre physikalische Adresseanzusprechen, ist es bequemer und übersichtlicher, der physikalischen Adresse einen symbolischen Namen zuzuweisenund sie über diesen anzusprechen. Für den Praktikumsversuch sollen die Variablen aus Tabelle 6.1 angelegt werden.Benennen Sie die Ein- und Ausgänge entsprechend der in der Tabelle angegebenen Reihenfolge. Zur Verfügung stehendie Eingänge E0.0 bis E0.7 sowie E1.0 bis E1.7 und die Ausgänge A0.0 bis A0.5 sowie A1.0 bis A1.7.

Zusätzlich muss die globale Variable „FEHLER“ vom Datentyp BOOL als Merker deklariert werden. Es ist erforderlich,dass Sie der Variablen die Adresse M0.0 zuweisen, da bereits vorhandene Funktionsbausteine auf diesen Merker zugrei-fen.

Hinweis: Die Adressen der Variablen sind in der Spalte Operand einzutragen. Es ist empfehlenswert, mit der Tab-Tasteins nächste Feld zu springen.

104

Page 107: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Digitale Eingänge Digitale Ausgänge

TL_OBEN TL_ZULAUFTL_UNTEN TL_ABLAUFTM_OBEN TM_ZULAUFTM_UNTEN TM_ABLAUFTR_OBEN TR_ZULAUFTR_UNTEN TR_ABLAUFMT_OBEN KLMT_MITTE MT_ABLAUFMT_UNTEN PUMPETASTER_START_NICHT RUEHRERTASTER_STOP ANZEIGE_ZUSTANDTASTER_MODUS ANZEIGE_MODUS

ANZEIGE_FEHLERANZEIGE_AKTOR

Tabelle 6.1: Symbolische Namen für direkt adressierte Variablen

SENSORFEHLER

Eine Instanz des Funktionsbausteins „SENSORFEHLER“ bildet einen Teil des Funktionsbausteins „ANLAGE“. Hier wer-den alle Signale der Sensoren eingelesen und gegeneinander verglichen. Ist eine Kombination unzulässig (z. B. darf dermittlere Sensor des Mischtanks kein Signal liefern, wenn nicht auch der untere Sensor ein Signal liefert), wird ein Fehlerausgelöst.

"SENSORFEHLER"FB14FB14

EN

TL_OBEN

TL_UNTEN

TM_OBEN

TM_UNTEN

TR_OBEN

TR_UNTEN

MT_OBEN

MT_MITTE

MT_UNTEN ENO

MT_OBEN

MT_MITTE

MT_UNTEN

MT_ABLAUF

Bild 6.18: Schnittstellen des Funktionsbausteins „SENSORFEHLER“

Erstellen Sie im Hauptfenster (Projektinhalt) über die Schaltfläche Neu... einen neuen Funktionsbaustein (FB) mit derNummer 14. Nach dem Erzeugen wird der Baustein direkt in einem neuen Reiter geöffnet. Deklarieren Sie nun als erstesdie benötigten Variablen. Anschließend können Sie mit der Implementierung beginnen. Ändern Sie die Programmierspra-che im ersten Netzwerk von AWL auf FUP, indem Sie auf FUP klicken oder die Tastenkombination Strg+3 verwenden.Für den Baustein SENSORFEHLER werden ausschließlich Bitverknüpfungen benötigt. Die Standardverknüpfungen wie„UND“, „ODER“ und „Zuweisung“ sind direkt in der Leiste unter dem Reiter des FBs zu finden. Zusätzlich sind hier Schalt-flächen für eine Abzweigung, eine Negation und einen zusätzlichen Eingang enthalten. Alle weiteren Elemente befindensich im Katalog.

105

Page 108: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Um eine deklarierte Variable einem Zweig oder einem Block zuzuweisen, werden die entsprechenden Platzhalter (Fra-gezeichen) angeklickt und die gewünschte Variable über die Tastatur eingegeben. Dabei wird vor die Variable immereine Raute (#) geschrieben. Eine Ausnahme besteht bei globalen Variablen. Sie werden in Anführungszeichen gesetzt.Statt den kompletten Variablennamen zu tippen, kann die Variable auch aus der Liste, die sich nach Eingabe des erstenZeichens öffnet, ausgewählt werden.

Zuweisung vs. Setzen/RücksetzenDer Wert einer Variablen vom Typ BOOL kann mittels des Zuweisungsblocks (Gleichheitszeichen) oder mithilfe desSetzen- bzw. Rücksetzenblocks (S und R) verändert werden. Bei der Zuweisung ändert sich der Wert der Variablen inAbhängigkeit des Blockeingangs. Im Gegensatz dazu wird die Variable durch einen Setzenblock auf „TRUE“ gesetzt,wenn am Blockeingang eine positive Flanke registriert wird. Dieser Wert bleibt bestehen, unabhängig davon, was amBlockeingang passiert. Erst durch einen Rücksetzenblock und eine positive Flanke an dessen Eingang wird der Wert derVariablen wieder auf „FALSE“ zurückgesetzt. Bei der Programmierung ist stets zu überlegen, welche der beiden Möglich-keiten verwendet werden muss.

Nach der Fertigstellung des Bausteins kann er gespeichert und geschlossen werden. Falls ihm noch kein symbolischerName zugewiesen wurde, nehmen Sie den Baustein jetzt in die Symboltabelle auf. Als Operand muss FB14 eingetragenwerden. Wird die Symboltabelle gespeichert, erscheint der symbolische Name in der Bausteinübersicht. Erstellen Sie alsnächstes einen zugehörigen Datenbausteine über Neu... → DI (Instanzdatenbaustein). Geben Sie ihm die Nummer14 und wählen Sie im nächsten Dialogfenster FB14 aus. Der Datenbaustein wird in einem neuen Reiter geöffnet, kannjedoch direkt wieder geschlossen werden. Abschließend geben Sie ihm den symbolischen Namen „DB_SENSORFEHLER“.

SimulationUm die Funktion des programmierten Bausteins zu testen, soll er simuliert werden. Dazu wird im Organisationsblock OB1ein Testprogramm implementiert. Der OB1 bildet die oberste Programmebene und kommuniziert mit den physikalischenSchnittstellen. D. h. die digitalen Ein- und Ausgänge werden nur hier direkt angesprochen. Aus diesem Grund könnenauch keine weiteren Ein- oder Ausgänge deklariert werden. Lediglich lokale Variablen sind möglich. Genauso werdenauch keine Multiinstanzen benötigt. Der Funktionsbaustein SENSORFEHLER (FB14) wird aus den im Katalog unter FBsim Projekt zu findenden Bausteinen in ein Netzwerk gezogen. Für den Funktionsbaustein muss nun ein passender Da-tenbaustein ausgewählt werden. In diesem Fall sind die roten Fragenzeichen über dem Baustein durch DB14 zu ersetzen.Anschließend folgt die Eingabe der physikalischen Eingänge an die Zweige. Hierbei ist der symbolische Name wiederumin Anführungszeichen zu setzen.

Ein Fehler der Sensoren sollte nun intern erkannt werden. Als Anlagenfahrer wollen Sie jedoch auch über auftre-tende Fehler informiert werden. Erweitern Sie daher Ihr Programm um eine entsprechende Anzeige. Denken Sie ggf.zusätzlich an eine Rücksetzfunktion, falls Sie für die Fehlererkennung den Setzenblock verwenden. Schließen Sie danachden OB1 und markieren Sie ihn in der Bausteinübersicht zusammen mit dem FB14, dem DB14 und der SymboltabelleRT2_SPS.SEQ. Achten Sie darauf, dass in der oberen Taskleiste Ziel: Simulator ausgewählt ist (vgl. Bild 6.9). Klicken Sieanschließend im Fenster Projektinhalt auf Markierte Bausteine SPS laden. Am linken Bildschirmrand wird automatischauf den Reiter CPU-Control Center gewechselt. Öffnen Sie zusätzlich die AG-Maske über die obere Taskleiste oder überdas Schnellstartsymbol. Im AG-Masken-Fenster sehen Sie ein virtuelles Abbild einer SPS. In der mittleren Spalte unterEW finden Sie die digitalen Eingänge, in der rechten Spalte unter AW die Ausgänge. Doppelklicken Sie jeweils in denweißen Bereich und tragen Sie im sich öffnenden Dialog die Baugruppen-Adresse „0“ ein. Dadurch erhalten die Ein- undAusgänge die Adressen der im Versuch verwendeten SPS. Gleichzeitig werden Ihnen die symbolischen Namen angezeigt.

Starten Sie die Simulation, indem Sie im CPU-Control Center die SPS auf RUN schalten. Neben den Eingängen dervirtuellen SPS befinden sich kleine Schalter, mit denen Sie die Funktion Ihres Programms testen können. Zum Beendender Simulation schalten Sie die SPS auf STOP.

Ergänzen Sie abschließend den Funktionsbaustein ANLAGE mit einer Instanz von SENSORFEHLER. Öffnen Sie dazu denBaustein Anlage und fügen Sie im Deklarationsteil bei den statischen Variablen (var S) mit Rechtsklick eine Leerzeileein. Der Name kann frei gewählt werden, z. B. SENSORFEHLER1. Als Typ ist FB14 einzutragen. Nun erscheint die neueInstanz unter Multiinstanzen und kann in ein neues Netzwerk gezogen sowie mit den erforderlichen Eingängen versehenwerden.

106

Page 109: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

SCHRITTBAUSTEIN

In der durch Funktionsbausteinsprache nachgebildeten Ablaufkette benötigt jeder Zustand1 einen ihm zugewiesenen„Schrittbaustein“. Dieser aktiviert den ihm zugewiesenen Zustand bzw. deaktiviert ihn bei Erfüllung der entsprechendenTransitionsbedingungen und übergibt an den nächsten Schrittbaustein (siehe auch Abschnitt 6.3.2). Da die Software inder SPS nicht ereignisorientiert abgearbeitet wird, sondern zyklisch der gesamte Programmcode durchlaufen wird, wirdjeder Zustand bearbeitet. Durch Verwendung speichernder Ansteuerung kann aber erreicht werden, dass nur Anweisun-gen oder Funktionsblöcke einen Einfluss auf Variablen haben, deren Schrittbaustein gerade aktiv ist. Des Weiteren solldieser Baustein einen Fehler auslösen, falls er über eine angegebene Zeit hinaus aktiv ist.

Bild 6.19: Schnittstellen des Funktionsbausteins „SCHRITTBAUSTEIN“

Wie der Schrittbaustein verwendet wird, können Sie dem Beispiel auf Seite 116 entnehmen. Gehen Sie bei der Erstellungdes Bausteins genauso vor wie beim vorherigen. Achten Sie bei der Variablendeklaration auch auf die hier notwendigenTypen INT und TIME. Unter anderem werden Sie eine IN-OUT-Variable (NR_AKTUELLER_BLOCK), die Funktion SELECTsowie einen Timer benötigen. Um die IEC-Norm 61131 einzuhalten, dürfen die Step 7 spezifischen Timer, welche imKatalog unter Zeiten zu finden sind, nicht verwendet werden. Stattdessen muss eine Instanz des bereits vorhandenenStandardfunktionsbausteins SFB4 deklariert werden, die dann unter Multiinstanzen zur Verfügung steht.Hinweis: An die Ein- und Ausgänge eines verwendeten Bausteins oder einer Funktion können keine Bitverknüpfungenoder Verzweigungen angeschlossen werden. Ist dies notwendig, muss ein neues Netzwerk hinzugefügt und ggf. eine tem-poräre Variable verwendet werden. Der Zugriff auf einen Ein- oder Ausgang kann in einem anderen Netzwerk auch direkterfolgen. Dazu den Bausteinnamen gefolgt von einem Punkt und der gewünschten Zugriffsvariable an einen Zweig oderBlock schreiben. Beispielsweise wird auf den Ausgang Q des Timers mit #timername.Q zugegriffen. Auf diese Weisekann jedoch kein Ausgang eines Blocks an den Eingang eines anderen oder umgekehrt geschrieben werden.

Beachten Sie bei der Programmierung sowie bei der Implementierung der folgenden Funktionsbausteine stets auch dasVerhalten im Falle eines RESETs. Denken Sie des Weiteren an die Erstellung eines zugehörigen Datenbausteins und andie Vergabe von symbolischen Namen.

SimulationÜberprüfen Sie mithilfe der Simulation, ob Sie den SCHRITTBAUSTEIN korrekt programmiert haben. Erstellen Sie dazueinen neuen Funktionsbaustein, den Sie z. B. TEST nennen. Das Programm soll zwei Instanzen des SCHRITTBAUSTEINsenthalten. Überlegen Sie, welche Ein- und Ausgänge sowie weitere Variablen der neu angelegte Baustein benötigt, wennSie lediglich zwischen den beiden Instanzen hin und her schalten wollen. Der DAUER_MAX Eingang der SCHRITT-BAUSTEINe kann zunächst offen bleiben. Dadurch wird die Laufzeitüberprüfung nicht gestartet. Erstellen Sie nach der

1 Ein Zustand kann dabei entweder eine direkte Anweisung, mehrere Anweisungen oder der Aufruf eines Funktionsbausteins sein, der wieder-um eine Ablaufkette enthält.

107

Page 110: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Implementierung des Testprogramms den zugehörigen Datenbaustein. Anschließend muss das Programm im OB1 auf-gerufen und mit den benötigten Schnittstellen versehen werden. Löschen Sie zuvor noch den Baustein SENSORFEHLERaus dem ersten Netzwerk. Für die Ein- und Ausgänge Ihres Testprogramms können Sie die bereits in der Symboltabellevorhandenen Variablen verwenden.

Bevor Sie die Bausteine auf die virtuelle SPS übertragen, setzen Sie die SPS in ihren Urzustand über AG→ Urlöschen zu-rück. Wählen Sie anschließend alle verwendeten Bausteine (FC, FB, SFB, DB) aus und laden Sie sie auf die virtuelle SPS.Arbeitet Ihr Programm in der Simulation korrekt, können Sie bei der zweiten Instanz beispielsweise den Wert „T#15S“am DAUER_MAX Eingang vorgeben, sodass ein Fehler ausgelöst wird, wenn der zweite SCHRITTBAUSTEIN länger als15s aktiv ist.

Falls Ihr Programm nicht funktioniert, überprüfen Sie ihren SCHRITTBAUSTEIN. Sind alle Netzwerke logisch nachvoll-ziehbar? Haben Sie an alles gedacht? Um nachzuvollziehen, was bei der Simulation aktuell passiert, kann ein Bausteinbeobachtet werden. Dazu im geöffneten Baustein die Schaltfläche Beobachten Ein/Aus betätigen. Die anliegenden Wer-te werden Ihnen in den Netzwerken angezeigt. Sollten Sie nicht in der Lage sein, Ihr Programm zum Laufen zu bringen,notieren Sie sich die auftretenden Probleme, sodass Sie diese am Versuchsnachmittag besprechen können. Fahren Sie mitder Vorbereitung fort, so als wenn Ihr SCHRITTBAUSTEIN funktionieren würde.

Die weiteren Programme können in der Demoversion von WinSPS nicht simuliert werden, da die zulässige Anzahl anBefehlen pro Zyklus überschritten wird. Lesen Sie im Folgenden die Bausteinbeschreibungen aufmerksam durch undstellen Sie sich die Fragen: Wie viele Zustände (Schrittbausteine) werden benötigt? Was passiert innerhalb der Zustände?Was sind die Transitionsbedingungen?

DOSIEREN

Der Funktionsbaustein „DOSIEREN“ bildet eine Ablaufkette nach. Diese Ablaufkette soll folgende Zustände nacheinanderdurchlaufen:

1. Das Ablaufventil öffnen.

2. Bis zu einer vorgegebenen Zeit oder einem Sensorsignal warten.

3. Das Ablaufventil schließen.

Bild 6.20: Ablaufdiagramm des Funktionsbausteins „DOSIEREN“

Sowohl der Deklarations- als auch der Anweisungsteil sind bereits auf den Seiten 115 und 116 abgedruckt. Die Imple-mentierung des Bausteins kann hiervon übernommen werden.

108

Page 111: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bild 6.21: Schnittstellen des Funktionsbausteins „DOSIEREN“

Die letzte Transition kann immer erfüllt sein, da der letzte Zustand nur für einen Zyklus aktiv sein muss. In WinSPSkönnen Sie „TRUE“ direkt an den Zweig schreiben. Dies führt in Step 7 jedoch zu einem Fehler und sollte daher vermiedenwerden. Es gibt mehrere Möglichkeiten um dieses Problem zu lösen. Beispielsweise kann ein Vergleicher-Block mit zweiidentischen Eingangswerten verwendet werden. Alternativ kann auch der Eingang RESET verwendet und der Zweignegiert werden, oder eine neue Variable mit dem Anfangswert „TRUE“ deklariert werden. Da Laufzeitfehler nicht weiterbetrachtet werden, kann der DAUER_MAX Eingang der Schrittbausteine offen bleiben.

AUFFUELLEN

Beim Aufruf des Funktionsbausteins „AUFFUELLEN“ soll eine Ablaufkette mit den folgenden Zuständen durchlaufenwerden:

1. Zulaufventil öffnen, Pumpe einschalten und Kreislaufventil öffnen.

2. Zulaufventil schließen, Pumpe ausschalten und Kreislaufventil schließen.

Durch Beschaltung der Eingänge und Ausgänge kann eine Instanz dieses Funktionsbausteins an den Tank, den es ansteu-ern soll, angepasst werden. Bei der Implementierung sind Schrittbausteine zu verwenden. Bitte verwenden Sie SET- undRESET-Blöcke anstatt Zuweisungen, um die Ausgänge zu setzen bzw. zurückzusetzen.

Bild 6.22: Schnittstellen des Funktionsbausteins „AUFFUELLEN“

FUELLSTAND

Die Aufgabe des Funktionsbausteins „FUELLSTAND“ besteht im kontinuierlichen, parallelen Abfragen der unteren Sen-soren der Tanks. Wird diese Marke bei einem der Tanks unterschritten, soll eine Instanz des Funktionsbausteins „AUF-FUELLEN“ aufgerufen werden. Diese füllt den entsprechenden Tank wieder auf, bis der obere Sensor signalisiert, dassder Tank wieder befüllt ist.Der sonstige Ablauf soll hierdurch nicht gestört werden. Ebenso müssen die Füllstände der verbleibenden Tanks weiterüberprüft und diese gegebenenfalls parallel aufgefüllt werden.Die Füllstandsüberwachung soll aktiv sein, wenn sich die Anlage im Zustand „STANDBY“ oder „REZEPT_LAEUFT“ be-findet. Im Zustand „STOP“ soll also keine Überwachung stattfinden. Diese Eigenschaft hat für die Implementierung desBausteins keine Relevanz. Sie muss aber beim Zusammenführen der Programme im OB1 berücksichtigt werden.

109

Page 112: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Hinweis: Beachten Sie bei Ihrer Implementierung, dass es zu keinen Konflikten beim Setzen der Ausgänge des Bau-steins kommen darf. Dies würde zwar nicht zu einer Fehlermeldung führen, jedoch zu einem unerwünschtem Verhaltender SPS.

"FUELLSTAND"FB2FB2

EN

START

RESET

TL_UNTEN

TM_UNTEN

TR_UNTEN

TL_OBEN

TM_OBEN

TR_OBEN

KL

PUMPE

TL_ZULAUF

TM_ZULAUF

TR_ZULAUF

ENO

MT_OBEN

MT_MITTE

MT_UNTEN

MT_ABLAUF

Bild 6.23: Schnittstellen des Funktionsbausteins „FUELLSTAND“

RUEHREN

Der Funktionsbaustein „RUEHREN“ bildet wieder eine Ablaufkette nach. Diese Ablaufkette soll folgende Aufgaben nach-einander erfüllen:

1. Den Rührer einschalten.

2. Eine vorgegebene Zeit warten.

3. Den Rührer ausschalten.

Bei der Implementierung sind Schrittbausteine zu verwenden. Bitte verwenden Sie auch hier SET- und RESET-Blöckestatt Zuweisungen, um die Ausgänge zu setzen bzw. zurückzusetzen.

"RUEHREN"

FB33FB33

EN

START

DAUER

RESET

RUEHRER

FERTIG

ENO

Bild 6.24: Schnittstellen des Funktionsbausteins „RUEHREN“

110

Page 113: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

WARTEN

Dieser Funktionsbaustein wartet eine vorgegebene Zeit. Bei der Implementierung sind Schrittbausteine zu verwenden.

"WARTEN"

FB32FB32

EN

START

DAUER

RESET

FERTIG

ENO

Bild 6.25: Schnittstellen des Funktionsbausteins „WARTEN“

111

Page 114: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

6.7 Durchführung

Bringen Sie zum Versuchsnachmittag Ihr vorbereitetes Programm mit. Es steht ein PC mit WinSPS V6 zum BetrachtenIhrer implementierten Bausteine zur Verfügung. Alternativ können Sie auch einen eigenen Laptop verwenden. Mit demVersuchstutor werden Sie Ihr Programm durchsprechen und Probleme sowie Fehler diskutieren. Anschließend erfolgt dieImplementierung in Step 7 und die Übertragung auf die SPS der Mischanlage.

Die Bausteine sind in Step 7 bereits angelegt und die jeweiligen Ein- und Ausgangsvariablen wurden deklariert. Siemüssen lediglich benötigte interne Variablen hinzufügen und die Netzwerke implementieren. Auch die Symboltabelleenthält bereits alle notwendigen Eintragungen.

6.7.1 Mischprozess OB1

Der OB1 ist vollständig implementiert, so wie er für den Versuch benötigt wird. Er beinhaltet die Programme Anlage,Füllstand und Rezept sowie alle notwendigen Verknüpfungen. Änderungen sind hier nicht mehr notwendig. LediglichZeitstempelkonflikte müssen behoben werden (siehe Hinweis).

Der OB1 stellt die oberste Programmebene dar (siehe auch Seite 114). Im Unterschied zu den anderen Funktionsbaustei-nen gibt es hier als Schnittstellen lediglich temporäre Variablen. Der OB1 arbeitet direkt mit den physikalischen Ein- undAusgängen der SPS, wohingegen in anderen Bausteinen stets Eingangs- und Ausgangsvariable deklariert und verwendetwerden müssen. Soll ein Eingang oder Ausgang der Anlage in einem Unterprogramm angesprochen werden, muss dieserimmer bis zum OB1 durchgeschleift werden.

Hinweis: Wird später das Rezept programmiert oder werden in anderen Unterprogrammen Variablen hinzugefügt,kommt es stets zu Zeitstempelkonflikten, da der betreffende Datenbaustein verändert wurde. Daher ist es vor dem Über-spielen des Programms auf die SPS notwendig, den OB1 und andere Funktionsbausteine, die geänderte Programmeaufrufen, zu öffnen und Datei→ Zugriffe prüfen und aktualisieren auszuwählen.

6.7.2 Test der Funktionen

Nach der jeweiligen Implementierung der Programme sollen diese auf die SPS geladen und getestet werden.

Sensorfehler

Welche Kombinationen der Sensorsignale sind unzulässig? Stellen Sie solche Kombinationen her und überprüfen Sie, obdie SPS in den gewünschten Fehlerzustand übergeht.

Füllstandsüberwachung

Versetzen Sie die Anlage in einen Zustand, in dem die Füllstandsüberwachung aktiv ist, und lassen Sie einen Tank manuellleerlaufen. Wird der Tank automatisch wieder aufgefüllt? Können auch mehrere Tanks gleichzeitig befüllt werden?

Laufzeitfehler

Geben Sie eine maximale Dauer für den Auffüllvorgang an. Lassen Sie einen der Tanks manuell leerlaufen und kippensie anschließend den oberen Sensor des entsprechenden Tanks so zur Seite, dass kein Signal mehr erzeugt wird, wennder Füllstand die obere Grenze erreicht hat.Versetzen Sie die Anlage in den Zustand „STANDBY“. Geht die Anlage nach Ablauf der eingestellten Zeit in den Fehlerzu-stand über?

112

Page 115: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

REZEPT

Das Rezept beinhaltet den eigentlichen Mischprozess. Hier werden die unterschiedlichen Grundfunktionen (DOSIEREN,RUEHREN, WARTEN), die Einfluss auf die Aktoren haben, zu einer Ablaufkette verschaltet. Ein vollständiges Rezeptkönnte z. B. wie folgt aussehen:

1. VORMISCHUNG:

• DOSIEREN, TL, 5 Sekunden

• DOSIEREN, TM, mittlerer Sensor MT

• RUEHREN, 10 Sekunden

2. HAUPTMISCHUNG:

• DOSIEREN, TL, 2 Sekunden

• DOSIEREN, TR, 3 Sekunden

• WARTEN, 5 Sekunden

• DOSIEREN, TM, 4 Sekunden

• RUEHREN, 10 Sekunden

3. NACHMISCHUNG:

• DOSIEREN, TR, 1 Sekunde

• DOSIEREN, TM, 1 Sekunde

• RUEHREN, 10 Sekunden

• DOSIEREN, MT, unterer Sensor MT (Leeren des Mischtanks)

Die Schnittstellen des Funktionsbausteins REZEPT sind in Bild 6.26 gegeben. Implementieren Sie die Vormischung odereine andere von Ihnen gewählte Abfolge, bestehend aus drei Grundfunktionen. Testen Sie die Funktionalität Ihres Pro-gramms auf der Mischanlage. Läuft Ihr Rezept fehlerfrei durch, ergänzen Sie es um mindestens zwei weitere Funktionenund testen Sie es erneut.

Hinweis: Erreicht der Füllstand des Mischtanks den oberen Sensor, wird das Rezept sofort beendet. Der obere Sen-sor sollte im Rezept daher nicht verwendet werden.

"REZEPT"FB3FB3

EN

START

RESET

MT_OBEN

MT_MITTE

MT_UNTEN

TL_ABLAUF

TM_ABLAUF

TR_ABLAUF

MT_ABLAUF

RUEHRER

FERTIG

ENO

Bild 6.26: Schnittstellen des Funktionsbausteins „REZEPT“

113

Page 116: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

MISCHPROZESS OB1

ANLAGE FB1

ZUSTAND FB11

ANZEIGE FB13

BLINK FB131

MODUS FB12

SENSORFEHL. FB14

FUELLSTAND FB2

AUFFUELLEN FB21

SCHRITTB. FB5

SELECT FC1

REZEPT FB3

DOSIEREN FB31

SCHRITTB. FB5

SELECT FC1

RUEHREN FB33

SCHRITTB. FB5

SELECT FC1

WARTEN FB32

SCHRITTB. FB5

SELECT FC1

SCHRITTBAUSTEIN FB5

SELECT FC1

Vorhandene FBsZu implementierende FBs

Bild 6.27: Programmhierarchie

114

Page 117: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Bild 6.28: Deklaration nach Norm Bild 6.29: Deklaration in Step7. In WinSPS muss als Da-tentyp FB5 statt SCHRITTBAUSTEIN undSFB4 statt TON angegeben werden.

115

Page 118: Regelungstechnisches Praktikum II: Versuchsanleitungen · 2 >0 dreht sich der Hubschrauber ebenfalls so, dass ’g steigt (im UZS). Die beiden Winkel in der Gier- und Nickachse ’

Netzwerk 1:

Netzwerk 2:

Netzwerk 3:

Netzwerk 4:

Netzwerk 5:

Netzwerk 6:

Netzwerk 7:

Bild 6.30: Anweisungsteil des Funktionsbausteins „DOSIEREN“

116