24.10.2012 Aufrufe

Praktische Verfahren zur experimentellen Systemidentifikation

Praktische Verfahren zur experimentellen Systemidentifikation

Praktische Verfahren zur experimentellen Systemidentifikation

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Technische Fachhochschule Berlin<br />

Fachbereich VI (Informatik und Medien)<br />

Manfred Ottens<br />

<strong>Praktische</strong> <strong>Verfahren</strong> <strong>zur</strong> <strong>experimentellen</strong><br />

S Y S T E M I D E N T I F I K A T I O N<br />

Berlin, Sommersemester 2008


Einleitung<br />

Die in der Literatur beschriebenen <strong>Verfahren</strong> <strong>zur</strong> <strong>Systemidentifikation</strong> sind fast<br />

unüberschaubar. Ihre praktische Anwendung im industriellen Alltag ist dagegen sehr<br />

beschränkt. Der Grund liegt vermutlich darin, daß die beschriebenen Methoden<br />

einerseits ein sehr tiefes Hintergrundwissen über Spezialgebiete der Signal- und<br />

Systemtheorie voraussetzen, andererseits aber auch nicht problemlos praktisch<br />

anwendbar sind. So führen z. B. einige sehr erfolgreiche <strong>Verfahren</strong> nur bei<br />

komplizierten Systemerregungen zu guten Identifikationsergebnissen.<br />

Um die Methoden der <strong>Systemidentifikation</strong> dem praktisch arbeitenden Ingenieur<br />

zugänglich zu machen, müssen Methoden gewählt werden, bei denen sich Aufwand<br />

und Nutzen die Waage halten. Das gilt einerseits für den Einarbeitungsaufwand und<br />

andererseits für die praktische Anwendbarkeit der <strong>Verfahren</strong>.<br />

Die in diesem Skript beschriebenen Methoden und <strong>Verfahren</strong> versuchen diesen<br />

Anspruch zu erfüllen, indem zuerst einfache Handrechnungsverfahren vorgestellt<br />

werden, die durch immer anspruchsvollere, aber mit geringem Aufwand theoretisch<br />

begreifbare, rechnergestützte <strong>Verfahren</strong> ergänzt werden. Im Rahmen der praktischen<br />

Nutzbarkeit wurde darauf geachtet, daß alle <strong>Verfahren</strong> mit einfach zu erzeugenden<br />

Erregungssignalen arbeiten und relativ robust gegenüber Meßstörungen sind.<br />

Nach der Klärung, was <strong>Systemidentifikation</strong> überhaupt ist, werden die Probleme<br />

identifizierbarer Systemklassen und ihre Abbildung auf verschiedene Modelle<br />

diskutiert. Zur praktischen Anwendung der <strong>Verfahren</strong> wird relativ ausführlich auf die<br />

notwendige rechnergesteuerte Meßtechnik <strong>zur</strong> Systemerkennung eingegangen.<br />

Auch praktische Einflußgrößen, wie z.B. der System-Aussteuerbereich, die<br />

Notwendigkeit der Messung im Arbeitspunkt und <strong>Verfahren</strong> <strong>zur</strong> Störungsbeseitigung<br />

werden untersucht.<br />

Nach der ausführlichen Besprechung von Handrechnungsverfahren <strong>zur</strong> Systemidenfikation<br />

werde zwei rechnergestützte Methoden, das <strong>Verfahren</strong> der Summe der<br />

kleinsten Quadrate und ein suchstrategisches Optimierungsverfahren <strong>zur</strong> Systemerkennung<br />

eingeführt und an Hand von in der Programmiersprache MATLAB<br />

bereitgestellten Simulationsumgebungen ausführlich erprobt.<br />

Für eine weiterführende Einarbeitung in die Systemerkennung wird häufig auf die<br />

Literatur verwiesen. Dabei wird weniger auf Ursprungsquellen, sondern auf<br />

eingeführte Lehrbücher hingewiesen.<br />

Bei allen Betrachtungen dieses Skriptes wird davon ausgegangen, daß die<br />

Grundlagen der Systemtheorie, der Regelungstechnik und des Programmsystems<br />

Matlab, wie sie in /1/,/2/, /20/ und /21/ beschrieben werden, beherrscht werden.<br />

I


Inhaltsverzeichnis<br />

1 Was ist <strong>Systemidentifikation</strong> ?<br />

1.1 Was ist ein Übertragungssystem ?<br />

1.2 Wozu dient <strong>Systemidentifikation</strong> ?<br />

2 Einflußgrößen bei der <strong>Systemidentifikation</strong><br />

2.1 Systemklassen<br />

2.1.1 Lineare und nichtlineare Systeme<br />

2.1.2 Zeitvariable und zeitinvariante Systeme<br />

2.2 Modellformen<br />

2.2.1 Parametrische und nichtparametrische Modelle<br />

2.2.2 Glasbox- und Blackbox-Modelle<br />

2.2.3 Kontinuierliche und zeitdiskrete Modelle<br />

3 Meßtechnik <strong>zur</strong> <strong>Systemidentifikation</strong><br />

3.1 Hardware-Erweiterungen für die PC-Meßtechnik<br />

3.2 Software-Erweiterungen für die PC-Meßtechnik<br />

4 Signalverarbeitungaspekte <strong>zur</strong> <strong>Systemidentifikation</strong><br />

4.1 Entwurf digitaler Filter<br />

4.2 Entwurf kontinuierlicher Filter<br />

4.3 Entwurf digitaler Integrierer und Differenzierer<br />

5 <strong>Verfahren</strong> <strong>zur</strong> <strong>Systemidentifikation</strong><br />

5.1 Vorbereitende Betrachtungen<br />

5.1.1 Messungen im Arbeitspunkt<br />

5.1.2 Berücksichtigung von Aussteuerbereich und Aussteuerrichtung<br />

5.1.3 Behandlung totzeitbehafteter Systeme<br />

5.1.4 Ausschluß nicht meßbarer Störungen<br />

5.1.5 Nutzung vorhandener Stell- und Meßtechnik<br />

5.1.6 Identifikation von Systemkombinationen bei atypischen Signale<br />

5.2 Einfache Handrechnungsverfahren<br />

5.2.1 Kataloggestützte Sprungantwort-Analyse<br />

5.2.2 Sprungantwortanalyse aperiodischer PTnTt- und ITnTt-Systeme 5.3 Rechnergestützte <strong>Verfahren</strong><br />

5.3.1 Bestimmung der Parameter der Übertragungsfunktion mit dem<br />

<strong>Verfahren</strong> der Summe der kleinsten Quadrate (SKQ-<strong>Verfahren</strong>)<br />

5.3.1.1 Das SKQ-Offline-<strong>Verfahren</strong><br />

II


Anhang<br />

5.3.1.2 Das SKQ-Online-<strong>Verfahren</strong><br />

5.3.1.3 Meß- und auswerttechnische Randbedingungen<br />

5.3.1.4 Ansätze <strong>zur</strong> Modellverbesserung<br />

5.3.1.5 Simulationsumgebungen <strong>zur</strong> Erprobung<br />

der SKQ-Algorithmen<br />

5.3.2 Bestimmung der Parameter der Übertragungsfunktion mittels<br />

einer Optimierungsstrategie<br />

5.3.2.1 Grundlagen von Optimierungsstrategien<br />

5.3.2.2 Das Simplex-<strong>Verfahren</strong> von Nelder/Mead<br />

5.3.2.3 Der Matlab-Befehl "fminsearch.m"<br />

5.3.2.4 Meß- und auswerttechnische Randbedingungen<br />

5.3.2.5 Ansätze <strong>zur</strong> Modellverbesserung<br />

5.3.2.6 Eine Simulationsumgebung <strong>zur</strong> Erprobung<br />

des Simplexverfahrens <strong>zur</strong> <strong>Systemidentifikation</strong><br />

5.3.2.7 „SYSID“: EinWerkzeug <strong>zur</strong> praktischen <strong>Systemidentifikation</strong><br />

5.3.4 Identifikation von Parametern in Zustandsmodellen<br />

A1 Statische Kennlinien nichtlinearer Systeme<br />

A2 Spezifische Matlab-Befehle <strong>zur</strong> <strong>Systemidentifikation</strong><br />

A3 Matlab-Programme zum Skript <strong>Systemidentifikation</strong><br />

A4 Listings der Programme „simplex.m“, „system.m“ und „zielfkt.m“<br />

III


1 Was ist <strong>Systemidentifikation</strong> ?<br />

Die <strong>Systemidentifikation</strong>, die auch als Systemerkennung oder Systemmodellierung<br />

bezeichnet wird, beschäftigt sich mit der Findung mathematischer Beschreibungen<br />

("mathematische Modelle") real existierender Systeme. Die mathematischen Modelle<br />

sollen das Verhalten des Systems so einfach wie möglich und so gut wie nötig<br />

nachbilden.<br />

Dabei kommen zwei grundsätzlich verschiedene Methoden <strong>zur</strong> Anwendung. Zum<br />

einen kann man ein mathematisches Modell auf der Basis theoretischer,<br />

naturwissenschaftlicher Zusammenhänge in Form von Bilanzgleichungen und<br />

physikalischen Gesetzen bilden. Zum anderen kann man das reale System auch<br />

ausmessen und aus den so gewonnenen Datensätzen mittels spezieller Algorithmen<br />

ein mathematisches Modell aufstellen.<br />

Das letztere geschieht im allgemeinen so, daß am Eingang des Systems eine<br />

Erregung aufgeschaltet wird (z.B. ein Sprung). Diese Erregung und die dazugehörige<br />

Systemantwort werden aufgezeichnet. Mit Hilfe eines Algorithmus, von denen weiter<br />

hinten mehrere vorgestellt werden, wird aus diesen Datensätzen ein mathematisches<br />

Modell berechnet, z.B. die Übertragungsfunktion:<br />

Bild 1.0.1: Grundprinzip der <strong>experimentellen</strong> Modellbildung<br />

Die erste Methode wollen wir als "theoretische Modellbildung", zweitere als<br />

"experimentelle Modellbildung" bezeichnen.<br />

Die theoretische Modellbildung wurde in /1/ an einigen praktischen Beispielen<br />

erläutert. Dabei wurde der hohe Schwierigkeitsgrad dieser Modellbildungsmethode<br />

1.1


deutlich. Die Problematik bestand darin, neben dem Wissen über Systemtheorie<br />

tiefgehende interdisziplinäre Kenntnisse aus verschiedenen naturwissenschaftlichen<br />

Bereichen besitzen zu müssen.<br />

Eine dem Denken eines Systemingenieurs wesentlich naheliegendere Methode ist<br />

die experimentelle Modellbildung, die neben Kenntnissen über Systemtheorie und<br />

Messtechnik nur geringer weiterer Kenntnisse bedarf.<br />

Dennoch stehen beide Methoden gleichberechtigt nebeneinander. Wenn zum<br />

Beispiel in der Kernreaktor-Technik auf Experimente verzichtet werden muß, kommt<br />

die aufwendigere theoretische Modellbildung <strong>zur</strong> Anwendung. In vielen anderen<br />

technischen Disziplinen ist die experimentelle Modellbildung wegen ihres geringeren<br />

Aufwands der theoretischen Modellbildung überlegen. Häufig werden auch beide<br />

Methoden sich ergänzend angewendet.<br />

In den folgenden Ausführungen wird die experimentelle <strong>Systemidentifikation</strong> im<br />

Mittelpunkt stehen. Zunächst sollen jedoch ihr Sinn näher erläutert und einige<br />

wichtige Begriffe neu eingeführt und bekannte vertieft werden.<br />

1.1 Was ist ein Übertragungssystem ?<br />

Ein System ist eine Wirkungsanordnung, in der Signale in Form von Energie, Masse<br />

oder Information weitergeleitet und in irgendeiner Form beeinflußt werden.<br />

Eine solche Anordnung wird auch als Übertragungssystem, Übertragungsglied oder<br />

dynamisches System bezeichnet. Wir beschränken uns bei unseren Betrachtungen,<br />

wie in /1/, wieder auf technische Systeme und definieren den Begriff des<br />

Übertragungssystems wieder wie folgt :<br />

Ein Übertragungssystem ist eine Funktionseinheit mit mindestens einem Sig-<br />

naleingang und mindestens einem Signalausgang<br />

u (t) y (t)<br />

Übertrag.system<br />

1.2<br />

u(t): Eingangssignal<br />

y(t): Ausgangssignal<br />

Bild 1.1.1 Symbolisierte Darstellung eines Übertragungssystems.<br />

und einer eindeutigen Signalflußrichtung, die durch die Pfeile in der Darstellung<br />

nach Bild 1.1.1 beschrieben wird.


Übertragungssysteme mit einem Eingang und einem Ausgang werden auch als<br />

SISO-Systeme (single input - single output) bezeichnet. Wie in /1/ dargestellt,<br />

existieren auch Systeme mit mehreren Eingängen und mehreren Ausgängen. Solche<br />

Systeme werden als Mehrgrößen- oder MIMO-Systeme (multiple input − multiple<br />

output) bezeichnet. Erläuternde Beispiele findet der Leser in /1/.<br />

1.2 Wozu dient <strong>Systemidentifikation</strong> ?<br />

Warum braucht man ein mathematisches Modell, wenn man ein reales<br />

Übertragungssystem vor sich hat, an dem man experimentell Fragestellungen (z.B.<br />

bei welcher Ankerspannung uA (t) stellt sich im Leerlauf eines Gleichstrommotors<br />

eine Drehzahl von n = 100 1/min ein) beantworten kann.<br />

Die Modellierung eines Systems ist kein Selbstzweck und geht über die reine<br />

Neugierbefriedigung weit hinaus. So ist es z.B. lebenswichtig zu wissen, wie sich ein<br />

Kernreaktor verhält, wenn z.B. eine Kühlwasserpumpe ausfällt. Ein Experiment ist<br />

wegen zu großer Gefahren nicht möglich. Eine Computersimulation auf der Basis<br />

eines mathematischen Modells dagegen führt zu aussagefähigen Ergebnissen, hat<br />

aber keine gefährlichen Konsequenzen, d.h. es findet keine Systemzerstörung mit<br />

Gefahr für Leib und Leben statt.<br />

Weiterhin lassen sich Verhaltensvorgänge mit mathematischen Modellen zeitlich<br />

dehnen oder verkürzen, so daß sehr kurze oder sehr lang andauernde<br />

Systemvorgänge in überschaubaren Zeiträumen beobachtet werden können.<br />

Wissenschaftliche Erkenntnisse lassen sich an Systemmodellen schöpfen bei deren<br />

realen Vorbildern sich keine gezielten Parameter- oder Strukturänderungen<br />

vornehmen lassen (z.B. bei der Simulation von Wetterlagen).<br />

Im Ausbildungssektor an technischen Geräten (Pilot/Flugzeug) sind Simulationssysteme,<br />

die im Kern auch auf mathematischen Modellen basieren, nicht mehr<br />

wegzudenken.<br />

Die Anwendungen im nicht technischen Systemmanagement (z.B. die Planung notwendiger<br />

Eingriffe in einen schadstoffbelasteten Wald an Hand einer extrapolierenden<br />

Simulation) und in der Entwicklungsplanung (z.B. die Abschätzung des Energiedienstleistungsbedarfs)<br />

an Hand eines mathematischen Modells stehen noch am<br />

Anfang ihres Einsatzes.<br />

Eine herausragende Bedeutung hat die Systemmodellierung in der Regelungstechnik,<br />

einer technischen Wissenschaft für den Entwurf von Beeinflussungs-<br />

Mechanismen ("Regler"), mit denen man Systemen ("Regelstrecken") im Sinne einer<br />

Funktionsoptimierung ein angestrebtes Verhalten aufprägen kann. Kein noch so<br />

einfacher Regler kann sinnvoll ohne ein mathematisches Modell des zu<br />

beeinflussenden Systems entworfen und getestet werden.<br />

1.3


2 Einflußgrößen bei der <strong>Systemidentifikation</strong><br />

Ein System kann für die im Rahmen dieses Skriptes angestrebten Zwecke als<br />

identifiziert betrachtet werden, wenn ein mathematisches Modell vorliegt, das<br />

• das statische Verhalten,<br />

• das dynamische Verhalten und<br />

• den Aussteuerbereich<br />

des realen, zu identifizierenden Systems mit ausreichender Genauigkeit nachbildet.<br />

Abhängig von den Systemeigenschaften des zu identifizierenden Systems:<br />

• nichtlinear / linear<br />

• zeitvariabel / zeitinvariant<br />

und den gewünschten Eigenschaften des aufzustellenden mathematischen Modells<br />

• parametrisch / nichtparametrisch<br />

• Zustandsmodell / Eingangs-/Ausgangs-Modell<br />

• kontinuierliches Modell / zeitdiskretes Modell<br />

und der gestellten Zielsetzung, für die das mathematische Modell benötigt wird, z.B.<br />

• Modell für ein Simulationssystem (z.B. einen Flugsimulator)<br />

• Modell zum Entwurf eines Reglers<br />

• Modell einer elektronischen Schaltung<br />

ist das oben angestrebte Ziel, das statische und das dynamische Verhalten, sowie<br />

den Aussteuerbereich zu modellieren, auf verschiedenen Wegen und mehr oder<br />

weniger kompliziert zu erreichen.<br />

Wir wollen im folgenden zunächst die vorangehend aufgeführten Begriff etwas näher<br />

erläutern und dann den uns interessierenden Bereich der <strong>Systemidentifikation</strong> so<br />

weit einschränken, daß der Stoffumfang für eine einführende Betrachtung nicht zu<br />

groß wird.<br />

Dabei werden wir uns primär auf die Gebiete der Systemerkennung beschränken,<br />

wie wir sie später für die Regelungstechnik benötigen.<br />

2.1


2.1 Systemklassen<br />

Die zwei weiter vorn genannten Systemklassen<br />

• nichtlinear / linear<br />

• zeitvariabel / zeitinvariant<br />

erfordern verschiedene Herangehensweisen zu ihrer Identifikation. Wir betrachten<br />

deshalb die Systemklassen etwas genauer.<br />

2.1.1 Lineare und nichtlineare Systeme<br />

Alle in Kapitel 5 vorgestellten Systemerkennungsverfahren sind für lineare Systeme<br />

konzipiert. Da aber die meisten technischen Systeme nichtlinear sind, können wir uns<br />

nicht auf lineare Systeme beschränken. Nichtlineare Systeme lassen sich global in<br />

zwei Kategorien einordnen:<br />

• Systeme mit unstetigem nichtlinearen Verhalten ( z.B. Systeme mit<br />

Begrenzungen, Haftreibung, toten Zonen, Relais, usw. ).<br />

• Systeme mit stetigem nichtlinearen Verhalten (z.B. glatte statische<br />

Kennlinien).<br />

Während die erste Gruppe mit speziellen nichtlinearen systemtheoretischen<br />

Methoden beschrieben werden muß (z.B. sogenannte Beschreibungsfunktionen),<br />

kann man die zweite Gruppe, die ca. 4/5 der real auftretenden nichtlinearen Systeme<br />

beinhaltet, für regelungstechnische Zwecke i.A. ausreichend genau durch lineare<br />

Modelle approximieren. Das gilt sowohl für sogenannte statische Nichtlinearitäten,<br />

die durch eine nichtlineare statischen Kennlinie beschrieben werden, als auch für<br />

dynamische Nichtlinearitäten, wo sich das Zeitverhalten (also die Zeitkonstanten in<br />

der V-Normalform der Übertragungsfunktion) mit dem Arbeitspunkt des Systems<br />

ändern. Von beiden Effekten tritt wiederum die statische Nichtlinearität wesentlich<br />

häufiger auf, weshalb im Anhang A1 das Wesen und die Aussage statischer<br />

Kennlinien noch einmal ausführlich dargestellt sind.<br />

Wie in /1/ dargestellt wurde, lassen sich stetige nichtlineare Systemmodelle (auf die<br />

wir uns im Folgenden beschränken werden) auf der Basis einer Taylorreihe in einem<br />

Arbeitspunkt<br />

ut () = u ; xt () = x ; ( 211<br />

..)<br />

A A<br />

2.2


analytisch linearisieren. Man kann nun zeigen, daß das nichtlineare System die<br />

Eigenschaften des linearisierten System offenbart, wenn man es experimentell mit<br />

kleinen Amplituden um den Arbeitspunkt herum erregt. Dies gilt sowohl für statische<br />

als auch für das dynamische Nichtlinearitäten. Zur Erläuterung dieses Zusammenhangs<br />

betrachten wir folgendes<br />

Beispiel 2.1.1: Gegeben ist das dargestellte RC-Glied<br />

u (t)<br />

e<br />

i (t)<br />

R<br />

R<br />

u (t)<br />

R<br />

C<br />

2.3<br />

i C (t)<br />

i a (t) ≈ 0<br />

u (t)<br />

C<br />

Bild 2.1.1: Ein nichtlineares RC-Glied<br />

mit einem spannungsabhängigen Kondensator<br />

u a (t)<br />

C = C + C ⋅k ⋅u<br />

(). t<br />

( .. )<br />

0 0 C<br />

212<br />

Setzt man (2.1.2) in das lineare Zustandsmodell /1/<br />

i 1 1<br />

C − C e<br />

u (t) = u (t) + u (t) (2.1.3)<br />

RC RC<br />

u (t) = u (t) .<br />

a C<br />

ein, erhält man das nichtlineare Modell des obigen Systems mit spannungsabhängigem<br />

Kondensator:<br />

i<br />

1 1<br />

C −<br />

C e<br />

RC 0(1+ k ⋅ u C(t)) RC 0(1+ k ⋅u<br />

C(t))<br />

u (t) = u (t) + u (t) (2.1.4)<br />

u (t) = u (t) .<br />

a C<br />

Linearisiert man dieses Modell analytisch um den Arbeitspunkt, der sich bei<br />

ue = ueA= konst.<br />

einstellt, erhält man das folgende linearisierte Modell


i<br />

1 1<br />

C C e<br />

RC 0(1+ k ⋅ u eA) RC 0(1+ k ⋅u<br />

eA)<br />

∆u (t) = − ∆u (t) + ∆u<br />

(t) (2.1.5)<br />

∆u (t) = ∆u<br />

(t) .<br />

a C<br />

und daraus die folgende Übertragungsfunktion:<br />

Ua( s)<br />

1<br />

Gs ( ) = = . ( 216 . . )<br />

U ( s) 1+ RC ( 1+<br />

k ⋅u) ⋅s<br />

e 0 eA<br />

Die Übertragungsfunktion stellt ein PT1-Glied mit dem Verstärkungsfaktor V=1 und<br />

der Zeitkonstante<br />

( )<br />

T = R ⋅ C 1+ k ⋅u<br />

(2.1.7)<br />

0 eA<br />

dar. Das heißt, unser RC-Glied ist statisch linear (weil V in allen Arbeitspunkten<br />

konstant gleich 1 ist), aber dynamisch nichtlinear, da die Zeitkonstante von<br />

Arbeitspunkt ueA abhängig ist. Noch deutlicher wird dies, wenn wir beispielhaft<br />

folgende Parameter<br />

in (2.1.6) einsetzen:<br />

C01000 F R 1k k 1<br />

Volt<br />

1<br />

= µ ; = Ω;<br />

=<br />

( 218 . . )<br />

U a (s) 1<br />

G(s) = =<br />

(2.1.9)<br />

U (s) 1+ ( 1+ u ) s<br />

��� ��<br />

e eA<br />

T<br />

und mit Matlab einige Einheits-Sprungantworten von (2.1.9) z.B. in den<br />

Arbeitspunkten<br />

u = 1V; u = 5V; u = 10V; ( 2. 110 . )<br />

eA eA eA<br />

berechnen. (Vergleiche das folgende Bild 2.1.2)<br />

Man erkennt deutlich die Abhängigkeit des Zeitverhaltens des Systems von den<br />

Arbeitspunkten.<br />

2.4


Bild 2.1.2 : Einheits-Sprungantworten des linearisierten RC-Gliedes<br />

in verschieden Arbeitspunkten<br />

Kommen wir doch zum Ausgangspunkt unserer Betrachtungen <strong>zur</strong>ück, wo wir<br />

sagten, daß das nichtlineare System bei kleinen Erregungen um den Arbeitspunkt die<br />

Eigenschaften des linearisierten Systems widerspiegelt.<br />

Simulieren wir das nichtlineare System (2.1.4) mit den eingesetzten Parameterwerten<br />

(2.1.8)<br />

y(t)<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

z.B. unter Simulink<br />

0<br />

0 10 20 30 40 50<br />

t / sek<br />

• 1<br />

C = e − C<br />

1+ u C(t)<br />

a C<br />

y(ue=1V)<br />

y(ue=5V )<br />

y(ue=10V)<br />

( )<br />

u (t) u (t) u (t)<br />

u (t) = u (t) (2.1.11)<br />

Bild 2.1.3 : Simulink Simulationsstruktur eines nichtlinearen RC-Gliedes<br />

und führen "kleine Sprünge" ∆u⋅σ(t) mit ∆u = 1V um die Arbeitspunkte (2.1.10) aus,<br />

ergeben sich die im folgenden Bild (2.1.4) dargestellten Sprungantworten:<br />

2.5


12<br />

10<br />

8<br />

6<br />

4<br />

2<br />

y(t)<br />

ueA = 5V<br />

ueA = 10V<br />

u V<br />

eA = 1 9.5<br />

0<br />

0 100 200 300<br />

t/sek<br />

1.5<br />

1<br />

0.5<br />

50 60 70 80 90 100<br />

2.6<br />

10.5<br />

10<br />

9.5<br />

250 260 270 280 290 300<br />

5.5<br />

5<br />

4.5<br />

150 160 170 180 190 200<br />

Bild 2.1.4 : Einheitssprungantworten des nichtlinearen RC-Glides<br />

um die Arbeitspunkte ueA=1V; 5V und 10 V


Ein Vergleich der Sprungantworten des linearisierten Systems (Bild 2.1.2) mit den<br />

Sprungantworten des nichtlinearen Systems in den gleichen Arbeitspunkten, z.B.<br />

durch Ausmessung der Zeitkonstanten, zeigt eine verblüffende Übereinstimmung in<br />

Amplituden und Zeitverläufen.<br />

Welche praktische Schlußfolgerung für die Systemerkennung kann man daraus nun<br />

ziehen?<br />

Erinnern wir uns an das Bild 1.0.1, das das Grundprinzip der <strong>experimentellen</strong><br />

Modellbildung darstellt: wir können uns auf der Basis der vorangehend gemachten<br />

Überlegungen einen Eingangs-/Ausgangs-Datensatz unseres nichtlinearen Systems<br />

verschaffen, mit dem wir ein mathematisches Modell berechnen können. Wählen wir<br />

den Arbeitspunkt unseres Systems (die meisten Regelstrecken werden in einem<br />

festen Arbeitspunkt betrieben) und erregen es dort mit kleinen Amplituden, erhalten<br />

wir am Ausgang quasi die Systemantwort des "linearen Systemmodells" in diesem<br />

Arbeitspunkt. Eine komplizierte theoretische Modellbildung mit anschließender<br />

analytischer Linearisierung ist also nicht mehr nötig.<br />

Man sollte es sich zum Prinzip machen, experimentelle Systemerkennung immer auf<br />

der Basis von Eingangs-/Ausgangs-Datensätzen durchzuführen, die durch kleine<br />

Erregungsamplituden um den Arbeitspunkt herum entstanden sind.<br />

Wird das System nicht nur in einem Arbeitspunkt betrieben, ist es mit der<br />

beschriebenen Vorgehensweise auch einfach möglich, eine quasilineares Übertragungsfunktions-Modell<br />

zu bilden. In unserem Beispiel müßte nur die Zeitkonstante<br />

des PT1-Gliedes in Abhängigkeit von der Eingangsgröße ue(t) nachgestellt werden.<br />

2.1.2 Zeitvariable und zeitinvariante Systeme<br />

Ist ein System zeitinvariant, d.h. ändern sich seine Parameter nicht mit der Zeit, liegt<br />

der einfachere Fall vor und eine experimentelle Systemerkennung nach sogenannten<br />

Offline-<strong>Verfahren</strong>, wie sie im Kapitel 5 beschrieben werden (das „SKQ-Offline-<br />

<strong>Verfahren</strong>2 und das „<strong>Verfahren</strong> <strong>zur</strong> Bestimmung der Parameter der<br />

Übertragungsfunktion mittels einer Optimierungsstrategie“), ist möglich.<br />

Ändern sich die Parameter während des Betriebes, sind zwei Varianten möglich:<br />

• die Parameter ändern sich vorhersagbar mit der Zeit (z.B. die Masse einer<br />

fliegenden Rakete in Abhängigkeit vom Treibstoffverbrauch, der berechenbar<br />

oder meßbar ist),<br />

• die Parameter ändern sich nicht vorhersagbar (z.B. die Form der<br />

Titrationskennlinie eines Abwasser-Neutralisationsreaktors ändert sich auf Grund<br />

2.7


der verschiedenen Pufferungseigenschaften des Abwassers, was sich<br />

systemtheoretisch in einer Änderung des Verstärkungsfaktors der<br />

Übertragungsfunktion ausdrückt).<br />

Der erste Fall kann durch ein lineares System mit sich ändernden aber<br />

berechenbaren Parametern modelliert werden. Der zweite Fall ist wesentlich<br />

anspruchsvoller, weil die Parameteränderungen zufällig auftreten und nicht voraus<br />

berechenbar sind. Dieses Problem kann mittels sogenannter Online- oder Echtzeit-<br />

Identifikationsverfahren gelöst werden, die in Echtzeit während des laufenden<br />

Betriebs des zu identifizierenden Systems ständig ein aktuelles Systemmodell<br />

berechnen. In Kapitel 5.3.1.2 wird das Grundprinzip einer solchen Methode, das<br />

„SKQ-Online <strong>Verfahren</strong>“ beschrieben. Solche <strong>Verfahren</strong> können z.B. <strong>zur</strong><br />

schrittweisen Verbesserung eines durch ein Offline-<strong>Verfahren</strong> identifiziertes System<br />

oder <strong>zur</strong> ständigen Identifikation von Regelstrecken mit sich nicht vorhersagbar<br />

ändernden Parametern benutzt werden. Den letzteren Fall, der bei sogenannten<br />

„Adaptiven Regelkreisen“ eingesetzt wird, wollen wir im Rahmen dieser Einführung<br />

in die <strong>Systemidentifikation</strong> nicht weiter vertiefen.<br />

2.2. Modellformen<br />

Im vorangehenden Kapitel haben wir verschieden Systemklassen hinsichtlich ihrer<br />

Zugänglichkeit in Bezug auf die Systemerkennung untersucht. In diesem Kapitel<br />

wollen wir verschiedene Modellformen betrachten, mit denen sich Systeme<br />

modellieren lassen. Hinsichtlich der Systemerkennung sind drei Modellgruppen<br />

wesentlich.<br />

• parametrische / nichtparametrische Modelle<br />

• Glasbox- / Blackbox bzw. Zustands- / Eingangs-Ausgangs-Modelle<br />

• kontinuierliche / zeitdiskrete Modelle<br />

2.2.1 Parametrische und nichtparametrische Modelle<br />

Diese Begriffsbildung wurde bereits in /1/ eingeführt: Als nichtparametrisches Modell<br />

eines Systems wird i.a. ein Graph oder eine Wertetabelle einer Systemkenngröße<br />

bezeichnet, die uns eine gewisse Information über das System gibt. So sind z.B. die<br />

Sprungantwort und das Bodediagramm eines Systems zwei typische, häufig genutzte<br />

nicht-parametrische Systemmodelle. An der Sprungantwort können z.B. das<br />

Globalverhalten, der stationäre Verstärkungsfaktor und das Einschwingverhalten<br />

studiert werden. Das Bodediagramm gibt uns einen tiefen Einblick in das<br />

2.8


Frequenzverhalten eines Systems. Nichtparametrische Modelle werden i.a. durch<br />

einfache Messungen am zu identifizierenden System gewonnen.<br />

Qualitativ hochwertiger sind i.a. parametrische Modelle, die in Form analytischer<br />

Ausdrücke (Formeln, Gleichungen) das Systemverhalten beschreiben. Liegt einmal<br />

ein parametrisches Modell vor, kann man es leicht in jeden Betrachtungsbereich<br />

(Zeit-, Bild- und Frequenzbereich) transformieren /1/ und somit jedes gewünschte<br />

nichtparametrische Modell berechnen. Allerdings ist der Aufwand <strong>zur</strong> Gewinnung<br />

eines parametrischen Modells ungleich höher als bei einem nichtparametrischen<br />

Modell.<br />

Ziel unserer Betrachtungen wird es sein, parametrische Modelle von Übertragungssystemen<br />

zu bestimmen. Dabei wird i.a. zweischrittig vorgegangen: zuerst wird ein<br />

nichtparametrisches Modell in Form eines Systemantwort gemessen und daraus ein<br />

parametrisches Modell berechnet.<br />

2.2.2 Glasbox- und Blackbox-Modelle<br />

Parametrische mathematische Modelle können zwei grundsätzlich verschiedene<br />

Formen haben:<br />

• Das Modell wird so entworfen, daß es das Systemverhalten nachahmt. Die innere<br />

Struktur von System und Modell müssen dabei nicht übereinstimmen. Man nennt<br />

solche Modelle "Blackbox-Modelle"<br />

• Das Modell wird so entworfen, daß wesentliche Systemstrukturen und<br />

Wirkungselemente auf das Modell abgebildet werden. Das innere und das äußere<br />

Modellverhalten entsprechen dann dem des realen Übertragungssystems. Man<br />

nennt ein solches Modell dann "Glasbox-Modell".<br />

Beide Modellformen haben wir in /1/ bereits unter anderen Namen kennengelernt:<br />

Das auf der Basis einer theoretischen Modellbildung gewonnene Zustandsmodell ist<br />

ein Glasbox-Modell, weil das innere Systemverhalten (Verlauf der Zustandsgrößen)<br />

und das äußere Verhalten zwischen Eingang und Ausgang dem des realen Systems<br />

entsprechen.<br />

Übertragungsfunktions-Modelle (egal ob kontinuierlich oder zeitdiskret) sind typische<br />

Vertreter des Blackbox-Modells, die die Struktur und die Parameter des Systems<br />

nicht widerspiegeln, sondern nur das Verhalten zwischen seinem Eingang und<br />

seinem Ausgang.<br />

2.9


Man nennt Blackbox-Modelle in der Systemtheorie deshalb auch häufig "Eingangs-/<br />

Ausgangs Modelle" (E/A-Modelle). Auch die rekursive Differenzengleichung, das<br />

Zeitbereichsmodell zeitdiskreter Systeme, ist ein E/A-Modell.<br />

Wir werden in erster Linie <strong>Verfahren</strong> <strong>zur</strong> Identifikation von Übertragungsfunktionen,<br />

also E/A-Modellen, kennenlernen. Im Kapitel 5.3.4 gehen wir kurz auf die<br />

Identifikation von Parametern in Zustandsmodellen ein.<br />

2.2.3 Kontinuierliche und zeitdiskrete Modelle<br />

Nahezu alle technischen Systeme arbeiten kontinuierlich. Einige System-<br />

identifikations-<strong>Verfahren</strong> gehen aber den Umweg, daß sie zunächst ein zeitdiskretes<br />

Modell bestimmen. Das ist für regelungstechnische Zwecke oft ausreichend, in<br />

einigen Fällen benötigt man aber ein kontinuierliches Systemmodell. In diesem Falle<br />

wird ein Umrechnungs-Algorithmus benötigt, mit dem man zeitdiskrete Systeme in<br />

kontinuierliche umrechnen kann. In /1/ hatten wir zwei <strong>Verfahren</strong> <strong>zur</strong> Diskretisierung,<br />

d.h. <strong>zur</strong> Berechnung zeitdiskreter Systeme aus kontinuierlichen, also den<br />

umgekehrten Weg kennengelernt:<br />

• die Tustinsche Näherung<br />

Gz ( ) = Gs ( ) 2 z − 1<br />

( 221 . . )<br />

s =<br />

T<br />

z + 1<br />

• und die Sprunginvarianz-Transformation<br />

z−1 ⎧G(s) ⎫<br />

G(z) = Z ⎨ ⎬.<br />

(2.2.2)<br />

z ⎩ s ⎭<br />

Beide können auch in Algorithmen <strong>zur</strong> Berechnung kontinuierlicher Systeme aus<br />

zeitdiskreten umgeformt werden. Bei der Tustinschen Näherung ist die besonders<br />

einfach, der Ausdruck<br />

z<br />

s = ⋅<br />

T z<br />

− 2 1<br />

+ 1<br />

muß nach z umgestellt werden<br />

s<br />

z<br />

T<br />

s T<br />

1+<br />

= 2 . ( 223 . . )<br />

1−<br />

2<br />

2.10


Damit berechnet sich das kontinuierliche System aus<br />

T<br />

1+ s<br />

G(s) = G(z)<br />

z<br />

2 . (2.2.4)<br />

=<br />

T<br />

1−s 2<br />

Dabei ist T die Abtastzeit des zeitdiskreten Systems.<br />

Die Umkehrung der Sprunginvarianz-Transformation (2.2.2) ist wesentlich<br />

aufwendiger ableitbar. Da uns einige mathematische Grundlagen fehlen (z.B. der<br />

Lösungsweg <strong>zur</strong> Berechnung des Ausdruckes Φ = eAT), wollen wir auf eine Ableitung<br />

verzichten. Der Leser findet nähere Einzelheiten in /7/.<br />

Matlab stellt mit dem Befehl<br />

sys_k = d2c(sys_d, methode) (2.2.5)<br />

neben den beiden oben erwähnten Transformationsverfahren noch eine Reihe<br />

anderer <strong>zur</strong> problemlosen Wandlung zeitdiskreter (sys_d) in kontinuierliche (sys_k)<br />

Modelle <strong>zur</strong> Verfügung. Einzelheiten zum Matlab-Befehl "d2c.m" befinden sich in<br />

/20/.<br />

2.11


3. Meßtechnik <strong>zur</strong> <strong>Systemidentifikation</strong><br />

Grundlage jeder <strong>Systemidentifikation</strong> auf der Basis von Eingangs-/Ausgangsdatensätzen<br />

eines Übertragungssystems nach Bild 1.0.1 ist die sachgerechte Messung dieser Signale.<br />

Es ist zweckmäßig, die Systemerregung digitalrechnergestützt zu generieren und auch<br />

die dazugehörige Systemantwort ebenso zu messen.<br />

Am einfachsten läßt sich ein solches Meßsystem auf der Basis eines PCs aufbauen, der<br />

um eine Reihe von Hard- und Softwarekomponenten erweitert werden muß. Diese sollen<br />

im folgenden kurz besprochen werden.<br />

3.1 Hardwareerweiterungen für die PC-Meßtechnik<br />

Das folgende Bild 3.1.1 zeigt die wichtigsten Komponenten, um die ein PC erweitert<br />

werden muß, wenn er <strong>zur</strong> <strong>experimentellen</strong> <strong>Systemidentifikation</strong> benutzt werden soll.<br />

Neben dem PC mit Tastatur, Monitor, Massenspeicher und Drucker sollte das System um<br />

einen "Meßkanal" und einen "Erregungskanal" erweitert werden. Wichtigste Baugruppen<br />

im Meßkanal sind der Analog-/Digital-Wandler und im Erregungskanal der Digital-<br />

/Analog-Wandler, die erst die Kommunikation des PCs mit seiner kontinuierlichen Umwelt<br />

möglich machen. Beide Bauelemente befinden sich häufig auf einer PC-Einsteckkarte,<br />

die von der Industrie in verschiedenen Ausführungen angeboten wird.<br />

Beginnen wir mit der Erläuterung der Baugruppen am Meßkanal-Eingang:<br />

• Pegelanpassung<br />

Das erste Glied der Verarbeitungskette im Meßkanal besteht aus einer Pegelanpassungs-Baugruppe,<br />

die normierte elektrische Eingangssignale von Meßeinrichtungen<br />

für elektrische und nichtelektrische Größen verarbeiten kann.<br />

Meßeinrichtungen bilden i.a. ihre Eingangsgrößen (Drücke, Temperaturen, Spannungen,<br />

Durchflüsse, usw.) linear auf einen Spannungs- oder Stromausgang ab.<br />

In Falle von Spannungen werden die Eingangsgrößen auf Spannungs-Spannen, die<br />

entweder bipolar (-1V - +1V; -5V - +5V; -10V - +10V) oder unipolar sind (0V - 1V, 0V - 5V,<br />

0V -10V), abgebildet. Häufig besitzen Meßeinrichtungen auch hochohmige<br />

Stromausgänge. In diesem Fall werden die Eingangssignale i.a. linear auf Ströme von<br />

0mA - 20mA oder 2mA - 20mA abgebildet. Die Pegelanpassung muß diese Signale<br />

aufnehmen können und sie für die Bedürfnisse der folgenden Stufe aufbereiten. Wir<br />

beschränken uns bei den folgenden Betrachtungen auf Spannungen.<br />

3.1


Bedienelemente<br />

Digital-/Analog-<br />

Wandler<br />

Trennverstärker<br />

Pegelanpassung<br />

Erregungskanal-<br />

Ausgang<br />

PC<br />

Wechselspannungs-<br />

Verstärker-Vorstufe<br />

Abtast- und<br />

Halteglied<br />

Gleichspannungs-<br />

Verstärker<br />

Pegelanpassung<br />

Massenspeicher<br />

3.2<br />

Trennverstärker<br />

Drucker<br />

Analog-/Digital-<br />

Wandler<br />

Anti-Aliasing<br />

Filter<br />

Meßkanal-<br />

Eingang<br />

Offset-<br />

Einstellung<br />

PC-Einsteck-Karte<br />

Bild 3.1.1: Hardware-Erweiterungen eines PCs für Meßaufgaben <strong>zur</strong> Systemerkennung


• Galvanischer Trennverstärker<br />

Die Aufgabe des zweiten Vorverarbeitungs-Gliedes, des galvanischen Trennverstärkers,<br />

besteht darin, zwei elektrische Stromkreise so zu trennen, daß keine Leitungsverbindung<br />

zwischen den beiden Kreisen mehr besteht. Lediglich das Meßsignal wird mit geeigneten<br />

Übertragungs-Elementen vom Datensender (Meßeinrichtung am zu identifizierenden<br />

System) an den Datenempfänger (PC) weitergeleitet. Diese Datenübertragung kann<br />

optisch, mittels sog. Optokoppler, induktiv mittels Transformatoren oder kapazitiv über<br />

spezielle Kondensatoren erfolgen. Auch galvanisch getrennte Gleichspannungsübertragungen<br />

sind möglich. Sender und Empfänger müssen, damit eine absolute<br />

galvanische Trennung vorliegt, auch aus separaten Versorgungs-Spannungsquellen<br />

gespeist werden. Entweder wird ein entsprechend sicheres Netzgerät insbesondere für<br />

die Stromversorgung des Senders und die vor ihm liegenden Elemente der Meßkette<br />

(Pegelanpassungs-Baugruppe) entworfen oder man speist diesen Teil der<br />

Meßeinrichtung aus einer Batterie. Wie man aus den vorangegangenen Bemerkungen<br />

bereits erkennen kann, liegt der Sinn eines galvanischen Trennverstärkers darin, das<br />

Meßsystem vor hohen elektrischen Spannungen zu schützen, die z.B. durch einen<br />

Kabelbruch im zu identifizierenden System ohne galvanische Trennung auf das<br />

Meßsystem übertragen werden könnten. Auch Meßverfälschungen durch Masseschleifen<br />

werden verhindert. Aufbauprinzip und Schaltungsvorschläge für galvanische<br />

Trennverstärker können in /6/ nachgelesen werden.<br />

• Gleich-/Wechselspannungs-Verstärker<br />

Ein der galvanischen Trennung nachgeschalteter Gleich-/Wechselspannungsverstärker<br />

hat primär die Aufgabe, den Analog-/Digital-Wandler so anzusteuern, daß er den<br />

Datenwandlungsvorgang mit möglichst großer Genauigkeit vornimmt.<br />

Zur Erläuterung diese Vorganges muß etwas weiter ausgeholt und teilweise auch auf die<br />

Erläuterung eines A/D-Wandlers vorgegriffen werden.<br />

Ein Analog-Digital-Wandler setzt einen Amplitudenwert eines anliegenden Analog-Signals<br />

in einen binär kodierten Zahlenwert um, den der Digitalrechner einlesen und verarbeiten<br />

kann. Besitzt z. B. ein A/D-Wandler eine Auflösung von 8 Bit, so ist er in der Lage, einen<br />

anliegenden Analogamplitudenwert in 28 unterscheidbare Binärzahlenwerte von 0 bis 255<br />

umzusetzen. Dabei wird bereits beim Entwurf des A/D-Wandlers (in der Herstellerfirma)<br />

festgelegt, welche analoge Eingangsspannungs-Spanne auf diesen Zahlenbereich<br />

abgebildet wird. Für unsere Betrachtungen wollen wir annehmen, daß eine<br />

Eingangsspanne von 0V bis 10V linear auf einem Zahlenbereich von 0 bis 255 abgebildet<br />

wird:<br />

3.3


Bild 3.1.2 : Abbildung eines Analog-Spannungsbereiches auf<br />

Binärzahlenwerte bei der A-/D-Wandlung<br />

Das heißt, eine Spannung von 0V erzeugt das Datenbyte 0, eine Spannung von 10V das<br />

Datenbyte 255 und alle dazwischen liegenden Spannungswerte die binären Daten (BD)<br />

⎛Uin ⋅ 255 ⎞<br />

BD = round ⎜ (3.1.1)<br />

10V<br />

⎟<br />

⎝ ⎠<br />

("round" soll dabei andeuten, daß BD gerundet wird und nur ganzzahlige Werte<br />

annehmen kann).<br />

Die Genauigkeit der A/D-Wandlung ist abhängig von der Auflösung des A/D-Wandlers. In<br />

unserem Fall kann der Spannungsbereich 0V - 10V in 256 unterscheidbare Inkremente<br />

von 10V / 256 = 39,1 mV aufgelöst werden. Das heißt, der maximale Fehler bezogen auf<br />

den Skalenendwert des Eingangssignals beträgt<br />

− 3<br />

39, 1⋅ 10 V<br />

⋅ 100% = 0, 4%<br />

10V<br />

.<br />

Soll nun eine Eingangsspannung, die nur einen Bereich von 0V bis 1V überstreicht, mit<br />

diesem A/D-Wandler in binäre Daten gewandelt werden, steuert dieses Signal den A/D-<br />

Wandler nur zu 1/10 aus, das heißt, der Meßfehler vergrößert sich auf<br />

− 3<br />

39, 1⋅ 10 V<br />

⋅ 100% = 4%<br />

1V<br />

,<br />

wächst also um das Zehnfache. Dieser Fehler kann verhindert werden, wenn man das<br />

Eingangssignal so verstärkt, daß die gesamte Eingangsspanne des Wandlers ausgenutzt<br />

wird. In unserem Falle müßte das Eingangssignal um den Faktor 10 verstärkt werden, um<br />

wieder zu einem Fehler von 0,4% zu gelangen. (Die jetzt in den Computer gelangende<br />

Amplitudeninformation ist natürlich um den Faktor 10 zu groß. Dies ist jedoch einfach<br />

3.4


dadurch korrigierbar, daß z.B. bei einer Signalanzeige auf dem Bildschirm die<br />

Ordinatenskalierung entsprechend geeicht wird, oder das eingelesene Datum nach einer<br />

Fließkomma-Wandlung durch 10 geteilt wird).<br />

Läge eine Eingangsspannung von z.B. 25V vor, müßte das Eingangssignal um den<br />

Faktor 2,5 abgeschwächt werden, um den gesamten Spannungsbereich mit dem A/D-<br />

Wandler erfassen zu können.<br />

Alles dies leistet ein Verstärker (Abschwächer), der vor den A/D-Wandler geschaltet wird.<br />

Stattet man den Verstärker neben der Möglichkeit, Signale zu verstärken oder<br />

abschwächen zu können, noch mit der Fähigkeit aus, dem Meßsignal additiv eine<br />

Gleichspannung zu überlagern (Offset-Aufschaltung), gelingt es, Eingangssignale fast<br />

beliebiger Ordinatenlage wieder auf die Eingangsspanne unseres A/D-Wandlers<br />

umzuformen.<br />

Bild 3.1.3 : Wirkung eines Verstärkers mit Offset-Aufschaltung<br />

In dem in Bild 3.1.3 dargestellten Beispiel wird ein um den Nullpegel herum<br />

schwankendes Signal mit ∆u = 2V zunächst um den Faktor 5 verstärkt und dann mit einer<br />

Offset-Anhebung von +5V auf die Eingangsspanne unseres A/D-Wandlers angehoben.<br />

Häufig besitzen solche Verstärker zwei vom Benutzer wählbare Eingänge<br />

• einen sogenannten Gleichspannungs-Eingang<br />

(DC-Eingang; DC:durent current)<br />

• und einen sogenannten Wechselspannungs-Eingang<br />

(AC-Eingang; AC: alternating current).<br />

Der in Bild 3.1.3 dargestellte Verstärker besitzt einen Gleichspannungs-Eingang. Er läßt<br />

sowohl Gleich- als auch Wechselspannung passieren.<br />

3.5


Ein Verstärker mit Wechselspannungseingang enthält in seiner ersten Stufe ein<br />

Hochpaßfilter mit einer möglichst niedrigen Grenzfrequenz (z.B. 0,5 Hz). Dieses Filter<br />

sorgt dafür, daß sehr niederfrequente Signale und insbesondere Gleichspannung<br />

unterdrückt werden und Wechselspannungen, deren Frequenzkomponenten größer sind<br />

als die Grenzfrequenz des Hochpasses, durchgelassen werden.<br />

Ist zum Beispiel eine Wechselspannung einer relativ hohen Gleichspannung überlagert,<br />

die man nicht mehr mit der Offset-Einstellung kompensieren kann, empfiehlt es sich,<br />

sofern die Wechselspannung die Signalinformation enthält, zum Messen den<br />

Wechselspannungseingang zu benutzen:<br />

Bild 3.1.4 : Wirkung eines Verstärkers mit Wechselspannungs-Eingang<br />

Das Hochpaßfilter befreit das Meßsignal zunächst von seiner Gleichspannungskomponente,<br />

die den Gleichspannungsverstärker i.a. schon übersteuert hätte.<br />

Anschließend wird das Wechselsignal wie in Bild 3.1.3 verstärkt und verschoben, so daß<br />

wieder der Aussteuerbereich des A/D-Wandlers voll ausgeschöpft wird. Die elektronische<br />

Schaltungstechnik von Gleich- und Wechselspannungsverstärkern wird ausführlich in /6/<br />

beschrieben.<br />

3.6


• Abtast- und Halteglied<br />

Nach Bild 3.1.1 folgt dem Gleich-/Wechselspannungs-Verstärker in den<br />

Vorverarbeitungsstufen <strong>zur</strong> digitalen Signalverarbeitung ein sogenanntes Anti-Aliasing-<br />

Filter (AL-Filter). Die Aufgabe dieses Filters besteht darin, Fehlmessungen zu vermeiden,<br />

die durch den in der nächsten Stufe erfolgenden Abtastprozeß des kontinuierlichen<br />

Signals entstehen können. Wir betrachten deshalb zunächst das Abtast- und Halteglied<br />

(AH-Glied) und den A/D-Wandler, um dann noch einmal auf das AL-Filter <strong>zur</strong>ück zu<br />

kommen.<br />

Digitalrechner sind nicht in der Lage, zeitkontinuierliche Signale auch zeitkontinuierlich zu<br />

verarbeiten. Während analoge Baugruppen, wie z.B. Niedefrequenz-Verstärker, zu einem<br />

über der Zeit kontinuierlichen Eingangssignal ein (zwar durch die Baugruppe spezifisch<br />

verformtes) zeitkontinuierliches Ausgangssignal liefern, kann ein Digital-rechner durch<br />

seine endliche Verarbeitungsgeschwindigkeit zu einem bestimmten Zeitpunkt nur einem<br />

Signal-Amplitudenwert einlesen, anschließend in einem darauf folgenden Zeitraum<br />

diesen Wert verarbeiten (z.B. die Wurzel aus dem Wert ziehen) und anschließend in<br />

einem erneuten Zeitabschnitt diesen neuen Wert z.B. <strong>zur</strong> Anzeige auf einem Monitor an<br />

einen Ausgangsport ausgeben.<br />

Erst nach Ablauf der Summe dieser Zeitschritte kann der Digitalrechner wieder einem<br />

neuen Signal-Amplitudenwert einlesen, verarbeiten und ausgeben. Dieser Vorgang kann<br />

beliebig lange fortgesetzt werden.<br />

Das Abtast- und Halteglied übernimmt in diesem Zusammenhang die Aufgabe, zu einem<br />

bestimmten Zeitpunkt (durch den Digitalrechner gesteuert) den Amplitudenwert des<br />

Analogsignals abzutasten (i.a. geschieht dies durch einen elektronischen Schalter, der<br />

den Spannungswert in einen Kondensator lädt). Dieser Spannungswert wird vom AH-<br />

Glied an den AD-Wandler übergeben und so lange vom AH-Glied gehalten, bis der AD-<br />

Wandler den Spannungswert in eine Binärzahl gewandelt hat. Durch den Einsatz des AH-<br />

Gliedes wird vermieden, daß sich das analoge Eingangssignal des AD-Wandlers<br />

während des Wandlungsvorganges ändert und somit keinen falschen Binärwert erzeugt.<br />

Die Zeit, die zwischen zwei Abtastvorgängen vergeht, wird Abtastzeit (T) genannt. Im<br />

allgemeinen ist diese Abtastzeit für eine Meßvorgang immer konstant.<br />

• Analog-/Digital-Wandler<br />

Der Analog-/Digital-Wandler erzeugt aus dem an seinem Eingang liegenden analogen<br />

Amplitudenwert eine Binärzahl, die in einem seriellen oder parallelem Ausgaberegister<br />

dem Digitalrechner <strong>zur</strong> Verfügung gestellt wird.<br />

3.7


Die Wandlungsgeschwindigkeit von A/D-Wandlern ist abhängig von der im A/D-Wandler<br />

angewendeten Technologie, die wir aus Zeitgründen hier nicht erläutern können. Für die<br />

<strong>Systemidentifikation</strong> technischer Systeme sollten Wandler mit Wandlungszeiten im µsek-<br />

Bereich eingesetzt werden.<br />

Bild 3.1.5 : Prinzip des Abtast- und AD-Wandlungs-Vorgangs<br />

Wichtig für spätere Ordinatenskalierungen von Meßergebnissen ist der schon einmal in<br />

Bild 3.1.2 beispielhaft dargestellte Abbildungsbereich der analogen Eingangsspanne auf<br />

ein Binärwort bestimmter Breite.<br />

Die Binärwortbreite beträgt bei handelsüblichen AD-Wandlern 8, 10 oder 12 Bit. AD-<br />

Wandler für Meßaufgaben in der <strong>Systemidentifikation</strong> sollten 10 - 12 Bit Auflösung haben,<br />

so das die Meßgenauigkeit<br />

• bei 10 Bit: 1<br />

10<br />

2<br />

=<br />

1<br />

≈<br />

1024<br />

1o<br />

oo<br />

• bei 12 Bit: 1<br />

12<br />

2<br />

=<br />

1<br />

≈<br />

4096<br />

025 , o<br />

oo<br />

bezogen auf den Endwert der Eingangsspanne des Wandlers beträgt.<br />

Der <strong>zur</strong> Aussteuerung des AD-Wandlers notwendige Spannungsbereich muß nicht, wie<br />

weiter vorn angenommen, zwangsläufig zwischen 0V und 10V liegen. Es existieren auch<br />

AD-Wandler, die mit Eingangsspannen von z.B.: -1V bis +1V, -5V bis +5V oder 0V bis 1V<br />

angesteuert werden müssen. Auch der Abbildungsbereich der Binärzahlen muß nicht bei<br />

0 beginnen. Am Markt angebotene A/D-Wandler können das Eingangssignal (z.B. bei<br />

einem 10 Bit A/D-Wandler) auf einen Binärzahlenbereich von -512 bis +511 abbilden.<br />

System- und signaltheoretisch wichtig ist die Tatsache, daß das analoge Meßsignal von<br />

AH-Glied zeitquantisiert (zeitdiskretisiert) und von AD-Wandler wertquantisiert<br />

(amplitudenquantisiert) wird.<br />

3.8


Während die Zeitquantisierung, wie wir aus /1/ wissen, erheblichen Einfluß auf die<br />

Methoden der Signalverarbeitung hat, kann ab einer Auflösung von 10 bis 12 Bit die<br />

Amplitudenquantisierung in der <strong>experimentellen</strong> <strong>Systemidentifikation</strong> i.a. vernachlässigt<br />

werden. Schaltungstechnische Einzelheiten von AH-Gliedern und A/D-Wandlern können<br />

in /6/ nachgelesen werden.<br />

• Anti-Aliasing Filter<br />

Kommen wir noch einmal zum Anti-Aliasing-Filter <strong>zur</strong>ück: Wie in /1/ begründet, darf bei<br />

der Abtastung von kontinuierlichen Signalen das sogenannte SHANNONsche Abtast-<br />

Theorem<br />

f<br />

fT: Abtastfrequenz<br />

1<br />

= > 2⋅f( ) T: Abtastzeit<br />

( 3. 12 . )<br />

T<br />

fMax ( Signal)<br />

: maximale<br />

im Signal<br />

vorkommende Frequenz<br />

T Max Signal<br />

nicht verletzt werden. Tastet man z.B. unter Verletzung des Abtasttheorems (vergleiche<br />

das folgende Bild 3.1.6) ein Signal mit einer Frequenz fSignal = 0,5 Hz mit einer<br />

Abtastzeit T = 2,5 sek.,<br />

Bild 3.1.6 : Ein Beispiel zum Aliasing-Effekt<br />

was einer Abtastfrequenz fT = 1/2,5 sek. = 0.4 Hz entspricht, ab, erhält der Digitalrechner<br />

über die Abtastwerte (im Bild 2.19 als kleine Kreise dargestellt) eine Signal-Information,<br />

aus der sich eine Signalfrequenz von 0,1 Hz rekonstruieren läßt. Also eine völlig falsche<br />

3.9


Frequenz, die man Aliasing- oder Rückfaltungsfrequenz nennt. Man kann zeigen, daß die<br />

Aliasing-Frequenz immer niedriger ist, als die Frequenz des anliegenden Meßsignals.<br />

Bestehen nun Meßsignale aus einem Frequenzgemisch (woraus sie i.a. immer<br />

bestehen), kann es vorkommen, daß bei einer gewählten festen Abtastzeit hohe<br />

Frequenzkomponenten des Nutzsignals (dies können auch dem Nutzsignal überlagerte<br />

Störanteile sein) das Abtasttheorem verletzen und als Alias-Frequenzen in den<br />

Nutzsignalbereich gespiegelt werden und die Nutzsignalform verfälschen.<br />

Um dies zu vermeiden, wird in den Signalverarbeitungsweg ein analoges Tiefpaßfilter,<br />

das sogenannte Anti-Aliasing-Filter (vergleiche auch Bild 3.1.1), eingefügt, dessen<br />

Grenzfrequenz fg so gewählt wird, daß alle Signalfrequenzen, die Alias-Frequenzen<br />

erzeugen könnten, unterdrückt werden:<br />

f<br />

fT<br />

1<br />

( − ) ≤ =<br />

( 313 . . )<br />

2 2 ⋅ T<br />

g AL Filter<br />

Bild 3.1.7 : Die Wirkung eines Anti-Aliasing-Filters im Frequenzbereich<br />

Das Bild 3.1.7 zeigt die Frequenzlage eines Anti-Aliasing-Filters im Frequenzbereich. Die<br />

Grenzfrequenz des Filters liegt am Ende der Frequenzanteile des Nutzsignals. Darüber<br />

hinaus liegende Frequenzkomponenten eines überlagerten Störsignals werden von ihm<br />

unterdrückt und können dann nicht mehr zu Aliasing -Effekten führen.<br />

Im Erregungskanal des Meßsystems (vergleiche Bild 3.1.1), über den die<br />

Eingangserregung vom PC zum zu identifizierenden System weitergeleitet wird, befinden<br />

3.10


sich weniger Baugruppen als im Meßkanal. So kann z.B. der Gleich-/Wechsespannungs-<br />

Verstärker entfallen, weil die gewünschten Signalamplituden mittels Software im PC<br />

beliebig gestaltet werden können.<br />

Beginnen wir mit der Erläuterung der ersten Ausgabebaugruppe hinter dem PC, dem<br />

Digital-/Anaolog-Wandler.<br />

• Digital-/Analog-Wandler<br />

Der Digital-/Analog-Wandler hat die Aufgabe, Erregungssignale, die als digitale<br />

Zahlenfolgen im Abstand der Abtastzeit T im PC per Programm erzeugt werden, in<br />

analoge (kontinuierliche) Spannungen abzubilden.<br />

D/A Wandler werden, ähnlich wie A/D-Wandler mit verschiedenen Auflösungen (8, 10, 12<br />

Bit), verschiedenen Ausgangspannungs-Spannen und Umsetzgeschwindigkeiten von der<br />

Industrie angeboten. Liegt z.B. ein D/A-Wandler vor, der bei 8 Bit Auflösung eine<br />

Ausgangsspanne von 0 - 10V besitzt, bildet dieser einen Zahlenbereich von 0 - 255 auf<br />

0 - 10V ab:<br />

Bild 3.1.8 : Abbildung eines binären Zahlenwertes auf eine analoge<br />

Spannung bei einem D/A-Wandler<br />

Das heißt, ein Zahlenwert von 0, den der PC ausgibt, wird auf 0V, ein Zahlenwert von<br />

256 auf 10V und alle dazwischen liegenden binären Datenwerte (BD) auf<br />

u<br />

out =<br />

BD V<br />

⋅10<br />

255<br />

. ( 314 . . )<br />

abgebildet. Da die binären Daten nur ganzzahlig sind, kann sich uout nur in gewissen<br />

Quanten ändern, deren Größe von der Auflösung des D/A-Wandlers und seiner<br />

Ausgangsspanne abhängig ist. Bei unserem betrachteten Wandler in Bild 3.1.8 ergibt<br />

sich eine Ausgangsspannungs-Quantelung von<br />

3.11


∆u<br />

out<br />

10V<br />

= ≈ 40mV<br />

255 .<br />

Bei einem 12-bit D/A-Wandler mit gleicher Ausgangspanne sinkt dieser Wert auf<br />

∆u<br />

out<br />

10V<br />

= ≈ 24 , mV<br />

4095 .<br />

Für die <strong>Systemidentifikation</strong> werden D/A-Wandler mit einer Auflösung von 10 - 12 Bit<br />

eingesetzt.<br />

Da die Zahlenfolgewerte BD nur in Abständen der Abtastzeit T vom PC ausgegeben<br />

werden, wird der zuletzt ausgegebene Analogwert vom D/A-Wandler so lange gehalten,<br />

bis nach Ablauf der Abtastzeit wieder ein neuer Analogwert ausgegeben wird. Das heißt,<br />

am Ausgang des D/A-Wandlers entsteht ein treppenförmiges Ausgangssignal. Die<br />

Treppenlänge ist abhängig von der gewählten Abtastzeit.<br />

Bild 3.1.9 : Ein- und Ausgangssignal eines D/A-Wandlers<br />

Bei genügend kleiner Abtastzeit T ist die Treppe kaum noch zu erkennen, das Signal wird<br />

"quasikontinuierlich".<br />

• Trennverstärker und Pegelanpassung<br />

Der Trennverstärker und die Pegelanpassung haben im Erregungskanal die gleiche<br />

Aufgabe wie im Meßkanal.<br />

3.12


3.2 Software-Erweiterungen für die PC-Meßtechnik<br />

Um mit der vorangehend beschriebenen Hardware in einem festen Zeitraster, nämlich im<br />

Abstand der Abtastzeit T Systemantworten einlesen und anzeigen zu können und<br />

darüber hinaus -quasi zeitlich parallel- ein Erregungssignal für das zu identifizierende<br />

System ausgeben zu können, muß die Software die Fähigkeit der Realzeitverarbeitung<br />

(auch Echtzeitverarbeitung oder schritthaltender Betrieb genannt) haben.<br />

Beim Realzeitbetrieb ist der Programmlauf an strenge Zeitbedingungen geknüpft, d.h. die<br />

Berechnung von Ergebnissen muß sofort, spätestens innerhalb eines bestimmten<br />

Zeitintervalls (dessen Länge von externen Prozeß (zu identifizierendes System) diktiert<br />

wird und im Millisekundenbereich liegen kann) abgeschlossen sein.<br />

Soll z.B. bei einem <strong>Systemidentifikation</strong>sprozeß, der aus folgenden Aktionen<br />

• fortlaufendes Einlesen der Meßdaten,<br />

• Speichern der Meßdaten,<br />

• Berechnen eines Filter-Algorithmus <strong>zur</strong> Rauschbefreiung,<br />

• ständiges Anzeigen dieser Meßwerte als "durchlaufende" Zeitfunktion auf dem<br />

Monitor und<br />

• Berechnen und Ausgeben eines Erregungssignals (z.B. einer Pulsfolge mit<br />

verschieden langen Pulsdauern)<br />

besteht, die Aktionsfolge trotz Anwesenheit nur eines Prozessors quasi zeitlich parallel<br />

ablaufen, könnte ein Realzeit-Betriebssystem mit Multi-Tasking-Fähigkeit /18,19/<br />

eingesetzt werden:<br />

Für jede abzuwickelnde Aktion wird ein Programm, eine sogenannte "Task", geschrieben.<br />

Über einen sog. Task-Kontrollblock (<strong>zur</strong> Task gehörige Daten, wie z.B.<br />

Identifikationsnummer, Betriebszustand und Bearbeitungspriorität) kommuniziert jede<br />

Task mit dem Betriebssystem.<br />

Die Tasks können während des Programmlaufs (d.h. während des Meß- und<br />

Auswertvorganges) zwei Haupt-Betriebszustände annehmen:<br />

• rechnend<br />

• nicht rechnend<br />

(wobei der Zustand "nicht rechnend" in real existierenden Betriebssystemen noch in<br />

weitere Unterkategorien eingeteilt wird.)<br />

Damit eine Task in den Zustand "rechnend" übergehen kann, muß ihr vom<br />

Betriebssystem der Prozessor zugeteilt werden. Eine gerade rechnende Task muß dazu<br />

3.13


(auch vom Betriebssystem) unterbrochen werden. Nur Tasks höherer Priorität können<br />

Tasks niederer Priorität unterbrechen. So müßte z.B. die Meßwert-Einlese-Task die<br />

höchste Priorität besitzen, damit sie alle anfallenden Daten ohne Verlust einlesen kann.<br />

Die Tasks (die häufig auch Rechenprozesse genannt werden) durchlaufen dabei i.a. nicht<br />

ihre gesamte Anweisungsfolge in einem Schritt. Um eine quasi parallele Abarbeitung aller<br />

Tasks zu gewährleisten, werden sie häufig unterbrochen.<br />

Bild 3.2.1: Zeitliche Verzahnung von Tasks in einem<br />

Echtzeit-Betriebssystem (nach /18/)<br />

Die Taskumschaltung erfolgt zeittaktgesteuert durch das Betriebssystem. Auch<br />

Tasksynchronisations-Mechanismen (Ereignismitteilungen zwischen Tasks) führen zu<br />

Task-Zustandsänderungen und damit zu Task-Umschaltungen. So muß z.B. die<br />

Erregungs-Task aktiviert werden, wenn die vorgegebene Pulsperiodendauer abgelaufen<br />

ist und ein neuer Signalpegel ausgeben werden muß. Dies geschieht z.B. durch eine sog.<br />

"event-Meldung".<br />

Steht man vor dem Problem mit kurzen Abtastzeiten arbeiten zu müssen, dies ist der Fall,<br />

wenn wir "schnelle" Systeme mit sehr kleinen Zeitkonstanten identifizieren wollen, muß<br />

eine geeignetere Harware-Struktur eingesetzt werden:<br />

Die zu Beginn des Kaptitels erwähnten PC-Einsteckkarten mit A/D- und D/A-Wandler<br />

werden häufig noch mit einem zusätzlichen Signalprozessor ausgestattet, der den PC-<br />

Prozessor entlastet. Dann könnte dieser Signalprozessor, um bei unserem Beispiel zu<br />

bleiben, die Datensammlung, ihre algorithmische Bearbeitung und das Berechnen und<br />

Ausgeben des Erregungssignals übernehmen. Der PC-Prozessor könnte sich dann<br />

3.14


ausschließlich mit der Speicherung und Anzeige der Daten beschäftigen.<br />

Glücklicherweise werden von der Industrie auf diese Problemstellung zugeschnittene,<br />

miteinander korrespondierende Hard- und Software-Komponenten angeboten. Besonders<br />

hervorzuheben sind in diesem Zusammenhang das Meßsystem "Labview" der Firma<br />

National Instruments /8/ und eine Echtzeit-Erweiterung des MATLAB Programmsystems<br />

/9/.<br />

Erweitert man nämlich MATLAB um den sogenannten "Realtime Workshop" und z.B. das<br />

"Realtime Windows Target", einen bestimmten C-Compiler und eine spezielle A/D-D/A-<br />

Wandler-Karte ist MATLAB in der Lage, mit einem PC unter Windows die Echzeit-<br />

Datenaquirierung und die Erregungserzeugung vorzunehmen. Nähere Einzelheiten finden<br />

sich in /21/.<br />

3.15


4 Signalverarbeitungsaspekte <strong>zur</strong> <strong>Systemidentifikation</strong><br />

Mißt man Signale mit der in Kapitel 3 vorgestellten Meßtechnik, werden die<br />

gemessenen Rohsignale i.a. von vielerlei Störungen überlagert sein. Zum Beispiel<br />

von Meßrauschen bei großen Signalverstärkungen, 50 Hz Netzbrummen, und<br />

stochastischen Störungen durch elektromagnetische Einstreuungen.<br />

Obwohl eines der in Kapitel 5 vorgestellten <strong>Systemidentifikation</strong>sverfahren relativ<br />

robust gegen Meßrauschen ist, empfiehlt es sich doch häufig, die gelesenen Daten<br />

vor der algorithmischen Behandlung <strong>zur</strong> <strong>Systemidentifikation</strong> von diesen Störungen<br />

zu befreien.<br />

Soweit dies nicht schon durch geeignete analoge Filterschaltungen in der Meßkette<br />

durchgeführt wurde, müssen die Filter in Form digitaler Filter, d.h. per Software<br />

realisiert werden. Darüber hinaus müssen bei einigen Anwendungen die vom<br />

Meßsensor erfaßten Signale gewandelt werden. Zum Beispiel, wenn der<br />

Bewegungsweg eines Fahrzeugs benötigt wird, aber die einfacher zu messende<br />

Beschleunigung des Fahrzeugs sensorisch erfaßt wird. In diesem Falle führt eine<br />

zweimalige Integration des gemessenen Signals auf die Weginformation. Deshalb<br />

sollen in diesem Kapitel auch einfache zeitdiskrete Differenzierer und Integrierer<br />

beschrieben werden.<br />

Da uns zum tieferen Verständnis von Filteralgorithmen einige wesentliche<br />

Grundlagen der Signaltheorie fehlen, wird dieses Kapitel weitgehend als<br />

"Rezeptsammlung" unter Nutzung von Matlab-Befehlen aufgebaut.<br />

4.1 Entwurf digitaler Filter<br />

Digitale Standard-Filter sind Algorithmen in Form rekursiver Differenzengleichungen.<br />

Die Entwurfsbasis ist die dazugehörige z-Übertragungsfunktion. Durch geeignete<br />

Parametrierungen dieser Übertragungsfunktion lassen sich gewünschte<br />

Filtereigenschaften festlegen. Durch anschließende Wandlung in eine<br />

Differenzengleichung (vergleiche /1/) steht dann das gewünschte digitale Filter <strong>zur</strong><br />

Verfügung.<br />

Die Bestimmung der Parameter der Übertragungsfunktion fordert die Festlegung<br />

folgender Filtermerkmale:<br />

• die Filterart,<br />

• die Grenzfrequenz(en),<br />

• die Filterordnung und<br />

• den Filtertyp<br />

Hinter der Filterart verbirgt sich die Form der gewünschten Betragskennlinie des<br />

Bodediagramms, nämlich, ob es sich um ein Tiefpaß-, Hochpaß-, Bandpaß- oder<br />

4.1


Bandsperren-Filter handeln soll. Das folgende Bild 4.1.1 zeigt schematisch diese vier<br />

Filterarten.<br />

Bild 4.1.1 : Die vier Standard-Filterarten<br />

Wie man erkennt, läßt das Tiefpaßfilter tiefe Frequenzen passieren (0 dB entspricht<br />

einer Verstärkung von eins), während es hohe sperrt. Das Hochpaßfilter wirkt<br />

umgekehrt. Der Bandpaß läßt ein bestimmtes Frequenzband passieren, während die<br />

Bandsperre bis auf ein bestimmtes Frequenzband alle Frequenzen passieren läßt.<br />

Mit den Grenzfrequenzen fg , fgu und fgo wird die Grenze zwischen Sperr- und<br />

Durchlaßbereich beschrieben. Die Grenzfrequenzen sind definiert als die<br />

Frequenzen, wo ausgehend von der Durchlaß-Verstärkung |V| dB = 0 eine Dämpfung<br />

von -3dB eintritt.<br />

Mit der Wahl der Filterordnung, die identisch ist mit dem Nennergrad der<br />

Filterübertragungsfunktion, kann die Steilheit des Abfalls der Betragskennlinie vom<br />

Durchlaß- in den Sperrbereich festgelegt werden. Niedrige Filterordnungen erzeugen<br />

einen sanften, höhere Filterordnungen einen steileren Abfall.<br />

Mit dem Filtertyp (Butterworth, Tschebyscheff, Bessel, usw.) kann eine spezielle<br />

Optimierung zwischen dem Verhalten des Filters im Zeit- und Frequenzbereich<br />

herbeigeführt werden:<br />

4.2


• Die Parameter der Übertragungsfunktion eines Butterworth-Filters werden so<br />

berechnet ("optimiert"), daß die Amplitudenkennlinie bis <strong>zur</strong> Grenzfrequenz fg möglichst lange horizontal verläuft, um dann erst kurz vor der Grenzfrequenz<br />

scharf abzuknicken. Die Sprungantwort im Zeitbereich zeigt ein leichtes<br />

Überschwingen.<br />

• Tschebyscheff-Filter besitzen oberhalb der Grenzfrequenz einen noch steileren<br />

Abfall der Amplitudenkennlinie. Im Durchlaßbereich verläuft die Betragskennlinie<br />

allerdings nicht monoton, sondern hat (sehr unvorteilhaft) eine Welligkeit von<br />

konstanter Amplitude. Der Verstärkungsabfall oberhalb fg wird um so steiler, je<br />

größer man diese Welligkeit zuläßt. Das Überschwingen der Sprungantwort ist<br />

noch größer als bei Butterworth-Filtern.<br />

• Bessel-Filter zeigen ein sehr geringes Überschwingen im Zeitbereich, verfälschen<br />

also das durchzulassende Signal am geringsten. Dafür besitzen sie ein<br />

geringeres Dämpfungsgefälle als Butterworth- und Tschebyscheff-Tiefpässe.<br />

Der Filtertyp Butterworth stellt eine guten Kompromiß zwischen Zeitbereichs- und<br />

Frequenzbereichs-Verhalten dar. Wir wollen uns deshalb auf diesen Filtertyp<br />

beschränken. Matlab stellt zum Entwurf solcher Filter in seiner "Signal Processing<br />

Toolbox" den Befehl "butter.m" <strong>zur</strong> Verfügung. Mit den in (4.1.1) - (4.1.4)<br />

angegebenen Parametrierungen ergeben sich folgende Filterarten:<br />

Tiefpaß: [z,n] = butter (n, fgn) (4.1.1)<br />

Hochpaß: [z,n] = butter (n, fgn, 'high') (4.1.2)<br />

Bandpaß: [z,n] = butter (n, [fgun, fgon]) (4.1.3)<br />

Bandsperre: [z,n] = butter (n, [fgun, fgon], 'stop') (4.1.4)<br />

Der Filtertyp wird durch den Befehlsnamen "butter" festgelegt. n ist die frei wählbare<br />

Filterordnung, sie sollte i.a. nicht zu hoch gewählt werden (ca. ≤ 4), da es sonst zu<br />

Rechenfehlern und damit zu einer Verzerrung der Filterkennlinie (Bild 4.1.1) kommt.<br />

Sinnvollerweise sollte deshalb bei einem Filterentwurf immer das Bodediagramm des<br />

Filters berechnet und betrachtet werden.<br />

Die Grenzfrequenzen fgn , fgun und fgon müssen (weil Matlab es fordert) normiert als<br />

Zahlen zwischen 0 und 1 eingegeben werden. Dabei korrespondiert 1 mit der halben<br />

Abtastfrequenz, mit der das zu filternde Signal abgetastet wurde:<br />

fg<br />

fgn<br />

fg<br />

= ⇒ fgn<br />

=<br />

f / 2 1 f / 2<br />

T<br />

T<br />

f T : Abtastfrequenz, f g : gewünschte Grenzfrequenz<br />

f gn : normierte Grenzfrequenz<br />

4.3<br />

( 415 . . )


Mit dieser Festlegung wird dann automatisch das Shannonsche Abtastheorem<br />

eingehalten. Wir betrachten dazu folgendes<br />

Beispiel 4.1.1: Ein zu filterndes Signal "u" wurde mit einer Abtastzeit T=0.001 sek.<br />

abgetastet. Alle Frequenzkomponenten des Signals über 100 Hz sollen mit einem<br />

Tiefpaß-Filter 4. Ordnung ausgefiltert werde. Berechne die Koeffizienten der z-<br />

Übertragungsfunktion des Filters mit Hilfe von Matlab.<br />

Lösung:<br />

% Entwurf eines digitalen Tiefpass-Filters<br />

n = 4; % Filterordnung<br />

fT = 1/T; % Abtastfrequenz<br />

fg = 100; % gewünschte Grenzfrequenz<br />

fgn = fg / (fT/2); % normierte Grenzfrequenz<br />

[z, n] = butter (n,fgn); % Koeffizienten des Tiefpaß-Filters<br />

[z, n] auf der linken Seite der Befehle (4.1.1) - (4.1.4) sind die Koeffizienten des<br />

Zählers (z) und des Nenners (n) der z-Übertragungsfunktion des berechneten<br />

digitalen Filters.<br />

Nachdem die Koeffizienten des Filter bekannt sind, kann daraus die rekursive<br />

Differenzengleichung berechnet und implementiert werden (vergleiche /1/). Unter<br />

Matlab braucht diese Umformung nicht mehr durchgeführt werden. Die eigentliche<br />

Signalfilterung kann mit dem Matlab-Befehl<br />

sys = tf (z,n,T);<br />

y = lsim (sys, u); (4.1.6)<br />

durchgeführt werden. "u" ist der Vektor des zu filternden Eingangssignals, "y" der<br />

gefilterte Ausgangssignal-Vektor und "z" und "n" sind die Koeffizienten der oben<br />

berechneten z-Übertragungsfunktion des digitalen Filters,„sys“ ist das dazugehörige<br />

(zeitdiskrete) Übertragungsfunktionsobjekt.<br />

4.2 Entwurf kontinuierlicher Filter<br />

Da der in Kapitel 5.3.2 zu beschreibende suchstrategische <strong>Systemidentifikation</strong>s-<br />

Algorithmus mit quasi kontinuierlichen Signalen und Systemmodellen arbeitet,<br />

können dort <strong>zur</strong> Störbefreiung der gemessenen Signale keine digitalen Filter<br />

angewendet werden. Um mit einem Digitalrechner kontinuierliche Filter zu erzeugen,<br />

müssen diese kontinuierlich simuliert werden. In /20/ hatten wir dazu die Matlab-<br />

Befehlsfolge<br />

sys = tf (z, n);<br />

y = lsim (sys, u, t); (4.2.1)<br />

4.4


z : Zähler der s-Übertragungsfunktion des Filters.<br />

n : Nenner der s-Übertragungsfunktion des Filters.<br />

u : Eingangssignal-Vektor.<br />

t : Beobachtungsintervall.<br />

y : Ausgangssignal-Vektor.<br />

kennengelernt. Mit ihr konnte man kontinuierliche Systeme simulieren, das heißt das<br />

Ausgangssignal "y" zu einem beliebigen Eingangssignal "u" berechnen. Sind "z" und<br />

"n" Zähler und Nenner einer kontinuierlichen Filter-Übertragungsfunktion, kann man<br />

mit "lsim" Signale kontinuierlich filtern. Zu den Koeffizienten des Zähler- und<br />

Nennerpolynoms des gewünschten Filters gelangt man wieder (wenn man sich auch<br />

auf den Filtertyp "Butterworth" beschränkt) mit dem Matlab-Befehl "butter", diesmal<br />

allerdings mit einer etwas anderen Parametrierung:<br />

[z,n]=butter(n,omega_g,'s'); % Tiefpaß (4.2.2)<br />

[z,n]=butter(n,omega_g,'high','s'); % Hochpaß (4.2.3)<br />

[z,n]=butter(n,[omega_gu, omega_go],'s'); % Bandpaß (4.2.4)<br />

[z,n]=butter(n,[omega_gu, omega_go],'stop','s'); % Bandsperre (4.2.5)<br />

Zum Entwurf kontinuierlicher Filter muß der Befehl "butter" in der letzten Stelle der<br />

Argumentliste um ein 's' (in Hochkommas) ergänzt werden. Dies weist Matlab darauf<br />

hin, daß ein kontinuierliches Filter entworfen werden soll. Die Grenzfrequenzen<br />

müssen nicht in normierter Form eingegeben werden, sondern es muß der<br />

Absolutwert der Kreis-Grenzfrequenz (ωg = 2⋅π⋅fg) benutzt werden. Sonst ist die<br />

Parametrierung von (4.2.2-5) identisch mit der von (4.1.1-4).<br />

Am Beispiel eines Tiefpaßfilter mit einer Grenzfrequenz von 100Hz wollen wir den<br />

Entwurfsvorgang wieder demonstrieren.<br />

Beispiel 4.2.1 : Ein zu filterndes Signal "u", das über einem Beobachtungsintervall<br />

"t = 0 : dt : tend" mit "dt=1.e-3" und "tend=10" vorliege, soll so mit einem Tiefpaßfilter<br />

4. Ordnung gefiltert werden, daß alle Frequenzkomponenten über 100Hz aus "u"<br />

entfernt werden. Berechne das entsprechende Butterworthfilter und filtere das Signal.<br />

Lösung:<br />

% Entwurf eines kontinuierlichen Tiefpaßfilters<br />

n=4; % Filterordnung<br />

fg=100; % Grenzfrequenz<br />

omega_g=2*pi*fg; % Kreis-Grenzfrequenz<br />

[z,n]=butter(n,omega_g,'s'); % Filter-Entwurf<br />

%Nutzung des entworfenen Filters<br />

sys=tf(z,n); % Filter<br />

y=lsim(sys,u,t);<br />

4.5


Auch bei einem so simulierten kontinuierlichen Filter muß auch darauf geachtet<br />

werden, daß das Shannonsche Abtasttheorem eingehalten wird: fg muß immer der<br />

Beziehung<br />

f<br />

g ≤<br />

1<br />

2 ⋅ dt<br />

genügen, wobei dt, wie oben angegeben, der Rechenschrittweite entspricht<br />

4.3 Entwurf digitaler Integrierer und Differenzierer<br />

4.6<br />

( 426 . . )<br />

Wir wählen aus der Vielzahl der Entwurfsmöglichkeiten für Differenzierer und<br />

Integrierer die Diskretisierung ihrer kontinuierlichen Vorbilder mit Hilfe der<br />

Tustinschen Näherung /1/.<br />

• Integrierer<br />

Der Integrator berechnet sich mit dieser Näherung aus<br />

1 Tz ( + 1)<br />

Tz + T<br />

Gz ( ) = 2 ( z−<br />

1)<br />

= = . ( 431 . . )<br />

s = 2( z − 1) 2z−2 s<br />

T ( z+<br />

1)<br />

T: Abtastzeit<br />

Damit ist die z-Übertragungsfunktion bekannt und der Integrierer kann mit Hilfe des<br />

Matlab-Befehls "filter" realisiert werden:<br />

zi = [T, T]; % Zählerpolynom des Integrieres<br />

ni = [2, -2]]; % Nennerpolynom des Integrierers<br />

y = filter (zi, ni, u); % Integierer (4.3.2)<br />

Soll mit LTI-Objekten gearbeitet werden, muß wieder der Befehl “lsim“ <strong>zur</strong> Filterung<br />

benutzt werden:<br />

sys = (z,n,T);<br />

y = lsim(sys,u,t);<br />

Wobei T wieder die Abtastzeit darstellt.<br />

• Differenzierer<br />

Wollte man nach dem entsprechenden Ansatz einen Differenzierer entwickeln:


Gz ( ) = s 2( z−<br />

1)<br />

( 433 . . )<br />

s= T ( z+<br />

1)<br />

würde man auf einen nicht funktionsfähigen Algorithmus stoßen, da die<br />

Übertragungsfunktion des kontinuierlichen Vorbilds G(s) = s wegen der erforderlichen<br />

Realsierungsbedingung (Zählergrad ≤ Nennergrad) nicht realisierbar ist.<br />

Um den Differenzierer realisierbar zu machen, muß eine Realisierungzeitkonstante<br />

TR in Form eines PT1-Gliedes eingefügt werden:<br />

s<br />

Gs ( ) = . ( 434 . . )<br />

1+<br />

sTR Das zusätzliche PT1-Glied verfälscht natürlich die Eigenschaften des Differenzierers.<br />

(Dies ist besonders deutlich in der Betragskennlinie des Bodediagramms erkennbar,<br />

wo der charakteristische Anstieg des Differenzierers bei höheren Frequenzen durch<br />

den Einfluß des PT1-Gliedes in proportionales Übertragungsverhalten übergeht). Je<br />

kleiner man TR wählt, um so geringer ist aber diese verfälschende Eigenschaft. Um<br />

das Shannonsche Abtasttheorem nicht zu verletzen, wird darum TR so klein gewählt,<br />

wie es dieses Theorem erlaubt:<br />

fT<br />

fg<br />

=<br />

2<br />

1<br />

= .<br />

2T<br />

( 435 . . )<br />

fT :<br />

T :<br />

Abtastfrequenz<br />

Abtastzeit<br />

Die Kennfrequenz ωk ist bekanntlich der Kehrwert der Zeitkonstante TR:<br />

1<br />

ωK = 2 ⋅π⋅ fg<br />

=<br />

T<br />

Daraus berechnet sich mit (4.3.5)<br />

T<br />

R<br />

1<br />

=<br />

2 ⋅π⋅f Setzt man (4.3.7) in (4.3.4) ein<br />

g<br />

R<br />

. ( 436 . . )<br />

1 T<br />

= = . ( 437 . . )<br />

1<br />

2 ⋅ π ⋅<br />

π<br />

2T<br />

s<br />

Gs<br />

s T<br />

( ) = , ( 438 . . )<br />

1+<br />

π<br />

4.7


erhält man einen kontinuierlichen, realisierbaren Differenzierer, der nur noch<br />

diskretisiert werden muß:<br />

s<br />

Gs<br />

s T ( ) =<br />

. ( 439 . . )<br />

2 ( z−<br />

1)<br />

s =<br />

1+<br />

T z+<br />

1<br />

π<br />

Nach einigen Zwischenrechnungsschritten ergibt sich schließlich die z-Übertragungsfunktion<br />

des zeitdiskreten Differenzierers:<br />

2 2<br />

⋅z− G(z) = T T . (4.3.10)<br />

⎛ 2⎞ ⎛ 2⎞<br />

⎜1+ ⎟z+ ⎜1− ⎟<br />

⎝ π⎠ ⎝ π⎠<br />

Mit dieser Übertragungsfunktion kann der Differenzierer unter Matlab realisiert<br />

werden:<br />

zd = [2/T, -2/T]; % Zählerpolynom des Differenzierers<br />

nd = [1+2/pi, 1-2/pi]]; % Nennerpolynom des Differenzierers<br />

y = filter (zd, nd, u); % Differenzierer<br />

(4.3.11)<br />

Soll auch hier mit LTI-Objekten gearbeitet werden, gelten die gleichen Aussagen, wie<br />

bei der vorangehenden Programmierung des Integrierers.<br />

4.8


5. <strong>Verfahren</strong> <strong>zur</strong> <strong>Systemidentifikation</strong><br />

In diesem Kapitel werden die eigentlichen Methoden und <strong>Verfahren</strong> <strong>zur</strong> praktischen<br />

<strong>Systemidentifikation</strong> ausführlich besprochen. Neben Handrechnungsmethoden, die keiner<br />

Rechnerunterstützung bedürfen, werden zwei computergestützte <strong>Verfahren</strong> vorgestellt, die<br />

in programmtechnisch realisierten Simulations-Umgebungen unter Matlab erprobt werden<br />

können. Besonderer Wert wird auf die folgenden "Vorbereitenden Betrachtungen" vor<br />

Beginn des eigentliche Identifikationssprozesses gelegt.<br />

5.1 Vorbereitende Betrachtungen und Maßnahmen<br />

Bevor man den eigentlichen Prozeß der <strong>Systemidentifikation</strong> beginnt, sollten eine Reihe<br />

von Vorüberlegungen angestellt und einige Vorbereitungsarbeiten vorgenommen werden.<br />

In der Literatur werden die dabei gewonnenen Erkenntnisse häufig als vorhandene oder<br />

"a priori"-Kenntnisse bezeichnet.<br />

Da diese Erkenntnisschöpfung erheblich vom spezifischen zu identifizierenden System<br />

abhängig ist, z.B. von der Tatsache, ob wir einen Rührkessel-Reaktor <strong>zur</strong> Neutralisation<br />

von Prozeßflüssigkeit, einen Antriebsmotor für eine Papiermaschine oder das<br />

Steuerverhalten eines Motorschiffes identifizieren wollen, müssen die folgenden<br />

Betrachtungen zwangsläufig etwas oberflächlich bleiben.<br />

5.1.1 Messen im Arbeitspunkt<br />

Wie schon weiter vorn erläutert wurde, sollten Systemantwortmessungen <strong>zur</strong><br />

<strong>Systemidentifikation</strong> immer mit kleinen Erregungen ∆u um den Arbeitspunkt uA herum<br />

vorgenommen werden. Während bei theoretischen Betrachtungen der Arbeitspunkt durch<br />

die Eingangsgröße u(t)=uA einer Ruhelage und dem Vektor der dazugehörigen<br />

Zustandsgrößen der Ruhelage x(t)=xA beschrieben wird /1/, gibt man bei praktischen<br />

Problemstellungen den Arbeitspunkt häufig in Form eines Wertes der Ausgangsgröße<br />

y(t)=yA an. Zur Bestimmung von uA muß dann das Eingangssignal solange variiert<br />

werden, bis sich die Ruhelage yA einstellt. Oder man zieht die statische Kennlinie zu Rate.<br />

Die Arbeitspunktwerte der Zustandsgrößen sind i.a. nicht von Interesse.<br />

5.1.2 Berücksichtigung von Aussteuerbereich und Aussteuerrichtungen<br />

Jedes System hat einen Betriebsbereich, der i.a. nach oben und unten durch Schranken<br />

begrenzt wird. So beschränkt z.B. der folgende elektrische Verstärker mit einem<br />

Verstärkungsfaktor V = 3,75 seine Ausgangsspannung auf ±15V<br />

5.1


Bild 5.1.1 : Beschränkter Betriebsbereich eins elektrischen Verstärkers<br />

d.h. bei Eingangssignalen u e (t) > |4V| verläßt der Verstärker seinen Arbeitsbereich und<br />

arbeitet nicht mehr als Verstärker: er ist übersteuert. Auch nichtelektrische Systeme haben<br />

solche Begrenzungen, so ist z.B. bei einem Flüssigkeits-Füllstand eines Behälters der<br />

Überlauf als Begrenzung anzusehen, auch der Drehwinkel eines Potentiometers ist auf 0°<br />

bis 270° beschränkt.<br />

-5<br />

-4<br />

-3<br />

-2<br />

15<br />

10<br />

5<br />

-1<br />

-5<br />

-10<br />

-15<br />

u a<br />

0 1 2 3 4 5<br />

Die Kenntnis des Betriebsbereichs eines Systems ist insbesondere dann von Wichtigkeit,<br />

wenn global integrale Systeme identifiziert werden sollen. Dann ist nämlich eine solche<br />

Systemerregung zu wählen, daß der Betriebsbereich nicht überschritten wird. Dies erreicht<br />

man entweder mit kleinen Erregungsamplituden oder mit sich abwechselnden positiven<br />

und negativen Erregungen.<br />

Es ist daher empfehlenswert, den Aussteuerbereich eines Systems vor den Messungen<br />

<strong>zur</strong> Identifizierung zu ermitteln.<br />

Es kommt häufig vor, daß Systeme bei einer positiven Erregung um den Arbeitspunkt ein<br />

anderes Systemverhalten (anderen Einschwingvorgang, anderen Verstärkungsfaktor)<br />

aufweisen, als wenn man sie in negativer Richtung erregt (vergleiche Bild 5.1.2).<br />

Das liegt häufig daran, daß die Signalbewegung in der einen Richtung aktiv stellend<br />

unterstützt wird, in der anderen Richtung aber nur passiv verläuft.<br />

Dies ist zum Beispiel der Fall, wenn bei der Klimatisierung eines Raumes die Aufheizung<br />

aktiv , z.B. durch Radiatoren, die Abkühlung aber nur passiv durch Auskühlung in die<br />

Umgebung und nicht durch aktiv durch Zuführung von Kaltluft erfolgt.<br />

Es ist daher empfehlenswert, bei der Identifikation zwei Messungen vorzunehmen, einmal<br />

mit einer Erregung in positiver und einmal in negativer Richtung, um beide<br />

Systemeigenschaften zu identifizieren.<br />

5.2<br />

u e


yt ()<br />

ut ()<br />

AP<br />

23<br />

22<br />

21<br />

20<br />

19<br />

18<br />

25 ,<br />

17<br />

0 10 20 30 40<br />

275 ,<br />

225 ,<br />

Bild 5.1.2 : Unterschiedliches Einschwingverhalten<br />

bei positiver und negativer Erregung<br />

5.1.3 Behandlung totzeitbehafteter Systeme<br />

Totzeitverhalten eines Systems wird bekanntlich durch den irrationalen Term e-sT in der<br />

Übertragungsfunktion modelliert /1/:<br />

∗ −<br />

Gs G s e sT ( ) = ( ) ⋅ t . ( 511 . . )<br />

Dabei ist G * (s) der totzeitfreie, gebrochen rationale Term der Übertragungsfunktion. Alle in<br />

diesem Kapitel später betrachteten <strong>Systemidentifikation</strong>sverfahren führen nur auf<br />

gebrochen rationale Modelle.<br />

Da man bei einer Sprungantwort-Messung die im System auftretende Totzeit sehr gut<br />

ausmessen kann (vergleiche das folgende Bild 5.1.3), wird empfohlen, falls es möglich ist,<br />

diese vor Beginn des Identifikations-Prozesses abzuspalten und die Identifikation an der<br />

dann verbleibenden Rest-Sprungantwort vorzunehmen. Die ausgemessene Totzeit Tt wird<br />

anschließend der identifizierten gebrochen rationalen Modell-Übertragungsfunktion (wie in<br />

(5.1.1)) multiplikativ hinzugefügt.<br />

Dieses Vorgehen ist allerdings nur mit den <strong>Systemidentifikation</strong>sverfahren durchführbar,<br />

die auf der Basis sprungförmiger Erregungen arbeiten können. Dazu gehören alle<br />

Handrechnungsverfahren (Kapitel 5.2) und ein rechnergestütztes <strong>Verfahren</strong>, das auf der<br />

Basis sogenannter Optimierungsverfahren arbeitet (Kapitel 5.3.2). Die in Kapitel 5.3.1<br />

beschriebenen SKQ-<strong>Verfahren</strong> erlauben keine sprungförmigen Erregungen.<br />

5.3<br />

t<br />

t


h(t)<br />

0<br />

∗<br />

<strong>zur</strong> Identifikation von G ( s) zu<br />

nutzender Teil der Sprungantwort<br />

abzuspaltende Totzeit T t<br />

t<br />

5.4<br />

h(t)<br />

Bild 5.1.3 : Abspaltung von Totzeit vor dem Identifikationsprozeß<br />

5.1.4 Ausschluß nicht meßbarer Störungen<br />

Bekanntlich werden Regelkreise zu dem Zwecke entworfen und aufgebaut, nicht meßbare<br />

Störungen zu unterdrücken bzw. ihren Einfluß zu minimieren, die sonst die Regelgröße<br />

beeinflussen würden. Das zu identifizierende Objekt ist demnach ein System mit mehreren<br />

Eingängen und einem Ausgang.<br />

z(t)<br />

Übertragungs-<br />

u(t) y(t)<br />

system<br />

Bild 5.1.4 : Ein durch z(t) gestörtes System<br />

Da alle <strong>Systemidentifikation</strong>s-Algorithmen das Systemmodell aus der Erregung u(t) und<br />

dem dazugehörigen Ausgangssignal y(t) berechnen, muß eine zusätzliche Störung z(t)<br />

den Identifikationsprozeß verfälschen, da in y(t) durch z(t) induzierte Signalkomponenten<br />

enthalten sind.<br />

Wie wir später noch sehen werden, tolerieren einige Algorithmen Störungen in Form<br />

hochfrequenten Rauschens (hochfrequent in Bezug auf die Zeitkonstanten des zu<br />

identifizierenden Systems). Andere Algorithmen sind auch dagegen empfindlich und<br />

führen zu schlechten Systemmodellen.<br />

Niederfrequente Störungen insbesondere mit großen Amplituden führen in allen Fällen zu<br />

schlechten oder völlig unbrauchbaren Systemmodellen.<br />

0<br />

t


Als Beispiel sei die Identifikation der Regelstrecke eines Raumheizungsregelkreises<br />

genannt. Zur Identifikation wird man das Eingangssignal, z.B. den Warmwasser-Durchfluß<br />

durch die Heizelemente sprungförmig vergrößern (Eingangserregung u(t)) und den sich<br />

dazu einstellende Raumtemperatur-Verlauf (Ausgangssignal y(t)) an einer geeigneten<br />

Stelle des Raumes messen. Ohne Störungseinfluß wird sich ein Signalverlauf, der PT n T t -<br />

Verhalten aufweist, einstellen. Kühlt oder heizt aber die sich verändernde Umgebungs-<br />

temperatur (Störung z(t)) des Raumes den Raum ab oder auf, macht sich dies in einer<br />

Veränderung der Raumtemperatur y(t) in Abhängigkeit der Umgebungstemperatur z(t)<br />

bemerkbar, die nicht auf die Eingangserregung u(t) <strong>zur</strong>ückzuführen ist.<br />

Auf der Basis einer solchen Messung berechnet jedes <strong>Systemidentifikation</strong>s-<strong>Verfahren</strong> ein<br />

falsches Modell der Raumheizungs-Regelstrecke. In einer solchen Situation muß die<br />

Messung zu einem Zeitpunkt vorgenommen werden , wo sich die Außentemperatur gar<br />

nicht oder nur gering ändert. Gegebenenfalls muß der Meßvorgang mehrfach wiederholt<br />

werden.<br />

Glücklicherweise lassen sich bei einer Vielzahl der Regelstrecken leichter störungsfreie<br />

Meßzeiträume herbeiführen als bei dem betrachteten Beispiel.<br />

5.1.5 Nutzung vorhandener Stell- und Meßtechnik<br />

Die meisten Regelkreise sind so aufgebaut, daß die Stelleinrichtung der Strecke mit<br />

niederenergetischen elektrischen Signalen (Spannungen oder Ströme) angesteuert und<br />

die Regelgröße mittels der Meßeinrichtung wieder auf elektrische Größe abgebildet wird.<br />

sung<br />

Bild 5.1.5 : Identifikations-Messung an einer Regelstrecke<br />

Man sollte es sich daher zum Prinzip machen, die für den normalen Betrieb des Systems<br />

vorgesehene Stell- und Meßtechnik auch für die <strong>Systemidentifikation</strong> zu nutzen. Damit<br />

wird bereits die zum Reglerentwurf notwendige Übertragungsfunktion des offenen<br />

Regelkreises ohne Regler L * (s) identifiziert:<br />

5.5


*<br />

L ( s) = G ( s) ⋅G ( s) ⋅G ( s).<br />

( 511 . . )<br />

Stell S M<br />

Während die Identifikation der Reihenschaltung von Stelleinrichtung und Regelstrecke i.a.<br />

unproblematisch ist, kann die Reihenschaltung von Strecke und Meßeinrichtung<br />

problematisch sein, wenn z.B. G M (s) gegenüber G Stell (s) ⋅ G S (s) wesentliche Zeit-<br />

konstanten besitzt. Wie in /2/ beschrieben, täuscht dann der Verlauf von y M (t) eine andere<br />

Dynamik vor, als den wahren Verlauf der Regelgröße y(t). Es wird deshalb empfohlen, die<br />

Meßeinrichtung einer separaten <strong>Systemidentifikation</strong> zu unterziehen.<br />

5.1.6 Identifikation von Systemkombinationen bei atypischen Signalen<br />

Wenn ein Übertragungssystem eine Ausgangssignalform liefert, die nicht mit den<br />

vorangehend beschriebenen Methoden analysiert werden kann, z.B. wenn eine<br />

Stelleinrichtung <strong>zur</strong> Ansteuerung eines Gleichstrommotors ein pulsdauer-moduliertes<br />

Ausgangssignal erzeugt,<br />

u(t)<br />

Steuer<br />

spannung<br />

u(t)<br />

u (t)<br />

P<br />

Pulsdauermodulator<br />

t<br />

u (t)<br />

P<br />

5.6<br />

n(t)<br />

Gleichstrommotor<br />

Drehzahl<br />

n(t)<br />

Bild 5.1.6 : Drehzahlsteuerung mittels Pulsdauermodulation<br />

muß das darauffolgende Übertragungssystem mit in die <strong>Systemidentifikation</strong> einbezogen<br />

werden. Bei dem erwähnten Beispiel führt dies wieder zu auswertbaren Signalen für die<br />

<strong>Systemidentifikation</strong>.<br />

t<br />

t


5.2 Einfache Handrechnungsverfahren <strong>zur</strong> <strong>Systemidentifikation</strong><br />

In diesem Kapitel werden einige einfache Identifikationsverfahren beschrieben, bei denen<br />

man ohne Rechnerunterstützung auskommt. Das erste <strong>Verfahren</strong> arbeitet auf der Basis<br />

eines Katalogs von Sprungantworten. Obwohl auch diese Systeme, die dem Katalog der<br />

Sprungantworten zu Grunde liegen, genauer mit rechnergestützten <strong>Verfahren</strong> identifiziert<br />

werden können, sollen sie hier dennoch aus didaktischen Gründen aufgeführt werden. Sie<br />

fördern nämlich das "a priori"-Verständnis über Systemmodelle, da sie den in /1/<br />

beschriebenen Zusammenhang zwischen der Struktur der Übertragungsfunktion und Form<br />

der Sprungantwort noch einmal sehr deutlich machen.<br />

5.2.1 Kataloggestützte Sprungantwort-Analyse<br />

Betrachtet man in /1/, Kapitel 1.4, den Katalog der wichtigsten real existierenden Übertragungssysteme,<br />

erkennt man sehr unterschiedliche Sprungantwortverläufe der verschiedenen<br />

Übertragungssysteme. Bei einigen einfachen Systemen gelingt es dadurch<br />

relativ eindeutig, von der Form der Sprungantwort auf die Struktur der dazugehörigen<br />

Übertragungsfunktion zu schließen. Auf Grund der durch die Laplace-Transformation<br />

gegebenen Beziehungen zwischen Zeit- und Laplace-Bereich können darüber hinaus<br />

durch Vermessung einiger markanter Punkte der Sprungantwort Daten gewonnen werden,<br />

aus denen man die noch unbekannten Parameter der Übertragungsfunktion berechnen<br />

kann.<br />

In dieser Vorgehensweise besteht die Grundidee der kataloggestützten Sprungantwortanalyse.<br />

Bevor wir diesen Katalog im Folgenden darstellen, wollen wir an einem Beispiel<br />

zeigen, wie man zu den Parameterbeziehungen zwischen Sprungantwort und<br />

Übertragungsfunktion gelangt.<br />

Beispiel 5.2.1: Zeige, wie man die Parameter V und T der Übertragungsfunktion eines<br />

Differenzierers mit Verzögerung 1. Ordnung<br />

( )<br />

( )<br />

Y s Vs<br />

G( s ) = = (5.2.1)<br />

Us 1 + sT<br />

aus seiner Sprungantwort bestimmen kann.<br />

Die Sprungantwort von (5.2.1) auf einen Eingangssprung mit der Amplitude ∆u berechnet<br />

sich mit<br />

1<br />

L { ∆u⋅σ() t } = ∆u⋅ s<br />

zu<br />

5.7


Vs 1 V ⋅ ∆u<br />

Y ( s ) = G( s) ⋅U( s ) = ⋅∆u ⋅ =<br />

1 + sT s 1 + sT<br />

⎧ V ⎫<br />

⋅∆u<br />

−1 −1⎧ V⋅∆u ⎫ −1⎪<br />

y () t = { Y ( s ) } = = T ⎪<br />

L L ⎨ ⎬ L ⎨<br />

1 sT<br />

1<br />

⎬<br />

⎩ + ⎭ ⎪s + ⎪<br />

⎩ T ⎭<br />

t<br />

−<br />

T<br />

V<br />

y() t = ⋅e⋅∆u . (5.2.2)<br />

T<br />

Aus den Funktionswerten an der Stelle t = T und t = 0<br />

V<br />

y( T ) = 0,368 ⋅ ⋅∆u<br />

(5.2.3)<br />

T<br />

V<br />

y( 0 ) = ∆u<br />

(5.2.4)<br />

T<br />

kann man durch Einsetzen von (5.2.4) in (5.2.3) eine Bestimmungsgleichung für T<br />

entwickeln<br />

y( T ) = y( 0) ⋅ 0,368 . (5.2.5)<br />

Der Wert von y(0) kann aus der Sprungantwort abgelesen werden. Fällt man von der<br />

Stelle y(T) = y(0).0,368 das Lot auf die t-Achse, kann dort die Zeitkonstante T abgelesen<br />

werden. Der Verstärkungsfaktor V wird aus der Gleichung (5.2.4) berechnet:<br />

( )<br />

y 0<br />

V = T ⋅ . (5.2.6)<br />

∆u<br />

∆u ist dabei die Amplitude der gewählten Sprungerregung, y(0) kann aus der<br />

Sprungantwort abgelesen werden und T wurde schon mit (5.2.5) bestimmt.<br />

y(0)<br />

h(t)<br />

0,368y(0)<br />

0<br />

T<br />

t<br />

0<br />

Bild 5.2.1 Zur Vermessung der Sprungantwort eines DT1-Gliedes<br />

5.8


Zieht man eine Gerade vom Punkt y(0) zum Schnittpunkt des oben erwähnten Lotes mit<br />

der t-Achse, erkennt man, daß diese Gerade die Tangente des Kurvenverlaufs in y(0)<br />

darstellt. Auch ihre Konstruktion stellt somit eine Möglichkeit <strong>zur</strong> Bestimmung der<br />

Zeitkonstante T dar.<br />

Untersucht man so weitere Sprungantworten und die dazugehörigen Übertragungsfunktionen,<br />

gelangt man zu dem auf den nächsten Seiten folgenden Katalog "Sprungantworten<br />

und Übertragungsfunktionen <strong>zur</strong> kataloggestützten Sprungantwortanalyse".<br />

Wie man dem Katalog auch entnehmen kann, ist mit ihm die <strong>Systemidentifikation</strong> einer nur<br />

kleinen Klasse von Übertragungssystemen möglich. Wir geben daher im folgenden Kapitel<br />

5.2.2 Näherungsmethoden <strong>zur</strong> Sprungantwortanalyse weiterer, sehr häufig in der Technik<br />

vorkommender Übertragungsglieder an.<br />

Bei der Sprungantwortanalyse mit Hilfe des folgenden Kataloges ist darauf zu achten, daß<br />

als Eingangserregung ein Signalsprung<br />

d.h. mit einer Amplitude ∆u zu Grunde gelegt wurde.<br />

u(t) = ∆u⋅σ(t), (5.2.7)<br />

5.9


Nr.:<br />

Graph der Sprungantwort<br />

Nr.:<br />

Graph der Sprungantwort<br />

0.63∆y (∞)<br />

Nr.:<br />

1 Proportionalglied P − Glied<br />

Ü bertragungsfunktion<br />

Parameter<br />

Ü bertragungsfunktion<br />

Parameter<br />

Graph der Sprungantwort Übertragungsfunktion<br />

0<br />

∆1<br />

Parameter<br />

Ys ( )<br />

Gs ( ) = = V<br />

Us ( )<br />

V<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

2 Verzögerungsglied 1. Ordnung PT1 − Glied<br />

3<br />

0<br />

0<br />

0<br />

0<br />

0<br />

y(t)<br />

∆2<br />

Sprungantworten und Übertragungsfunktionen <strong>zur</strong> kataloggestützten<br />

Sprungantwortanalyse<br />

y(t)<br />

y(t)<br />

T<br />

Tangente im Ursprung<br />

τ<br />

∆y (∞)<br />

∆y (∞)<br />

t<br />

t<br />

Verzögerungsglied 2. Ordnung<br />

(gedämpft schwingend)<br />

∆y ( ∞)<br />

t<br />

5.10<br />

Gs ( )<br />

Gs ( )<br />

V<br />

Ys ( )<br />

= =<br />

Us ( )<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

V<br />

1 + sT<br />

T : siehe Sprungantwort<br />

Ys ( )<br />

= =<br />

Us ( )<br />

V<br />

d<br />

T<br />

=<br />

=<br />

=<br />

PT2 − Glied, d


Nr.:<br />

Nr.:<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

y(t)<br />

∆y(0)<br />

0<br />

4<br />

6 Differenzierer mit Verzögerung 1. Ordnung DT1 − Glied<br />

0,368∆y(0)<br />

0<br />

T<br />

Tangente in der Spitze<br />

Integrierglied (Integralglied)<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

Nr.:<br />

0<br />

0<br />

y(t)<br />

∆t<br />

∆y(∞)<br />

t<br />

t<br />

Parameter<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

y(t)<br />

0<br />

Parameter<br />

Parameter<br />

5.11<br />

Gs ( ) = Y(s)<br />

U(s) =<br />

V<br />

Gs ( )<br />

V<br />

Gs ( ) = Y(s)<br />

U(s) =<br />

V<br />

= ∆ ∆<br />

= ∆ ∆<br />

y( ∞)/<br />

t<br />

∆u<br />

= Y(s)<br />

U(s) =<br />

y<br />

= T<br />

u<br />

∆ ( 0)<br />

∆<br />

V<br />

s<br />

y( ∞)/<br />

t<br />

∆u<br />

Vs<br />

1 + sT<br />

I −Glied<br />

5 Integralglied mit Verzögerung 1. Ordnung<br />

IT1 − Glied<br />

0<br />

T<br />

∆t<br />

∆y ( ∞ )<br />

Tangente im linearen Anstieg<br />

t<br />

V<br />

s( 1 + sT)<br />

T : siehe Sprungantwort<br />

T : siehe Sprungantwort


Nr.:<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

Nr.:<br />

7<br />

∆y( ∞) T 1<br />

T 2<br />

0<br />

Nr.:<br />

9 Allpaß 1. Ordnung<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

0<br />

0<br />

1,26 ∆y(0)<br />

y(t)<br />

T 2<br />

y(t)<br />

T<br />

∆y(0)<br />

Vorhaltglied mit Verzögerung 1. Ordnung<br />

(Lead − Glied)<br />

Tangente in der Spitze<br />

Tangente in der Spitze<br />

∆y(0) =∆y(∞)<br />

∆y ∞<br />

t<br />

∆y ( ∞ )<br />

t<br />

Gs ( )<br />

Parameter<br />

Parameter<br />

5.12<br />

= Y(s)<br />

U(s) =<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

Parameter<br />

V<br />

Gs ( )<br />

V<br />

= Y(s)<br />

U(s) =<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

VHT1 − Glied<br />

V( 1 + sT1)<br />

; T > T<br />

1 + sT<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

V( 1 − sT)<br />

1 + sT<br />

T : siehe Sprungantwort<br />

2<br />

1 2<br />

T1, T2 : siehe Sprungantwort<br />

Vorhaltglied mit Verzögerung 1. Ordnung<br />

8 VHT1 − Glied<br />

(Lag − Glied)<br />

∆y( ∞ )<br />

0<br />

0<br />

T 1<br />

T 2<br />

y(t)<br />

T<br />

2<br />

Tangente im Anstieg<br />

∆y( ∞ )<br />

t<br />

Gs ( )<br />

= Y(s)<br />

U(s) =<br />

V<br />

V( 1 + sT1)<br />

; T > T<br />

1 + sT<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

T1, T2 : siehe Sprungantwort<br />

2<br />

2 1


Nr.:<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

Nr.:<br />

10 Allpaßähnliches Übertragungsglied 1. Ordnung<br />

Gs ( )<br />

Parameter<br />

Graph der Sprungantwort Ü bertragungsfunktion<br />

0<br />

y(t)<br />

0<br />

y(t)<br />

0<br />

T 2<br />

Parameter<br />

= Y(s)<br />

U(s) =<br />

V<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

T1, T2 : siehe Sprungantwort<br />

Gs ( ) = Y(s)<br />

U(s)<br />

V<br />

V( 1 − sT1)<br />

1 + sT<br />

11 Totzeit − Glied<br />

Tt − Glied<br />

T t<br />

∆y( ∞ )<br />

Tangente in<br />

der Spitze<br />

T1<br />

T2 ∆y( ∞ )<br />

t<br />

∆y ( ∞ )<br />

t<br />

5.13<br />

y<br />

=<br />

u<br />

∆ ( ∞)<br />

∆<br />

Tt : siehe Sprungantwort<br />

2<br />

= V e<br />

− sTt


5.2.2 Sprungantwortanalyse aperiodischer PTnTt- und ITnTt-Systeme<br />

Die meisten in der Regelungstechnik vorkommenden Übertragungssysteme haben<br />

aperiodisches (nicht schwingfähiges) global proportionales oder global integrales<br />

Verhalten mit Verzögerungsverhalten höherer Ordnung (T n) und ggf. zusätzlichem<br />

Totzeitverhalten (T t).<br />

h(t)<br />

0<br />

0<br />

Bild 5.2.2 : a) Sprungantwort eines aperiodischen PTnTt - Systems<br />

b) Sprungantwort eines aperiodischen ITnTt-Systems<br />

Dabei sind der Grad n des Verzögerungsverhaltens und die Größe der Verzögerungs-<br />

zeitkonstanten und der Totzeit nicht bekannt. Eine sehr rauhe Approximation nähert ein<br />

PTnTt – System durch ein Übertragungsfunktionsmodell der Form<br />

( )<br />

0<br />

a)<br />

t 0<br />

b)<br />

( )<br />

( )<br />

Y s V<br />

∗<br />

−sTt<br />

G s = = e (5.2.8)<br />

Us 1 + sT<br />

∗<br />

VZ<br />

⋅<br />

an, wobei die beiden Parameter T VZ * und T t * aus einer Konstruktion in der gemessenen<br />

Sprungantwort, wie sie in Bild 5.2.3 dargestellt ist, hervorgehen.<br />

Bild 5.2.3 Zur Approximation eines PTnTt - Systems durch ein PT1Tt - Systems<br />

Eine ähnlich grobe Approximation ist auch für IT nT t-Systeme möglich. Das Übertragungs-<br />

5.14<br />

h(t)<br />

t


funktionsmodell lautet<br />

( )<br />

( )<br />

Y s V<br />

∗<br />

t<br />

G s = = e . (5.2.9)<br />

( ) ( + VZ )<br />

Us s1 sT<br />

∗ ⋅<br />

5.15<br />

−sT<br />

Seine Parameter gehen aus folgender Konstruktion hervor:<br />

h(t)<br />

0 0<br />

Bild 5.2.4 : Zur Approximation eines ITnTt-Systems durch ein IT1Tt-Systems<br />

Während die Ersatztotzeit T t * in Bild 5.2.3 eindeutig aus der Konstruktion der Wende-<br />

tangente hervorgeht, ist das in Bild 5.2.4 nicht der Fall. Das Ende von T t * wird ungefähr<br />

dort angesetzt, wo die Sprungantwort deutlich das Startniveau verläßt.<br />

Der Verstärkungsfaktor V wird in diesen Fällen und bei den beiden später folgenden<br />

Approximationen, wie in /1/ beschrieben, auf der Basis folgender Überlegungen berechnet:<br />

• Zur Bestimmung des Verstärkungsfaktors eines global proportionalen Systems wird das<br />

System in der Umgebung seines Arbeitspunktes u A mit einer sprungförmigen<br />

Eingangsgröße ∆u erregt. Das Ausgangssignal y(t) wird gemessen. Nach Abklingen des<br />

Einschwingvorganges stellt sich ein neuer stationärer Endwert von y(t) ein. Die<br />

Differenz zwischen dem neuen stationären Endwert von y(t) und dem vor der<br />

Sprungaufschaltung, also ∆y(∞), wird protokolliert (vergleiche Bild 5.2.5).<br />

Der Verstärkungsfaktor berechnet sich dann zu<br />

V<br />

=<br />

* *<br />

Tt TVZ<br />

Tangente im linearen Anstieg<br />

∆y(<br />

∞)<br />

, ( 5210 . . )<br />

∆u<br />

t


U A<br />

u(t)<br />

0<br />

0<br />

u(t) y(t)<br />

∆ u System<br />

t<br />

5.16<br />

y(t)<br />

0<br />

0<br />

Einschwingvorgang<br />

∆ y(∞ )<br />

Bild 5.2.5 : Zur Messung des Verstärkungsfaktors eines global proportional wirkenden<br />

Übertragungssystems<br />

dabei hat er folgende physikalische Einheit (Eh)<br />

{ ( ) }<br />

()<br />

Eh y t<br />

Eh{ V } = . (5.2.11)<br />

Eh u t<br />

{ }<br />

• Zur Bestimmung des Verstärkungsfaktors eines global integral wirkenden Systems muß<br />

das System von u(t) = 0 aus erregt werden, da sonst das Ausgangssignal bereits<br />

integral ansteigen würde. Die Amplitude des Eingangssprungs wird so klein gewählt,<br />

daß das Ausgangssignal innerhalb des linearen Aussteuerbereiches nach Abklingen<br />

des Einschwingvorganges noch seinen linearen asymptotischen Anstieg annehmen<br />

kann.<br />

u(t) y(t) Einschwingvorgang<br />

0<br />

0<br />

∆ u<br />

u(t) y(t)<br />

System<br />

0<br />

t<br />

0<br />

Bild 5.2.6 : Zur Messung des Verstärkungsfaktors eines global integral wirkenden<br />

Übertragungssystems<br />

∆ t<br />

∆ y(∞ )<br />

Im linearen Anstieg des Ausgangssignals entnehmen wir der Kurve die Anstiegsgeschwindigkeit<br />

∆y(∞)/∆t nach Bild 5.2.6. Der Verstärkungsfaktor berechnet sich dann aus<br />

( )<br />

∆y ∞ / ∆t<br />

V = , (5.2.12)<br />

∆u<br />

dabei hat er folgende physikalische Einheit<br />

{ }<br />

{ ( ) } { }<br />

Eh u() t<br />

Eh y t /Eh t<br />

Eh V = . (5.2.13)<br />

{ }<br />

Da die Systemmodelle (5.2.8) und (5.2.9) die Realität nur sehr grob modellieren, sollte<br />

man das folgende <strong>Verfahren</strong> der sog. "Zeitprozentkennwerte" bevorzugen. Das <strong>Verfahren</strong><br />

t<br />

t


wurde von SCHWARZE /11/ für aperiodisch proportional wirkende Übertragungssysteme<br />

mit Verzögerung höherer Ordnung und ggf. Totzeitverhalten (PTnTt-Systeme) entwickelt.<br />

Aus der gemessenen Sprungantwort des Systems wird ein PTn-Übertragungsfunktions-<br />

modell mit n gleichen Zeitkonstanten T berechnet, d.h. das Modell approximiert das reale<br />

System durch ein PTn-Glied<br />

( )<br />

( ) ( ) n<br />

Ys V<br />

G( s ) = = . (5.2.14)<br />

Us 1 + sT<br />

Grundlage dieses <strong>Verfahren</strong>s ist die analytisch berechenbare Sprungantwort von (5.2.14).<br />

Sie wird in /11/ mit<br />

( )<br />

()<br />

i<br />

⎧ n−1 t/T<br />

⎫<br />

⎪<br />

⎡ ⎤<br />

−t/T⎪<br />

h t = V ⎨1 − ⎢∑⎥⋅e⎬⋅∆u (5.2.15)<br />

⎪ ⎢i= 0 i ! ⎥<br />

⎩ ⎣ ⎦ ⎪⎭<br />

angegeben. Zunächst setzt man den Verstärkungsfaktor V = 1 und wählt als Eingangs-<br />

signal σ(t) mit ∆u = 1. Dies bedeutet keine Einschränkung, da wir den Verstärkungsfaktor<br />

nach unserer bekannten Beziehung (5.2.10) berechnen und in (5.2.14) einsetzen können.<br />

Nun definiert man sog. Zeitprozentkennwerte t m, z.B. t 10, t 30, t 50, t 70 und t 90, dies sind<br />

Zeitpunkte, an denen die Sprungantwort m = 10%, 30%, ..., 90% ihres stationären End-<br />

wertes (100%) annimmt.<br />

(m)<br />

100%<br />

90%<br />

70%<br />

50%<br />

30%<br />

10%<br />

0%<br />

0<br />

h(t)<br />

t10 t30 t50 t70 t90 (t )<br />

m<br />

Bild 5.2.7 : Zur Definition der Zeitprozentkennwerte t m<br />

Der Amplitudenwert m [%], zu dem der Zeitprozentwert t m, die Systemordnung n und die<br />

Zeitkonstante T gehören, berechnet sich dann aus (5.2.14) zu<br />

5.17<br />

t


⎧ n−1 i<br />

( t m /T)<br />

⎫<br />

⎪<br />

⎡ ⎤<br />

−t<br />

m /T⎪<br />

m [ % ] = ⎨1 − ⎢∑⎥⋅e⎬⋅100% . (5.2.16)<br />

⎪ ⎢i= 0 i ! ⎥<br />

⎩ ⎣ ⎦ ⎪⎭<br />

Durch Iteration kann man für verschiedene n die Quotienten (t m/T) berechnen, die das<br />

eingesetzte m erfüllen. SCHWARZE hat diese Rechnung für n = 1, 2, ..., 10 durchgeführt.<br />

Das Ergebnis ist in Tabelle 5.2.1 dargestellt.<br />

n t10 / T t30 / T t50 / T t70 / T t90 T /<br />

1 0,11 0,36 0,69 1,20 2,30<br />

2 0,53 1,10 1,68 2,44 3,89<br />

3 1,10 1,91 2,67 3,62 5,32<br />

4 1,74 2,76 3,67 4,76 6,68<br />

5 2,43 3,63 4,67 5,89 7,99<br />

6 3,15 4,52 5,67 7,01 9,27<br />

7 3,89 5,41 6,67 8,11 10,5<br />

8 4,66 6,31 7,67 9,21 11,8<br />

9 5,43 7,22 8,67 10,3 13,0<br />

10 6,22 8,13 9,67 11,4 14,2<br />

Tabelle 5.2.1 Bezogene Zeitprozentkennwerte (Modell (5.2.14))<br />

Bildet man noch für die verschiedenen Systemordnungen n Quotienten t 10 / t 90; t 10 / t 70;<br />

usw. (dies kann man direkt mit Hilfe der Tabelle 5.2.1 machen, da sich die T´s<br />

herauskürzen), erhält man daraus Bestimmungsgleichungen <strong>zur</strong> Abschätzung der<br />

Systemordnung n. Diese Zeitprozentverhältnisse sind in Tabelle 5.2.2 aufgelistet.<br />

n t10 / t90<br />

t10 / t70<br />

t10 / t50<br />

t10 / t30<br />

t30 / t70<br />

t / t<br />

5.18<br />

30 50<br />

1 0,05 0,09 0,15 0,30 0,30 0,52<br />

2 0,14 0,22 0,32 0,48 0,45 0,65<br />

3 0,21 0,31 0,41 0,58 0,53 0,72<br />

4 0,26 0,37 0,48 0,63 0,58 0,75<br />

5 0,30 0,42 0,52 0,67 0,62 0,78<br />

6 0,34 0,45 0,56 0,70 0,65 0,80<br />

7 0,37 0,48 0,58 0,72 0,67 0,81<br />

8 0,40 0,51 0,61 0,74 0,69 0,82<br />

9 0,42 0,53 0,63 0,75 0,70 0,83<br />

10 0,44 0,55 0,65 0,76 0,71 0,84<br />

Tabelle 5.2.2 Zeitprozentverhältnisse (Modell (5.2.14)


An Hand des folgenden Beispiels wollen wir nun zeigen, wie man auf der Basis der<br />

vorangehenden Überlegungen und Berechnungen eine <strong>Systemidentifikation</strong> mit dem<br />

Zeitprozentkennwert-<strong>Verfahren</strong> praktisch durchführt.<br />

Beispiel 5.2.2: Ein im Arbeitspunkt u A = 3,5V betriebener Antriebsmotor mit<br />

Steuereinrichtung<br />

u(t)<br />

Steuereinrichtung<br />

5.19<br />

Walzenmotor<br />

antwortet auf einen Steuerspannungssprung von 2 auf 5 V mit folgender Drehzahl-<br />

änderung:<br />

100%<br />

90%<br />

70%<br />

50%<br />

30%<br />

10%<br />

0%<br />

1200<br />

1056<br />

912<br />

768<br />

624<br />

n(t) / U/min<br />

480<br />

0 20 40 60 80 t<br />

t 10 t 30 t 50 t 70 t 90<br />

Bild 5.2.8 : Zeitprozentkennwerte einer Sprungantwort<br />

Berechne die Übertragungsfunktion G(s) = N(s) / U(s) dieser Wirkungsanordnung mit dem<br />

Zeitprozentkennwert-<strong>Verfahren</strong>.<br />

Der Verstärkungsfaktor V berechnet sich nach (5.2.10)<br />

( ) ( ) ( )<br />

( )<br />

∆y∞ ∆n∞ 1200 − 480 U/min U/min<br />

V = = = = 240 . (5.2.17)<br />

∆u∆u 5 − 2 V V<br />

Zur Berechnung von n und T des Modells (5.2.14) werden die Zeitprozentkennwerte aus<br />

der Sprungantwort ausgemessen. Wenn die Messung rechnergestützt durchgeführt wird,<br />

können folgende Werte abgelesen werden:<br />

t 10 = 6,4 sek; t 30 = 10,9 sek; t 50 = 15,4 sek;<br />

t = 21,3 sek; t = 33,0 sek. (5.2.18)<br />

70 90<br />

n(t)


Durch Bildung eines Zeitprozentkennwert-Verhältnisses, z.B.<br />

t<br />

t<br />

10<br />

90<br />

64 ,<br />

= =<br />

33, 0<br />

0, 194 ( 5. 2. 19)<br />

kann aus Tabelle 5.2.2 die Ordnung n des Systemmodells bestimmt werden. In der Spalte<br />

t 10 / t 90 kommt der Wert 0,21 unserem berechneten Wert 0,194 am nächsten, woraus sich<br />

eine Systemordnung von n = 3 ablesen läßt. Die anderen Zeitprozentverhältnisse werden<br />

nicht mehr gebraucht, können aber <strong>zur</strong> Kontrolle herangezogen werden:<br />

t<br />

t<br />

t<br />

t<br />

10<br />

70<br />

10<br />

30<br />

t10<br />

= 0,30 ⇒ n = 3; = 0,42<br />

⇒ n = 3;<br />

t<br />

50<br />

= 0,59 ⇒ n = 3; u.s.w. .<br />

( 5. 2. 20)<br />

Sollten an dieser Stelle einmal Unstimmigkeiten auftreten, wählt man die Ordnung, die am<br />

häufigsten berechnet wird. Mit der jetzt bekannten Ordnung (n = 3) geht man in die Tabelle<br />

5.2.1 und liest die zu t m / T gehörenden Werte ab, woraus sich für die einzelnen "m" leicht<br />

voneinander abweichende Zeitkonstanten T berechnen lassen:<br />

t<br />

T<br />

10 10<br />

t<br />

T<br />

t<br />

T<br />

t<br />

T<br />

t<br />

T<br />

t<br />

= 1,10<br />

T = = 5<br />

110<br />

6,4<br />

⇒<br />

= ,82 sek<br />

, 1,10<br />

t<br />

= 1,91<br />

T = = 5<br />

191<br />

10,9<br />

⇒<br />

= ,71 sek<br />

, 1, 91<br />

30 30<br />

t<br />

= 2,67<br />

T = =<br />

267<br />

15,4<br />

⇒<br />

, 2,67<br />

50 50<br />

t<br />

= 3,62<br />

T = = 5<br />

362<br />

21,3<br />

⇒<br />

= ,88 sek<br />

, 3,62<br />

70 70<br />

t<br />

= 5,32<br />

T = = 6<br />

532<br />

33,0<br />

⇒<br />

= ,2 sek . (5.2.21)<br />

, 5,32<br />

90 90<br />

5.20<br />

= 5,78<br />

sek<br />

Von diesen Zeitkonstanten bildet man das arithmetische Mittel T = 5,88 und hat damit das<br />

<strong>zur</strong> Sprungantwort nach Bild 5.2.8 gehörende Systemmodell<br />

U<br />

Ns ( ) 240<br />

G( s ) = = min⋅ V<br />

(5.2.22)<br />

U(s) 1 + s 5,88 sek<br />

( ) 3<br />


estimmt. Das folgende Bild zeigt die Sprungantwort des zu Grunde liegenden Systems<br />

und des Modells (5.2.22).<br />

100%<br />

50%<br />

0%<br />

Modell<br />

Originalsystem<br />

0 20 40 60 80 t<br />

Bild 5.2.9 Zur <strong>Systemidentifikation</strong>sgüte des Zeitprozentkennwert-<strong>Verfahren</strong>s<br />

Bis auf den mittleren Bereich zeigen beide Kurven eine hervorragende Übereinstimmung.<br />

Ein weiteres, in /11/ angegebenes, auch auf der Grundlage der Zeitprozentkennwerte<br />

basierendes <strong>Verfahren</strong> approximiert eine gegebene Sprungantwort durch ein Übertragungsfunktionsmodell<br />

2. Ordnung<br />

( )<br />

Y s V<br />

G( s ) = = (5.2.23)<br />

U(s) 1 sT 1 sbT<br />

( + ) ⋅ ( + )<br />

mit zwei unterschiedlichen Zeitkonstanten T und bT. Der Faktor b kann an Hand der<br />

Zeitprozent-Verhältnistabelle 5.2.4 bestimmt werden. Liegt b damit fest, wird in Tabelle<br />

5.2.3 die entsprechende Zeile ausgewählt, mit deren Hilfe sich T (ggf. auch nach einer<br />

arithmetischen Mittelung) bestimmen läßt.<br />

Die Modellierung nach (5.2.23) empfiehlt sich, wenn bekannt ist, daß das System eine<br />

niedrige Verzögerungsordnung hat (n ≈ 2). Ist man sich im unklaren, ob man Modell<br />

(5.2.14) oder (5.2.23) wählen soll, muß man beide Modelle bilden und nach einem<br />

Vergleich zwischen Original� und Modellsprungantworten das bessere Modell wählen.<br />

5.21


t10 / T t30 / T t50 / T t70 / T t90 T /<br />

1 0,53 1,10 1,68 2,44 3,89<br />

2 0,76 1,59 2,46 3,62 5,94<br />

3 0,95 2,01 3,17 4,79 8,12<br />

5 1,27 2,71 4,56 7,14 12,6<br />

7 1,55 3,53 5,92 9,51 17,2<br />

10 1,93 4,61 7,99 13,1 24,1<br />

12,5 2,22 5,50 9,71 16,1 29,9<br />

15 2,52 6,38 11,4 19,1 35,6<br />

17,5 2,80 7,28 13,2 22,1 41,3<br />

20 3,08 8,16 14,9 25,1 47,1<br />

Tabelle 5.2.3 Bezogene Zeitprozentkennwerte (Modell (5.2.23))<br />

b t10 / t90<br />

t10 / t70<br />

t10 / t50<br />

t10 / t30<br />

t30 / t70<br />

t / t<br />

5.22<br />

30 50<br />

1 0,14 0,22 0,32 0,48 0,45 0,65<br />

2 0,13 0,21 0,31 0,48 0,44 0,65<br />

3 0,12 0,20 0,30 0,47 0,42 0,63<br />

5 0,10 0,18 0,28 0,45 0,39 0,61<br />

7 0,09 0,16 0,26 0,44 0,37 0,60<br />

10 0,08 0,15 0,24 0,42 0,35 0,58<br />

12,5 0,07 0,14 0,23 0,40 0,34 0,57<br />

15 0,07 0,13 0,22 0,40 0,33 0,56<br />

17,5 0,07 0,13 0,21 0,39 0,33 0,55<br />

20 0,06 0,12 0,21 0,38 0,32 0,55<br />

Tabelle 5.2.4 : Zeitprozentverhältnisse (Modell (5.2.23))<br />

Einen dritten Modellansatz durch ein PT n-System mit zwei unterschiedlichen Zeitkonstanten<br />

( )<br />

( ) ( + ) ⋅ ( + )<br />

Y s V<br />

G( s ) = = (5.2.24)<br />

U s n 1<br />

1 Ts 1 bTs −<br />

gibt SCHWARZE noch in /11/ an. Aus Platzgründen wollen wir darauf nicht weiter<br />

eingehen.<br />

Wie im folgenden gezeigt wird, kann das Zeitprozentkennwert-<strong>Verfahren</strong>, obwohl von<br />

SCHWARZE nur für global proportionale Systeme entwickelt auch erfolgreich für global<br />

integrale Systeme verwendet werden. Ein ITnTt-System unterscheidet sich von einem


PTnTt-System in der Übertragungsfunktion nur durch das Integrator-„s" im Nenner.<br />

Multipliziert man daher ein IT nT t-System mit "s", geht es in ein PTnTt-System über. Eine<br />

Multiplikation mit "s" bedeutet nach den Regeln der Laplace-Transformation eine<br />

Differentiation im Zeitbereich. (Der Anfangswert f(0) der im Ableitungssatz der Laplace-<br />

Transformation noch auftaucht, kann gleich Null gesetzt werden, da wir Übertragungs-<br />

funktions-Modelle bilden wollen, bei denen die Anfangswerte gleich Null gesetzt werden).<br />

Das heißt, die Sprungantwort eines IT nT t-Systems bekommt nach einer Differentiation die<br />

Form der Sprungantwort eines PTnTt-Systems, die mit dem Zeitprozentkennwert-<br />

<strong>Verfahren</strong> in Form einer Übertragungsfunktion (5.2.14) oder (5.2.23) modelliert werden<br />

kann. Fügt man nach der Modellierung der Übertragungsfunktion den Integratorterm 1/s<br />

hinzu, erhält man das mathematische Modell des vorliegenden IT nT t - Systems.<br />

Liegt die gemessene Sprungantwort des Systems als Abtastfolge in einer Datei vor, kann<br />

die Differentiation, wie in Kapitel 4 beschrieben, mit Hilfe des Algorithmus (4.2.9)<br />

numerisch durchgeführt werden.<br />

In der Literatur, z.B. in /12/, werden noch eine Reihe weiterer <strong>Verfahren</strong> <strong>zur</strong><br />

<strong>Systemidentifikation</strong> aus Sprungantworten angegeben. Im Gegensatz <strong>zur</strong><br />

Zeitprozentkennwert-Methode müssen dort häufig Wendetangenten in die<br />

Sprungantworten konstruiert werden, was sehr leicht zu erheblichen Fehlern führen kann.<br />

5.3 Rechnergestützte <strong>Systemidentifikation</strong>sverfahren<br />

Alle rechnergestützen <strong>Verfahren</strong> <strong>zur</strong> <strong>Systemidentifikation</strong> arbeiten auf der Basis des in Bild<br />

1.0.1 dargestellten Grundprinzips der <strong>experimentellen</strong> <strong>Systemidentifikation</strong>. Sie werden i.a.<br />

in zwei Kategorien eingeteilt:<br />

• spektralanalytische <strong>Verfahren</strong> und<br />

• Parameterschätzverfahren.<br />

Bei den spektralanalytischen <strong>Verfahren</strong> wird das zu identifizierende System mit<br />

stochastischen Eingangssignalen (Rauschsignalen) erregt und die Auswertungsalgorithmen<br />

arbeiten im Frequenzbereich. Ergebnis spektralanalytischer Identifikationsverfahren<br />

sind nichtparametrische Modelle in Form von sogenannten Gewichtsfunktionen<br />

und Bodediagrammen. Da uns die Grundlagen der stochastischen Signaltheorie fehlen,<br />

können wir auf diese <strong>Verfahren</strong> nicht eingehen. Dies bedeutet i.a. keine wesentliche<br />

Einschränkung, da die Parameterschätzverfahren, von denen wir zwei Ansätze betrachten<br />

werden, parametrische Modelle erzeugen, aus denen wir problemlos alle erwünschten<br />

Modellformen berechnen können. Es muß allerdings erwähnt werden, daß<br />

5.23


spektralanalytische <strong>Verfahren</strong>, weil sie eben nur nichtparametrische Modelle erzeugen, in<br />

Einzelfällen störungsunempfindlicher sind als Parameterschätzverfahren. In Sonderfällen<br />

erlauben spektralanalytische <strong>Verfahren</strong> auch die Identifikation von Systemen ohne<br />

künstliche Erregung, weil sie das natürliche Betriebsrauschen am Eingang eines Systems<br />

als Erregung nutzen. Zur Einarbeitung in spektralanalytische Identifikationsverfahren<br />

werden die Literaturstellen /3, 13, 14/ empfohlen.<br />

Bei den Parameterschätzverfahren ist der Stoffumfang so groß, daß die existierenden<br />

Ansätze aus Zeitgründen im Rahmen dieser Einführung in die <strong>Systemidentifikation</strong> nicht<br />

erschöpfend behandelt werden können. Wir wollen jedoch die Grundzüge eines der<br />

wichtigsten Parameterschätzverfahrens die Methode der kleinsten Quadrate etwas<br />

eingehender ansprechen, um ein gewisses Verständnis für das Prinzipien dieser<br />

<strong>Systemidentifikation</strong>s-Methode zu bekommen.<br />

Das zweite vorgestellte <strong>Verfahren</strong> aus der Gruppe der Parameterschätzverfahren basiert<br />

auf einem Optzimierungsalgorithmus, d.h. dieses <strong>Verfahren</strong> löst das Identifizierungsproblem<br />

durch rechnergestütztes "intelligentes Probieren". Es findet in der Literatur kaum<br />

Beachtung, zeichnet sich aber durch seine Robustheit gegenüber Meßstörungen aus.<br />

5.3.1 Bestimmung der Parameter der Übertragungsfunktion mit dem <strong>Verfahren</strong> der<br />

Summe der kleinsten Quadrate (SKQ-<strong>Verfahren</strong>)<br />

Wie schon weiter vorn angedeutet, gibt es zwei grundlegende Ansätze <strong>zur</strong> Berechnung (in<br />

der Literatur häufig auch Schätzung genannt) mathematischer Modelle mit dem <strong>Verfahren</strong><br />

der Summe der kleinsten Quadrate (SKQ-<strong>Verfahren</strong>).<br />

Die einfachere Variante, der Offline-Algorithmus, wird in Kapitel 5.3.1.1 abgeleitet. Er<br />

berechnet aus einem gemessenen Eingangsdatensatz u(t) und einem dazugehörigen<br />

Ausgangsdatensatz y(t) in einem Zuge die Koeffizienten der Polynomform der<br />

systembeschreibenden Übertragungsfunktion.<br />

Im darauffolgenden Kapitel 5.3.1.2 wird der sogenannte Online-Algorithmus, die rekursive<br />

Methode der kleinsten Quadrate, beschrieben. Dieses <strong>Verfahren</strong> berechnet zunächst ein<br />

Systemmodell wie beim Offline-Algorithmus. Mit jedem anschließend gemessenen<br />

zusätzlichen Datenpaar (u, y) wird dann versucht, das Systemmodell zu verbessern. Ziel<br />

dieses <strong>Verfahren</strong> kann aber auch sein, wie wir schon weiter vorn bemerkt haben, ein sich<br />

langsam änderndes System (d.h. mit sich ändernden Systemparametern) fortlaufend zu<br />

identifizieren.<br />

5.24


Nach der Ableitung dieser beiden Identifikationsverfahren werden in den darauffolgenden<br />

Kapiteln einige Randbedingungen <strong>zur</strong> ihrer praktischen Anwendung angegeben und<br />

anschließend einige Matlab-Programme vorgestellt, mit denen <strong>Systemidentifikation</strong>släufe<br />

<strong>zur</strong> Erprobung der SKQ-<strong>Verfahren</strong> möglich sind.<br />

5.3.1.1 Das SKQ-Offline <strong>Verfahren</strong><br />

Zur Ableitung des <strong>Verfahren</strong>s, das in der Literatur häufig auch als LS-<strong>Verfahren</strong> (Least<br />

Squares-<strong>Verfahren</strong>) bezeichnet wird, gehen wir von einem unbekannten, linearen,<br />

kontinuierlichem System mit der Eingangsgröße u(t) und der Ausgangsgröße y(t) aus, das<br />

durch folgende Übertragungsfunktion<br />

( )<br />

( )<br />

n−1⋅ n−1 + n−2⋅ n−2 L + 2⋅ 2<br />

1⋅ 0<br />

n<br />

+ n−1⋅ n−1 + n−2⋅ n−2 + L + 2⋅ 2<br />

+ 1⋅ + 0<br />

Y s b s b s + b s + b s + b<br />

G( s ) = = (5.3.1)<br />

Us s a s a s a s a s a<br />

beschrieben werden kann. Da der Zählergrad kleiner ist als der Nennergrad, ist das<br />

System nicht sprungfähig. Dies ist Voraussetzung für das abzuleitende Systemidenti-<br />

fikationsverfahren, bedeutet aber keine wesentliche Einschränkung, da die meisten realen<br />

Systeme nicht sprungfähig sind.<br />

Ziel ist es, die Systemordnung n und die Parameter b i des Zählers und a i des Nenners zu<br />

bestimmen.<br />

Obwohl wir ein kontinuierliches Modell identifizieren wollen, gehen wir bei diesem<br />

<strong>Verfahren</strong> einen Umweg und bestimmen zunächst ein zeitdiskretes Modell in Form einer z-<br />

Übertragungsfunktion<br />

( )<br />

( )<br />

1<br />

−1 2<br />

−2 L<br />

∗<br />

n<br />

−n<br />

+ α1⋅ −1 + L α ∗<br />

n ⋅<br />

∗<br />

−n<br />

Y z β ⋅ z + β ⋅ z + + β ⋅z<br />

G( z ) = =<br />

U z 1 z + z<br />

1<br />

∗<br />

n −1 z 2<br />

∗<br />

n −2<br />

z L + n<br />

∗ ∗<br />

n n −1<br />

z + α1⋅ z + L α ∗<br />

n<br />

β ⋅ + β ⋅ + β ∗<br />

= . (5.3.2)<br />

Dieser Ansatz hat meß- und erregungstechnische Konsequenzen. Aus /1/ wissen wir, daß<br />

ein kontinuierliches System sein zeitdiskretes Wesen wiedergibt, wenn es mit einer<br />

treppenförmigen Erregung u H(t) angesteuert und das Ausgangssignal zu den Abtast-<br />

zeitpunkten y(kT) gemessen wird.<br />

5.25<br />


u(kT)<br />

u(kT)<br />

D/A<br />

Wandler<br />

Halteglied<br />

u (t)<br />

H<br />

t<br />

Kontinuierliches<br />

System<br />

u (t)<br />

H<br />

5.26<br />

t<br />

y(t)<br />

T<br />

y(kT)<br />

y(t)<br />

t<br />

y(t)<br />

y(kT)<br />

Bild 5.3.1 : Messung der zeitdiskreten Systemantwort eines kontinuierlichen Systems<br />

Da sich aber standardmäßig ein D/A-WAndler in unserer Meßkette befindet, der das<br />

Halten der Eingangsgröße in das zu vermessende System übernimmt, müssen wir uns<br />

darüber keine zusätzlichen Gedanken machen.<br />

Die zu lösende Aufgabe besteht nun darin, aus einer bekannten Eingangsgrößenfolge u(k)<br />

und der dazugehörigen Ausgangsgrößenfolge y(k) die Systemordnung n und die<br />

Parameter αi und βi zu bestimmen. Zu diesem Zweck schalten wir gedanklich dem zu<br />

identifizierenden System (Prozeß GP(z)) ein Systemmodell GM(z) parallel (Vergleiche Bild<br />

5.3.2).<br />

Die Ordnung n* des Prozesses sei im ersten Ansatz bekannt. Beide Systeme werden mit<br />

dem gleichen, beliebig geformten Eingangssignal u(k) erregt. In der Differenz der<br />

Ausgangssignale<br />

M<br />

( )<br />

( )<br />

ZMz E( z ) = YP( z ) − YM( z ) = YP( z ) − ⋅U(<br />

z )<br />

(5.3.3)<br />

N z<br />

ZM(z): Zählerpolynom; NM(z): Nennerpolynom des Systemmodells<br />

D(z)<br />

U(z)<br />

G (z)<br />

P<br />

G (z) =<br />

M<br />

Z M(z)<br />

N (z)<br />

M<br />

Bild 5.3.2 Prozeß mit Parallelmodell<br />

Y (z)<br />

P<br />

-<br />

Y (z)<br />

M<br />

E(z)


schlägt sich der Parameterfehler zwischen Modell und Prozeß und der Einfluß der<br />

Prozeßstörung D(z) nieder. Betrachten wir zunächst den Fall der ungestörten Messung<br />

(D(z) = 0). Dann ist E(z) = 0, wenn die Parameter des Prozesses mit denen des Modells<br />

übereinstimmen. Unter diesen Voraussetzungen geht (5.3.3) über in<br />

M<br />

( )<br />

( )<br />

ZMz 0 = YP ( z ) − ⋅Uz<br />

N z<br />

( )<br />

( ) ⋅ ( ) ( ) ⋅ ( )<br />

N z Y z = Z z U z . (5.3.4)<br />

M P M<br />

In dieser Gleichung treten nur noch die unbekannten Zähler- und Nennerpolynome des<br />

Systemmodells und die bekannten Ein- und Ausgangssignalfolgen des Prozesses auf.<br />

Schreibt man (5.3.4) aus<br />

∗ −2∗ −1 −n −1 −n<br />

( 1+α1⋅ z + �+ α ⋅z ) ⋅YP( z ) = ( β1⋅ z +β2⋅ z + �+<br />

β ⋅z ) ⋅U(<br />

z)<br />

∗ ∗<br />

n n<br />

( ) ( ) � ∗ ( ) ( ) ( ) � ∗ ( )<br />

−1 −n −1 −2 −n<br />

P +α1⋅ P ⋅ + +αn ⋅ P ⋅ β1⋅ ⋅ +β2⋅ ⋅ + +βn ⋅ ⋅<br />

∗ ∗<br />

Y z Y z z Y z z = U z z U z z U z z ,<br />

kann man die Beziehung in den Zeitbereich transformieren<br />

∗<br />

( ) ( ) ( ) ( )<br />

y k = −α ⋅y k−1 − α ⋅y k−2 − � − α ⋅y k− n + �<br />

P 1 P 2 P n P<br />

∗<br />

( ) ( ) ∗ ( )<br />

� + β ⋅uk− 1 + β ⋅uk− 2 + � + β ⋅uk−n . (5.3.5)<br />

1 2 n<br />

Um die unbekannten n*-Stück α i und n*-Stück β i berechnen zu können, benötigen wir ein<br />

Gleichungssystem mit 2n*-Gleichungen. Zu diesem Zweck betrachten wir (5.3.5) an den<br />

Stellen<br />

∗ ∗ ∗ ∗<br />

k = n , n + 1, n + 2, �,<br />

3n −1:<br />

( 536 . . )<br />

∗ ∗ ∗ ∗<br />

( ) −α ⋅ ( − ) −α ⋅ ( − ) −�−α ⋅ ( ) +β⋅ ( − ) +β ⋅ ( − ) + �+β<br />

∗ ⋅ ( )<br />

y n = y n 1 y n 2 y 0 un 1 un* 2 u0<br />

P 1 P 2 P n P 1 2 n<br />

∗ ∗ ∗ ∗<br />

( + ) −α ⋅ ( ) −α ⋅ ( − ) −�−α⋅ () +β ⋅ ( ) +β ⋅ ( − ) + �+β<br />

∗ ⋅ ( )<br />

y n 1= y n y n 1 y 1 un un* 1 u1<br />

P 1 P 2 P n P 1 2 n<br />

∗ ∗ ∗ ∗<br />

( + ) −α ⋅ ( + ) −α ⋅ ( ) −�−α⋅ ( ) +β ⋅ ( + ) +β ⋅ ( ) + �+β<br />

∗ ⋅ ( )<br />

y n 2= y n 1 y n y 2 un 1 un* u2<br />

P 1 P 2 P n P 1 2 n<br />

�<br />

∗ ∗<br />

( ) ( )<br />

y 3n −1= −α ⋅y 3n −2 −α⋅y3n−3−�−α⋅y2n−<br />

1+β ⋅u3n− 2+β ⋅u3n* − 3+ �+β<br />

∗ ⋅u2n−1. P 1 P<br />

∗ ∗ ∗ ∗<br />

( ) ( ) ( ) ( ) ( )<br />

2 P n P 1 2 n<br />

Stellt man dieses Gleichungssystem in Matrixschreibweise dar<br />

5.27<br />

(5.3.7)


( )<br />

y<br />

P<br />

( ) ( ) � ( ) ( ) ( ) � ( )<br />

( ) ( ) � () ( ) ( ) � ()<br />

( ) ( ) � ( ) ( ) ( ) � ( )<br />

⎡ ∗<br />

yP n ⎤ ⎡ ∗ ∗ ∗<br />

yP n −1, yP n −2 , , yP 0 u n −1, ⎢ ⎥ ⎢<br />

⎢ ⎥ ⎢<br />

⎢ ∗ ∗ ∗ ∗<br />

yP( n + 1) ⎥ ⎢yP n , yP n −1, , yP 1 u n ,<br />

⎢ ⎥ ⎢<br />

⎢ ⎥ ⎢<br />

∗ ∗ ∗ ∗<br />

⎢yP( n + 2) ⎥ ⎢yP n + 1, yP n , , yP 2 u n + 1,<br />

⎢ ⎥=<br />

⎢<br />

⎢ ⎥<br />

⎢<br />

�<br />

⎢<br />

⎥ ⎢ �<br />

⎢ ⎥ ⎢<br />

∗<br />

⎢yP( 3n −1)<br />

⎥ ⎢ ∗ ∗ ∗ ∗<br />

yP( 3n −2 ) ,yP( 3n −3 ) , �,<br />

yP( 2n −1)<br />

u<br />

⎢ ⎥<br />

( 3n −2 ) ,<br />

⎣ ⎦ ⎣⎢ ∗<br />

u n −2<br />

, , u 0 ⎤ ⎡−α ⎤<br />

⎥ 1<br />

⎢ ⎥<br />

⎥ ⎢ ⎥<br />

∗<br />

u n −1,<br />

, u 1 ⎥ ⎢ � ⎥<br />

⎥ ⎢ ⎥<br />

⎥ ∗ ⎢−α ∗<br />

n ⎥<br />

u n , , u 2 ⎥ ⎢ ⎥<br />

⎥⋅ ⎢ β1<br />

⎥<br />

⎥ ⎢ ⎥<br />

⎥ ⎢ ⎥<br />

⎥<br />

�<br />

⎢ ⎥<br />

∗ ∗<br />

u( 3n −3 ) , �,<br />

u( 2n −1 ) ⎥ ⎢ ⎥<br />

β ∗<br />

⎦⎥<br />

⎢⎣ n ⎥⎦<br />

������� ��������������������������������������� �����<br />

5.28<br />

R<br />

p<br />

(5.3.8)<br />

erkennt man, daß in den 2n*-Gleichungen bis auf den Parametervektor p alle anderen<br />

Größen, nämlich die Eingangsfolgewerte u(k) und die Ausgangsfolgewerte y(k) bekannt<br />

sind. Die Gleichung (5.3.8) muß <strong>zur</strong> expliziten Berechnung des Parametervektors nur noch<br />

nach p umgestellt werden:<br />

y = R⋅p P<br />

−1 −1<br />

P<br />

−1<br />

R ⋅ y = R ⋅R⋅p = E⋅p p = R ⋅ y . (5.3.9)<br />

P<br />

(5.3.9) stellt damit einen <strong>Systemidentifikation</strong>salgorithmus dar, der es erlaubt, bei<br />

störungsfreier Messung von (3n*-1)-Eingangsfolgewerten<br />

∗ ( ) ( ) ( ) � ( − )<br />

u 0 , u 1 , u 2 , , u 3n 2 (5.3.10)<br />

beliebiger Kurvenform und (3n*) dazugehörigen Ausgangsfolgewerten<br />

∗ ( ) ( ) ( ) � ( − )<br />

y 0 , y 1 , y 2 , , y 3n 1 (5.3.11)<br />

und bekannter Ordnung n* des Prozesses die unbekannten Parameter<br />

α , α , �, α ∗ und<br />

β , β , �,<br />

β ∗<br />

( . . )<br />

1 2 1 5312<br />

n 2 n<br />

seines Übertragungsfunktionsmodells (5.3.2) zu berechnen.<br />

Man erkennt jedoch sofort die Nachteile dieser Identifikationsmethode: Die identifizierte<br />

Parameteranzahl und damit die Systemordnung n ist abhängig von der Anzahl der


Meßwerte. Der folgende praxisnähere Ansatz der gleichen Problemstellung vermeidet<br />

dieses Problem.<br />

Bei einem realen <strong>Systemidentifikation</strong>sproblem wird i.a. die Systemordnung n* nicht<br />

bekannt sein und die Meßsignale der Eingangs- und Ausgangsabtastfolge werden<br />

Störungen unterliegen. Setzt man deshalb in die Gleichung (5.3.3) die Störung E(z) ≠ 0,<br />

ergibt sich folgender Ausdruck<br />

( ) ⋅ ( ) ( ) ⋅ ( ) − ( ) ⋅ ( )<br />

N z E z = N z Y z Z z U z . (5.3.13)<br />

M M P M<br />

NM( z) E( z ) = ( z)<br />

und Meßfehler vereint denkt. Führt man mit dem Ansatz (5.3.13) und ( )<br />

⋅ ε wird als Gleichungsfehler bezeichnet, in dem man sich alle Störungen<br />

ε z ≠ 0 die<br />

Rechengänge von (5.3.4) bis (5.3.8) erneut durch, wobei man an Stelle von (5.3.6) eine<br />

beliebige Anzahl von Messungen<br />

N ≥ 2n (5.3.14)<br />

zuläßt, erhält man an Stelle von (5.3.8) folgenden Ausdruck<br />

⎡yP( n) ⎤ ⎡yn ( 1, ) yn ( 2, ) , y0 ( ) un ( 1, ) un ( 2, ) , u0 ( ) ⎤<br />

⎡−α − − � − − �<br />

1⎤<br />

⎢ ⎥ ⎢<br />

⎢ ⎥<br />

⎡ε( n)<br />

⎤<br />

⎥ ⎢ ⎥<br />

⎢<br />

yP( n+ 1) ⎥ ⎢<br />

y( n, ) y( n−1, ) �, y1 ( ) un, ( ) un ( −1,<br />

) �,<br />

u1 ( ) ⎥<br />

⎢ � ⎥<br />

⎢ ⎥ ⎢<br />

⎢ ⎥<br />

⎢ε( n+1 ) ⎥<br />

⎥ ⎢ ⎥<br />

⎢ ⎥ ⎢<br />

⎥<br />

⎢−α ⎥<br />

n ⎢ ⎥<br />

⎢yP( n+ 2) ⎥ ⎢y(<br />

n+ 1, ) y( n, ) �, y( 2) un ( + 1, ) un, ( ) �,<br />

u( 2)<br />

=<br />

⎥<br />

⎢ ⎥<br />

⎢ε( n+2 )<br />

⋅ + ⎥.<br />

⎢ ⎥ ⎢<br />

⎥<br />

⎢ β ⎥<br />

1 ⎢ ⎥<br />

⎢ � ⎥ ⎢<br />

�<br />

⎥<br />

⎢ ⎥<br />

⎢ ⎥ ⎢<br />

⎢ ⎥<br />

⎢ � ⎥<br />

⎥ � ⎢ ⎥<br />

⎢<br />

yP( n+ N− 1<br />

⎥ ⎢<br />

⎢⎣ ) ⎥⎦ ⎢⎣y(<br />

n+ N− 2 ) ,y( n+ N−3 ) , �, y( N− 1) u( n+ N− 2 ) ,u( n+ N−3 ) , �,<br />

u( N−1 ⎥<br />

⎢ ⎥<br />

⎢<br />

) ⎦ ⎢ ⎥ ( n+N −1<br />

⎥<br />

⎥ β ⎢⎣ε) ⎢<br />

⎥<br />

⎣<br />

⎦<br />

n ⎥⎦<br />

������� �������������������������������������<br />

���<br />

�������<br />

y = R ⋅ p + ε<br />

p<br />

5.29<br />

(5.3.15)<br />

Dabei ist n eine geschätzte Systemordnung, die größer oder gleich der vermuteten,<br />

wirkliche Systemordnung n* gewählt werden sollte.<br />

Um trotz Anwesenheit des Fehlers<br />

ε = y<br />

P<br />

− R⋅ p<br />

( 5316<br />

. . )


gute Modellparameterwerte p berechnen zu können, ist es sicherlich sinnvoll zu fordern,<br />

daß der Fehlervektor ε in Abhängigkeit von den zu bestimmenden Parametern p<br />

möglichst klein wird. Formal könnte das Minimum dieser Funktion durch Nullsetzen der<br />

ersten Ableitung ∂ε / ∂p<br />

von (5.3.16) gefunden werden. Dies würde jedoch ε in dem Sinne<br />

minimieren, daß ε nicht gegen Null sondern gegen betragsmäßig große negative Werte<br />

gehen würde. Um den Betrag von ε zu minimieren, muß daher die Ableitung des<br />

Fehlerbetrages ∂ε / ∂p<br />

= 0 gebildet werden. Bessere Ergebnisse mit ähnlicher Wirkung<br />

und gepaart mit einer einfacheren Ableitung liefert die Auswertung von ε durch<br />

∂<br />

∂<br />

ε<br />

2<br />

p<br />

=<br />

0 , ( 5. 3. 17)<br />

also die Minimierung des Fehlerquadrates. Da das Quadrat eines Vektors nicht definiert<br />

ist, muß man sich vor Augen führen, was die Operation (5.3.17) erreichen will, nämlich die<br />

Summe der Fehlerquadrate ε 2 (k) in (5.3.15) minimal, bzw. Null zu machen. Die Summe<br />

der Fehlerquadrate kann man aber wie folgt ausdrücken:<br />

n+ N−1 ∑<br />

k=n<br />

( ) ( ) + ( + ) + L + ( + − )<br />

2 2 2 2<br />

ε k = ε n ε n 1 ε n N 1 .<br />

Nach den Regeln der Matrizenrechnung ist aber auch<br />

so daß (5.3.17) übergeht in<br />

5.30<br />

ε(<br />

n)<br />

( n+ 1)<br />

⎡ ⎤<br />

⎢ ⎥<br />

′<br />

= ( n ) , ( n 1 ) , , ( n N 1)<br />

⎢<br />

ε<br />

ε ⋅ ε ⎡⎣ε ε + L ε + − ⎤⎦⋅<br />

⎥<br />

⎢ M ⎥<br />

⎢ ( n+ N−1) ⎥<br />

⎣ε⎦ n+ N−1 2 2 2 2<br />

( ) + ( + ) + L + ( + − ) ∑ ( )<br />

= ε n ε n 1 ε n N 1 = ε k , (5.3.18)<br />

( ε<br />

′<br />

ε)<br />

∂ ⋅<br />

∂<br />

p<br />

Nach dem Einsetzen von (5.3.16) in (5.3.19)<br />

= 0 . (5.3.19)<br />

′<br />

( ε<br />

′<br />

ε<br />

∂⋅ ) ( y − R⋅p P ) ⋅( y − R⋅p P )<br />

⎡ ⎤<br />

∂ ⋅ ⎢ ⎥<br />

=<br />

⎣ ⎦<br />

= 0 (5.3.20)<br />

∂ p ∂ p<br />

k=n


kann diese Gleichung gelöst und <strong>zur</strong> Berechnung des Parametervektors p umgestellt<br />

werden. Da uns <strong>zur</strong> Durchführung dieser Rechnung einige mathematische Grundlagen<br />

fehlen (z.B. Ableitungen von Matrizen und Vektoren), geben wir das Ergebnis direkt an:<br />

( ) 1 −<br />

p = R<br />

′<br />

⋅R⋅R ′<br />

⋅y ⋅<br />

(5.3.21)<br />

P<br />

(Für den am Rechnungsgang interessierten Leser sei auf die Literaturstelle /13/<br />

hingewiesen, wo auch das Problem der Ableitung von Matrizen ausführlich dargestellt<br />

wird).<br />

Zur praktischen Anwendung dieser <strong>Systemidentifikation</strong>sgleichung nach dem SKQ-<br />

Offline<strong>Verfahren</strong> (5.3.21) müssen die Matrizen R und yp nach der Vorschrift, wie sie in<br />

Gleichung (5.3.15) dargestellt ist, mit den Meßwerten des Eingangssignals u(n-i) und des<br />

Ausgangssignals y(n-i) besetzt werden. Anschließend kann (5.3.21) nach den Methoden<br />

der Matrizenrechnung berechnet werden.<br />

Das folgende Matlab-Programm zeigt diesen Besetzungs- und Lösungsweg: Die jeweils<br />

"N" Abtastwerte "uab", des Eingangssignals und "yab" des Ausgangssignals müssen als<br />

Spaltenvektoren im Matlab-Arbeitsspeicher vorliegen, dann berechnet das folgende<br />

Programm den Parametervektor p der zeitdiskreten Übertragungsfunktion (5.3.2) mit der<br />

vorgegebenen (und damit auch im Matlab-Speicher bekannten) Systemordnung "n". Die<br />

Sortierung der Parameter in p entspricht dann der in Formel (5.3.15):<br />

% Parameterschätzung nach der SKQ-Methode<br />

%<br />

for k = 1:n, % Besetzung der R-Matrix<br />

R(:,n+1-k) = yab(k:N-1+k);<br />

R(:,2*n+1-k) = uab(k:N-1+k);<br />

end<br />

RR = R'*R; % Prüfung, der Invertierbarkeits-<br />

Determinante=det(RR); % Kondition der zu invertierenden<br />

if abs(Determinante)


5.3.1.1 Das SKQ-Online <strong>Verfahren</strong><br />

Das in der Überschrift genannte <strong>Verfahren</strong> wird in der Literatur häufig auch als „rekursive<br />

Methode der kleinsten Quadrate“ oder als „RLS-<strong>Verfahren</strong>“ (recursive least squares)<br />

bezeichnet.<br />

Zur Ableitung des <strong>Verfahren</strong>s, wobei wir einer Ableitung von /13/ folgen, schreiben wir den<br />

Ansatz <strong>zur</strong> Ableitung der nichtrekursiven Methode (5.3.15) so hin, daß man die (diskrete)<br />

Zeitabhängigkeit (k) der Messung der Signale u und y deutlich erkennt. Dabei gelten<br />

wieder die in /1/ eingeführten Abkürzungen k für kT und T für die Abtastzeit:<br />

Wobei<br />

⎡y p(1)<br />

⎤ ⎡r'(1) ⎤ ⎡−α1⎤ ⎡ε(1) ⎤<br />

⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥<br />

⎢y .<br />

p(2)<br />

⎥ ⎢r'(2) ⎥ ⎢ ⎥ ⎢ε(2) ⎥<br />

⎢ ⎥ ⎢ ⎥ ⎢−α ⎥ ⎢ ⎥<br />

n<br />

⎢<br />

.<br />

⎥ = ⎢ . ⎥⋅ ⎢ ⎥+<br />

⎢ . ⎥<br />

. . β<br />

⎢ 1<br />

.<br />

.<br />

.<br />

⎥ ⎢ ⎥ ⎢ ⎥ ⎢<br />

.<br />

⎥<br />

⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥<br />

⎢ ⎥ ⎢ ⎥ ⎢ . ⎥ ⎢ ⎥<br />

⎢⎣ y p(k)<br />

⎥ r'(k) ⎢ n ⎥<br />

14243 ⎦ ⎢⎣ ⎥⎦ ⎣ β ⎦ ⎢⎣ε(k) ⎥<br />

14243 123 123⎦<br />

y (k) = R(k) ⋅ p(k) + ε(k).<br />

(5.3.22)<br />

p<br />

r '(k) = [ y(k −1), y(k −2), ... ,y(k −n) | u(k −1), ... ,u(k −n)<br />

]<br />

(5.3.23)<br />

n: vermutete Systemordnung<br />

ist. Eine entsprechende Zeitabhängigkeit gilt für die Lösung von (5.3.22) (vergleiche<br />

(5.3.21)):<br />

( ) 1 −<br />

p(k) = R'(k) ⋅R(k) ⋅R'(k) ⋅y<br />

(k). (5.3.24)<br />

Zur Schreibvereinfachung wird für die folgenden Darstellungen<br />

( ) 1 −<br />

p<br />

R'(k) ⋅ R(k) = Q(k) . (5.3.25)<br />

abgekürzt, so daß (5.3.24) wie folgt geschrieben wird:<br />

p(k) = Q(k) ⋅R'(k) ⋅y<br />

p(k).<br />

(5.3.26)<br />

Für den nächsten Zeitpunkt lautet (5.3.26) dann<br />

p(k + 1) = Q(k + 1) ⋅ R'(k + 1) ⋅ y p(k<br />

+ 1) . (5.3.27)<br />

Wenn man diese Gleichung wie folgt aufspaltet, erkennt man, wie der neue Parametersatz<br />

p(k+1) aus neuen Meßwerten, z.B. yP(k+1) entsteht:<br />

5.32


'<br />

⎡ R(k) ⎤ ⎡ y p(k)<br />

⎤<br />

p(k + 1) = Q(k + 1)<br />

⎢<br />

⋅⎢ r'(k+ 1) ⎥ y (k+ 1) ⎥<br />

Ersetzt man in (5.3.28) den Term<br />

R'(k) ⋅ y p(k)<br />

durch die umgestellte Gleichung (5.3.26)<br />

erhält man<br />

⎣ ⎦ ⎣ p ⎦<br />

= Q(k + 1) ⋅⎡R'(k) ⋅ y (k) + r(k + 1) ⋅ y (k + 1) ⎤.<br />

(5.3.28)<br />

p<br />

−1<br />

⎣ p p ⎦<br />

R(k) ⋅ y (k) = Q (k) ⋅p(k)<br />

(5.3.29)<br />

−1<br />

p(k + 1) = Q(k + 1) ⋅Q (k) ⋅ p(k) + Q(k + 1) ⋅ r(k + 1) ⋅ y (k + 1). (5.3.30)<br />

Um den alten Parametersatz p(k) mit in die Betrachtungen einzubeziehen, wird zum Term<br />

−1<br />

Q(k + 1) ⋅Q (k) ⋅ p(k) der Parametersatz p(k) einmal addiert und, um die Gleichung nicht zu<br />

verändern, wieder subtrahiert:<br />

−1<br />

p(k) + Q(k + 1) ⋅Q (k) ⋅p(k) −p(k)<br />

⎡ −1<br />

⎤<br />

= p(k) + Q(k + 1) ⋅Q (k) −E⋅p(k) . (5.3.31)<br />

⎣ ⎦<br />

Setzt man (5.3.31) an Stelle von<br />

Gleichung<br />

⎡ −1<br />

⎤<br />

−1<br />

Q(k + 1) ⋅Q (k) ⋅ p(k) in (5.3.30) ein, ergibt sich eine<br />

p(k + 1) = p(k) + Q(k + 1) ⋅Q (k) −E⋅ p(k) + Q(k + 1) ⋅ r (k + 1) ⋅ y p(k<br />

+ 1) , (5.3.32)<br />

⎣ ⎦<br />

mit Hilfe derer, man auf der Basis eines alten Parametersatzes p(k) rekursiv einen neuen<br />

Parametersatz p(k+1) berechnen kann, der u.a. auf einer neuen Meßgröße yp(k+1)<br />

basiert. Leider hat die Gleichung (5.3.32) den entscheidenden Nachteil, daß <strong>zur</strong><br />

Berechnung eines neuen Parametersatzes auf der Basis eines neuen Meßwerts die relativ<br />

große Matrix Q invertiert werden muß.<br />

Dies mindert die Performance einer numerischen Berechnung erheblich. Dies ist<br />

insbesondere von Nachteil, weil der Algorithmus Online arbeiten soll, d.h. variable<br />

Systemparameter in Echtzeit identifizieren soll.<br />

Zur Findung eines Algorithmus, der keine Matrizeninversion benötigt, wird die Matrix<br />

Q(k+1) entsprechend (5.3.28) aufgespalten geschrieben:<br />

5.33<br />

p


[ ]<br />

Q(k + 1) = R'(k + 1) ⋅ R(k + 1)<br />

−1<br />

⎡ '<br />

⎡ R(k) ⎤ ⎡ R(k) ⎤<br />

⎤<br />

= ⎢<br />

⎢<br />

⎥<br />

⎣r'(k+ 1) ⎥<br />

⎦<br />

⎢<br />

⎣r'(k+ 1) ⎥<br />

⎢⎣ ⎦⎥⎦<br />

[ R '(k) R(k) r (k 1) r '(k 1) ]<br />

5.34<br />

−1<br />

= ⋅ + + ⋅ +<br />

−1<br />

⎡ −1<br />

⎤<br />

−1<br />

= Q (k) + r(k + 1) ⋅ r '(k + 1) (5.3.33)<br />

⎣ ⎦<br />

Nach der Invertierung beider Gleichungsseiten und Umstellung nach<br />

−1 −1<br />

−1<br />

Q (k)<br />

erhält man<br />

Q (k) = Q (k+ 1) − r(k+ 1) ⋅ r '(k+ 1). (5.3.34)<br />

Setzt man nun (5.3.34) in (5.3.32) ein<br />

erhält man schließlich<br />

−1<br />

( )<br />

p(k + 1) = p(k) + ⎡Q(k+ 1) ⋅ Q (k + 1) − r(k + 1) ⋅ r '(k + 1) −E⎤⋅ p(k ) + ...<br />

⎣ ⎦<br />

... + Q(k+ 1) ⋅ r(k+ 1) ⋅ y (k+ 1)<br />

= p(k) + ⎡⎣E − Q(k+ 1) ⋅ r(k+ 1) ⋅ r '(k+ 1) − E⎤⎦⋅ p(k) + ...<br />

... + Q(k+ 1) ⋅ r(k+ 1) ⋅ y (k+ 1),<br />

p(k + 1) = p(k) + Q(k + 1) ⋅ r (k + 1) ⋅ ⎡y (k + 1) − r '(k + 1) ⋅p(k)<br />

⎤,<br />

(5.3.35)<br />

⎣ p<br />

⎦<br />

wobei nach (5.3.33) immer noch eine Invertierung vorgenommen werden muß.<br />

Nach einem Satz der Matrizenrechnung /13/ gilt, wenn A eine nicht singuläre pxp-Matrix, b<br />

eine 1xp-Matrix und d eine px1-Matrix sind<br />

−1 −1<br />

−1<br />

⎡ ⎤<br />

[ ]<br />

A<br />

⎣<br />

+ b⋅ d<br />

⎦<br />

= A−A⋅b⋅ d⋅A⋅ b+ 1 ⋅d⋅A. Darüber hinaus ist unter den obigen Bedingungen[ d⋅A⋅ B+ 1]<br />

ein Skalar, so daß man<br />

schreiben kann:<br />

Damit wird (5.3.33)<br />

−1<br />

⎡ −1<br />

A⋅b A + b⋅ d⎤ = A− ⋅d⋅A. ⎣ ⎦ d⋅A⋅ b+ 1<br />

Q(k) ⋅ r (k + 1)<br />

Q(k + 1) = Q(k) − ⋅ r '(k + 1) ⋅Q(k),<br />

(5.3.36)<br />

r'(k+ 1) ⋅Q(k) ⋅ r(k+ 1) + 1<br />

und es muß keine Invertierung mehr vorgenommen werden. Multipliziert man weiterhin<br />

(5.3.36) mit r(k+1) erhält man:<br />

p<br />

p


Q(k + 1) ⋅ r (k + 1) = Q(k) ⋅ r (k + 1) −...<br />

Q(k) ⋅ r (k + 1)<br />

... − ⋅ r '(k + 1) ⋅Q(k) ⋅ r (k + 1)<br />

r'(k+ 1) ⋅Q(k) ⋅ r(k+ 1) + 1<br />

⎛ r'(k+ 1) ⋅Q(k) ⋅ r(k+ 1) ⎞<br />

= Q(k) ⋅ r (k + 1) ⋅⎜1− ⎟<br />

⎝ r'(k+ 1) ⋅Q(k) ⋅ r(k+ 1) + 1⎠<br />

⎛ 1<br />

⎞<br />

= Q(k) ⋅ r (k + 1) ⋅⎜ ⎟.<br />

(5.3.37)<br />

⎝ r'(k+ 1) ⋅Q(k) ⋅ r(k+ 1) + 1⎠<br />

Der Ausdruck Q(k + 1) ⋅ r (k + 1) findet sich vor der Klammer in der Gleichung (5.3.35)<br />

wieder. (5.3.37) kann dort eingesetzt werden. Nennt man (5.3.37), wie in der Literatur<br />

üblich, γ (k) , erhält man den neuen Parametersatz p(k+1) wie folgt:<br />

mit<br />

( p<br />

)<br />

p(k+ 1) = p(k) + γ(k) ⋅ y (k+ 1) − r '(k+ 1) ⋅p(k)<br />

(5.3.38)<br />

Q(k) ⋅ r (k + 1)<br />

γ (k) =<br />

. (5.3.39)<br />

r'(k+ 1) ⋅Q(k) ⋅ r(k+ 1) + 1<br />

Jetzt wird nur noch die Matrix Q(k+1) für den nächsten Rechenschritt benötigt. Sie<br />

berechnet sich aus der Formel (5.3.36) in die Formel (5.3.39) eingesetzt wird:<br />

Q(k + 1) = Q(k) − γ(k) ⋅ r '(k + 1) ⋅Q(k)<br />

= ⎡<br />

⎣E − γ(k) ⋅ r '(k + 1) ⎤<br />

⎦⋅Q(k)<br />

. (5.3.40)<br />

5.3.1.3 Meß- und auswerttechnische Randbedingungen<br />

Zur optimalen Nutzung der vorangehend beschriebenen LS- und RLS-<strong>Systemidentifikation</strong>salgorithmen<br />

müssen einige Randbedingungen eingehalten werden, die im<br />

Folgenden beschrieben werden.<br />

• Wahl der Abtastzeit T und der Anzahl der Messungen N<br />

Die Wahl der richtigen Abtastzeit <strong>zur</strong> Signalmessung hat einen wesentlichen Einfluß auf<br />

die Güte des Identifizierung. Es wird ein Wert<br />

tDyn<br />

T ≈<br />

(5.3.41)<br />

N<br />

5.35


empfohlen, wobei t Dyn der Zeitpunkt ist, wo die Sprungantwort des zu erkennenden<br />

Systems keine dynamischen Veränderungen mehr erfährt und in den stationären Zustand<br />

bzw. in den geradlinigen integralen Anstieg übergeht. (Spätere Identifikationsläufe zeigen,<br />

daß bei ungestörten Systemen, d.h. bei fehlendem Meßrauschen, eher kleinere<br />

Abtastzeiten und bei gestörten Systemen eher größere Abtastzeiten zu besseren<br />

Identifikationsergebnissen führen)<br />

0<br />

0<br />

h(t)<br />

t Dyn<br />

t<br />

5.36<br />

0<br />

0<br />

h(t)<br />

t Dyn<br />

Bild 5.3.3 : Zur Definition des Zeitpunktes t Dyn<br />

Die Anzahl N der <strong>zur</strong> Berechnung von (5.3.41) heranzuziehenden Meßwerte sollte bei<br />

liegen.<br />

20 ≤ N ≤ 120 (5.3.42)<br />

• Meßwerte mit Gleichanteilen<br />

Die Meßwerte u(kT) und y(kT), die <strong>zur</strong> Auswertung in den SKQ-Algorithmen herangezogen<br />

werden, z.B. in den Meßwert-Matrizen R und y von (5.3.15), müssen frei von<br />

P<br />

Gleichanteilen sein, d.h. sie müssen reine Signaländerungen darstellen:<br />

( ) ( )<br />

( ) ( )<br />

u k = U k − U0<br />

y k = Y k − Y (5.3.43)<br />

0<br />

U(k); Y(k) : gemessene Signalamplituden,<br />

U 0; Y 0 : Gleichanteile in den Signalamplituden<br />

U 0 und Y 0 sind häufig Arbeitspunktwerte (vergleiche Kapitel 2.1.1)<br />

U0 = uA<br />

Y = y , (5.3.44)<br />

0 A<br />

die dann entsprechend (5.3.43) von den gemessenen Signalamplituden subtrahiert<br />

t


werden müssen.<br />

Falls die Gleichanteile unbekannt sind (was seltener vorkommt), kann man sie z.B. durch<br />

Mittelwertbildung bestimmen:<br />

N−1 1<br />

U 0 = ∑ U k<br />

N<br />

k= 0<br />

N−1 k= 0<br />

( )<br />

1<br />

Y 0 = ∑ Y( k )<br />

(5.3.45)<br />

N<br />

Die Signaländerungen können dann nach (5.3.43) gebildet und dann in die SKQ-<br />

Algorithmen eingesetzt werden.<br />

• Notwendige Formen der Systemerregung<br />

Bei der numerischen Auswertung der Schätzgleichung (5.3.21) muß die die Meßwerte<br />

enthaltende Matrix R'.R invertiert werden. Dies setzt voraus, daß die Matrix quadratisch<br />

und nicht singulär ist. Obwohl die Matrix R bei N > 2n nicht quadratisch ist, stellt die<br />

Operation R'.R immer sicher, daß R'.R quadratisch wird.<br />

Bei der Wahl ungeeigneter Meßerregungen (z.B. Sprünge) kann es aber vorkommen, daß<br />

ganze Spalten von R (die u-Spalten) konstante Werte beinhalten. Dadurch wird R'.R zwar<br />

nicht singulär, aber die Determinante det (R'.R) kann sehr kleine Werte annehmen. Dies<br />

kann wegen der endlichen Rechengenauigkeit eines Digitalrechners wiederum dazu<br />

führen, daß die inverse Matrix (R'.R) - 1 sehr ungenau berechnet wird und (5.3.21) auf sehr<br />

ungenaue Systemparameter p führt.<br />

Signale, die eine invertierbare Matrix (R'.R) erzeugen, werden in diesem Zusammenhang<br />

häufig als persistente Signale bezeichnet.<br />

Es empfiehlt sich deshalb, eine "rauschförmige" Erregung mit verschiedenen Amplituden<br />

und Impulsdauern zu benutzen. Weiterhin sollte die Eingangserregung (nach den<br />

Ausführungen des vorigen Abschnitts) einen Mittelwert U0 = 0 haben.<br />

Bild 5.3.5 zeigt eine mögliche Systemerregungsform, sogenanntes binäres Rauschen. Die<br />

Signalamplitude wechselt dabei zwischen einem positiven und einem negativen<br />

Amplitudenwert, dessen Größe z.B. nach den Vorgaben des Kapitels 2.1.1 gewählt wird.<br />

Die Verharrungsdauer bei einer negativen oder positiven Amplitude wird stochastisch<br />

verändert. Sie muß größer oder gleich der gewählten Abtastzeit T sein.<br />

5.37


u(t)<br />

• Empfindlichkeit gegenüber Meßstörungen<br />

Bei der praktischen Erprobung zeigt sich , daß die SKQ-<strong>Verfahren</strong> relativ empfindlich<br />

gegenüber Meßstörungen sind. Um schon von vornherein stochastische, hochfrequente<br />

Meßstörungen zu unterdrücken empfiehlt es sich, mit identischen Eingangssignalen und<br />

bei gleichen Anfangszuständen des zu identifizierenden Systems mehrere Ausgangs-<br />

signalfolgen zu messen, diese anschließend zu mitteln und dann erst <strong>zur</strong> Parameter-<br />

schätzung zu verwenden.<br />

Eine Tiefpaßfilterung des Ausgangssignals vor dem Identifikationsvorgang führt i.A. zu<br />

keiner wesentlichen Verbesserung des identifizierten Modells.<br />

5.3.1.4 Ansätze <strong>zur</strong> Modellverbesserung<br />

Wurde unter Beachtung der vorangehenden Ausführungen der Parametervektor p des<br />

Prozeßmodells berechnet, kann dieser ggf. durch folgende Überlegungen noch verbessert<br />

werden.<br />

• Verstärkungskorrektur<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

0 10 20 30 40<br />

t/sek<br />

50<br />

Bild 5.3.5: Binäres Rauschen als Systemerregung <strong>zur</strong><br />

<strong>Systemidentifikation</strong> mittels SKQ-<strong>Verfahren</strong><br />

Wenn es bei einem global proportional wirkenden System möglich ist, seinen<br />

Verstärkungsfaktor aus einer Sprungantwortmessung nach (5.2.10)<br />

( )<br />

∆yP∞ V P = (5.3.46)<br />

∆u<br />

5.38<br />

T = 1sek


zu berechnen und die mit einem SKQ-<strong>Verfahren</strong> geschätzte Modellübertragungsfunktion<br />

die Form (5.3.2) hat, kann man mit Hilfe des Endwertsatzes der z-Transformation nach /1/<br />

den Modellverstärkungsfaktor<br />

( ) ( )<br />

V = G z = G 1<br />

M M z= 1 M<br />

berechnen. Weichen V P und V M voneinander ab, ergibt sich die im Verstärkungsfaktor<br />

korrigierte Modellübertragungsfunktion G* M(z) aus<br />

V<br />

G z = G z (5.3.47)<br />

P ( ) ⋅ ( )<br />

∗<br />

M<br />

VM<br />

M<br />

(Dabei wird angenommen, daß VP der richtig bestimmte Verstärkungsfaktor ist.)<br />

• Integrator-Korrektur<br />

Im Falle eines global integral wirkenden Systems kommt es häufig vor, daß die<br />

Identifikation auf eine Modellübertragungsfunktion (5.3.2) führt, bei der kein Pol exakt bei<br />

z=1 (Integratorpol) liegt. Mit folgender Parameterkorrektur kann man jedoch einen<br />

Integratorpol erzwingen: Bezeichnet man die geschätzte Modellübertragungsfunktion mit<br />

( )<br />

M −1 −2 1−n −n<br />

1 + α1⋅ z + α2⋅ z + � + αn−1⋅ z + αn⋅z 5.39<br />

( )<br />

Z z<br />

G z . = (5.3.48)<br />

und die korrigierte Modellübertragungsfunktion mit<br />

Z z<br />

G ( z ) =<br />

1 z 1 z z z z<br />

∗<br />

M 1 1 2 2 n 1 n<br />

( )<br />

− ∗ − ∗ − ∗ − ∗ −<br />

( − ) ⋅ ( + α 1⋅ + α 2⋅ + � + α n−2⋅ + α n−1⋅ )<br />

�����<br />

Integratorpol<br />

kann man nach einer Umformung von (5.3.49)<br />

( )<br />

( )<br />

( ) ( ) � ( )<br />

(5.3.49)<br />

Z z<br />

G z = ,<br />

∗<br />

M<br />

1 +<br />

∗ −1 α 1−1⋅ z +<br />

∗ ∗<br />

α 2 −α 1<br />

−2 ⋅ z + +<br />

∗ ∗<br />

α n−1−α n−2 1−n ∗ −n<br />

⋅z − α n−1⋅z einen Koeffizientenvergleich der Nenner von (5.3.48) und (5.3.50) vornehmen<br />

(5.3.50)


∗ ∗<br />

α 1−1 = α ⎫<br />

1 α 1 = α 1+<br />

1<br />

⎪<br />

⎪<br />

α −α α ⎪ α α +α<br />

⎪<br />

α −α α ⎪ α α +α<br />

⎬ ⇒<br />

� ⎪ �<br />

⎪<br />

α −α α ⎪ α α +α<br />

⎪<br />

∗ ⎪ ∗<br />

−α n−1= αn ⎪⎭ −α n−1= αn<br />

.<br />

∗ ∗ ∗ ∗<br />

2 1 = 2 2 = 2 1<br />

∗ ∗ ∗ ∗<br />

3 2 = 3 ⎪ 3 = 3 2<br />

∗ ∗ ∗ ∗<br />

n−1 n−2= n−1 n−1= n−1 n−2 5.40<br />

(5.3.51)<br />

Betrachtet man neben dem falsch identifizierten Integratorpol die restlichen α als richtig<br />

geschätzt, können mit (5.3.51) die korrigierten Parameter α* i von G* M(z) (5.3.50)<br />

berechnet werden. Wir betrachten dazu folgendes<br />

Beispiel 5.3.2: Ein <strong>Systemidentifikation</strong>sprozeß führt auf folgende Modellübertagungs-<br />

funktion<br />

1 z<br />

G(z) = =<br />

. (5.3.52)<br />

2 −2<br />

z − 1,45z + 0,475 1− 1,45z + 0,475z<br />

Es ist a priori bekannt, daß es sich um ein global integral wirkendes System handelt.<br />

a) Prüfe, ob die <strong>Systemidentifikation</strong> diese Tatsache modelliert hat.<br />

−2<br />

b) Wenn nicht, führe eine Integratorkorrektur durch.<br />

Zur Beantwortung der Frage a) wird das Nennerpolynom faktorisiert:<br />

1<br />

G(z) =<br />

. (5.3.53)<br />

(z − 0,95) ⋅(z −0,5)<br />

Wie man deutlich erkennt, liegt kein exakter Integratorpol bei z = 1 vor, an Stelle dessen<br />

wurde ein Pol bei z = 0.95 identifiziert. Das heißt, es muß eine Integratorkorrektur<br />

vorgenommen werden. Aus (5.3.52) können die Koeffizienten<br />

α 1 = − 1,45 und α 2 = 0,475 (5.3.54)<br />

abgelesen werden. Nach (5.3.51) berechnet sich der korrigierte Koeffizient aus<br />

*<br />

1 1<br />

α = α + 1 = − 1,45 + 1= −<br />

0,45 (5.3.55)


Dieser wird in die Form (5.3.50) eingesetzt (man beachte den letzten Term im Nenner und<br />

die Tatsachen, daß n=2 ist):<br />

−2 −2<br />

*<br />

z z<br />

M = =<br />

−1 −2 −1 −2<br />

G (z)<br />

1 + ( − 0,45− 1)z + 0,45z 1− 1,45z + 0,45z<br />

1<br />

=<br />

2<br />

z − 1,45z+ 0,45<br />

5.41<br />

(5.3.56)<br />

Damit ist die korrigierte Übertragungsfunktion gefunden. Durch Lösung des<br />

Nennerpolynoms, kann man sich überzeugen, daß ein Integratorpol bei z = -1 liegt.<br />

• Bestimmung der Systemordnung<br />

Bei der Ableitung der SKQ-Algorithmen sind wir von der realistischen Tatsache<br />

ausgegangen, daß die Systemordnung n* des zu modellierenden Prozesses nicht bekannt<br />

ist. Wir haben zunächst eine Systemordnung n angenommen, von der wir ausgingen, daß<br />

sie größer oder gleich der vermuteten Systemordnung n* ist. Die Algorithmen lieferten<br />

dann ein Systemmodell der Ordnung n. Unter Einhaltung der in den vorangehenden<br />

Kapiteln empfohlenen Methoden und Vorgehensweisen <strong>zur</strong> Meßtechnik und numerischen<br />

Auswertung der SKQ-Algorithmen kann auch ein Modell trotz zu hohen Systemordnung<br />

von ausreichender Modellierungsgüte sein. Die nachfolgend vorgestellten <strong>Verfahren</strong> der<br />

Ordnungsschätzung dienen dazu, eine niedrigere Modellordnung zu bestimmen, um die<br />

Modellgleichung (5.3.2) handhabbarer zu gestalten. Manchmal verbessert sich auch die<br />

Modellgüte bei Verringerung der Systemordnung.<br />

Das einfachste <strong>Verfahren</strong> besteht darin, beginnend mit einer hohen Modellordnung n aus<br />

eine Schätzung vorzunehmen und mit dem daraus entstehenden Modell eine<br />

Sprungantwort zu berechnen. Der gleiche Vorgang wird basierend auf dem gleichen<br />

Datensatz nacheinander mit reduzierten Ordnungen n-1, n-2, ... vorgenommen. An Hand<br />

eines "optischen Vergleichs" der Prozeßsprungantworten yp(k) mit den Sprungantworten<br />

der Modelle yM(k) verschiedener Ordnung n wird das Modell ausgewählt, dessen<br />

Sprungantwort der des Prozesses am ähnlichsten ist. Damit ist die optimale<br />

Modellordnung bestimmt.<br />

Rechnergestützt kann dieser Vergleich mit größerem Aufwand mit Hilfe einer sog.<br />

"Verlustfunktion"<br />

N−1 ( )<br />

( ) ∑<br />

P( ) − M(<br />

)<br />

k=0<br />

2<br />

V n = y k,n y k,n (5.2.57)


vorgenommen werden. Bei der optimalen Ordnung n = n* wird V(n) ein (u.U. nicht sehr<br />

deutliches) Minimum annehmen, weil dann die Funktionswerte y P und y M am dichtesten<br />

beieinander liegen.<br />

Während die beiden vorangehend beschriebenen <strong>Verfahren</strong> die Abweichung von Systemund<br />

Modellausgangssignal bewerten, wird beim sog. "Pol-Nullstellen-<strong>Verfahren</strong>" das<br />

geschätzte Systemmodell in Form seiner Übertragungsfunktion (5.3.2) untersucht. Hat<br />

man ein Systemmodell mit n > n* berechnet, bestimmt man die Pol-und Nullstellen dieser<br />

Modellübertragungsfunktion.<br />

Im allgemeinen entstehen neben den durch das zu identifizierende System vorgegebenen<br />

Pol-und Nullstellen noch (n-n*)-Stück Pol-Nullstellenpaare, die sich ungefähr<br />

kompensieren. Die wahrscheinlichste Modellordnung liegt vor, wenn diese Pol-<br />

Nullstellenpaare gekürzt werden. Auch hier hat sich eine optische Auswertung an Hand<br />

eines grafischen Pol-Nullstellen-Planes bewährt.<br />

Matlab stellt zu diesem Zwecke den Befehl<br />

[zmin,nmin] = minreal (zmod,nmod,tol); (5.3.58)<br />

<strong>zur</strong> Verfügung. "zmod" und "nmod" sind die ggf. in der Ordnung zu hoch geschätzten<br />

Zähler- und Nennerpolynome der Übertragungsfunktion. "zmin" und "nmin" sind die, nach<br />

der Kürzung nahe beieinander liegender Pole und Nullstellen, verbleibenden Zähler- und<br />

Nennerpolynome des korrigierten Modells. Mit dem Wert von "tol" wird eine<br />

Toleranzgrenze angegeben, innerhalb derer voneinander abweichende Pole und Nullstellen<br />

noch gekürzt werden sollen. Nähere Einzelheiten siehe Anhang A2 und /9/.<br />

5.3.1.5 Simulationsumgebungen <strong>zur</strong> Erprobung der SKQ-Algorithmen<br />

Im Anhang A3 wird der Speicherort von drei Matlab-Programmen mit dem Namen<br />

• ls.m<br />

• rls.m und<br />

• rls_var.m<br />

angegeben. Diese Programme stellen Simulationsumgebungen <strong>zur</strong> Erprobung des SKQ-<br />

Offline <strong>Verfahren</strong>s (ls.m) und des SKQ-Online <strong>Verfahren</strong>s (rls.m und rls_var.m) dar.<br />

• Simulationsumgebung für das SKQ-Offline <strong>Verfahren</strong> (ls.m)<br />

In diesem Programm werden zunächst das zu identifizierende kontinuierliche System<br />

simuliert und dessen Einheitssprungantwort berechnet und grafisch dargestellt.<br />

5.42


1<br />

y(t)<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0 10 20 30 40 t 50<br />

Bild 5.3.6: Sprungantwort des zu identifizierenden kontinuierlichen Systems<br />

Anhand dieser Sprungantwort können a priori Kenntnisse über das System gesammelt<br />

werden. „ls.m“ fragt nun nämlich (die vermutete) „Systemordnung" n und die zu wählende<br />

"Abtastzeit" T ab. Unter Berücksichtigung der erworbenen Systemtheorie-Kenntnisse und<br />

den Ausführungen des Kapitels 5.2 sollten diese Fragen vom Leser beantwortet werden<br />

können.<br />

Nach diesen Eingaben wird das zu identifizierende System zeitdiskret simuliert. Zunächst<br />

werden dazu das Abtast-Zeitraster berechnet, das binäre Rauschen als Erregungssignal<br />

erzeugt und das dazugehörige zeitdiskrete Ausgangssignal berechnet.<br />

Anschließend kann dem Ausgangssignal ein Meßrauschen überlagert werden, wie es im<br />

Allgemeinen auch in der Realität auftritt. In unserem Falle wird ein normalverteiltes<br />

Rauschen mit einem Mittelwert Null erzeugt, bei dem 68,3 % der auftretenden<br />

Rauschamplituden im Bereich ± ampl liegen. Dabei ist die Variable „ampl“ im Programm<br />

frei wählbar, d.h. man kann mit ihr die Rauschamplitude vergrößern oder verkleinern.<br />

Anschließend gibt das Programm das binäre System-Eingangssignal und das verrauschte<br />

und unverrauschte Ausgangssignal des zu identifizierenden Systems grafisch aus.<br />

Im nächsten Schritt erfolgt die Parameterschätzung, also die Systemidentifkation nach der<br />

nichtrekursiven SKQ-Methode (vergleiche die Schätzgleichung (5.3.21) ). Da ein<br />

kontinuierliches Systemmodell berechnet werden soll, wird anschließend aus dem<br />

berechneten Parametersatz „pv“ zunächst die zeitdiskrete und dann die kontinuierliche<br />

Modellübertragungsfunktion berechnet.<br />

Die Sprungantwort dieser identifizierten kontinuierlichen Modellübertragungsfunktion wird<br />

anschließend mit der Sprungantwort des im Programm ganz oben simulierten zu<br />

identifizierenden Systems gemeinsam grafisch ausgegeben, um die Güte des<br />

identifizierten Modells visuell überprüfen zu können.<br />

5.43


Abschließend wird die identifizierte Modellübertragungsfunktion in Polynom- und V-<br />

Normalform ausgegeben.<br />

Die Simulationsumgebung „ls.m“ erlaubt das Studium verschiedener Einflußgrößen auf die<br />

Schätzgüte des Modells:<br />

• Den Einfluß der Abtastzeit T <strong>zur</strong> Messung der Ein- und Ausgangssignale des zu<br />

identifizierenden Systems ,<br />

• den Einfluß der gewählten Systemordnung und<br />

• den Einfluß von Meßstörungen.<br />

Da das zugrunde liegende System linear ist, haben die Lage des Arbeitspunktes und die<br />

Amplitude der Eingangserregung keinen Einfluß auf die Identifizierungsgüte und müssen<br />

nicht beachtet werden.<br />

Nach dem Starten des Programms wird die Abtastzeit im Rahmen der Benutzerkommunikation<br />

abgefragt. Sie kann mit Hilfe der vorher grafisch dargestellten<br />

Sprungantwort des zu identifizierenden Systems und den Beziehungen (5.3.41) und<br />

(5.3.42) abgeschätzt werden. Für das vorliegende Problem berechnet sich eine Abtastzeit<br />

in der Größenordnung von T ≈ 1. Bei einer ungestörten Messung (Variable „ampl“ im<br />

Programm auf Null setzen) werden bei etwas kleineren Abtastzeiten von T ≈ 0,1 sehr gute<br />

Modelle berechnet, sofern die vermutete (und vom Programm abgefragte) Systemordnung<br />

richtig mit n=3 gewählt wurde. Kleinere Systemordnungen bilden zwangsläufig nicht die<br />

richtige Dynamik auf das Modell ab und zu groß gewählte Systemordnungen n > 3 führen<br />

häufig zu Programmabbrüchen, weil die Determinante R’R in der Schätzgleichung (5.3.21)<br />

zu kleine Werte annimmt.<br />

Während man die Systemordnung n und die Abtastzeit T mit etwas Aufwand für eine gute<br />

Schätzung experimentell ermitteln kann, hat der Einfluß von Meßstörungen schwer<br />

beeinflußbare Auswirkungen auf die Güte des identifizierten Modells. Schon kleine<br />

Rauschanteile (ampl=0,01) können bei richtiger Wahl von n und T zu völlig<br />

unbefriedigenden Identifikationsergebnissen führen. Bei Experimenten zeigt es sich, daß<br />

bei Rausschstörungen größere Abtastzeiten (z.B. T zwischen 1,5 und 2)) zu moderat<br />

besseren Identifikationsergebnissen führen. Obwohl man annehmen könnte, daß eine<br />

Tiefpaßfilterung des gemessene Ausgangssignals zu einer Verbesserung der<br />

identifikationsgüte führen würde, zeigen Experimente, daß dies nicht der Fall ist.<br />

Mit dem in folgenden beschriebenen Programm „rls.m“ kann man zeigen, daß mit der<br />

rekursiven Methode der kleinsten Quadrate eine gewisse Modellverbesserung möglich ist.<br />

5.44


• Simulationsumgebung für das SKQ-Online <strong>Verfahren</strong> (rls.m)<br />

In diesem Programm wird zunächst, wie im Programm ls.m“, mit einem Teildatensatz der<br />

„gemessenen“ Ein- und Ausgangssignal-Folgewerte mit der nichtrekursiven Methode der<br />

kleinsten Quadrate ein Systemmodell geschätzt. Dabei wird das gleiche zu identifizierende<br />

System und die gleiche binäre Rauscherregung wie im Programm „ls.m“ zugrunde gelegt.<br />

Die Abtastzeit wird für diese Demonstration fest auf optimale T = 1,5 und die richtige<br />

Systemordnung n = 3 bei einer Störrauschen mit der Amplitude ampl = 0,02 festgelegt.<br />

Bei einem Idenifikationszeitraum von 500 sek. werden bei einer Abtastzeit T=1,5 sek 333<br />

Meßwertpaare u(k) und y(k) berechnet, wovon N1 = 10*n = 30 für die nichtrekursive<br />

Schätzung und die restlichen N = 333 - 30 Wertepaare für den rekursiven Algorithmus <strong>zur</strong><br />

Verbesserung des identifizierten Systemmodells benutzt werden.<br />

Bei der programmtechnischen Realisierung des rekursiven Algorithmus (vergleiche die<br />

Ableitung im Kapitel 5.3.1.2) steht in der Zeile 7 nach Beginn der for-Schleife <strong>zur</strong><br />

„Paramterschätzung nach der rekursiven SKQ-Methode“ die Befehlszeile „Neuer<br />

Parametersatz“<br />

pv=pv+gamma*(yp-rk1'*pv); (5.3.59)<br />

im Mittelpunkt. Sie entspricht der Formel (5.3.38) aus der oben genannten Ableitung:<br />

( p<br />

)<br />

p(k+ 1) = p(k) + γ(k) ⋅ y (k+ 1) − r'(k+ 1) ⋅ p(k) . (5.3.60)<br />

Die linke Seite der Gleichungen pv ( � p(k+1)) stellt den neuen Parametersatz dar, der auf<br />

der Basis eines neuen Eingangs-/Ausgangsdatensatzes uab, yab ( � u(k+1), y(k+1))<br />

berechnet wurde. Zu dieser Berechnung wird an zwei Stellen in den obigen Gleichungen<br />

zunächst der alte Parametersatz pv ( � p(k)) benötigt. yp ( � yp(k+1)) und rk1( � r(k+1))<br />

sind die Meßwertdatensätze aus denen nach (5.3.28) ein neuer Parametersatz berechnet<br />

werden kann. Im Programm „rls.m“ werden diese Datensätze in den ersten vier<br />

Programmzeilen innerhalb der oben erwähnten for-Schleife aus den Meßdaten uab, yab<br />

berechnet. Der in den obigen Gleichungen (5.3.59 / 5.3.60) vorkommende Faktor gamma<br />

( � γ(k)) berechnet sich nach (5.3.39) aus einem Bruch. In diesem Bruch kommen die<br />

schon berechnete Variable rk1 ( � r(k+1)) und eine Matrix Q vor. Q ist im ersten<br />

Rechenschritt nicht anderes als (R‘R) –1 aus dem nichtrekursiven Algorithmus (5.3.25).<br />

Der Faktor gamma ( � γ(k)) wird im Matlab-Programm in der 5. und 6. Zeile nach Beginn<br />

der for-Schleife berechnet. Abschließend wird in Zeile 8 die für den nächsten<br />

Schleifendurchlauf benötigte Matrix Q(k+1) (5.3.40) bestimmt.<br />

Die restlichen Befehlszeilen innerhalb der for-Schleife dienen der Berechnung der<br />

aktuellen z-Übertragungsfunktion (zdm, ndm) aus dem berechneten Parametersatz pv, der<br />

5.45


anschließenden Wandlung in ein kontinuierliches Modell (sys_m) und der Berechnung und<br />

grafischen Darstellung dieser Sprungantwort zum grafischen Vergleich zwischen System-<br />

und identifizierter Modellantwort.<br />

Zur Demonstration des Konvergenzverhaltens, d.h. um zu zeigen, daß sich durch<br />

Anwendung des rekursiven SKQ-Algorithmus das identifizierte Modell dem Verhalten des<br />

zu identifizierenden Systems immer ähnlicher wird, wird innerhalb der for-Schleife mit Hilfe<br />

des Ausdrucks<br />

g(i) = sum (abs (yks-yM))*T; (5.3.61)<br />

für jeden Rekursionsschritt i näherungsweise die Flächendifferenz zwischen der<br />

Sprungantwort des aktuell identifizierten Modells (yM) und des zu identifizierenden<br />

Systems (yks) berechnet (g(i)) und gespeichert. (Der Ausdruck (5.3.61) berechnet mit Hilfe<br />

einer Rechteckapproximation eines Integrals die vorangehend erwähnte Flächendifferenz.<br />

Eine solche Funktion wird auch in Kapitel 5.3.2 benötigt, wo die Formel noch einmal<br />

ausführlich abgeleitet wird).<br />

Trägt man den Wert der Flächendifferenz „g“ über dem Wert des Schleifenzählers<br />

„Iterationen i“ auf, kann man am Verlauf von g sehen, ob sich eine Modellverbesserung<br />

einstellt: Bei Annäherung der Modellsprungantwort an die des zu identifizierenden<br />

Systems muß die Flächendifferenz geringer werden, d.h. die Kurve g muß sich zu höheren<br />

Werten von i gegen kleinere Werte von g bewegen. Der folgende Verlauf zeigt eine<br />

moderate Modellverbesserung:<br />

g(i)<br />

30<br />

25<br />

20<br />

15<br />

10<br />

5<br />

Konvergenzverhalten der Identifikation: (sum(abs(yM-yS)))<br />

0<br />

0 100 200 300 400<br />

Iterationen<br />

Bild 5.3.7: Konvergenzverhalten eines Identifikationslaufs<br />

Leider führt auch der rekursive SKQ-Algorithmus trotz relativ geringer Meßstörungen und<br />

5.46


optimal gewählter Systemordnung n und Abtastzeit T nicht zu einem Identifikations-<br />

ergebnis, das den Altagsbedürfnissen eines praktisch arbeitenden Ingenieurs gerecht<br />

wird.<br />

Das sich ebenfalls im Anhang A3 befindliche Matlab-Programm „rls_var“ zeigt allerdings,<br />

daß die rekursive Methode der kleinsten Quadrate, zwar nur bei nicht verrauschtem<br />

Meßsignal, und damit eingeschränkt gut <strong>zur</strong> Identifikation von Systemen mit<br />

veränderlichen Parametern geeignet ist. Das Programm simuliert wieder das schon in<br />

„ls.m“ und „rls.m“ zu identifizierende System. In diesem Programm wird jedoch der<br />

Verstärkungsfaktor diese Systems in der Identifikationsschleife von V = 2 bis V = 20<br />

verändert. Auf der Basis dieses sich verändernden Systems wird in jedem Durchgang<br />

durch die for-Schleife ein neues Modell geschätzt. Läßt man das Programm laufen, kann<br />

man die stetige Annäherung der Modell- an die sich verändernde Systemantwort<br />

beobachten. Vergrößert man den zulässigen Identifikationszeitraum von jetzt 1000 sek<br />

auf größere Werte, kann man eine vollständige Überdeckung von System- und<br />

Modellantwort herbeiführen.<br />

In /13/ und /14/ werden Methoden beschrieben, die einerseits die SKQ-Methoden<br />

verbessern (z.B. die Methode der Hilfsvariablen) und andererseits auf stochastischer<br />

Signaltheorie beruhend, neue <strong>Verfahren</strong> (z.B. die Maximum Likelihood Methode)<br />

hervorbringen.<br />

Allen <strong>Verfahren</strong> ist jedoch gemeinsam, daß die Identifikationerregung kein einfaches<br />

Signal (z.B. ein Sprung) sein darf, sondern daß mit Rauschsignalen gerarbeitet werden<br />

muß. Diese Tatsache erlaubt z.B. auch keine Totzeitabspaltung (Vergleiche Kapitel 5.1.3).<br />

Bei allen <strong>Verfahren</strong> ist deshalb eine aufwendige Totzeitidentifikation notwendig<br />

Aus den genannten Gründen soll deshalb im nächsten Kapitel ein Identifikationsverfahren<br />

hergeleitet werden, das praktischen Ingenieuransprüchen genügt, nämlich unempfindlich<br />

gegen Meßstörungen ist und sprungförmig erregt werden kann.<br />

5.47


5.3.2 Bestimmung der Parameter der Übertragungsfunktion mittels einer<br />

Optimierungsstrategie<br />

Im folgenden Kapitel werden sogenannte Optimierungsstrategien (-algorithmen) <strong>zur</strong><br />

Lösung von <strong>Systemidentifikation</strong>s-Problemen herangezogen. Optimierungsalgorithmen<br />

werden in Naturwissenschaft, Wirtschaft und Technik immer dann angewandt,<br />

wenn sich Probleme gar nicht oder nur mit sehr großem Aufwand mathematisch<br />

formulieren lassen, oder, wenn sie sich formulieren, aber nicht analytisch lösen<br />

lassen.<br />

Optimierungsverfahren nutzen <strong>zur</strong> Problemlösung des Prinzip des strategischen<br />

Probierens und kommen einer optimalen Lösung i. A. sehr nahe. Wir wollen uns im<br />

folgenden Kapitel zunächst einen kurzen Überblick über die Funktion und den<br />

Einsatz von Optimierungsstrategien verschaffen<br />

5.3.2.1 Grundlagen von Optimierunsstrategien<br />

Um eine Problemstellung mit einer Optimierunsstrategie lösen zu können, muß die<br />

Aufgabe so formuliert werden, daß eine sogenannte Zielfunktion entsteht, die<br />

einerseits von den zu bestimmenden, unbekannten Variablen abhängig ist,<br />

andererseits muß diese Zielfunktion minimal werden, wen die unbekannten Variablen<br />

ihren Lösungswert (Optimalwert) annehmen.<br />

Nennen wir die Zielfunktion g und die Lösungsvariablen x, die auch häufig<br />

Optimierungsparameter genannt werden , haben wir folgende Aufgabe zu lösen:<br />

x<br />

[ ] '<br />

min g(x); x = x , x , x , ...,x ; (5.3.62)<br />

1 2 3 n<br />

Eine solche Problemformulierung ist in vielen Fällen relativ einfach möglich.<br />

Zum besseren Verständnis sollen alle Zusammenhänge an einem praktischen<br />

Beispiel aus dem Bereich <strong>Systemidentifikation</strong> erläutert werden:<br />

Von einem unbekannten Übertragungssystem, das mit einem sprungförmigen<br />

Eingangssignal<br />

u(t) = 1V ⋅σ(t)<br />

(5.3.63)<br />

erregt wurde, wird folgende Systemantwort (Bild 5.3.8) gemessen. Mit Kenntnis<br />

dieser beiden Datensätze soll das mathematische Modell des Systems in Form<br />

seiner Übertragungsfunktion bestimmt werden.<br />

5.48


Bild 5.3.8 : Sprungantwort eines unbekannten Übertragungssystems<br />

Wie wir in Kapitel 5.2 gesehen haben, stellt die Systemtheorie Erkenntnisse <strong>zur</strong><br />

Verfügung, mit Hilfe derer bei einfachen Übertragungssystemen aus der Form der<br />

Sprungantwort zumindest in guter Näherung auf die Struktur des<br />

Übertragungsfunktions-Modells geschlossen werden kann .<br />

Die Sprungantwort in Bild 5.3.8 entspricht der eines Proportionalgliedes 2. Ordnung<br />

mit folgender Übertragungsfunktions-Struktur:<br />

Y(s) b0<br />

G(s) = = (5.3.64)<br />

U(s) 2<br />

1+ a s+ a s<br />

1 2<br />

Es gilt nun die drei unbekannten b 0 , a 1 und a 2 so zu bestimmen, daß die<br />

Übertragungsfunktion das unbekannte System, von dem wir nur die Sprungantwort<br />

kennen, mathematisch modelliert. Das heißt, bei gleicher sprungförmiger Erregung<br />

mit dem gleichen Ausgangssignal-Verlauf antwortet.<br />

Die Systemtheorie lehrt weiterhin, daß sich hinter dem Parameter b 0 der<br />

Verstärkungsfaktor V des Systems verbirgt, der mit einfachen Mitteln aus der<br />

Sprungamplitude des Eingangssignals ∆u = 1 und der stationären Ausgangssignal-<br />

differenz ∆y(∞) berechnen läßt /1/:<br />

∆y( ∞)<br />

1V<br />

b0 = V = = = 1. (5.3.65)<br />

∆u<br />

1V<br />

Das heißt, wir müssen nur noch die Parameter a 1 und a 2 des Modells bestimmen.<br />

Da dies Problem nur mit erheblichem Aufwand analytisch lösbar ist, könnten wir<br />

versuchen, das Problem der Findung von a 1 und a 2 durch probieren zu lösen. Dazu<br />

benötigen wir zunächst eine Simulationsmöglichkeit, um die Sprungantwort des<br />

5.49


unbekannten Systems und die Modellsprungantwort für verschiedene<br />

Prametereinstellungen berechnen zu können. (Diese Möglichkeit stellt MATLAB <strong>zur</strong><br />

Verfügung). Setzen wir dann irgendwelche Zahlenwerte für a1 und a2 in unser<br />

Simulationsmodell ein, können wir die Sprungantwort auf das Eingangssignal<br />

(5.3.63). berechnen. Anschließend vergleichen wir die Sprungantwort des Modells<br />

mit der des unbekannten Systems. Entsprechen sie sich nicht, stellen wir im<br />

Simulationsmodell einen neuen Parametersatz ein und wiederholen den Vorgang.<br />

Dies machen wir so lange, bis beide Sprungantworten gleich sind. Wenn wir dies<br />

ohne Konzept tun, wird der Suchvorgang sehr lange dauern oder gar nicht zum<br />

Erfolg führen.<br />

Wir wollen daher im folgenden die Grundzüge einer Strategie entwickeln, die quasi<br />

durch strategisches Suchen unsere Problemstellung löst.<br />

Zunächst benötigen wir einen quantitativen Maßstab, der angibt, um viel besser oder<br />

schlechter eine Parametereinstellung x = (a1 , a2 ) gegenüber der vorangehenden ist.<br />

Dazu benutzen wir die Sprungantwort des unbekannten Übertragungssystems. Wenn<br />

wir bei einer beliebigen Parametereinstellung unseres Modells (y(t)Modell) auch eine<br />

Sprungantwort messen und diese über die des unbekannten Systems (y(t)System)<br />

legen,<br />

Bild 5.3.9 : Sprungantwort-Differenzen zwischen unbekanntem System und Modell<br />

erkennt man, daß mit geringer werdender Flächendifferenz zwischen den<br />

Sprungantworten die Modellsprungantwort gegen die Sollsprungantwort geht. Die bei<br />

minimaler Flächendifferenz benutzten Modellparameter x = (a1 , a2 ) sind dann die,<br />

welche das unbekannte System am besten (optimal) modellieren.<br />

5.50


Die Fächendifferenz, die im Sinne der vorangehenden Ausführungen die Zielfunktion<br />

darstellt, berechnet sich aus<br />

tend<br />

∫<br />

g(a ,a ) = y (t) − y (t) dt, (5.3.66)<br />

1 2 System Modell<br />

0<br />

oder wenn man mit zeitdiskrete Signalfolgen auf einem Digitalrechner arbeitet, zum<br />

Beispiel aus der Rechteckapproximation von (5.3.66)<br />

1<br />

N−1 2 = ∑<br />

n= 0<br />

System − Modell<br />

g(a ,a ) y (nT) y (nT) T. (5.3.67)<br />

N= t /T;<br />

end<br />

Dabei ist T die Rechenschrittweite, bzw. die Abtastzeit. Die Abkürzung g soll für die<br />

Güte der Annäherung an die optimalen Modellparameter stehen.<br />

Da wir noch keine Strategie <strong>zur</strong> Findung der optimalen Parameter kennen, für die<br />

g(x) minimal wird, wollen wir uns einen Überblick über die verschiedenen Gütewerte<br />

in Abhängigkeit der beiden Parameter a1 und a2 verschaffen.<br />

Dazu müssen wir eine große Anzahl verschiedener Kombinationen a1 von und a2 wählen und jeweils die dazugehörigen Modellsprungantworten berechnen.<br />

Anschließend werden die jeweils dazugehörigen Flächendifferenzen g(x) bestimmt.<br />

Anschließend kann man diese berechneten Werte als Funktionswerte g(x) von a1 und a2 in einem dreidimensionalen Koordinatensystem darstellen. Bei genügender<br />

Dichte der Funktionswerte entsteht quasi ein "Gütegebirge". Das folgende Bild 5.3.10<br />

zeigt das Gütegebirge für unsere Problemstellung, der <strong>Systemidentifikation</strong> eines<br />

PT2-Gliedes, wenn die vorangehend vorgeschlagene Berechnung über einem<br />

Parameterbereich<br />

0,5 ≤ a1 ≤ 5<br />

0 ≤ a ≤ 8 (5.3.68)<br />

2<br />

vorgenommen wird. Man erkennt deutlich das Ansteigen der Flächendifferenzen zu<br />

kleinen a1-Werten hin. Nicht sehr deutlich erkennbar ist ein Minimalpunkt des<br />

Gebirges bei ca. a1 = 2,5 und a2 = 6. Nach unseren vorangehenden Betrachtungen,<br />

müßten dies die optimalen Modellparameter sein.<br />

5.51


Flaechendifferenz<br />

150<br />

100<br />

50<br />

0<br />

0<br />

2<br />

4<br />

Bild 5.3.10 : "Flächendifferenz-Gütegebirge"<br />

a2<br />

Ein wesentlich deutlicheres Bild der Lage des Minimums ergibt sich, wenn wir das<br />

Gütegebirge in Form von Iso-Linien ( iso = gleich ) auf einer Fläche darstellen. (Diese<br />

Linien sind vergleichbar mit dem Höhenlinien eins Berges auf einer Landkarte). Das<br />

folgende Bild zeigt diese Isolinien-Darstellung unseres Problems über dem gleichen<br />

Parameterbereich wie in Bild 5.3.10<br />

a1<br />

Bild 5.3.11 : Iso-Linien-Darstellung des Gütegebirges aus Bild 5.3.11<br />

5.52<br />

6<br />

8<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

a1<br />

a2


Die eingetragene Zahlenwerte stellen die Flächendifferenzen g(x) dar, die jeweils für<br />

die angekreuzten Isolinien gelten. Sehr deutlich ist das Minimum der Flächendifferenzen<br />

bei a1 = 2,5 und a2 = 6,25 zu erkennen. Durch eine feinere Auflösung<br />

des Bildes in der Nähe des Minimums könnten die optimale Parameterwerte mit noch<br />

größerer Genauigkeit abgelesen werden.<br />

Im Anhang A3 wird der Speicherort (Ordner „Demos“) eines Matlab-Programm mit<br />

dem Namen "iso_pt2.m" angegeben, mit dem die Bilder 5.3.10 und 5.3.11 auf der<br />

Basis der Flächendifferenzen von Sprungantworten berechnet wurden.<br />

So anschaulich diese graphische Minimumsuche auch sein mag, ist sie wegen des<br />

Rechenaufwands sicherlich nicht die geeignete Methode <strong>zur</strong> numerischen Findung<br />

von Optimallösungen. Darüber hinaus kann man sie auch nicht mehr anwenden,<br />

wenn mehr als zwei Optimierungsparameter die Zielfunktion beeinflussen. Es<br />

entstehen dann Hyperräume mit drei oder mehr Raumkoordinaten, die graphisch<br />

nicht mehr anschaulich dargestellt werden können.<br />

Die im folgenden beschriebene einfache Vorgehens-Strategie, die sogenannte<br />

achsenparallele Minimumsuche (oder das Gauß-Seidel-<strong>Verfahren</strong>), erlaubt es<br />

opt opt<br />

jedoch, auch ohne Kenntnis des Isolinienfeldes, den Minimalpunkt xopt = ( a 1 ,a2<br />

)<br />

zu finden. Es sei angemerkt, daß diese <strong>Verfahren</strong> auch für eine<br />

Optimierungsparameter-Anzahl > 2 einsetzbar ist:<br />

Beginnend mit einem frei wählbaren Startparameter-Satz<br />

( 1 2)<br />

0 0 0<br />

x = a , a , (5.3.69)<br />

0<br />

wird gx ( ) bestimmt. Es wird anschließend solange der erste Parameter a1 ( 1 1 2)<br />

i+ 1 i i<br />

x = a + ∆ a ,a ; i = 0, 1, 2, ... (5.3.70)<br />

i 1<br />

verstellt und jeweils die dazugehörige Güte gx ( ) +<br />

5.53<br />

bestimmt, bis ein Gütewert<br />

auftaucht, der größer ist, als der vorangehende. Dann wird von letzten Bestwert, dem<br />

Güteminimum in dieser Suchrichtung, der zweite Parameter verstellt (und der erste<br />

konstant gehalten):<br />

( 1 2 2)<br />

i+ 1 i i<br />

x = a ,a + ∆ a . i =<br />

0, 1, 2, ... (5.3.71)


4.5<br />

a1<br />

4<br />

7<br />

3.5<br />

19<br />

13<br />

12 13 14 15 16 17 18<br />

11<br />

8 6 9<br />

3<br />

10<br />

23<br />

20<br />

22<br />

5<br />

2.5<br />

5.54<br />

21<br />

4<br />

2<br />

3<br />

1.5<br />

1<br />

1<br />

2<br />

0.5<br />

0 1 2 3 4 5 6 7 8<br />

a2<br />

Bild 5.3.12: Suchweg der achsenparallelen Minimumsuche


Diese Suchrichtung wird wieder solange beibehalten, bis wieder ein Gütewert<br />

auftaucht, der größer ist als sein Vorgänger. Jetzt wird, erneut ausgehend von letzten<br />

Bestwert, wieder in der ersten Suchrichtung fortgeschritten.<br />

Das Bild 5.3.12 zeigt eine solchen Suchwegverlauf in den Isolinien des Bildes 5.3.11.<br />

Als Startpunkt wurde x0 = (1, 1) gewählt, die Suchschrittweite wurde mit ∆a1<br />

= 0,5 und ∆a2 = 1 festgelegt. Nach 23 Bewegungen wird der Punkt 20 als<br />

Optimalpunkt erkannt. Wird nämlich während des Suchvorganges ein Punkt (20)<br />

gefunden, dessen 2n = 4 Nachbarn (18, 21, 22, 23) schlechtere Gütewerte aufweisen<br />

als er selbst, so ist dieser Punkt der vorläufige Optimalpunkt.<br />

Mit einer Schrittweitenverkleinerung von ∆a1 und ∆a2, z.B. auf die Hälfte, könnte die<br />

Genauigkeit der Optimallösung x noch weiter verbessert werden. Man beginnt dann<br />

nämlich mit der verkürzten Schrittweite in dem als "optimal" erkannten Punkt erneut<br />

mit einer Minimumsuche. Diesen Vorgang kann man solange fortsetzen, bis ein<br />

sogenanntes Abbruchkriterium erfüllt ist. Zum Beispiel könnte man fordern, daß vom<br />

−3 −3<br />

letzten gefundenen Minimum aus in einer Umgebung < ε, z. B. ε < ( 10 , 10 ) , kein<br />

kleinerer Gütewert g(x) gefunden wird:<br />

⎡ ∆a1 ⎤ ⎡ε1⎤ ⎢ . (5.3.72)<br />

a<br />

⎥ < ⎢ ⎥<br />

⎣∆2⎦ ⎣ε2⎦ a1<br />

letzter<br />

Suchschritt<br />

ε 1<br />

∆a 1<br />

ε 2<br />

Bild 5.3.13 : Zur Erläuterung des Abbruchkriteriums<br />

Im Anhang A3 wird der Speicherort (Ordner „Demos“) eines Matlab-Programms mit<br />

dem Namen "gs.m" (Gauss-Seidel) mit dem Unterprogramm "guete.m" angegeben,<br />

die diese achsenparallele Suche demonstrieren.<br />

Die Theorie der Optimierung, in der deren Bereich die strategischen Suchverfahren<br />

gehören, kennt noch eine Reihe anderer Methoden um Problemstellungen der Form<br />

(5.3.62) zu lösen. Diese Methoden lassen sich in zwei Kategorien einordnen:<br />

5.55<br />

∆a 2<br />

wahres<br />

Optimum<br />

erklärtes<br />

Optimum<br />

a2


• <strong>Verfahren</strong> mit Anforderungen an die Zielfunktion,<br />

• <strong>Verfahren</strong> ohne Anforderungen an die Zielfunktion.<br />

Die <strong>Verfahren</strong> mit Anforderungen an die Zielfunktion führen <strong>zur</strong> Findung einer<br />

möglichst schnellen Abstiegsrichung vom aktuellen Gütewert der Zielfunktion zum<br />

Minimum Ableitungen (Differentiationen) der Zielfunktion durch. Auch wenn dieser<br />

Ableitungsvorgang numerisch vorgenommen wird, muß gefordert werden, daß g(x)<br />

differenzierbar ist, also eine gewisse Glattheit besitzt. Optimierungsverfahren aus<br />

dieser Gruppe heißen z.B. "Gradientenverfahren" oder "Steepest Descent". Andere<br />

<strong>Verfahren</strong> dieser Gruppe fordern die sogenannte Unimodalität der Zielfunktion, d.h.<br />

sie darf nur ein Minimum besitzen. Unter bestimmten Umständen kann man bei<br />

diesen <strong>Verfahren</strong> Aussagen über die Konvergenzgeschwindigkeit machen, d.h. nach<br />

wieviel Schritten, das <strong>Verfahren</strong> das Minimum der Zielfunktion findet. Zu dieser<br />

Gruppe gehören die sogenannten "Newton"-<strong>Verfahren</strong> oder daraus abgeleitete<br />

<strong>Verfahren</strong> (z.B. das "BFGS"-<strong>Verfahren</strong>).<br />

Das vorangehend kurz beschriebene "Gauss-Seidel-<strong>Verfahren</strong>" gehört <strong>zur</strong> Gruppe<br />

der <strong>Verfahren</strong> ohne Anforderungen an die Zielfunktion. Diese <strong>Verfahren</strong> können die<br />

Minimumsuche auch in einem "zerklüfteten" Gütegebirge mit Funktionssprüngen<br />

durchführen. Dafür sind i.a. keine Aussagen über die Konvergenzgeschwindigkeit<br />

möglich. Einer der wichtigsten Vertreter dieser Gruppe ist das "Simplex"-<strong>Verfahren</strong><br />

von NELDER und MEAD, welches wir für unseren <strong>Systemidentifikation</strong>svorgang<br />

benutzen und später noch etwas genauer erläutern wollen.<br />

Allen <strong>Verfahren</strong> gemeinsam ist das Problem der Findung des absoluten Minimums<br />

einer Zielfunktion, wenn noch weitere lokale Minima existieren. Die Bilder 5.3.14 und<br />

5.3.15 zeigen eine solche Problemstellung mit mehreren Minima.<br />

g(x1,x2)<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0<br />

6<br />

4<br />

x2<br />

2<br />

0<br />

0<br />

Bild 5.3.14 : Zielfunktion einer Problemstellung mit mehreren Minima<br />

5.56<br />

2<br />

x1<br />

4<br />

6


x2<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

0 1 2 3<br />

x1<br />

4 5 6<br />

Bild 5.3.15 : Konturdiagramm der Zielfunktion aus Bild 5.3.14<br />

Einige <strong>Verfahren</strong>, z.B. solche aus der Gruppe der "Genetischen" <strong>Verfahren</strong>, die sich<br />

den Evolutionsvorgang als Optimierungsprinzip zum Vorbild nehmen, finden unter<br />

bestimmten Umständen auch in solchen Zielfunktionen das absolute Minimum. Man<br />

nennt diese <strong>Verfahren</strong> auch "globale Optimierungsverfahren". Bei der Verwendung<br />

des Nelder-Mead-<strong>Verfahren</strong>s, das kein globales <strong>Verfahren</strong> ist, müssen in solchen<br />

Fällen mehrere Optimierungsläufe mit verschiedenen Startparametersätzen x0<br />

durchgeführt werden. Wir kommen etwas später noch einmal darauf <strong>zur</strong>ück.<br />

Optimierungsprobleme der Form (5.3.62) können noch mit sogenannten<br />

Randbedingungen versehen sein, die den Suchbereich nach bestimmten Kriterien<br />

einengen. Da wir bei der <strong>Systemidentifikation</strong> keine Randbedingungen benötigen,<br />

wollen wir darauf nicht näher eingehen.<br />

Alle vorangehend angerissenen Aspekte der Optimierung werden ausführlich z.B. in<br />

/15/ und /16/ beschrieben.<br />

Für die suchstrategische <strong>Systemidentifikation</strong> wollen wir das Simplex-<strong>Verfahren</strong> von<br />

Nelder und Mead verwenden. Dies hat zwei Gründe, erstens hat sich das <strong>Verfahren</strong><br />

als sehr robust und gut eignet für diese Zwecke erwiesen (dies wird auch in der<br />

Literatur bestätigt), zweitens wird dieses <strong>Verfahren</strong> von einem Matlab-Befehl, nämlich<br />

"fminsearch.m" unterstützt, der sich bereits im Matlab-Grundbefehlsvorrat befindet.<br />

Nach einer kurzen Beschreibung der Berechnungsalgorithmus, wobei wir der<br />

Literaturstelle /17/ folgen, wollen wir den Matlab-Befehl "fminsearch.m" näher<br />

beschreiben und dann auf ein Systemerkennungsproblem anwenden.<br />

(Es sei darauf hin gewiesen, daß der Begriff Simplex-Algorithmus nichts mit dem<br />

gleichnamigen Algorithmus bei der Linearoptimierung zu tun hat)<br />

5.57


5.3.2.2 Der Simplex-Algorithmus von Nelder und Mead<br />

Dieses Kapitel soll, obwohl es den Simplex-Algorithmus so exakt beschreibt, daß<br />

man darauf aufbauend, den Algorithmus programmieren könnte, nur dazu dienen,<br />

einen Überblick über seine Funktionsweise zu bekommen.<br />

Um mit dem Algorithmus Systeme identifizieren zu können, muß man seine innere<br />

Funktionsweise nicht unbedingt verstanden haben.<br />

Der Nelder/Mead-Optimierungsalgorithmus beginnt mit dem Aufbau eines im<br />

Optimierungs-Parameter-Raum der Zielfunktion zufällig gelegenen Simplex<br />

(vieleckiger Körper) mit n+1 Ecken. Dabei ist n die Anzahl der<br />

Optimierungsparameter:<br />

⎡x1⎤ ⎡x1⎤ ⎡x1⎤ ⎢x ⎥ ⎢<br />

2 x ⎥ ⎢<br />

2 x ⎥<br />

x 2<br />

1= ⎢ ⎥ ; x 2 = ⎢ ⎥ ; ...; x n+ 1=<br />

⎢ ⎥ . (5.3.73)<br />

⎢<br />

...<br />

⎥ ⎢<br />

...<br />

⎥ ⎢<br />

...<br />

⎥<br />

⎢⎣x ⎥⎦ ⎢⎣x ⎥⎦ ⎢⎣x ⎥⎦<br />

n 1 n 2 n n+ 1<br />

x1 beschreibt die eigentlichen Startwerte des Optimierungsproblems und die x2 bis<br />

xn+1 die restlichen Eckpunkte des Simplex. Sie können aus den Startwerten wie folgt<br />

berechnet werden:<br />

x x h ; j 1,2,...,n. (5.3.74)<br />

j+ 1 1 j = + =<br />

Die h j sind dabei verschiedene aber frei wählbare Anfangsschrittweiten-Vektoren.<br />

Für n=2 Parameter ergibt sich dadurch ein Dreieck, für n=3 ein Tetraeder.<br />

Für die folgenden grafischen Erläuterungen benutzen wir der Anschaulichkeit halber<br />

immer n=2.<br />

x 1<br />

x<br />

1<br />

= L N M<br />

x<br />

x<br />

11 ,<br />

21 ,<br />

O<br />

Q<br />

P<br />

x<br />

3<br />

= L N M<br />

x2 Bild 5.3.16: Ein zufällig gelegener Start-Simplex<br />

x<br />

x<br />

5.58<br />

13 ,<br />

23 ,<br />

O<br />

Q<br />

P<br />

x<br />

2<br />

= L N M<br />

x<br />

x<br />

12 ,<br />

22 ,<br />

O<br />

Q<br />

P


Durch Operationen wie Reflexion, Expansion, Kontraktion und Schrumpfung wird der<br />

Simplex in dem Sinne verändert, daß ein Punkt des Simplex nach einer Reihe von<br />

Iterationen den Minimalpunkt der Zielfunktion im Sinne eines Abbruchkriteriums<br />

erreicht.<br />

Die Iteration beginnt mit einer Indizierung der xi, und zwar bekommen die xi die<br />

Indizes, die bei der Sortierung der dazugehörigen Funktionswerte g i =g(x i) vom<br />

kleinsten (also besten) bis zum größten Funktionswert entstehen;<br />

( 1) ≤ ( 2) ≤ ≤ + ( n+ 1)<br />

g x g x .... g x . (5.3.75)<br />

1 2 n 1<br />

Die bei der folgenden Iterationsvorschrift benutzten Formeln enthalten Konstanten,<br />

die von Nelder und Mead auf ρ = 1; κ = 2; γ = 05 , und σ = 05 , festgelegt<br />

wurden. Die Benutzung anderer Werte ist natürlich auch möglich.<br />

Der Iterationsvorgang läuft dann wie folgt:<br />

1. Ordne:<br />

Ordne die (n+1)-Stück xi im Sinne von (5.3.75).<br />

2. Reflektiere:<br />

Berechne den Reflektionspunkt x r aus<br />

wobei<br />

( + )<br />

x = x+ ρ x− x , (5.3.76)<br />

r n 1<br />

n<br />

x = ∑ x i /n (5.3.77)<br />

i= 1<br />

der Mittelpunkt der n besten Punkte (alle außer xn+1) ist.<br />

x 1<br />

x 3<br />

x<br />

Bild 5.3.17 : Simplex-Reflektion (Ursprungssimplex gestrichelt)<br />

x r<br />

5.59<br />

x 2


Berechne g r = g(x r).<br />

Wenn g 1 ≤ g r < g n ist, setze x n+1 = x r und gehe nach Schritt 6,<br />

wenn gr < g1 ist, gehe nach Schritt 3,<br />

wenn gr ≥ gn ist, gehe nach Schritt 4.<br />

3. Expandiere:<br />

Berechne den Expansionspunkt<br />

e r<br />

( )<br />

x = x+ κ x − x (5.3.78)<br />

x 1<br />

x2 xe Bild 5.3.18 : Simplex-Expansion (Ursprungssimplex gestrichelt)<br />

und bestimme ge=g(xe). Wenn ge < gr setze xn+1 = xe und gehe nach Schritt 6.<br />

Wenn ge ≥ gr setze xn+1 = xr und gehe nach Schritt 6.<br />

4. Kontraktiere<br />

Führe eine Kontraktion zwischen x und dem besseren von x n+1 und x r durch:<br />

• Außerhalb<br />

x 3<br />

Wenn g r < g n+1 führe eine Außenkontraktion durch, berechne<br />

c r<br />

x<br />

x r<br />

( )<br />

x = x + γ x − x (5.3.79)<br />

5.60


x 1<br />

Bild 5.3.19 : Simplex-Außenkontraktion (Ursprungssimplex<br />

gestrichelt)<br />

und bestimme gc = g(xc). Wenn gc ≤ gr setze xn+1 = xc und gehe nach Schritt 6, sonst<br />

gehe nach Schritt 5.<br />

• Innerhalb<br />

Wenn gr ≥ gn+1 führe eine Innenkontraktion durch, berechne<br />

x 1<br />

x 3<br />

( + )<br />

x' = x + γ x − x (5.3.80)<br />

c n 1<br />

x 3<br />

x<br />

x'c x2 Bild 5.3.20 : Simplex-Innenkontraktion (Ursprungssimplex<br />

gestrichelt)<br />

und bestimme g'c = g'(x'c). Wenn g'c < gn+1 setze xn+1 = x'c und gehe nach Schritt 6,<br />

sonst gehe nach Schritt 5.<br />

5.61<br />

x c<br />

x<br />

x 2


5. Schrumpfe<br />

Definiere n neue Punkte<br />

( )<br />

ν = + σ − = +<br />

i x1 xi x 1 ; i 2,3,...,n 1 (5.3.81)<br />

Bild 5.3.21 : Simplex-Schrumpfung (Ursprungssimplex gestrichelt)<br />

und berechne die g i in den Punkten p i = (x 1, υ 2, υ 3, ...., υ n+1) . Setze x i = p i<br />

und beginne wieder bei Schritt 1.<br />

6. Prüfe Abbruchbedingung<br />

Ist (z.B.) die Suchschrittweite kleiner als eine Schranke ε (ε ist frei wählbar,<br />

z.B. ε = 10-4):<br />

x 1<br />

x 1<br />

( i 1<br />

)<br />

max max x − x ; i = 2,3,...,n + 1 < ε,<br />

(5.3.82)<br />

ist die Abbruchbedingung erfüllt und x1 ist die Lösung.<br />

Ist die Abbruchbedingung nicht erfüllt, gehe nach Schritt 1.<br />

An dieser Stelle ist auch eine andere Abbruchbdingung, die sich an den<br />

Funktionswerten der Zielfunktion g(x) orientiert, möglich:<br />

Die Iteration wird abgebrochen, wenn die Differenz der Funktionswerte zweier<br />

aufeinanderfolgender Iterierter (k, k+1) kleiner ist als die Schranke µ (µ ist<br />

frei wählbar, z.B. µ = 10-4):<br />

(k− 1) (k)<br />

1 1<br />

g − g < µ . (5.3.83)<br />

(Der Iterationszähler k wird bei jedem Durchgang durch Schritt 1 der<br />

Iterationsvorschrift inkrementiert.)<br />

5.62<br />

x 2


Häufig werden beide Abbruchbedingungen genutzt und die Iteration erst nach<br />

Erfüllung beider Bedingungen abgebrochen. Auch eine vorgegebene<br />

Maximal-Anzahl von Iterationen kann, wird aber meist nur als Zusatzbedingung<br />

zu (5.3.82) und (5.3.83) genutzt, als Abbruchschranke gewählt<br />

werden.<br />

5.3.2.3 Der Matlab-Befehl "fminsearch.m"<br />

Der Matlab-Befehl "fminsearch.m" realisiert die n-dimensionale Simplex-Suche nach<br />

Nelder und Mead. Wir benutzen folgende Parametrierung des Befehls<br />

x = fminsearch ('function', x0, options); . (5.3.84)<br />

x ist der von der Funktion "fminsearch" <strong>zur</strong>ückgelieferte Lösungsvektor, der die<br />

Optimalparameter der Zielfunktion "function" beinhaltet. "function" steht für den<br />

Funktionsnamen eines function-Unterprogramms, in dem die Zielfunktion berechnet<br />

wird. x0 ist der zu übergebende Anfangwert-Vektor der Optimierungsparameter.<br />

(Im Sinne unserer Erläuterungen im vorigen Kapitel 5.3.2.2 sind x0 und x Elemente<br />

des Vektors x1 zu Beginn (x0) und am Ende der Suchschritte (x). Den Aufbau des<br />

Startsimplex führt der Befehl "fminsearch" automatisch aus.)<br />

Wenn in (5.3.84) das Argument "options" mit eingetragen ist ("fminsearch"<br />

funktioniert auch ohne dieses Argument) können einige Parameter des<br />

Suchalgorithmus geändert werden. Mit dem Befehl<br />

options = optimset (Parameter1, wert, Parameter2, wert, ...)<br />

werden diese Parameter gesetzt. Insgesamt können bei "fminsearch" fünf Parameter<br />

geändert werden:<br />

• 'Display': wert: 'off ' oder 'iter' oder 'final'<br />

Anzeigeoption für den Verlauf des Optimierungsvorganges. Bei Wahl von 'off' wird<br />

nichts angezeigt. Bei Wahl von 'iter' werden bei jedem neuen Suchlauf<br />

(Iterationsschritt), die Iterationsnummer, die Anzahl der Funktionsaufraufe der<br />

Zielfunktion, der Zielfunktionswert und die aktuelle Simplex-Operation (Reflektion,<br />

Kontraktion, usw.) ausgegeben, bei Wahl von 'final' erfolgt diese Ausgabe nur<br />

einmal am Ende des Suchlaufs.<br />

• 'MaxIter': wert: positive ganze Zahl<br />

5.63


Maximalanzahl der vorzunehmenden Suchlaufschritte (Iterationen). Der<br />

Defaultwert beträgt (200 * Anzahl der Optimierungsparameter).<br />

• 'MaxFunEvals': wert: positive ganze Zahl<br />

Maximalanzahl der vorzunehmenden Zielfunktions-Aufrufe. Pro Iterationsschritt<br />

wird die Zielfunktion mehrfach aufgerufen. Der Defaultwer beträgt auch (200 *<br />

Anzahl der Optimierungsparameter).<br />

• 'TolFun': wert: positive Zahl<br />

Setzt die Abbruchschranke µ. Die Iteration wird abgebrochen, wenn die<br />

Änderung des Zielfunktionswertes (im Sinne von (5.3.83)) die<br />

Abbruchschranke 'TolFun' unterschreitet. Der Defaultwert beträgt 1.e-4.<br />

• 'TolX' : wert: positive Zahl<br />

Setzt die Abbruchschranke ε. Die Iteration wird abgebrochen, wenn die<br />

Suchchrittweite (im Sinne von (5.3.82)) die Abbruchschranke 'TolX'<br />

unterschreitet. Der Defaultwert beträgt 1.e-4.<br />

ACHTUNG: Wenn die zu erwartenden Optimalparameter sehr klein<br />

sind, muß options 'TolX' entsprechend kleiner (z.B. 1.e-4 kleiner) als der<br />

kleiste erwartete Parameter eingestellt werden.<br />

Wir wollen den Einsatz von "fminsearch" an dem schon zu Beginn des Kapitels<br />

5.3.2.1 genutzten Beispiels <strong>zur</strong> <strong>Systemidentifikation</strong> eines PT2-Gliedes<br />

demonstrieren.<br />

Dort hatten wir von einem unbekannten, zu identifizierenden System die<br />

Sprungantwort (Bild 5.3.8)) gemessen. Aus der Form der Sprungantwort konnten wir<br />

a priori abschätzen, daß es sich um ein PT2-Glied mit der folgenden<br />

Übertragungsfunktion handelt (5.3.64/65)<br />

1<br />

G(s) =<br />

. (5.3.85)<br />

as + as+ 1<br />

Modell 2<br />

2 1<br />

a1 und a2 sind die zu identifizierenden Parameter, die ihre optimale Werte dann<br />

annehmen, wenn die Zielfunktion, die Flächendifferenz der Sprungantworten<br />

zwischen Modell (yModell (t)) und dem zu identifizierenden System (ySystem (t)),<br />

minimal wird:<br />

1<br />

N−1 2 = ∑<br />

n= 0<br />

System − Modell<br />

g(a ,a ) y (nT) y (nT) T. (5.3.86)<br />

N= t / ∆t;<br />

end<br />

5.64


Zur Lösung dieses Problems mit dem Matlab-Befehl "fminsearch" müssen zwei<br />

Programme geschrieben werden, ein Hauptprogramm, das hier den Namen<br />

"nelder.m" trägt<br />

% Programm "nelder.m"<br />

% Demonstrationprogramm für den Matlab-Befehl "fminsearch.m"<br />

% am Beipiel einer einfachen <strong>Systemidentifikation</strong>.<br />

% Das Programm ruft die Funktion "zielpt2.m"<br />

clear<br />

home<br />

close all<br />

x0=[10, 5]; % Starparameter [a2, a1],<br />

% Anordnung siehe "zielpt2.m".<br />

options=optimset('Display','iter','TolFun',1.e-6,'TolX',1.e-6);<br />

% Setzen von drei der fünf möglichen Optionen<br />

% des Suchalgorithmus "fminsearch"<br />

x=fminsearch('zielpt2',x0,options); % Aufruf des Nelder/Mead-Simplex<br />

% Optimierungsalgorithmus,<br />

% mit implizitem Aufruf der<br />

% Zielfunktion "zielpt2".<br />

Optimalparameter=x % Ausgabe der Optimalparameter<br />

und ein später zu erläuterndes Function-Unterprogramm mit dem Namen<br />

"zielpt2.m".<br />

Im Hauptprogramm müssen zunächst die Startparameter-Werte der unbekannten<br />

Parameter gesetzt werden. Da dieser Vektor im Befehlsargument von "fminsearch"<br />

x0 genannt wird, müssen die beiden Anfangswerte als Zeilenvektor x0 zugewiesen<br />

werden. Die Wertewahl dieser beiden Parameter ist beliebig, aber, wie wir später<br />

noch sehen werden, nicht unkritisch. Welcher dieser beiden Anfangswerte x0(1) und<br />

x0(2) mit a1 oder a2 korrespondiert, wird erst in dem noch zu besprechenden<br />

zweiten Programm festgelegt.<br />

Mit dem folgenden "optimset"-Befehl, werden, wie schon weiter vorn erläutert, eine<br />

ständig fortlaufenden Anzeige des Suchfortschrittes ('Display') initiiert und die<br />

Abbruchbedingungen etwas gegenüber den Defaultwerten verschärft.<br />

Der folgende Befehl stellt den eigentlichen Suchalgorithmus dar. "x" ist der nach<br />

Ablauf des Programms <strong>zur</strong>ückgelieferte optimale Parametervektor. Mit dem ersten<br />

rechtsseitigen Argument von "fminsearch" wird das function-Unterprogramm "zielpt2"<br />

aufgerufen, das schon erwähnte zweite Programm <strong>zur</strong> Berechnung der Zielfunktion.<br />

Das zweite Argument "x0" ist der Starparameter-Vektor und mit "options" werden die<br />

vorangehenden "optimset"-Zuweisungen aktiviert.<br />

In der letzten Zeile des Programms wird dem Optimalparameter-Vektor der<br />

Klarschriftname "Optimalparameter" zugewiesen. Da sich kein Semikolon hinter dem<br />

Befehl befindet, werden die optimalen Parameter unter diesem Namen im Matalb-<br />

Command-Window ausgegeben.<br />

5.65


Das zweite notwendige Programm, das unbedingt ein function-Unterprogramm sein<br />

und den in der Argumentliste von "fminsearch" benutzten Namen tragen muß, hat<br />

folgenden Aufbau:<br />

function g=zielpt2(x)<br />

% Funktion "zielpt2.m", die von "nelder.m" aufgerufen wird.<br />

% Berechnet die Ziel-Funktion <strong>zur</strong> <strong>Systemidentifikation</strong> eines<br />

% PT2-Gliedes<br />

% Identifiziertes Systemmodell<br />

%<br />

zmod=1; % Zaehler der Übertragungsfunktion<br />

% (mit bekannten V).<br />

nmod=[x(1), x(2), 1]; % Nenner der Übertragungsfunktion<br />

% mit unbekannten a2=x(1)und a1=x(2);<br />

t=0:0.1:30; % Beobachtungsintervall<br />

sys_mod=tf(zmod, nmod); % Identifiziertes Modell<br />

ymod=step(sys_mod, t); % Modell-Sprungantwort<br />

% Simulation des zu identifizierenden Systems<br />

% (Die hier berechnete Sprungantwort muesste bei einer realen<br />

% Identifikation aus einer Messung am realen System stammen)<br />

%<br />

zsys=1; % Zähler des zu identifizierenden<br />

% Systems<br />

nsys=[6.25, 2.5, 1]; % Nenner des zu identifizierenden<br />

% Systems<br />

sys_sys=tf(zsys, nsys); % Zu identifizierendes System<br />

ysys=step(sys_sys, t); % System-Sprungantwort<br />

% Berechnung des aktuellen Zielfunktionswertes nach Formel (5.3.86);<br />

% Vergleiche auch Bild 5.3.9.<br />

%<br />

g=sum(abs(ysys-ymod));<br />

Eingabeparameter in diese Funktion ist der zu optimierenden Parametervektor "x".<br />

Die Namengebung dieses Vektors ist frei. Ausgabeparameter ist der in diesem<br />

Programm berechnete Zielfunktionswert "g" zu dem aktuell übergebenen<br />

Parametervektor "x".<br />

Die fortlaufende Iteration führt Matlab automatisch durch. Das heißt, für jeden Schritt<br />

innerhalb der Iteration, wo ein Zielfunktionswert für einen bestimmten Parametersatz<br />

x benötigt wird, wird das Zielfunktions-Programm automatisch aufgerufen. In diesem<br />

Zusammenhang prüft Matlab auch automatisch die Abbruchbedingungen und kehrt<br />

erst nach ihrer Erfüllung in das Hauptprogramm <strong>zur</strong>ück. Dort werden anschließend<br />

alle Befehle hinter dem Aufruf von fminsearch abgearbeitet.<br />

Die Programmierung der Zielfunktion ist auch denkbar einfach: Zunächst wird das<br />

Übertragungsfunktion des zu identifizierenden Modells gebildet: der Zähler "zmod" ist<br />

5.66


nach (5.3.85) bekannt. Da es sich um ein Polynom 0. Ordnung mit a0 = V = 1<br />

handelt, wird nach den Matlab-Konventionen für die Eingabe von Polynomen<br />

zmod=1 eingegeben. Der Nenner ist ein Polynom zweiter Ordnung wovon a2 und a1 unbekannt und a0 = 1 bekannt sind. Da die beiden unbekannten Parameter die<br />

Optimierungsparameter sind führt dies auf eine Nennerprogrammierung von<br />

nmod = [x(1), x(2), 1];<br />

Mit der Wahl dieser Reihenfolge steht dann auch die Zuordnung a2 = x(1) und<br />

a1 = x(2) fest (Sortierung des Nennerpolynoms nach fallenden Potenzen von s).<br />

Nachdem man die Modellübertragungsfunktion kennt, kann man nun über einem frei<br />

wählbaren Beobachtungsintervall "t" die Modellsprungantort "ymod" mit den aktuellen<br />

Parametern x(1) und x(2) berechnen.<br />

Zur abschließenden Berechnung des aktuellen Zielfunktionswertes<br />

( ) = ( )<br />

ga,a gx(2),x(1)<br />

1 2<br />

in der letzten Zeile des Programms "zielpt2" wird jedoch noch die Sprungantwort des<br />

zu identifizierenden System ySystem (t) benötigt. Für einen realen <strong>Systemidentifikation</strong>svorgang<br />

müßte diese Sprungantwort als global definierter Vektor "ysys"<br />

dem Function-Programm <strong>zur</strong> Verfügung gestellt werden. Der Einfachheit wegen wird<br />

in diesem Demonstrationsprogramm das zu identifizierende System simuliert<br />

(zsys,nsys) und die Sprungantwort ysys = ySystem (t) berechnet.<br />

In der letzten Zeile von "zielpt2" wird die Zielfunktion 5.3.86 mit den aktuellen<br />

Parameterwerten berechnet. "sum" realisiert die Summenbildung und "abs" bildet<br />

den Betrag der Flächendifferenz "ysys - ymod".<br />

Läßt man das Programm mit der vorliegenden Form laufen, werden nach kurzer<br />

Rechenzeit die<br />

Optimalparameter =<br />

6.2500 2.5000<br />

ausgegeben. Ein Vergleich mit den Betrachtungen in Kapitel 5.3.2.1 oder mit dem<br />

simulierten, zu identifizierenden System zeigt eine perfekte Übereinstimmung.<br />

Im Anhang A3 wird der Speicherort des Ordners „Simplexpt2“ angegeben, der die<br />

beiden Matlab-Programme "nelder.m" und "zielpt2.m" enthält.<br />

Durch Veränderung der Programmierung könnte man die vorliegenden Programme<br />

bereits <strong>zur</strong> Erprobung von <strong>Systemidentifikation</strong>släufen unter anderen Bedingungen<br />

5.67


enutzen. Zum Beispiel könnte man den Einfluß anderer Startparameter-Werte<br />

studieren, die zu schätzende Modell-Systemordnung verändern, usw.<br />

Um den Programmieraufwand zu minimieren, wurde dazu eine etwas komfortablere<br />

Simulationsumgebung entwickelt, die in Kapitel 5.3.2.6 vorgestellt wird. Zunächst<br />

wollen wir uns wieder mit einigen meßtechnischen Randbedingungen bei der<br />

Anwendung von Optimierungsverfahren <strong>zur</strong> <strong>Systemidentifikation</strong> auseinandersetzen.<br />

5.3.2.4 Meß- und auswerttechnische Randbedingungen<br />

Die Randbedingungen der Nutzung des Nelder/Mead-Simplex-Suchverfahrens sind<br />

wesentlich anwendungsfreundlicher als bei der SKQ-Methode. Insbesondere die drei<br />

folgenden Aspekte machen die suchstrategische <strong>Systemidentifikation</strong> attraktiv für<br />

praktische Anwendungen:<br />

• Das Simplex-<strong>Verfahren</strong> ist bei relativ hohem Meßrauschen noch mit Erfolg<br />

anwendbar. In Anwesenheit von Rauschamplituden, bei denen das SKQ-<br />

<strong>Verfahren</strong> bereits weitgehend versagt, werden mit dem Simplex-<strong>Verfahren</strong> noch<br />

brauchbare Modelle identifiziert.<br />

• Mit dem Simplex-<strong>Verfahren</strong> ist es möglich, Systemmodelle aus Sprungantworten<br />

zu identifizieren. Dies ist ein nicht zu unterschätzender Vorteil für die praktische<br />

Nutzbarkeit des <strong>Verfahren</strong>s, weil Sprungerregungen i.a. sehr leicht zu erzeugen<br />

sind.<br />

Bei global integral wirkenden Systemen empfiehlt es sich, <strong>zur</strong> Vermeidung von<br />

Übersteuerungen mit Pulserregungen der folgenden Form<br />

A<br />

0<br />

u(t)<br />

τ<br />

ut () = A σ() t − σ( t−τ)<br />

Bild 5.3.22: Pulsförmige Erregung für global integral wirkende Systeme<br />

zu arbeiten. Die Systemantwort läuft dann nämlich wieder gegen einen<br />

stationären Endwert. Die Größe der Signalparameter A (Amplitude) und τ<br />

(Pulsdauer) muß experimentell für die vorliegende Problemstellung ermittelt<br />

werden.<br />

Bei der Wahl des Beobachtungsintervalls der zu messenden Systemantwort, egal<br />

ob bei sprungförmigen oder anderen Erregungen, sollte darauf geachtet werden,<br />

5.68<br />

t


daß sich in der Systemantwort sowohl der Einschwingvorgang als auch ein Teil<br />

des stationären Zustandes abbildet (siehe Bild 5.3.23). Wird kein stationärer<br />

Zustand erreicht, kommt es häufig zu fehlerhaften Modellen.<br />

0<br />

0<br />

h(t)<br />

t<br />

Einschwingvorgang stationärer Zustand Einschwingvorgang stationärer Zustand<br />

Bild 5.3.23 : Einschwingvorgänge und stationäre Zustände<br />

bei der Messung von Sprungantworten<br />

• Das Simplex-<strong>Verfahren</strong> schätzt von vornherein kontinuierliche Modelle, d.h. der<br />

Umweg über die Bestimmung eines zeitdiskreten Systems entfällt. Damit entfällt<br />

auch die Notwendigkeit, das zu identifizierende System mit treppenförmigen<br />

Eingangserregungen zu beaufschlagen. Das Erregungssignal kann einen<br />

kontinuierlichen Verlauf haben. Die Signalabtastzeit ist auch keine kritische<br />

Größe.<br />

Wie beim SKQ-<strong>Verfahren</strong> müssen auch beim Simplex-<strong>Verfahren</strong> die dem<br />

Identifikationsvogang zugrunde liegenden Eingangs-/Ausgangsdatensätze frei von<br />

Gleichanteilen sein. Diese Gleichpegelbeseitigung ist auf dem folgenden Bild 5.3.24<br />

noch einmal anschaulich dargestellt. Da man i.a. <strong>zur</strong> Messung der beiden<br />

Datensätze U(k) und Y(k) nicht genau im Moment der Erregungs-Aufschaltung mit<br />

der Datenaufzeichnung beginnt, sondern etwas früher, um z.B. beobachten zu<br />

können, ob sich der Arbeitspunkt (uA = konstant; yA = konstant) bereits eingestellt<br />

hat, müssen auch noch die Messdaten zwischen Messbeginn und Aufschaltung der<br />

Erregung entfernt werden.<br />

Ein Nachteil des Simplex-<strong>Verfahren</strong>s besteht darin, daß sich der Algorithmus bei<br />

ungünstiger Wahl der Anfangswerte der zu identifizierenden Parameter in einem<br />

lokalen Minimum der Zielfunktion festsetzen kann und damit falsche Parameter<br />

schätzt. Dies ist aber insofern unproblematisch, als man ständig die aktuelle Modell-<br />

5.69<br />

0<br />

0<br />

h(t)<br />

t


0<br />

0<br />

0<br />

0<br />

Bild 5.3.24 : Aufbereitung der gemessenen Datensätze <strong>zur</strong> Auswertung<br />

sprungantwort mit der des zu identifizierenden Systems vergleichen und mit einem<br />

neuen Starparametersatz eine bessere Parameteridentifkation erzielen kann. Die<br />

Systemantwort des zu identifizierenden Systems muß dazu nicht neu gemessen<br />

werden.<br />

5.3.2.5 Ansätze <strong>zur</strong> Modellverbesserung<br />

Bis auf die Integrator-Korrektur können alle in Kapitel 5.3.1 beschriebenen <strong>Verfahren</strong><br />

<strong>zur</strong> Verstärkungsfaktor-Korrektur und <strong>zur</strong> Bestimmung der Systemordnung auch hier<br />

sinngemäß <strong>zur</strong> Modellverbesserung herangezogen werden.<br />

Es muß nur darauf geachtet werden, daß es sich jetzt um kontinuierliche<br />

Systemmodelle handelt. Dies ist auch der Grund, warum die Integrator-Korrektur<br />

nicht direkt nach hier übertragen werden kann.<br />

Wenn a priori feststeht, daß ein global integrales System identifiziert werden soll, sich<br />

in der Modellgleichung aber kein exakter Integrator einstellt, kann bei kontinuierlichen<br />

Modellen eine Integrator-Korrektur wie folgt vorgenommen werden:<br />

Die identifizierte Modell-Übertragungsfunktion, die in Polynomform vorliegt wird in die<br />

Produktform umgerechnet:<br />

5.70<br />

0<br />

0<br />

0<br />

0


1 1<br />

G(s) = =<br />

. (5.3.87)<br />

s2+ 10,1s+ 1<br />

( s+ 0,1) ⋅ ( s+ 10)<br />

Die betragsmäßig kleinste vorkommende Nullstelle des Nenners ist dann die falsch<br />

geschätzte Integrator-Polstelle, die bei kontinuierlichen Systemen bekanntlich bei s<br />

= 0 liegt.<br />

Man setzt nun diese kleinste Polstelle einfach gleich Null (in unserem Beispiel die<br />

Polstelle s = 0,1) und erhält die korrigierte Modell-Übertragungsfunktion:<br />

1 1<br />

G(s) = = . (5.3.88)<br />

( s+ 0) ⋅ ( s+ 10) s( s+ 10)<br />

Das folgende Bild 5.3.25 zeigt die Einheits-Sprungantwort des oben durchgerechneten<br />

unkorrigerten und korrigierten Modells.<br />

y(t)<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0 2 4 6 8 t 10<br />

5.71<br />

korrigiert<br />

nicht korrigiert<br />

Bild 5.3.25: Modellantwort mit und ohne Integrator-Korrektur<br />

5.3.2.6 Eine Simulationsumgebung <strong>zur</strong> Erprobung des Simplex-<strong>Verfahren</strong>s <strong>zur</strong><br />

<strong>Systemidentifikation</strong><br />

Im Anhang A3 werden der Speicherort des Ordnder „simplex“ der das Matlab-<br />

Hauptprogramm "simplex.m" und zwei dazugehörige Unterprogramme mit den<br />

Namen "system.m" und "zielfkt.m" enthält. "simplex.m", "system.m" sind Skriptfiles<br />

und "zielfkt.m" ein Function-Unterprogramm. Diese Programmgruppe bildet eine<br />

Simulationsumgebung <strong>zur</strong> <strong>Systemidentifikation</strong> nach dem Nelder/Mead-Simplex-<br />

Algorithmus. (Wegen der relativen Wichtigkeit dieser drei Programme sind sie auch<br />

im Anhang A4 abgedruckt.)


Das Hauptprogramm "simplex" ruft zunächst das Unterprogramm "system" auf, in<br />

dem das zu identifizierende, kontinuierliche System simuliert wird. Auch hier handelt<br />

es sich um ein lineares System, so daß nicht auf den Arbeitspunkt geachtet werden<br />

muß. Das Programm "system" berechnet die Einheitssprungantwort des Systems<br />

und gibt sie grafisch aus. Zur besseren Vergleichbarkeit wird das gleiche System wie<br />

in Kapitel 5.3.1.5 benutzt, allerdings ist hier dem Signal ein relativ starkes<br />

Meßrauschen überlagert:<br />

ySystem<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

-0.2<br />

0 10 20 30<br />

Bild 5.3.26 : Stark verrauschte Sprungantwort<br />

des zu identifizierenden Systems<br />

An Hand dieser Sprungantwort können a priori-Kentnisse über das zu identifizierende<br />

System gesammelt werden. Das Programm "simplex" fragt nun nämlich "die<br />

zu schätzende Modell-Systemordnung" n , so wie die (n+1) Anfangsparameter des<br />

Zähler- und Nennerpolynoms der Modellübertragungsfunktion ab.<br />

• Die Wahl der Modell-Systemordnung<br />

Eine Abschätzung der Systemordnung des zu bestimmenden Modells muß mit<br />

Kenntnis der systemtheoretischer Zusammenhänge zwischen Übertragungsfunktion<br />

und Sprungantwort, z.B. mit Hilfe des Katalogs in Kapitel 5.2.1 vorgenommen<br />

werden. Grundsätzlich wird empfohlen, mehrere <strong>Systemidentifikation</strong>släufe durchzuführen<br />

und die Systemordnung beginnend bei kleinen Werten (n = 1 bis 2) nach<br />

größeren Werten hin zu verändern.<br />

Das Programmsystem erlaubt eine visuelle Kontrolle der <strong>Systemidentifikation</strong>sgüte,<br />

weil während des Iterationsvorgangs die Sprungantworten des zu identifizierenden<br />

Systems und die sich verbessernde Sprungantwort des Modells grafisch<br />

übereinander ausgegeben werden.<br />

Modellordnungen >5 sollten vermieden werden, da der Simplex-Algorithmus bei einer<br />

5.72<br />

t/sek


größeren Anzahl von Optimierungsparametern an Leistungsfähigkeit verliert. (Man<br />

bedenke, daß bei n=5 bereits 12 unbekannte Parameter optimiert werden müssen.)<br />

Systemordnungen > 5 erzeugen darüber hinaus häufig Modelle mit einer gewissen<br />

Scheingenauigkeit. Für Modellierungszwecke der praktischen Regelungstechnik<br />

reichen Modellordnungen ≤ 5 völlig aus.<br />

• Die Wahl der Anfangsparameter<br />

Die Wahl der Anfangsparameter der Modell-Übertragungsfunktion hat auch<br />

wesentlichen Einfluß auf die <strong>Systemidentifikation</strong>sgüte. Je dichter die Anfangsparameter<br />

in der Nähe der späteren Optimalparameter liegen, um so zuverlässiger<br />

findet der Simplex-Algorithmus die Optimalparameter. Bei falscher Wahl der<br />

Anfangsparameter kann der Simplex-Algorithmus sogar in einem Nebenminimum<br />

"hängenbleiben", das heißt, die Abbruchbedingungen werden erfüllt, obwohl die<br />

Abweichung der Sprungantworten noch sehr groß ist. Glücklicherweise kommt dies<br />

bei der vorliegenden Problemstellung selten vor. Sollte der Fall jedoch einmal<br />

eintreten, muß man den Iterationsvorgang mit einem anderen Startparameter-Satz<br />

noch einmal "ausprobieren". Für eine erste Abschätzung der Anfangsparameter<br />

können wieder die Beziehungen zwischen Sprungantwort und Übertragungsfunktion,<br />

wie sie in Kapitel 5.2.1 dargestellt sind, herangezogen werden. Kann dieser Katalog<br />

wegen einer zu großen vermuteten Systemordnung keine Auskunft mehr geben,<br />

gelingt es mit dem im Folgenden vorgeschlagenen <strong>Verfahren</strong> dennoch, brauchbare<br />

Startparametersätze zu erzeugen: Im Zählerpolynom werden der Einfachheit halber<br />

alle Koeffizienten bis auf b0 gleich Null gesetzt. b0 beschreibt den Verstärkungsfaktor<br />

V des Systems und kann mit den Formeln (5.2.10) oder (5.2.12) zumindest<br />

abgeschätzt werden.<br />

Die Anfangswerte der Koeffizienten des Nenners führen immer auf ein stabiles<br />

Modell, das auch grob mit den Zeitkonstanten des zu identifizierenden System<br />

korrespondiert, wenn sie wie folgt berechnet werden: Dividiere die Einschwingdauer<br />

tDyn des zu identifizierenden Systems<br />

0<br />

0<br />

h(t)<br />

t Dyn<br />

t<br />

5.73<br />

0<br />

0<br />

h(t)<br />

t Dyn<br />

Bild 5.3.27 : Zur Definition von Einschwingzeiten tDyn<br />

t


durch k mal die gewählte Systemordnung n und nenne das Ergebnis T A :<br />

tDyn<br />

T A = ; k = 5, ..., 10; (5.3.89)<br />

k⋅n und berechne die Anfangswerte α i der Koeffizienten des Nenners N(s) der Modell-<br />

Übertragungsfunktion mit<br />

( ) n 2 n<br />

N(s) = 1+ sT = 1+ α s + α s + ... + α s . (5.3.90)<br />

A 1 2 n<br />

Für unser in "simplex" implementiertes, zu identifizierendes System führt diese<br />

Rechnung mit<br />

auf<br />

tDyn = 20sek.; n = 3 und k = 10 (5.3.91)<br />

20<br />

TA = = 0,66 ≈ 0,7 (5.3.92)<br />

10 ⋅ 3<br />

und damit zu folgenden Anfangsparametern<br />

( ) 3 3 2<br />

N(s) = 1+ 0,7s = 0,34s + 1,47s + 2,1s + 1. (5.3.93)<br />

Nach Eingabe der abgefragten Parameter beginnt das Programm "simplex" den<br />

Iterationvorgang <strong>zur</strong> Optimierung der Modellparameter. Zu diesem Zweck ruft der<br />

Befehl "fminsearch" ständig das Function-Unterprogramm "zielfkt" auf. In ihm wird<br />

der Zielfunktionswert "g" für jeden von "fminsearch" berechneten Parametersatz<br />

bestimmt.<br />

Um den Optimierungsvorgang beobachten zu können, werden bei jedem Aufruf von<br />

"zielfkt" die Sprungantwort des zu identifizierenden Systems und die aktuelle<br />

Modellsprungantwort grafisch übereinander ausgegeben. Auch der sich ständig<br />

verkleinernde Zielfunktionswert "g" wird im Matlab-Command-Window dargestellt.<br />

Im folgenden Bild 5.3.28 ist die Grafik eines solchen Suchvorganges abgebildet:<br />

5.74


Eine Folge sich verbessernder<br />

Modell-Sprungantworten<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

0 10 20 30<br />

Bild 5.3.28 : Grafik <strong>zur</strong> Beobachtung des Annäherungsprozesses<br />

Im Programm "system" ist es möglich, die Amplitude des Meßrauschen zu verändern<br />

oder auch auf Null zu setzen und so den Einfluß dieser Störung auf den <strong>Systemidentifikation</strong>svorgang<br />

zu testen:<br />

% Einfügung von Meßrauschen<br />

%<br />

rausch=0.05*randn(size(t)); % Simulation von Messrauschen.<br />

ySystem=ySystem+rausch';<br />

Weiter unten im gleichen Programm besteht die Möglichkeit<strong>zur</strong> Ausfilterung des<br />

Rauschens,<br />

% Ausfilterung des Meßrauschens<br />

%<br />

[b,a]=butter(5,0.5*pi*10,'s');<br />

% Entwurf eines kontinuierlichen<br />

% % Butterworth-Tiefpaßfilters.<br />

%ySystem=lsim(b,a,ySystem,t);<br />

% kontinuierliche Signalfilterung<br />

um so die Auswirkung einer Vorfilterung des Meßsignals studieren zu können. Es ist<br />

zu beachten, daß es sich um die Simulation eines kontinuierlichen Filters handelt<br />

(Vergleiche Kapitel 4).<br />

Nach Erreichung der defaultmäßig eingestellten oder mittels "optimset" eingestellten<br />

Abbruchbedingungen gibt das Programm "simplex" die Modellübertragungsfunktion<br />

in Polynom-, Produkt- und faktorisierter V-Normalform aus.<br />

Auf der Basis der vorangehnd beschriebenen Programme „simplex.m, system.m und<br />

zielfkt.m“ wurden das Programmsystem „SYSYID: Ein Werkzeug <strong>zur</strong> praktischen<br />

<strong>Systemidentifikation</strong>“, das im nächsten Kapitel (5.3.2.7) beschrieben wird und eine<br />

5.75<br />

Verrauschte Sprungantwort<br />

des zu idenifizierenden Systems<br />

t/sek


Lösungsumgebung <strong>zur</strong> Identifikation von Parametern in Zustandsmodellen (siehe<br />

Kapitel 5.3.4) entwickelt.<br />

Wegen der grundsätzlichen Bedeutung dieser drei Programme sind sie im Anhang<br />

A4 auch abgedruckt.<br />

5.76


5.3.2.7 „SYS_ID“: Ein Werkzeug <strong>zur</strong> praktischen <strong>Systemidentifikation</strong><br />

So gut das Identifikationsprogramm „simplex.m“, das wir im vorangehenden Kapitel<br />

beschrieben haben, auch im Vergleich zum SKQ-<strong>Verfahren</strong> arbeitet, offenbaren sich<br />

jedoch einige Schwachstellen bei der praktischen Anwendung des Programms.<br />

Zum Beispiel die nicht mögliche Festlegung auf eine Übertragungsfunktions-Struktur<br />

mit beliebig wählbarem Zähler- und Nennergrad, eine eindeutige Festlegung auf das<br />

Globalverhalten des zu identifizierenden System <strong>zur</strong> Vermeidung von<br />

Integratorkorrekturen, keine Neustartmöglichkeit mit bereits optimierten Modell-<br />

parametern <strong>zur</strong> Verbesserung der Identifikationsgüte, keine programmgestützte<br />

Möglichkeit <strong>zur</strong> Abtrennung von Gleichpegeln und Meßvergangenheit, usw. .<br />

Alle diese Aspekte und viele andere mehr wurden bei der Entwicklung des<br />

<strong>Systemidentifikation</strong>s-Werzeugs „SYS_ID“ berücksichtigt.<br />

Im Anhang A3 wird der Speicherort dieses Programmsystems (Ordner „SYS_ID“)<br />

angegeben. Der Ordner enthält 21 Matlab-Skript- und Function-Files, 5 Datenfiles,<br />

ein Textfile und eine Simulink-Simulationsstruktur. Das Identifikationssystem wurde<br />

unter Matalb-Version 5.3 entwickelt und läuft getestet auf allen Matlab-Versionen<br />

zwischen den Versionen 5.3 und R2007b, allerdings mit unterschiedlich guten<br />

Arbeitsgeschwindigkeiten. Zur Nutzung des Programms wird vorausgesetzt, daß sich<br />

alle Programme, Datenfiles und Simulink-Strukturen in einem Arbeitsordner (hier<br />

SYS_ID) befinden.<br />

• Aufruf des Programmsystems „SYS_ID“<br />

Nachdem der aktuelle Matlab-Pfad in den den Ordner „SYS_ID“ gelegt wurde (z.B.<br />

mit dem „Path Browser“) wird das Programmsystem mit dem Namen „SYS_ID“<br />

gestartet (Ordner und Startprogramm tragen den gleichen Namen). Es öffnet sich<br />

eine grafische Benutzeroberfläche, das Hauptfenster „SYS_ID“: Ein Werkzeug <strong>zur</strong><br />

<strong>Systemidentifikation</strong> (Vergleiche das folgende Bild 5.3.29).<br />

Das Hauptfenster ist in fünf Felder eingeteilt:<br />

Feld 1: Das Grafikfenster<br />

Feld 2: Das Feld „Modell-Übertragungsfunktion in V-Normalform“<br />

Feld 3: Das Feld „Parameter der Modellübertragungsfunktion“<br />

Feld 4: Das Feld „Suchfunktion“<br />

Feld 5: Das Feld „Daten“.<br />

5.77


Feld 3<br />

Feld 1<br />

Feld 2<br />

Bild 5.3.29 : Das Hauptfenster des Idenifikationssystems „SYS_ID“<br />

• Laden eines Eingangs-/Ausgangsdatensatzes<br />

Um mit dem Werkzeug <strong>zur</strong> <strong>Systemidentifikation</strong> arbeiten zu können, wird ein<br />

Eingangs-/Ausgangsdatensatz des zu identifizierenden Systems benötigt. Damit<br />

„SYS_ID“ den Datensatz erkennt, muß dieser aus drei Datenvektoren mit genau den<br />

angegebenen Namen bestehen:<br />

uerr.mat: Die Eingangserregung, die eine beliebige Kurvenform haben<br />

darf.<br />

ySystem.mat: Das <strong>zur</strong> Eingangserregung gehörende Ausgangssignal des zu<br />

identifizierenden Systems.<br />

t.mat: Der Vektor der Zeitachse über dem die Messung vorgenommen<br />

wurde. Er muß bei Null beginnen und in Schritten der Abtastzeit<br />

„dt“ bis zum Messende lang sein.<br />

Alle drei Vektoren müssen gleich lang sein!<br />

5.78<br />

Feld 4<br />

Feld 5


Die drei Vektoren können sich dabei unter den angegebenen Namen im Matlab-<br />

Arbeitsspeicher (Matlab Workspace) oder in einem Matlab „mat“-File befinden. Wie<br />

man dieses „mat“-File erzeugt, wird etwas später erklärt.<br />

Mit Hilfe der Simulink-Simulationsstruktur „generator_5.mdl“ im Ordner „SYS_ID“<br />

kann man einen Testdatensatz mit den drei Vektoren „uerr, ySystem und t“ für den<br />

Matlab-Arbeitsspeicher erzeugen.<br />

Step1<br />

Step<br />

2<br />

Clock<br />

Bild 5.3.30: Simulink-Struktur <strong>zur</strong> Erzeugung von Testdatensätzen<br />

Ein Meßrauschen kann mit Hilfe des „Random-Number“-Generators dem<br />

Ausgangssignal zugefügt werden. Die Variable „Variance“ im Parametrierungsfenster<br />

dieses Blockes verändert die Amplitude des Rauschsignals.<br />

2.5<br />

Gain<br />

Das Eingangssignal wurde so konzipiert, daß mit ihm die Simulation eines<br />

Erregungssignals, das das System bis kurz unter den Arbeitspunkt führt (Block<br />

„Step1“), und es dann mit einer kleinen Sprungamplitude um den Arbeitspunkt herum<br />

erregt (Block „Step2“), möglich ist.<br />

Random<br />

Number<br />

In der vorliegenden Struktur wurde ein PT2-Glied (T=2; d=0,3) mit einem Vorhalt 1.<br />

Ordnung (T=1) und einem Verstärkungsfaktor V=2,5 simuliert. Die Simulink-Struktur<br />

erzeugt, wie weiter vorn gefordert, die Datenvektoren „uerr“, „ySystem“ und „t“ und<br />

legt sie über „To Workspace“-Blöcke im Matlab-Arbeitsspeicher ab.<br />

Die Simulink-Struktur wurde unter Matlab-Version 5.3 entworfen, falls sie unter<br />

anderen Matlab-Versionen nicht lauffähig sein sollte, muß eine entsprechende<br />

Struktur für die vorliegende Simulink-Version vom Anwender selbst erstellt werden.<br />

Will man die Meßdaten nicht flüchtig im Matlab-Arbeitsspeicher, sondern auf einem<br />

Datenträger speichern, muß man ein Datenfile erzeugen:<br />

save dateiname t uerr ySystem;<br />

s+1<br />

4s 2+2*0.3*2s+1<br />

Transfer Fcn<br />

5.79<br />

ySystem<br />

To Workspace<br />

Scope<br />

uerr<br />

To Workspace2<br />

t<br />

To Workspace3


Eine solche Datei mit dem Namen „dateiname“ kann, wie wir noch sehen werden,<br />

von „SYS_ID“ auch gelesen werden. An Stelle von „dateiname“ kann auch ein ganzer<br />

Speicherpfad angegeben werden.<br />

Zum eigentlichen Laden der gemessenen Eingangs-/Ausgangsdaten in „SYS_ID“<br />

wird im Feld 5 das Pulldown-Menü „Laden“ angeklickt. In dem sich öffnenden<br />

Menü besteht die Möglichkeit zum Laden<br />

- Aus Workspace und<br />

- Aus Datei.<br />

Wählt man „Aus Workspace“ wird der Datensatz sofort geladen und in Feld 1<br />

angezeigt (sofern sich ein Datensatz im Workspace befindet). Wählt man „Aus<br />

Datei“ werden alle im Suchpfad befindlichen mat-Files <strong>zur</strong> Auswahl angezeigt. Nach<br />

dem Anklicken eines Files werden dessen Signalverläufe auch im Feld1 angezeigt.<br />

(Aus dem Workspace geladene Daten können mit dem Button „Daten speichern “ in<br />

Feld 5 in eine Datei gespeichert werden.)<br />

• Vorverarbeitung der geladenen Eingangs-/Ausgangsdatensätze<br />

Nachdem die Eingangserregung und das Ausgangssignal im Grafikfenster angezeigt<br />

werden, kann man mit Hilfe des Pulldown-Menüs „Bearbeiten“ im Feld 5 die<br />

geladenen Datensätze in den Kategorien<br />

- Bereich<br />

- Filter und<br />

- Dezimieren<br />

manipulieren. Wird „Dezimieren“ gewählt, öffnet sich ein Fenster „Abtastwerte<br />

Dezimierung“, in dem ein Dezimierungsfaktor eingestellt werden kann. Bei<br />

Betätigung des Butttons „Ok“ werden alle Datensätze um diesen Faktor verkürzt.<br />

Waren die Datensätze ursprünglich 1000 Elemente lang, wird bei einem<br />

Dezimierungsfaktor von 3 der Datensatz auf 1000 : 3 = 333 Elemente reduziert, d.h.<br />

es wird immer nur jedes dritte Datum des Datensatzes ausgewählt. Mit dezimierten<br />

Datensätzen läßt sich bei langsamen PCs der Identifikationsvorgang beschleunigen.<br />

Der Menüpunkt „Filter“ dient <strong>zur</strong> Minderung des Meßrauschens auf dem Signal<br />

„ySystem“ durch Tiefpaßfilterung. Wählt man diesen Menüpunkt, öffnet sich ein<br />

Fenster „Datenvorverarbeitung Butterworth-Tiefpaßfilter“, in dem das Signal<br />

„ySystem“ in einem Grafikfenster angezeigt wird. Unten links, unterhalb des<br />

Grafikfensters können die gewünschte „Filterordnung“ (es können Filterordnungen<br />

der Ordnung 1 - 5 gewählt werden) und die „Grenzfrequenz“ des Filters eingegeben<br />

werden. Betätigt man den Button „Übernehmen“ wird das Signal entsprechend<br />

5.80


gefiltert und das Filterergebnis rot in der Grafik angezeigt. Mit Verkleinerung der<br />

Grenzfrequenz und bei höheren Ordnungen wird der Filtererfolg größer, allerdings<br />

unter Inkaufnahme einer erheblichen Signalverzögerung. Da das vorliegende<br />

Identifikationsverfahren relativ unempfindlich gegenüber Meßrauschen ist, wird die<br />

Verwendung dieses Filters nicht empfohlen.<br />

Der wichtigste Menüpunkt des Menüs „Bearbeiten“ ist das Menü „Bereich“. Hier<br />

können, wie vorangehend schon begründet, Gleichpegel und die Meßvergangenheit<br />

aus den Eingangs-/Ausgangsdatensätzen entfernt werden (Vergleiche Kapitel 2.1.1<br />

und 5.3.2.4). Diesem Menüpunkt liegt die Annahme zugrunde, daß die<br />

<strong>Systemidentifikation</strong> mit (kleinen) Erregungen um den Arbeitspunkt durchgeführt<br />

wurde. Um dies zu realisieren, muß das Ausgangssignal zunächst bis kurz unter den<br />

Arbeitspunkt geführt werden. Nach dem Einschwingen des Signals auf diesen Wert<br />

erfolgt die eigentliche Erregung <strong>zur</strong> Identifikation. Diesen interessierenden Teil<br />

(Auswertbereich) abzutrennen, dient der Menüpunkt „Bereich“. Nach seiner Anwahl<br />

öffnet sich das Fenster „Datenvorverarbeitung Auswertbereich“ in dem die Graphen<br />

der Systemantwort „ySystem“ und darunter der Erregung „uerr“ dargestellt sind:<br />

(1)<br />

�<br />

(9)<br />

(5)<br />

(6)<br />

Bild 5.3.31: Fenster <strong>zur</strong> Abtrennung von Gleichpegeln und Meßvergangenheit<br />

Auf der linken Seite der Grafiken befindet sich eine rote vertikale Linie (1), die später<br />

die linke Begrenzung der Systemantwort und der Erregung des Auswertbereichs sein<br />

wird. Diese Linie kann man durch (vorsichtiges) Anklicken und ziehen (click and<br />

drag) zunächst nach rechts und dann nach rechts und links bewegen. Die gleiche<br />

Bewegung läßt sich mit den mit „L“ bezeichneten Pfeiltasten (2), allerdings grober,<br />

5.81<br />

(3)<br />

(10)<br />

(7)<br />

(2)<br />

(4)<br />

(8)


durchführen. Hat man mit dieser Linie die linke Begrenzung des interessierenden<br />

Bereich von „ySystem“ und „uerr“ eingestellt, kann man dies auch entsprechend für<br />

die rechte Seite tun (rechte rote, vertikale Linie (3) oder Pfeiltasten mit der<br />

Beschriftung „R“ (4)). Die rechte Seite sollte allerdings nur gekürzt werden, wenn ein<br />

zu langer stationärer Endwert gemessen wurde (Vergleiche Bild 5.3.23).<br />

Nach der Einstellung der vertikalen Grenzen des Auswertbereichs von „uerr“ und<br />

„ySystem“ werden ihre Gleichanteile abgegrenzt. Dazu dient für „ySystem“ die blaue<br />

Linie (5) und für „uerr“ die blaue Linie (6). Sie können wieder mittels click and drag<br />

oder mit den Pfeilbuttons (7) und (8), die mit „Offset“ beschriftet sind, verschoben<br />

werden. Wie man deutlich erkennt, ist der Pegel des Gleichanteil von „ySystem“ bei<br />

Anwesenheit von Meßstörungen schwierig einzustellen (9). Hier bietet der Button<br />

„Auto-Null“ (10) eine große Hilfe. Nach dem Anklicken öffnet sich das folgende<br />

Fenster:<br />

Bild 5.3.32: Einstellung des Zeitbereich in dem ySystem gemittelt werden soll<br />

Es wird ein Zeitbereich aus der Meßvergangenheit von „ySystem“ abgefragt, aus<br />

dem der Nullpunkt der Meßdaten im Auswertbereich berechnet werden soll. Für<br />

unser simuliertes PT2-Glied mit Vorhalt 1. Ordnung ist das der ungefähre Bereich<br />

t_min = 30 bis t_max = 45, wo das System schon relativ gut eingeschwungen ist.<br />

Gibt man diese Zeiten in das Fenster (Bild 5.3.32) ein und betätigt den „Ok“-Button,<br />

verschiebt sich die blaue Offset-Linie (5) an die richtige Stelle. Das folgende Bild<br />

5.3.33 zeigt das Ergebnis aller vorangehend beschriebenen Manipulationen. Betätigt<br />

man dann den Button „Übernehmen“ wird der Auswertbereich von „ySystem“ und<br />

„uerr“ herausgeschnitten und grafisch dargestellt. Dies ist in Bild 5.3.34 zu sehen.<br />

Auch in diesem Fenster können alle vorangehend beschriebenen Manipulationen<br />

vorgenommen werden. Betätigt man abschließend den Button „Ok“ wird das<br />

Ergebnis in des Hauptfenster des Idenifikationssystems übergeben. Bei Betätigung<br />

von „Zurück“ werden alle Manipulationen <strong>zur</strong>ückgesetzt und man kann den<br />

Abtrennvorgang neu beginnen.<br />

5.82


Bild 5.3.33: Das Fenster <strong>zur</strong> Abtrennung von Gleichpegeln und Meßvergangenheit<br />

nach Kennzeichnung des Awertbereichs<br />

Bild 5.3.34: Der ausgeschnittene Auswertbereich nach Betätigung des<br />

„Übernehmen“-Buttons<br />

5.83


• Wahl der Modellstruktur und der Anfangsparameter<br />

Wenn man sich bei der <strong>Systemidentifikation</strong> auf sprungförmige Erregungen und<br />

damit auf die Identifikation von Sprungantworten beschränkt, hat man, wie weiter<br />

vorn schon bemerkt, die Vorteile<br />

- das System sehr einfach erregen zu können,<br />

- eine vorhandene Totzeit abspalten und einfach separat identifizieren zu<br />

- können und<br />

- die hervorragende Möglichkeit aus der Form der Sprungantwort a priori auf die<br />

Struktur des Übertragungsfunktions-Modell schließen zu können.<br />

Mit den erworbenen Systemtheoriekenntnissen /1/ und dem Katalog <strong>zur</strong><br />

kataloggestützten Sprungantwortanalyse in Kapitel 5.2.1 müßte dies möglich sein.<br />

Gelingt es darüber hinaus, auch die Parameter dieser Modell-Übertragungsfunktion<br />

so zu wählen, daß die Modellantwort der Systemantwort des zu identifizierenden<br />

Systems sehr nahe kommt, würde dies eine gute Ausgangsbasis <strong>zur</strong><br />

<strong>Systemidentifikation</strong> auf der Basis eines Optimierungsalgorithmus sein: Die<br />

Anfangsparamter der Zielfunktion lägen in der Nähe des Optimums, der<br />

nachfolgende Optimierungslauf würde in kein Nebenminimum laufen und die<br />

optimalen Modellparameter wären schnell gefunden.<br />

Mit der Betätigung des Buttons „Modellstruktur wählen“ (Feld 2 im Hauptfenster)<br />

kann der erste Schritt für eine solche Wahl der Anfangsparameter gemacht werden.<br />

Es öffnet sich das Fenster „Modellstruktur“:<br />

Bild 5.3.35: Elementare Übertragungsfunktions-Elemente zum Aufbau<br />

einer Modell-Übertragungsfunktion<br />

Aus einem Katalog von sechs elementaren Übertragungsfunktionen (Differenzierer,<br />

Integrierer, Vorhaltglied 1. Ordnung, Verzögerungsglied 1. Ordnung, Vorhaltglied 2.<br />

Ordnung und Verzögerungsglied 2. Ordnung) kann eine Modellübertragungsfunktion<br />

aufgebaut werden, von der man annimmt, daß sie eine Sprungantwort erzeugt, wie<br />

sie das zu identifizierende System hat. Ein Verstärkungsfaktor wird, da er in jeder<br />

5.84


Übertragungsfunktion vorkommt, automatisch eingefügt.<br />

Neben der Darstellung der Gleichungen der elementaren Übertragungsglieder<br />

befindet sich je ein Pulldown Menü, mit dem man eine bestimmte Anzahl von diesen<br />

elementaren Gliedern zum Aufbau der vermuteten Modellübertragungsfunktion<br />

auswählen kann. SYS_ID beschränkt die Modellordnung auf n = 5, was sich bei der<br />

praktischen Anwendung als völlig ausreichend erwiesen hat.<br />

Hat man eine Modellstruktur zusammengestellt und betätigt abschließend den „Ok“-<br />

Button verschwindet das Auswahlfenster und<br />

• im Feld 2 des Hauptfensters wird die zusammengestellte Gesamt-<br />

•<br />

Übertragungsfunktion und<br />

im Grafikfeld (Feld 1) wird neben der gemessenen, blau dargestellten<br />

Sprungantwort des zu identifizierenden Systems die Sprungantwort der gerade<br />

zusammengestellten Modellübertragungsfunktion rot dargestellt. Für diese erste<br />

Darstellung werden alle Parameter der Modellübertragungsfunktion „1“ gesetzt.<br />

• Im Feld 3 werden die diese Parameter angezeigt.<br />

Das folgende Bild 5.3.36 zeigt den eben erläuterten Zustand:<br />

Bild 5.3.36: Nach der Wahl der Modellstruktur<br />

5.85


Die Parameter im Feld 3 können vom Anwender durch Löschen und Überschreiben<br />

verändert werden. Damit ist, wie auch schon weiter vorn bemerkt, eine Anpassung<br />

der Modellübertragungsfunktion an die Übertragungsfunktion des zu identifizierenden<br />

Systems durch den Vergleich der entsprechenden Sprungantworten a priori<br />

möglich. Diese Arbeit setzt eine gewisse systemtheoretische Erfahrung voraus, sie<br />

kann aber auch rein spielerisch ausprobiert werden. Sollen Parameter, die in die<br />

entsprechenden Felder eingetragen wurden, <strong>zur</strong> Berechnung der Modell-<br />

Sprungantwort herangezogen werden, muß der Button „Übernehmen“ gedrückt<br />

werden.<br />

Die ausgewählte Modellstruktur mit den aktuellen Parametern kann durch Betätigung<br />

des Buttons „Modell speichern“ in Feld 2 auf einem Datenträger gespeichert werden.<br />

Ein Laden dieses gespeicherten Modells ist dann im schon besprochenen Fenster<br />

„Modellstruktur“ (siehe Bild 5.3.35), das sich durch Betätigung des Buttons<br />

„Modellstruktur wählen“ im Feld 2 des Hauptfensters öffnet, möglich.<br />

• Starten des automatischen Identifizierungsvorgangs<br />

Wenn im vorigen Arbeitsschritt ein gewisses Maß der Annäherung zwischen Modell-<br />

Sprungantwort und Sprungantwort des zu identifizierenden Systems erreicht ist, kann<br />

man den automatischen Identifizierungsvorgang starten. Dazu muß im Feld 4 der<br />

Button „Start“ betätigt werden. Beginnend mit den gerade eingestellten Parametern<br />

variiert der Nelder-Mead Optimierungsalgorithmus diese im Sinne einer Anpassung<br />

der Modellsprungantwort an die Sprungantwort des zu identifizierenden Systems.<br />

Der Fortschritt der Anpassung kann im Grafikfenster (Feld 1) beobachtet werden.<br />

Die Iterationsanzahl des Algorithmus wird in Prozent der maximal gewählten<br />

Iterationen im Feld 4 bei „Iterationen“ mit einem roten Balken angezeigt. Sind 100%<br />

der gewählten Iterationen vorgenommen, stoppt der Algorithmus. (Wo man die<br />

Maximalanzahl der Iterationen einstellt, wird etwas später erläutert).<br />

Wenn man nach dem Eindruck hat, daß noch eine Verbesserung der Annäherung<br />

der beiden Sprungantworten möglich ist, kann man den Optimierungsvorgang erneut<br />

starten (Button „Start“). Das Bild „Funktionsverlauf“ links neben dem Button „Start“<br />

vermittelt einen gewissen Eindruck über den Grad und die Dauer der Annäherung<br />

beider Kurven: Es wird jeweils die Differenz der beiden letzten Funktionswerte der<br />

Zielfunktion angezeigt. Den Absolutwert des aktuellen Zielfunktionswerts kann man<br />

rechts oben im Feld 4 ablesen Für sich allein hat dieser Absolutwert keine<br />

Bedeutung.<br />

Bemerkt man während des Iterationsvorgangs, daß sich die Annäherungsgeschwindigkeit<br />

der beiden Sprungantworten merklich verlangsamt, ist es oft<br />

5.86


hilfreich, den Iterationsvorgang zu stoppen (Button „Stop“ in Feld 4) und<br />

anschließend sofort wieder zu starten. Bei jedem Neustart wird mit dem zum Stoppzeitpunkt<br />

berechneten Parametersatz erneut gestartet, allerdings mit einer größeren<br />

Schrittweite als während des Laufes, so daß man dieses quasi Nebenminimum<br />

schneller verläßt.<br />

Sind die eingestellten Abbruchkriterien erreicht, stoppt der Identifikationslauf. Dies<br />

wird mit einem Info-Fenster angezeigt, das mitteilt, daß eben diese Abbruchkriterien<br />

erreicht sind.<br />

Wenn man sich nicht klar ist, ob die eine oder die andere Parametrierung das<br />

optimale Modell liefert, d.h. ein optischer Vergleich keine Entscheidungsgrundlage<br />

liefert, kann man sich am Absolutwert der Zielfunktion orientieren.<br />

Mit dem Button „Optionen“ im Feld 4 können die Abbruchkriterien<br />

„Zielfunktionsfehler“, „Paramterfehler“ und (maximale) „Iterationszahl“ verändert<br />

werden. (Die hier eingetragene Iterationszahl (Defaultwert 500) entspricht den<br />

vorangehend genannten 100%). Der Zielfunktionsfehler entspricht der Variablen<br />

„TolFun“ und der Parameterfehler der Variablen „TolX“ <strong>zur</strong> Parametrierung des<br />

Befehls „optimset“ für den Optimierungsbefehl „fminsearch“ (Vergleiche Kapitel<br />

5.3.2.3) . Iterationszahl und Zielfunktionsfehler sollten auf ihren Defaultwerten (500<br />

und 0,0001) belassen werden. Der Parameterfehler sollte dagegen ca. 1/10000 des<br />

kleinsten vermuteten Systemparameterwerts betragen. Die letzte Option im Fenster<br />

„Suchfunktion Optionen“ ist der sogenannte Auffrischungsfaktor. Wird dieser Faktor<br />

gleich 1 gewählt, wird bei jeder Iteration jede neu berechnete Modellsprungantwort<br />

angezeigt (also aufgefrischt). Ist der Faktor 5, wird nur jede 5. berechnete angezeigt,<br />

bei 10 nur jede 10., usw. Bei schnelleren Rechnern können kleine<br />

Auffrischungsfaktoren, bei langsameren größere gewählt werden. Um einen<br />

gleichmäßigen Programmlauf sicherzustellen wird empfohlen bei höheren Matlab-<br />

Versionen mit dem Auffrischungsfaktor 1 zu arbeiten.<br />

• Modell simulieren<br />

Ist ein System identifiziert, kann man mit dem Modell einen Simulationslauf starten, in<br />

dem man den Button „Modell simulieren“ im Feld 2 betätigt. Es werden dann<br />

folgende Simulationen berechnet:<br />

• Bodediagramm<br />

• Einheits-Sprungantwort<br />

• Impulsantwort<br />

• System- und Modellantwort in einer Grafik<br />

5.87


• Der residuale Fehler der Identifikation, die Autokorrelationsfunktion des<br />

residualen Fehlers und die Kreuzkorrelationsfunktion zwischen dem residualen<br />

Fehler und der Systemerregung, die <strong>zur</strong> Identifikation herangezogen wurde.<br />

Der residuale Fehler ist die Differenz zwischen System- und Modellantwort und stellt<br />

im Idealfall nur das Meßrauschen dar. Wenn das wirklich der Fall ist, muß die<br />

Autokorrelationsfunktion bei einem Ordinatenwert von ca. Null verlaufen. Lediglich<br />

beim Abszissenwert t=0 darf eine größere Amplitude vorhanden sein.<br />

Die Kreuzkorrelationsfunktion sollte über den gesamten Abszissenbereich bei Null<br />

verlaufen.<br />

5.3.4 Identifikation von Parametern in Zustandsmodellen<br />

Obwohl wir dieses Thema an dieser Stelle nur anreißen können, soll darauf<br />

hingewiesen werden, daß mit Hilfe strategischer Suchverfahren, z.B. mit dem<br />

Nelder/Mead-Simplex-<strong>Verfahren</strong>, auch erfolgreich Systemparameter von Zustandsmodellen<br />

geschätzt werden können.<br />

Kennt man die Struktur eines Zustandsmodells, können unter bestimmten<br />

Umständen sogar physikalische Parameter des Modells geschätzt werden. Die<br />

Anzahl der schätzbaren Parameter ist davon Abhängig in wieweit sie zueinander<br />

invariant sind. Modellparameter sind zueinander invariant, wenn die Auswirkung der<br />

Veränderung eines Parameters nicht durch Veränderung anderer Parameter<br />

rückgängig gemacht werden kann.<br />

Betrachten wir dazu das mathematische Zustandsmodell des folgenden RC-Gliedes<br />

/1/:<br />

u(t)<br />

R<br />

C<br />

5.88<br />

i(t) ≈ 0<br />

Bild 5.3.37 : Zur Identifikation von R und C<br />

mit dem dazugehörigen Zustandsmodell<br />

•<br />

C C<br />

1<br />

u (t) = − u (t) +<br />

RC<br />

1<br />

u(t).<br />

RC<br />

(5.3.94)<br />

y(t) =<br />

u (t)<br />

C<br />

y(t)


Wenn wir aus der Sprungantwort des zu identifizierenden RC-Gliedes die Modellparameter<br />

R und C bestimmen wollen (R und C wären dann im Sinne des Kapitels<br />

5.3.2 die Optimierungsparameter), würde uns dies nicht gelingen. Wie wir aus /1/<br />

wissen, wird die Anstiegsgeschwindigkeit der Sprungantwort eines PT1-Gliedes<br />

(und das ist unsere RC-Kombination, wenn man die Übertragungsfunktion betrachtet)<br />

Y(s) 1<br />

G(s) = = ,<br />

U(s) 1+ RC � ⋅s<br />

T<br />

von der Zeitkonstante T = R⋅C bestimmt. R und C sind demnach im vorangehenden<br />

Sinne variabel zueinander. Das heißt, die Sprungantwort des zu identifizierenden<br />

Systems kann aus unendlich vielen Kombinationen R⋅C des Modells gebildet werden.<br />

Wäre dagegen ein Parameter bekannt (z.B. R), könnte C mit Hilfe der Simplex-<br />

Methode für das Zustandsmodell aus der Sprungantwort geschätzt werden.<br />

Leider kann man keine allgemeingültige Aussage über die Parametervariabilität von<br />

Zustandsmodellen machen, die aus einer mathematisch, physikalischen Modellbildung<br />

hervorgegangen sind. Für Zustandsmodelle höherer Ordnung kann man<br />

allerdings davon ausgehen, daß mehrere Parameter zueinander invariant sind.<br />

Auch mit dieser Einschränkung kann die Schätzung physikalischer Parameter<br />

erhebliche Wissensfortschritte bringen, die anders nicht so leicht verfügbar wären.<br />

Wir erinnern uns z.B. an die Modellierung des Zustandsmodells eines Gasdruck-<br />

Meßgeräts in Kapitel 1.2.1.1 in /1/. Während die Bestimmung der Parameter:<br />

bewegte Masse (m), Federkonstante (c), Kolbenfläche (A), Potentiometerspannung<br />

(Uo) und Potentiometerlänge (l) sicherlich keine Probleme macht, bereitet die<br />

Bestimmung des Reibungsfaktor (r) möglicherweise Schwierigkeiten. Dieser kann<br />

problemlos mit dem Simplex-<strong>Verfahren</strong> aus einer gemessenen Sprungantwort<br />

identifiziert werden.<br />

Voraussetzung ist allerdings immer die Kenntnis der Struktur des Zustandsmodells.<br />

Das heißt, es muß feststehen, welche Ordnung das zu identifizierende System hat<br />

und an welchen Stellen der Matrizen A, b, c, und d die physikalischen Parameter<br />

stehen.<br />

Im Anhang A3 wird der Speicherort des Ordners „Zustand“ angegeben. In ihm befidet<br />

sich das Programmes "zsimplx.m" (z steht für Zustandsmodell) und zwei<br />

dazugehörige Unterprogramme mit den Namen "zsystem.m" und "zzielfkt.m", die<br />

ähnlich aufgebaut sind wie die Simulationsumgebung aus Kapitel 5.3.2.6 und damit<br />

weitgehend selbsterklärend sind. In ihnen wird die Schätzung des oben<br />

angesprochenen Reibungsfaktors demonstriert:<br />

Vom dem folgenden Gasdruck-Meßgerät aus /1/<br />

5.89


s(t)<br />

F (t)<br />

R<br />

F (t)<br />

T<br />

p(t)<br />

F (t)<br />

D A<br />

r c<br />

m<br />

F (t)<br />

F<br />

Bild 5.3.38 : Wirkungsschema eines Gasdruck-Meßgerätes<br />

mit dem mathematischen Zustandsmodell<br />

sind die Parameterwerte<br />

i<br />

r c A<br />

v (t) = − v(t) − s(t) + p(t)<br />

m m m<br />

i<br />

s(t) = v(t) (5.3.95)<br />

U0<br />

u(t) = s(t) ,<br />

�<br />

m = 3kg;<br />

N<br />

c = 900 ;<br />

m<br />

−6<br />

2<br />

A = 90 ⋅10<br />

m ;<br />

U = 10 V ; l = 0,1m (5.3.96)<br />

bis auf den Reibungsfaktor<br />

0<br />

⎡ N ⎤<br />

r : ⎢m/sek⎥ ⎣ ⎦<br />

bekannt. Implementiert man die Problemstellung mit einer Sprungerregung von<br />

5 kg<br />

p(t) =∆p ⋅ σ(t)<br />

= 1⋅ 10 = 1bar (5.3.97)<br />

2<br />

m⋅sek 5.90<br />

U0<br />

u(t)


in die obigen drei Programme, wird der Reibungsfaktor "r" trotz Anwesenheit von<br />

Meßrauschen mit<br />

N<br />

r ≈ 104 (5.3.98)<br />

m/sek<br />

sehr exakt identifiziert (vergleiche mit dem im Programm "zsystem" gesetzten Wert).<br />

5.91


Anhang A1: Statische Kennlinien nichtlinearer Systeme<br />

Die statische Kennlinie eines dynamischen Systems spiegelt dessen statisches<br />

Verhalten wieder. Diese Kennlinie stellt das Ausgangssignal y über einem<br />

Eingangssignal u dar, als besäße das System keine Dynamik.<br />

Liegt ein reales System vor, kann die statische Kennlinie meßtechnisch bestimmt<br />

werden. (Vergleiche auch /1/, Kapitel 1.1.3.1). Beginnend am unteren Ende des<br />

Aussteuerbereichs, der im vorliegenden Falle zwischen u = 0 und u = 10 liegen soll,<br />

wird das System mit einem sprungförmigen (also konstantem) Eingangssignal einer<br />

bestimmten Amplitude erregt und nach Abklingen des Einschwingvorgangs des<br />

Ausgangssignals dessen stationärer Endwert protokolliert. In den folgenden Grafiken<br />

wird z.B. u(t) zum Zeitpunkt 10 sprungförmig von 0 nach 2 verändert (vergleiche Bild<br />

A1.1), y(t) antwortet zunächst mit einem Einschwingvorgang (vergleiche Bild A1.2),<br />

um danach bei y = 28 konstant auf einem stationären Endwert zu verharren. Zu<br />

dieser Messung wird zu u = 2 der Endwert y = 28 protokolliert. So fährt man mit<br />

jeweiliger Erhöhung der Eingangssignalamplitude bis zum oberen Ende des<br />

Aussteuerbereichs, wie z.B. auf dem Bild A1.1, fort. Die entstehende Wertetabelle<br />

u 0 2 4 6 8 10<br />

y 0 28 72 132 208 300<br />

Tabelle A1.1: Gemessene Wertetabelle des statischen Verhaltens<br />

eines dynamischen Systems<br />

trägt man grafisch so auf, daß u die Abszisse und y die Ordinate bilden und erhält<br />

damit die statische Kennlinie des Systems (Vergleiche Bild A1.3). Wenn die<br />

Meßschrittweite von u klein genug gewählt wird, können die entstehen den<br />

Kurvenpunkte durch einen Polygonzug verbunden werden.<br />

Diese quasi Extrahierung des statischen Verhaltens aus Sprungantworten eines<br />

dynamischen Systems gelingt durch Abwarten des Einschwingvorgangs des<br />

Ausgangssignals.<br />

Zum Wert u = 0 einer statischen Kennlinie muß nicht zwangsläufig auch y = 0<br />

gehören.<br />

A.1


10<br />

u(t)<br />

8<br />

6<br />

4<br />

2<br />

0<br />

0 10 20 30 40 50 60<br />

t/sek<br />

Bild A1.1: Ein Erregungssignal <strong>zur</strong> Messung der statischen Kennlinie eines Systems<br />

300<br />

y(t)<br />

250<br />

200<br />

150<br />

100<br />

50<br />

28<br />

0<br />

0 10 20 30 40 50 60<br />

t/sek<br />

Bild A1.2: Das Ausgangssignal des Systems auf das Eingangssignal von Bild A1.1<br />

A.2<br />

72<br />

132<br />

208<br />

300


300<br />

y<br />

250<br />

200<br />

150<br />

100<br />

50<br />

0<br />

0 2 4 6 8 10<br />

u<br />

Bild A1.3: Die statische Kennlinie des Systems, die aus Eingangs-/Ausgangsmessungen<br />

nach Bild 1 und Bild 2 bestimmt wurde<br />

Die statische Kennlinie eines linearen Systems ist immer eine Gerade. Man stellt<br />

diese statische Kennlinie sehr selten dar, weil man sie durch eine einzigen<br />

Zahlenwert, den Verstärkungsfaktor, beschreiben kann. Wie auch in /1/, Kapitel<br />

1.1.3.1 dargestellt, bildet man <strong>zur</strong> Berechnung des Verstärkungsfaktors aus der<br />

Kennlinie möglichst große ∆u und ∆y<br />

∆y<br />

y<br />

Bild A1.4: Bestimmung des Verstärkungsfaktors eines linearen System aus seiner<br />

statischen Kennlinie<br />

und berechnet den Verstärkungsfaktor V aus:<br />

∆y<br />

V = .<br />

∆u<br />

∆u<br />

A.3<br />

u


Für eine nichtlineare Kennlinie kann man keinen Verstärkungsfaktor angeben.<br />

Arbeitet das betrachtete System aber häufig in einem Arbeitspunkt (Zum Beispiel<br />

eine Regelstrecke, die durch einen Regelkreis auch bei Anwesenheit von Störungen<br />

immer auf den Sollwert der Regelgröße (das ist hier der Arbeitspunkt) <strong>zur</strong>ückgeführt<br />

wird), gibt man gern „den Verstärkungsfaktor im Arbeitspunkt“ an. Dieser<br />

Verstärkungsfaktor im Arbeitspunkt wird wiederum durch Bildung von V = ∆y / ∆u<br />

berechnet, diesmal allerdings an der Tangente im Arbeitspunkt A.<br />

Zur Demonstration der Vorgehensweise greifen wir auf die vorangehend berechnete<br />

statische Kennlinie im Bild A1.4 <strong>zur</strong>ück und wollen annehmen, daß der Arbeitspunkt<br />

bei yA=150 liegt. Die Auswertung der Tangente im Arbeitspunkt ergibt einen<br />

Verstärkungsfaktor von:<br />

300<br />

y<br />

250<br />

200<br />

150<br />

100<br />

50<br />

Arbeitspunkt<br />

0<br />

0 2 4 6 8 10<br />

u<br />

∆ u= 10− 2,4 = 7,6<br />

∆y<br />

275<br />

V = = = 36,18.<br />

∆u<br />

7,6<br />

Bild 5: Berechnung eines Verstärkungsfaktors im Arbeitspunkt<br />

Dieser Verstärkungsfaktor wird auch von den <strong>Systemidentifikation</strong>sverfahren, die<br />

mittels kleiner Erregungen im Arbeitspunkt angewendet werden, identifiziert.<br />

Liegt ein mathematisches Modell, z.B. das Zustandsmodell des Systems vor, können<br />

die statische Kennlinie und der Verstärkungsfaktor im Arbeitspunkt auch analytisch<br />

berechnet werden. Dies soll beispielhaft an folgendem Systemmodell gezeigt<br />

A.4<br />

∆ y = 275− 0 =<br />

275


werden:<br />

i<br />

2<br />

x(t) =− x(t) + u (t)<br />

y(t) = 2x(t) + 10u(t) (A1.1)<br />

(Die vorangehende meßtechnische Bestimmung von Kennlinie und<br />

Verstärkungsfaktor basierte simulativ auch auf dem gleichen Modell, um später<br />

meßtechnische und analytische <strong>Verfahren</strong> vergleichen zu können.)<br />

Aus /1/ wissen wir, daß ein System einen stationären Endwert (eine Ruhelage)<br />

erreicht hat, wenn die Zustandsgrößen <strong>zur</strong> Ruhe kommen, d.h. sich zeitlich nicht<br />

mehr verändern, bzw. konstant sind. Sind aber die Zustandsgrößen x(t) konstant,<br />

müssen ihre Ableitungen dx(t) / dt = 0 sein. Setzt man also in (A1.1) die linke<br />

Seite der Differentialgleichung gleich Null<br />

2<br />

0 =− x + u<br />

y = 2x + 10u (A1.2)<br />

beschreiben die verbleibenden Gleichungen das statische Verhalten des Systems.<br />

Da keine zeitlichen Abhängigkeiten der Signale mehr vorliegen, wurden in (A1.2)<br />

gegenüber (A1.1) auch die Zeitargumente (t) entfernt. Die statische Kennlinie ist, wie<br />

weiter vorn definiert, eine Funktion y = f(u). Stellt man deshalb (A1.2) nach y um,<br />

erhält man nach kurzer Rechnung<br />

2<br />

y = 2u + 10u. (A1.3)<br />

Dies ist die analytische Beschreibung der statischen Kennlinie. Dies läßt sich leicht<br />

durch Einsetzen der Werte der Eingangssprünge aus Tabelle A1.1 überprüfen: Es<br />

berechnen sich die gleichen stationären Ausganssignalniveaus, wie bei der<br />

meßtechnischen Bestimmung:<br />

u 0 2 4 6 8 10<br />

y 0 28 72 132 208 300<br />

Tabelle A1.2: Analytisch berechnete Wertetabelle<br />

des statischen Verhaltens<br />

Auch der Verstärkungsfaktor im Arbeitspunkt läßt sich beim Vorliegen des<br />

analytischen Ausdrucks der statischen Kennlinie leicht berechnen. In /1/ wurde die<br />

Beziehung <strong>zur</strong> Linearisierung einer statischen Kennlinie angegeben:<br />

A.5


⎛df(u) ⎞<br />

∆ y= ⎜ ⋅∆u<br />

(A1.4)<br />

du<br />

⎟<br />

⎝ ⎠<br />

u= u<br />

A<br />

mit ∆ y = y −y und ∆ u = u −u<br />

.<br />

In unserem Falle war mit (A1.3)<br />

und damit (A1.4)<br />

A A<br />

df(u) dy d(2u + 10u)<br />

= = = 4u + 10<br />

du du du<br />

( )<br />

u= u<br />

2<br />

∆ y = 4u+ 10 ⋅∆u<br />

(A1.5)<br />

A<br />

Da als Arbeitspunkt die Ausgangsgröße yA = 150 angegeben war, muß <strong>zur</strong><br />

Berechnung des vorangehenden Ausdrucks die dazugehörige Eingangsgröße uA<br />

berechnet werden. Das gelingt mit Hilfe des analytischen Ausdrucks der statischen<br />

Kennlinie (A1.3), der nach dem Einsetzen von yA = 150 nach uA umgestellt werden<br />

muß:<br />

A =<br />

2<br />

A + A<br />

=<br />

2<br />

A + A<br />

y 2u 10u<br />

150 2u 10u<br />

2 10 150<br />

uA + uA − = 0<br />

2 2<br />

uA1,2=− 2,5 ±<br />

uA1 = 6,514<br />

6,25 + 75 ⇒<br />

u =−11,51<br />

A2<br />

Da uA2 = –11,51 außerhalb des Aussteuerbereichs liegt (siehe Festlegung weiter<br />

vorn) gehört zum Arbeitspunkt yA = 150, der Arbeitspunktwert uA = 6,514. Dieser<br />

wird in (A1.5) eingesetzt:<br />

( ) =<br />

( )<br />

∆ y = 4u+ 10 ⋅∆u<br />

u 6,514<br />

∆ y = 4⋅ 6,515+ 10<br />

∆ y = 36,056⋅∆u. Damit erhält man den analytisch berechneten Verstärkungsfaktor<br />

A.6


∆y<br />

V = = 36,1.<br />

∆u<br />

Im Vergleich mit dem durch Anlegen einer Tangente an den Grafen der statischen<br />

Kennlinie gewonnenen Verstärkungsfaktor (Bild A1.5) ergibt sich eine recht gute<br />

Übereinstimmung.<br />

A.7


Anhang A2: Spezifische Matlab-Befehle <strong>zur</strong> <strong>Systemidentifikation</strong><br />

In diesem Abschnitt wird auf die Matlab-Befehle hingewiesen, die im vorliegenden<br />

Skript, insbesondere bei den im Anhang A3 aufgeführten Programmen benutzt<br />

werden und die über die im Skript "Einführung in das CAE-Programm Matlab" /20/<br />

besprochenen Befehle hinausgehen.<br />

Die Befehle werden nur geordnet mit einem kurzen Hinweis auf ihre Verwendung<br />

beschrieben. Nähere Einzelheiten können mit der Online-Hilfe von Matlab studiert<br />

werden.<br />

• Programmsteuerung<br />

global: global x y z; erklärt die Variablen x, y und z zu globalen<br />

Variablen. Möglichkeit <strong>zur</strong> Parameterübergabe an Functions.<br />

Die Variablen müssen in allen benutzten Programmen global<br />

deklariert sein.<br />

• Grafische Ausgabe<br />

mesh: Plottet die Funktion f(x,y) über den Koordinaten x und y als<br />

"Funktionsgebirge".<br />

contour: Plottet die "Höhenlinien" eines "Funktionsgebirges" f(x,y) in den<br />

Koordinaten x, y.<br />

• Systemtheorie<br />

minreal: Minimalrealisierung eines Systemmodells. Entfernt gemeinsame<br />

Pole und Nullstellen aus der Übertragungsfunktion.<br />

• Optimierung<br />

fminsearch: Suchstrategischer Simplex-Optimierungs-Algorithmus nach<br />

Nelder und Mead.<br />

optimset: Befehl zu Setzen/Ändern von Optimierungsparametern des<br />

Optimierungsalgorithmus (im vorliegenden Fall von<br />

"fminsearch").<br />

• Signalverarbeitung<br />

butter: Befehl zum Entwurf koninuierlicher und digitaler Butterworth-<br />

Filter.<br />

filter: Befehl <strong>zur</strong> Realisierung eines digitalen (zeitdiskreten) Filters.<br />

A.8


Folgende Toolboxes kommen neben dem Matalb-Grundbefehlsvorrat im Rahmen der<br />

Systemerkennung <strong>zur</strong> Anwednung:<br />

• Control Toolbox,<br />

• Signal Processing Toolbox.<br />

Alle Programme im Anhang A3 wurden unter Matlab, Version 5.3 (R11), geschrieben<br />

und getestet.<br />

A.9


Anhang A3 : Matlab-Programme zum Skript Systemidentifiaktion<br />

Auf dem beiligenden Datenträger befinden sich die im Skript augeführten Programme<br />

in folgender File-Struktur:<br />

Ordner Programme<br />

Demos iso_pt2.m<br />

gs.m<br />

guete.m<br />

Simplex simplex.m<br />

system.m<br />

zielfkt.m<br />

tf2vn.m<br />

Simplexpt2 nelder.m<br />

zielpt2.m<br />

Skq ls.m<br />

rls.m<br />

rls_var.m<br />

SYS_ID generator_5.mdl<br />

sys_id.m (+ 20 m-Files + 5 Mat-Files<br />

+ 1 Textfile)<br />

Zustand zsimplex.m<br />

zsystem.m<br />

zzielfkt.m<br />

Die Programme des Ordners "simplex" sind darüber hinaus im Anhang A4<br />

abgedruckt.<br />

A.10


Anhang A4: Listung der Programme „simplex.m“, „system.m“ und „zielfkt.m“<br />

% Programm "simplex.m"<br />

%<br />

% Simulationsumgebung <strong>zur</strong> <strong>Systemidentifikation</strong> mittels des<br />

% Simplex-Suchalgorithmus nach Nelder und Mead, der in Form<br />

% des Matlab-Befehls "fminsearch" <strong>zur</strong> Verfügung steht.<br />

% Das Programm "simplex" ruft zuerst Skriptfile "system.m" auf,<br />

% in dem das zu identifizierende System simuliert und eine<br />

% Einheitssprungantwort berechnet und grafisch dargestellt wird.<br />

% Auf dieser Basis soll die Systemordnung n des zu identifizie-<br />

% renden Modells abgeschätzt werden.<br />

% Das Programm fragt weiterhin die notwendigen Anfangswerte<br />

% des Zaehler- und Nennerpolynoms der zu bestimmenden Modell-<br />

% übertragungsfunktion ab.<br />

% Das Programm ruft weiterhin das function-File "zielfkt.m" auf,<br />

% in dem die Zielfunktion, die Flächendifferenz der Sprungant-<br />

% worten des zu identifizierenden System und des zu bestimmenden<br />

% Modells, berechnet wird.<br />

% Nach Ablauf des Iterationsvorganges durch "fminsearch" wird die<br />

% geschaetzte Modellübertragungsfunktion in Polynom- und Produktform<br />

% ausgegeben.<br />

% Zur Überwachung Zielannaeherung werden waehrend des Iterations-<br />

% vorgangs die Sprunantworten des zu identifizerenden Systems und<br />

% die aktuelle Modellsprungantwort sowie der aktuelle Zielfunktions-<br />

% wert ausgegeben.<br />

home % Command-Window säubern.<br />

close all % Alle Grafen schließen.<br />

global n; % Globaldeklaration weil n in diesem Programm<br />

% erzeugt (abgefrat) wird, aber auch im<br />

% function-Unterprogramm "zielfkt.m" benötigt<br />

% wird.<br />

disp(' ')<br />

disp(' ------------------------------------------------- ')<br />

disp(' Systemidenifikation eines Übertragungssystems mittels')<br />

disp(' "Simplex-Suchverfahrens" nach Nelder und Mead')<br />

disp(' ------------------------------------------------- ')<br />

disp(' ')<br />

disp(' In der nebenstehenden Grafik ist die Einheits-Sprung-')<br />

disp(' antwort des zu identifizirenden kontinuierlichen ')<br />

disp(' Systems zu sehen.')<br />

disp(' Nutzen sie die daraus abzulesenden a priori-Information')<br />

disp(' <strong>zur</strong> Wahl der folgenden Meß- und Auswertparameter: ')<br />

system % Aufruf des Simulationsprogramms, das das zu<br />

% identifizierende System beschreibt.<br />

disp(' ')<br />

disp(' ')<br />

n0=input(' - Zu schätzende Modell-Systemordnung: ');<br />

% Abfrage der zu schätzenden (unbekannte) Modell-<br />

% Systemordnung.<br />

n=n0+1; % zu schätzende Parameteranzahl, jeweils fuer<br />

% Zaehler und Nenner der Modellübertragungsfkt.<br />

% Abfrage der Anfangswerte der Koeffizienten der Übertragungsfunktion<br />

% des zu identifizierenden Modells.<br />

%<br />

disp(' ')<br />

disp(' ')<br />

disp([' - Anfangswerte der ',num2str(n),' Zaehlerkoeffizienten'])<br />

b_anf=input(' der Übertragungsfunktion eingeben (in [ ]-Klmmern): ');<br />

A.11


% % Anfangswerte der Koeffizienten<br />

% % des Zählerpolynoms des zu identi-<br />

% % fizierenden Modells.<br />

disp(' ')<br />

disp(' ')<br />

disp([' - Anfangswerte der ',num2str(n),' Nennerkoeffizienten'])<br />

a_anf=input(' der Übertragungsfunktion eingeben (in [ ]-Klmmern): ');<br />

% % Anfangswerte der Koeffizienten<br />

% % des Nennerpolynoms des zu identi-<br />

% % fizierenden Modells.<br />

p_anf=[b_anf,a_anf]; % Zusammenfassung der Anfangswerte in<br />

% einem Vektor.<br />

options=optimset('Display','off','TolFun',1.e-3,'TolX',1.e-3');<br />

% Optionen des Suchalgorithmus,<br />

% siehe Skript.<br />

% Grafik zum Sprungantwort-Vergleich von zu identifizirendem<br />

% System und aktuellem Modell.<br />

%<br />

figure(2)<br />

title('violett: Sollsprungantort; gelb Modellsprungantwort')<br />

% Aufruf des Simplex-Such-Algorithmus<br />

%<br />

p=fminsearch('zielfkt',p_anf,options);<br />

% in p befinden sich anschließend<br />

% die optimierten Parameter,<br />

% angeordnet wie in p_anf.<br />

grid on<br />

% Ausgabe der Berechnungs-Ergebnisse<br />

%<br />

home<br />

disp(' ')<br />

disp(' ')<br />

disp(' ------------------------------------------------- ')<br />

disp(' <strong>Systemidentifikation</strong> eines Übertragungssystems mittels')<br />

disp(' des "Simplex-Suchverfahrens" nach Nelder und Mead')<br />

disp(' - Berechnungsergebnisse - ')<br />

disp(' ------------------------------------------------- ')<br />

disp(' ')<br />

disp(' ')<br />

disp(' Modell-Uebertragungsfunktion in Polynomform')<br />

disp(' ')<br />

Parameter_b=p(1:n)./p(n+1); % (dividiert durch p(n+1),<br />

% damit a(n)=1 wird.<br />

Parameter_a=p(n+1:2*n)./p(n+1);<br />

printsys(Parameter_b,Parameter_a,'s')<br />

% Ausgabe Produktform der Übertragungsfunktion<br />

disp(' ')<br />

disp(' ')<br />

[Nullstellen, Polstellen]=tf2zp(Parameter_b,Parameter_a)<br />

% Ausgabe der V-Normalform der Übertragungsfunktion<br />

disp(' ')<br />

disp(' ')<br />

disp(' Modell-Uebertragungsfunktion in V-Normalform')<br />

disp(' ')<br />

tf2vn (Parameter_b,Parameter_a)<br />

A.12


% Programm "system.m"<br />

%<br />

% Das Programm wird von "simplex.m" zu Anfang einmal aufgerufen. Es<br />

% simuliert das zu identifizierende System (zaehler,nenner).<br />

% Zu der Eigangserregung "uerr" wird das dazugehörige Ausgangssignal<br />

% "ySystem" berechnet. Auch die Simulations-Zeitachse "t" der Signale<br />

% muß hier definiert werden.<br />

%<br />

% Für reale, meßtechnische <strong>Systemidentifikation</strong>en muß nur dieses<br />

% Programm geändert werden. Es müssen hier bereitgestellt werden:<br />

%<br />

% - der Vektor der Eingangserregung "uerr",<br />

% - der Vektor des Ausgangssignals "ySytem",<br />

% - die Simulations-Zeitachse "t".<br />

%<br />

% Es ist wichtig, daß diese drei Signale die oben angegebenen Namen<br />

% tragen, die Vektoren gleich lang sind und diese Namen (wie in der<br />

% Kodezeile bereits vorgenommen) global deklariert werden.<br />

global t uerr ySystem; % Übergabe-Parameter für "zielfkt.m"<br />

% (globaldeklaration weil "zielfkt.m"<br />

% ein function-File ist).<br />

% Erzeugung der Simulations-Zeitachse<br />

%<br />

t_end=30; % Beobachtungs-Intervalldauer.<br />

T=0.01; % Rechenschrittweite.<br />

t=0:T:t_end; % Beobachtungsintervall,<br />

% (Messdauer der Sprungantwort<br />

% des zu identifizierenden Systems)<br />

% Simulation des zu identifizierenden Systems<br />

%<br />

zaehler=[0.2]; % Zaehler der Übertragungsfunktion.<br />

nenner=[1 0.7 1.1 0.2]; % Nenner der übertragungsfunktion.<br />

sys=tf(zaehler, nenner);% zu identifizier. System<br />

uerr=stepfun(t,0); % Eingangs-Sprung.<br />

ySystem=lsim(sys,uerr,t);<br />

% Sprungantwort.<br />

% Einfügung von Meßrauschen<br />

%<br />

rausch=0.05*randn(size(t)); % Simulation von Messrauschen.<br />

ySystem=ySystem+rausch';<br />

% Ausfilterung des Meßrauschens<br />

%<br />

[b,a]=butter(5,0.5*pi*10,'s'); % Entwurf eines kontinuierlichen<br />

% % Butterworth-Tiefpaßfilters.<br />

filt=tf(b,a); % Das Filter.<br />

%ySystem=lsim(filt,ySystem,t); % Kontinuierliche Signalfilterung.<br />

% Grafik der Sprungantwort des zu identifizierenden Systems<br />

%<br />

figure(1)<br />

plot(t,ySystem), grid on<br />

title('Sprungantwort des zu identifizierenden Systems')<br />

A.13


function[g]=zielfkt(x)<br />

% Programm "zielfkt.m"<br />

%<br />

% In diesem Programm wird die Zielfunktion für den Matlab-Suchalgorithmus<br />

% "fminsearch" berechnet. Es wird vom Programm "simplex.m" als Argument des<br />

% Befehls "fminsearch" aufgerufen. Eingabeparameter "x" ist der Vektor der<br />

% aktuellen Zähler- und Nennerparameter der Modellübertragungsfunktion<br />

% die von "fminsearch" berechnet wurden. Ausgabeparameter ist der<br />

% dazugehörige Wert der Zielfunktion "g".<br />

% Die Zielfunktion ist die Differenz der Flächen zwischen den Sprung-<br />

% antworten des zu identifizierende System (ysystem)und des Modells<br />

% (yModell), welches in diesem Programm berechnet wird.<br />

%<br />

% Die Sprungantwort des zu identifizierenden Systems "ysystem"<br />

% wird mit dem Programm "system.m" berechnet. Auch die Form der Eingangs-<br />

% erregung wird dort vorgegeben. Der dabei erzeugte<br />

% Zeitvektor "t", der Erregungsvektor "uerr" und die Sprungantwort<br />

% "ysystem" befinden sich dann im Matlab-Arbeitsspeicher. Da sie hier<br />

% in der "function" gebraucht werden, müssen sie global deklariert werden.<br />

%<br />

% "n", die zu schätzende Systemordnung wird auch global deklariert,<br />

% weil sie in "simplex" erzeugt wird, hier aber auch gebraucht wird.<br />

global n t uerr ySystem; % siehe obigen Text.<br />

% Simulation des Modells<br />

%<br />

zModell=[x(1:n)]; % zu optimierendes Zaehlerpolynom.<br />

nModell=[x(n+1:2*n)]; % zu optimierendes Nennerpolynom.<br />

Modell=tf(zModell, nModell);<br />

yModell=lsim(Modell,uerr,t);<br />

% Sprungantwort des geschätzten Modells,<br />

% erregt mit dem gleichen Eingangssignal<br />

% "uerr", wie das zu identifizierende System.<br />

% Grafik zum Vergleich der Sprungantworten von zu identifizierendem<br />

% System und aktuell geschätzten Modell.<br />

%<br />

plot(t,yModell,t,ySystem)<br />

drawnow % erzwingt sofortigen Plot.<br />

% Berechnung der Zielfunktion<br />

%<br />

g=sum(abs(yModell-ySystem)) % Berechnung der Zielfunktion des<br />

% Suchalgorithmus (siehe oben).<br />

A.14


Literatur und Software-/Firmware-Verzeichnis<br />

/1/ M. Ottens<br />

"Einführung in die Systemtheorie"<br />

Vorlesungsskript<br />

TFH-Berlin, Fachbereich VI (Informatik und Medien)<br />

/2/ M. Ottens<br />

"Einführung in die Regelungstechnik"<br />

Vorlesungsskript<br />

TFH-Berlin, Fachbereich VI (Informatik und Medien)<br />

/3/ H. Unbehauen<br />

"Regelungstechnik III"<br />

Friedr. Vieweg & Sohn, Braunschweig, 1988<br />

/4/ K.-P. Schulze, K.-J. Rehberg<br />

"Entwurf von adaptiven Systemen"<br />

VEB Verlag Technik, Berlin (DDR), 1988<br />

/5/ J. Böcker, I. Hartmann, Ch. Zwanzig<br />

"Nichtlineare und adaptive Regelungssysteme"<br />

Springer Verlag, Berlin, Heidelberg, ... , 1986<br />

/6/ U. Tietze, Ch. Schenk<br />

"Halbleiter-Schaltungstechnik"<br />

Springer Verlag, Berlin, Heidelberg, ... , 4.-10.Auflage<br />

/7/ F. Franklin, D. Powell, M. Workman<br />

"Digital Control od Dynamic Systems"<br />

Addison-Wesley Publ. Comp, Reading Mass., 1990<br />

/8/ "LabView": Eine grafische Programmierumgebung für die Meßtechnik.<br />

National Instruments Corp. http://www.ni.com<br />

/9/ "MATLAB": The Language of Technical Computing<br />

The Mathworks, Inc.<br />

24 Prime Park Way<br />

Natik, MA 01760-1500<br />

http://www.mathworks.com<br />

/10/ dSpace GmbH, Technologiepark 25, 33100 Paderborn<br />

http://www.dspac.de<br />

/11/ Schwarze, G.<br />

"Bestimmung der regelungstechnischen Kennwerte von P-Glieder aus<br />

der Übergangsfunktion ohne Wendetangenten-Konstruktion"<br />

in Zeitschrift: messen-steuern-reglen, Nr. 5, 1962, S. 447 - 449<br />

Berlin (DDR)<br />

Lit.1


12/ H. Unbehauen<br />

"Regelungstechnik I"<br />

Friedr. Vieweg & Sohn, Braunschweig, 1988<br />

/13/ R. Isermann<br />

"Identifikation dynamischer Systeme", Band I<br />

ab 1. Auflage,<br />

Springer Verlag, Berlin, Heidelberg, ... , 1988<br />

/14/ R. Isermann<br />

"Identifikation dynamischer Systeme", Band II<br />

ab 1. Auflage,<br />

Springer Verlag, Berlin, Heidelberg, ... , 1988<br />

/15/ M. Papageorgiou<br />

"Optimierung"<br />

Oldenbourg Verlag, München, Wien, 1996<br />

/16/ C. Richter<br />

"Optimierungsverfahren und Basic-Programme"<br />

Akademie Verlag, Berlin (DDR), 1988<br />

/17/ M. Wright<br />

"Direct Search Methods: Once Scorned, Now Respctable"<br />

in Zeitschrift: Numerical Analysys 1995, Pg. 191-208<br />

D.F. Griffiths and G.A. Watson (eds.)<br />

Addison Wesley Longman, Harlow, UK<br />

/18/ G. Bengel<br />

"Betriebssysteme"<br />

Hüthig Buch Verlag Heidelberg<br />

/19/ U. Rembiold<br />

"Einführung in die Informatik und Medien"<br />

Carl Hanser Verlag München<br />

/20/ M. Ottens<br />

"Einführung in das CAE-Programm Matlab"<br />

Vorlesungsskript<br />

TFH-Berlin, Fachbereich VI (Informatik und Medien)<br />

/21/ M. Ottens<br />

"Einführung in die Nutzung des Realtime-Workshops von Matlab"<br />

Vorlesungsskript<br />

TFH-Berlin, Fachbereich VI (Informatik und Medien)<br />

/22/ R. Johanson<br />

“System Modeling & Idenification“<br />

Prentice Hall, Englewood Cliffs, NY 07 632, 1993<br />

Lit.2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!