Eindhoven University of Technology MASTER Ontwikkeling … · PRO-MATLAB. echter voor een goed...

101
Eindhoven University of Technology MASTER Ontwikkeling en implementatie van een robuuste poolplaatsingsmodule binnen het PRIMAL-pakket Driessen, R.M.F. Award date: 1988 Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Download date: 18. Jul. 2018

Transcript of Eindhoven University of Technology MASTER Ontwikkeling … · PRO-MATLAB. echter voor een goed...

Eindhoven University of Technology

MASTER

Ontwikkeling en implementatie van een robuuste poolplaatsingsmodule binnen hetPRIMAL-pakket

Driessen, R.M.F.

Award date:1988

DisclaimerThis document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Studenttheses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the documentas presented in the repository. The required complexity or quality of research of student theses may vary by program, and the requiredminimum study period may vary in duration.

General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright ownersand it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

Take down policyIf you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediatelyand investigate your claim.

Download date: 18. Jul. 2018

VAKGROEP SYSTEEH-

1 %=%~ ~ I

EN REGELTECHNIEK

AFSTUDEERVERSLAG

NR-1574P (1988-JJ-22) R.M.F. Driessen

ONTWIKKELING EN IMPLEMENTATIE VAN EEN

ROBUUSTE POOLPLAATSINGSMODULE BINNEN

HET PRIMAL-PAKKET

R.H.F. Driessen

Afstudeerhoogleraar: Prof.ir. 0. Rademaker

Afstudeerbegeleider: Ir. R.J.P. van der Linden

VOORWOORD.

Het verrichten van een stage en mlJn afstudeeronderzoek in de Vakgroep Systeem- en Regeltechniek is mlJ een genoegen geweest. Vooral door de goede sfeer. is het naast een leerzame tijd ook een erg gezellige tijd geweest. Alle mensen die mij gedurende mijn afstudeer­periode hebben geholpen op welke wijze dan ook. wil ik hartelijk danken. Speciaal gaat mijn dank uit naar:

- Tanja voor de steun tijdens inspiratieloze perioden. Ir. R.J.P. van der Linden en Ir. W.A. Renes bij wie ik altijd terecht kon voor allerlei vragen en proble­men. Ir. G. Dekker voor zijn adviezen.

Rob Driessen 22 november 1988 Eindhoven.

Aan Tanj a Aan mijn ouders

SAMENVATriNG.

Dit afstudeerverslag beschrijft de ontwikkeling en implementatie van de module PPLCR binnen PRIMAL (Package for Real-time Interactive Modelling, Analysis and Lear­ning) .

De module PPLCR ontwerpt een regelaar op basis van een poolplaatsingstechniek. De polen of eigenwaarden van een systeem worden geplaatst op gewenste posities in het complexe s- of z-vlak door middel van een toestandste­rugkoppeling. Dit gebeurt op een zodanige WlJZe dat het systeem met deze regeling robuust geregeld is. Dat wil zeggen dat het systeem zo ongevoelig mogelijk is voor veranderingen van de systeemparameters. De module PPLCR is gebaseerd op de theorie van Kautsky, Nichols en Van Dooren, die handelt over robuuste rege­lingen.

Tijdens het afstuderen is allereerst gewerkt met een aantal software-pakketten om nadien te kunnen evalueren wat er algemeen beschikbaar is op het gebied van robuust regelaarontwerp. De mogelijkheden binnen de meeste be­staande pakketten blijken beperkt te zijn. De prestaties van de best functionerende regelaaront­werp-functie (binnen PRO-MATLAB) zijn vergeleken met die van de nieuwe module PPLCR. Het blijkt dat PPLCR voor een zeer slecht geconditio­neerd vierde orde systeem een iets minder robuuste regelaar kan ontwerpen dan de functie PLACEPRO binnen PRO-MATLAB. echter voor een goed geconditioneerd negende orde systeem is de door PPLCR ontwikkelde regelaar robuuster.

INHOUDSOPGAVE.

SAMENVATTING.

Symbolen 1 ij st. pag.

1. INLEIDING. 1.1 1.1. Het PRIMÄL-project. 1.1 1.2. Het PRIMAL-pakket. 1.1 1.3. Regelaarontwerp. 1.3.

2. MULTIVARIABELE SYSTEMEN. 2.1 2.1. Inleiding. 2.1 2.2. Regelbaarheid en Observeerbaarheid. 2.2 2.3. Eigenwaarden van MIMO-systemen. 2.3 2.4. Poolplaatsing door middel van

toestandsterugkoppeling. 2.8

3. ONDERZOEK SOFTWARE-PAKKETTEN. 3.1 3.1. Inleiding. 3.1 3.2. PC-MATLAB (PRO-MATLAB). 3.1 3.3. MATRIX-X. 3.4 3.4. CTRL-C. 3.5 3.5. KEDDC. 3.5 3.6. Conclusies. 3.6

4. POOLPLAATSINGSTECHNIEKEN. 4.1 4. 1 . In 1 ei ding. 4. 1 4.2. De methode van Ackermann. 4.1 4.3. Poolplaatsing via transformatie naar

Upper Hessenberg-vorm. 4.7

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. 5.1 5.1. Inleiding. 5.1 5.2. Theorema's over robuust regelen. 5.2 5.3. Eigenschappen van robuust geregelde

systemen. 5.7 5.3.1. Bovengrens componenten van F. 5.7 5.3.2. Begrenzing "transient response"5.8

5.4. Indicatoren voor robuustheid. 5.9 5.5. Het robuuste algorithme in de PRIMAL-

module PPLCR. 5.11 5.6. Het robuuste algorithme in de functie

PLACEPRO binnen PROMATLAB. 5.16

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. 6 .1 6 . 1 . In 1 ei ding . 6 . 1 6.2. Flowcharts van de module. 6.1 6.3. Subroutines uit de LIBM.MAT-bibliotheek.6.4 6.4. PPLCR-subroutines. 6.4

7. RESULTATEN. 7.1 7.1. Literatuurvoorbeelden. 7.1

7.1.1. Chemische reactor. 7.1 7.1.2. Voorbeeld uit de KEDDC-

demonstratiehandleiding. 7.12 7.2. Het warmtewisselaar-systeem. 7.20

--------------

8. CONCLUSIES EN SUGGESTIES VOOR VERDER ONDERZOEK.

8.1. Conclusies. 8.2. Suggesties voor verder onderzoek.

LITERATUURLIJST.

APPENDICES.

A. Bewijs dimensie nulruimte van s~. B. Afleiding vierde robuustheidsindicator. C. Subroutine-nestingen in de module.

PRIMAL-subroutines.

8.1 8.1 8.2

D. Voorbeeld van een tekst- en een matrix-dataset. E. Poolverschuivingen voor vierde orde systeem uit

7 .1.1. F. Poolverschuivingen voor negende orde systeem

uit 7.1.2. G. Geschat warmtewisselaar-model.

SYMBOLENLIJST.

symbool.

A

A* a:~.

a

B

c

Betekenis.

Systeemmatrix uit een systeemmodel. Afmetingen nxn. Gebalanceerde versie van A. De matrix A na transformatie naar de Luenberger kanonieke regelingsnormaal­vorm. De matrix T- 1 *A*T. Coëfficiënten van een karakteristieke vergelijking. 1. Reële deel van een eigenwaarde. 2. Transformatie van A naar "staircase"-

vorm. 3. Scalar bij robuuste poolplaatsing. Ingangsmatrix uit een systeemmodel. Afmetingen nxp. Gebalanceerde versie van B. De matrix B na transformatie naar de Luenberger kanonieke regelingsnormaal­vorm. 1. Imaginaire deel van een eigenwaarde. 2. Transformatie van B naar "staircase"-

vorm. 3. De arcsinus van het 4. Scalar bij robuuste Uitgangsmatrix uit

dempingaratio d. poolplaatsing. een systeemmodel

met afmetingen qxn. Gebalanceerde versie van C. De matrix C na transformatie naar de Luenberger kanonieke regelingsnormaal­vorm. Vector bestaande uit reciproke waarden van s..:J.

c~ 1. Coëfficiënt in een vergelijking. 2. Reciproke waarde van S..:J.

D Matrix die het directe verband aan geeft tussen in- en uitgangssignaal. Afmetingen qxp.

d Dempingsratio. g:1...:J Vector in matrix AR. 6 Verschil of afwijking. E lngangsmatrix voor systeem na transforma­

tie naar de Luenberger kanonieke rege­lingsnormaalvorm.

~(k) Verschilsignaalvector (qxl). !tJ Eenheidevector j . F State-Feedback matrix met afmetingen pxn. F* State-Feedback-matrix bij de transforma­

tie naar Hessenberg-vorm. Fb Gebalanceerde versie van F. FR De matrix F na transformatie naar de

Luenberger kanonieke regelingsnormaal-

FROB t:l.

vorm. Frobeniusblok. Kolom van de F*-matrix bij de transforma­tie naar Hessenberg-vorm.

41 G (Z)

H

I i j k

k •.

kF (X) : k2 (X) : L

l:s.

M

m:~...:~

1 . .1.1 t/m N n

p~

E,.; P..:~ P(z) p Q

Oo Q1 q

.9,_; R s

S..:~ s

s_, I

a ap (B) : T

e y(k)

!:[(Z)

V y(k)

De sinus van e. De qxp overdrachtsmatrix. Matrix (nxq) waar het signaal ~(k) door gaat. Eenheidsmatrix. Index. Index. 1. Index. 2. Het aantal verstreken bemonsteringspe-

rioden. Getal van belang bij niet-regelbare eigenwaarden. Frobenius-conditiegetal van matrix X. 2-Conditiegetal van matrix X. Matrix met eigenwaarden l1 t/m ln op de di agonaal. Eigenwaarde i, behorende bij eigenvector ~:1..

1. Coëfficiëntenmatrix. 2. Gesloten systeem bij robuuste pool­

plaatsing. Coëfficiënt in deze matrix.

U4:Robuustheidsindicatoren. Transformatiematrix naar Schur-vorm. Het aantal toestanden van een systeem (ook: aantal eigenwaarden (polen) ) Hulpmatrix bij robuuste poolplaatsing. Eerste kolom van P..:~~ De rest van p_,~ Karakteristieke vergelijking. Het aantal ingangen van een systeem. 1. Observeerbaarheidsmatrix. 2. Q-matrix van OR-decompositie. Eerste p kolommen van Q. Laatste n-p kolommen van Q. Het aantal uitgangen van een systeem. Hulpvector bij robuuste poolplaatsing . R-matrix van OR-decompositie. 1. Regelbaarheidsmatrix. 2. S~engestelde A,B,C,D~atrix. Nulruimte. De lopende par~eter in het s-domein. (sec-1 ) Gevoeligheid van een eigenwaarde. 1. Sommatie-teken. 2. Diagonaalmatrix met singuliere waarden

van SV-decompositie. 1. Reële deel van een eigenwaarde. Kleinste singuliere waarde van matrix B. 1. Transformatiematrix naar een bijzonde-

re matrixtype (komt meer voor) . 2. Bemonsteringsperiode. Hoek tussen twee vectoren. Vector met de waarde van de p inganga­signalen op het tijdstip k. Ingangsvector, gebruikt in combinatie met overdrachtsmatrix G(z). Orthogonale matrix van SV-decompositie. Referentie-signaal op tijdstip k.

.8_(k)

~ (k): y ~(k)

Hulpvector Vector. Hulpvector Matrix van De vector Luenberger vorm.

bij robuuste poolplaatsing.

bij robuuste poolplaatsing. eigenvectoren.

x na transformatie naar de kanonieke regelingsnormaal-

Gebalanceerde versie van ~-Eigenvector i uit de eigenvectormatrix X. Toestanden op tijdstip 0. De toestandsvector (nxl) op het discrete tijdstip k. Toestandsvector (nxl), geschat door toestandswaarnemer. Verschil van ~(k) en &<k). Bewerkte versie van de matrix X. Vector met de waarden van de q uitgangs­signalen op het tijdstip k. Kolomvector uit de matrix Y. Uitgangsvector van toestandswaarnemer. Uitgangsvector, gebruikt in combinatie met de overdrachtsmatrix G(z). De lopende parameter in het z-domein. Imaginaire deel van een eigenwaarde.

1. INLEIDING.

1. INLEIDING.

1.1. Het PRIHAL-project.

Pag. 1. 1.

In de vakgroep Systeem- en Regeltechniek van de facul­teit der Technische Natuurkunde van de Technische Universiteit te Eindhoven wordt een software-pakket ontwikkeld, PRIHAL genaamd. PRIHAL staat voor "Package for Real-time Interactive Hodelling, Analysis and Learning". Het pakket is een hulpmiddel voor de experi­mentator. Deze heeft een aantal mogelijkheden: het verrichten van metingen aan een systeem, de identifica­tie van een systeem (on-line), modelvalidatie, regelaar­ontwerp, regelaar-implementatie enzovoort. PRIHAL kent hiervoor een aantal modules die onafhankelijk van elkaar kunnen functioneren. De volgorde waarin de modules uitgevoerd worden ligt niet vast en vormt dus geen beperking.

1.2. Het PRIHAL-pakket.

Het PRIHAL-pakket bestaat uit een 30-tal modules, die draaien onder het PRIHAL-systeem en operaties uitvoeren op één of meer datasets. De resultaten van de bewerkin­gen worden weggeschreven naar een of meer (and~re) uitvoer-datasets. Datasets ZlJn volgens de PRIHAL­standaard geformatteerde verzamelingen data, die door alle modules gehanteerd kunnen worden. Een PRIHAL-nodule wordt parallel aan het PRIHAL-systeem uitgevoerd en parallel aan andere modules. Gedurende de tijd d~c een module actief is, kunnen berichten uitgewisseld worden tussen het PRIHAL-systeem en de module. In Fig.1-1 is schematisch weergegeven hoe een module parallel aan het PRIHAL-systeem werkt.

invoer

PRIMAL-(Monitor )Systeem

uitvoer

datasets datasets

Module

Fig.1-1 De werking van een module, parallel aan het PRIHAL-systeem.

1. INLEIDING. Pag. 1. 2.

PRIKAL-modules worden geprogrammeerd in Fortran-77 volgensdePRIKAL programmeerstandaard [LIND85]. Een aantal eigenschappen van PRIKAL zijn:

1. De interactieve structuur. De experimentator heeft de mogelijkheid om te inter­veniëren in een lopend experiment of een module.

2. De gebruiker kan testsignalen op de proces-ingangen aanbrengen en processignalen meten. Bovendien kan de gebruiker de reeds aanwezige meetdata aan analyses onderwerpen, zoals een correlatie-analyse of Fourier­transformatie.

3. Een aantal verschillende categorieën modules ZlJn aanwezig, zoals data-bewerkings- en identificatie­modules.

4. De modules zijn onafhankelijk van elkaar en kunnen parallel werken. Veel modules kunnen actieve datasets gebruiken. Dit zijn datasets, waarin de ene module gegevens wegschrijft, terwijl de andere module uit die dataset gegevens leest. Speciale mechanismen zijn ingebouwd om de communicatie tussen het PRIKAL­systeem en de modules (ook de modules onderling) gesynchroniseerd te laten verlopen.

5. PRIKAL wordt bediend met een commandotaal. Voorts kennen alle modules vragenpagina's waarin wordt gevraagd om invoerparameters en waarin de gebruiker kenbaar kan maken hoe een bepaalde operatie uitge­voerd dient te worden.

6. Uitgebreide grafische mogelijkheden. 7. Het PRIKAL-pakket is te installeren op andere compu­

tersystemen. 8. Nieuwe modules kunnen eenvoudig aan het pakket worden

toegevoegd.

Zoals gezegd moet het PRIKAL-pakket op diverse computer­systemen onder diverse Operating Systems kunnen werken en met de aanwezige hardware kunnen communiceren. Om ervoor te zorgen dat de gebruiker zich niet hoeft te bekommeren om de hiervoor noodzakelijke synchronisatie­mechanismen en invoer/uitvoer-protocollen is het PRIKAL­pakket uit meerdere lagen opgebouwd.

De mogelijkheden die de modules kennen zijn over een aantal categorieën verdeeld (tussen haakjes staan de namen van de modules vermeld): - Signaalanalyse (Prefilter, Correlator, FFT, RFT,

Filter). - SISO-procesidentificatie (EMM, RPE). - Orde- en dimensietesten (Hankdim, Hankdim2, Ordertest) - MIMO-procesidentificatie (DLS, GIV, Guidorzi, IVM,

Markov, HCR, Transfer). - Realisatie (Hankel). - Validatie en Simulatie (Modeltst, Simsys, Response). - Kalman-filtering (Kalman). - Model conversion (MFDSS, in ontwikkeling).

Uitvoerige informatie over het maken van PRIHAL-modules wordt gegeven in een NR-notitie [LIND86].

1. INLEIDING. Pag. 1.3.

1.3. Regelaarontwerp.

In het kader van het regelaarontwerp binnen PRIMAL is een nieuwe module geschreven, PPLCR genaamd. Deze module regelt een systeem op basis van poolplaatsing door middel van toestandsterugkoppeling. PRIMAL kende voor­heen alleen de module "LQG" die een optimale regeling berekent voor een systeem door het minimaliseren van een kostenfunctie. Het grote nadeel van deze module is de grote gevoeligheid voor modelfouten. Dit was de voor­naamste reden voor het ontwikkelen van een robuuste regelaarontwerpmodule. Een ander nadeel van een optimale regelaar kunnen de in de praktijk ongewenste eigen­schappen zijn, zoals een grote "transient response". Vaak is men geïnteresseerd in (robuuste) regelingen van processen waarbij onder andere "transient responses" geminimaliseerd worden.

Allereerst zijn een aantal software-pakketten onderzocht op hun capaciteiten wat betreft regelaarontwerp. Binnen een aantal pakketten is een poolplaatsingsfunctie aanwezig voor SISO-systemen. Na een literatuuronderzoek bleek de methode van Kautsky, Nichols en Van Doeren een robuust poolplaatsingsalgorithme te leveren. Er is gekozen voor de de ontwikkeling en implementatie van een module binnen de PRIMAL-omgeving die berust op dit robuuste algorithme.

2. MULTIVARIABELE SYSTEMEN. Pag. 2. 1.

2. MULTIVARIABELE SYSTEMEN.

2.1. Inleiding.

Men kan een multivariabel systeem beschouwen als een verzameling SISO-overdrachtsfuncties. Een SISO-systeem heeft één overdrachtsfunctie. Bij iedere overgang van een ingang naar een uitgang kan men een overdrachts­functie bepalen. In Fig.2-1 is dit schematisch weergege­ven.

inputs System outputs

1 1

2 2.

' ' , , ' . • , .

,' ., .. '

r ,;:.,,,.

Fig.2-1 Diverse overdrachten van ingangen naar uitgangen bij een MIMO-systeem.

Het bepalen van deze overdrachtsfuncties kan geschieden met behulp van diverse software-pakketten, zoals PC­MATLAB, PRO-MATLAB, MATRIX-X, KEDDC, PRIMAL. Een MIMO­systeem met p ingangen en q uitgangen wordt bepaald door pxq overdrachtsfuncties. Deze overdrachtsfuncties kan men plaatsen in een qxp-overdrachtsmatrix G, waarbij iedere G~j een rationele functie van z of s is. Vanaf nu wordt hoofdzakelijk in het discrete domein gewerkt. Alle overdrachten worden in dat geval uitgedrukt in z en alle tijdfuncties worden beschouwd op de discrete tijdstippen kT, waarbij T de discretiesatietijd (bemon­steringstijd) is. Alle overdrachtsfuncties tesamen luiden:

Y(z) = G(z) * [(z) (2.1)

2. MULTIVARIABELE SYSTEMEN. Pag. 2.2.

Hierin stellen [ en Y respectievelijk de ingangsvector met lengte p en de uitgangsvector met lengte q voor. Vergelijking (2.1) kan getransformeerd worden naar een toestandsvergelijking en een bijbehorende uitgangsverge­lijking. Beide vergelijkingen kennen als parameter de tijd en luiden:

(2.2)

(2.3)

De eerste vergelijking is de toestandsvergelijking. In deze vergelijking stelt ~ de voor. A is de nxn-toestandsmatrix matrix. De tweede vergelijking is king waarin C de qxn-uitgangsmatrix D is de directe overdracht van verdisconteerd.

(n-) toestandsvector en B de nxp-ingangs­de uitgangsvergelij­is. In de qxp-matrix ingang naar uitgang

2.2. Regelbaarbeid en Obseryeerbaarbeid.

Een systeem is volledig regelbaar, indien met de gegeven p ingangssignalen op elk tijdstip alle n toestanden van bet systeem volledig te beïnvloeden zijn en hieraan bepaalde waarden kunnen worden opgelegd. Hiervoor is een mathematische formulering op te stellen:

S = [ B, AB, A2B, ... . , AN-lB ] (2.4)

De nxNp-matrix S beeft rang n als bet systeem volledig regelbaar is. De rang van deze matrix is snel na te gaan met een singuliere waarden ontbinding of een QR-decompo­sitie.

Een systeem is volledig observeerbaar, als men met de kennis van bet ingangssignaal en de informatie verkregen van bet uitgangssignaal alle toestanden kan afleiden. Een systeem is volledig observeerbaar, indien de Nqxn­matrix Q rang n beeft. Deze matrix Q ziet er als volgt uit:

Q = [ C, CA, CA2, .... , CAN-1 ]T (2.5)

2. MULTIVARIABELE SYSTEMEN. Pag. 2.3.

Systemen waarbij men alle toestanden x fysiek kan aanWlJZen en terugkoppelen ZlJn het gemakkelijkst te regelen. Indien het niet mogelijk is om van een volledig observeerbaar systeem alle toestanden direct te deduce­ren, bijvoorbeeld doordat meetapparatuur voor het meten van de betreffende toestand te duur is, kan men toch deze toestanden terugkoppelen via een zogenaamde "toe­standswaarnemer". In Hoofdstuk 4 wordt hierop ingegaan.

2.3 Eigenwaarden yan MIHO-systemen.

De eigenwaarden van de toestandsmatrix A in de toe­standsvergelijking leggen het gedrag van het systeem voor een groot deel vast. De eigenwaarden van een systeem worden ook wel de polen genoemd, deze termen worden vanaf nu door elkaar gebruikt. Een systeem van orde n heeft n eigenwaarden. Hierbij is nog van belang dat sommige eigenwaarden met een multip­liciteit kunnen voorkomen, die groter is dan 1. Indien l1 een eigenwaarde is met bijbehorende eigenvector X1 dan geldt de volgende relatie:

A X1 - l1 X1 (2.6)

Als alle eigenwaarden-relaties (n stuks) bij elkaar worden geveegd krijgen we de eigenwaardenmatrix L en de matrix van eigenvectoren X, waarvan de kolommen de n eigenvectoren x voorstellen.

(2.7)

L is een diagonaal-matrix met de eigenwaarden. Met een gelijkvormigheidstransformatie met matrix T is de 1-matrix in de zg. "Jordanvorm" te brengen. Een reden om deze transformatie uit te voeren is het feit, dat dan complex toegevoegde eigenwaarden verdwijnen. Indien

Y = X*T (ofwel X = Y*T-1) (2.8)

dan geldt:

A*Y*T-1 = Y*T-1*L (2.9)

Deze laatste vergelijking is te schrijven als:

(2.10)

2. MULTIVARIABELE SYSTEMEN. Pag. 2.4.

De matrix L is nu in de bedoelde Jordanvorm gebracht. Door de gelijkvormigheidstransformatie zijn de eigen­waarden van A niet veranderd. Bij de transformatie zijn ook de andere matrices in de systeemvergelijking betrok­ken ( B, C en D) . In de getransformeerde matrix L* staan na de transforma­tie de complex toegevoegde eigenwaarden in 2x2 Jordan­blokjes op de diagonaal. Zo komen bijvoorbeeld de eigenwaarden a+i*~ en a-i*~ niet meer als zodanig op de diagonaal. In plaats daarvan komt op de diagonaal het volgende blokje te staan:

(2.11)

De polen van een systeem kunnen getekend worden in het complexe s-vlak maar ook in het z-vlak. Het z-vlak hoort bij het werken in het discrete tijddomein. De overgang van het s-domein naar het z-domein is als volgt:

z = esT - eaT * eiBT = jzj*arg(z)

Bij de transformatie van het s-domein naar het wordt het linkerhalfvlak afgebeeld in de cirkel de imaginaire as op deze cirkel. Op welke afzonderlijke delen van het s-vlak afgebeeld het z-vlak is in Fig.2-2 weergegeven [KU080].

JW s- plone

Ws ----------------- T al ® The primory strip

-co +-------"<D~::--------0

~- plone

(2.12)

z-domein 1~1=1 en WlJZe de

worden in

Fig.2-2 Overgang van het s-vlak naar het z-vlak.

2. MULTIVARIABELE SYSTEMEN. Pag. 2.5.

Hierbij wordt gekeken naar de z.g. "primary strip" in het s-vlak. Deze "strip'' loopt van -Ws/2 tot w~/2. De frequentie Ws/2 heet de Nyquistfrequentie en is gelijk aan de halve bemonsteringsfrequentie. De Nyquistfrequen­tie is op grond van het theorema van Shannon de hoogste frequentie in het processignaal, die na bemonstering nog te reconstrueren is. Alle strips in het s-vlak worden afgebeeld op en in de cirkel met straal 1 in het z-vlak. Immers:

(s+jn Ws )T sT j n2?r sT e = e * e = e = z ( 2. 13)

De polen bepalen de (in)stabiliteit van een systeem. Werken we in het s-domein, dan liggen de polen (van een stabiel systeem) in het complexe s-vlak allemaal in het linkerhalfvlak (dus met negatieve reële delen, ofwel a<O). Zuiver imaginaire eigenwaarden komen slechts met enkele multipliciteit voor. In het z-domein horen de polen binnen de cirkel te liggen en polen op de cirkel slechts enkelvoudig voor te komen. (zie [RADE85]). In Fig.2-3a. t/m d. zijn verschillende poolposities van systemen weergegeven, samen met de responsies van de systemen op een impuls (bekeken op de bemonsteringstijd­stippen) [GUNT86]. In Fig.2-3a. ZlJn de responsies weergegeven van eerste orde systemen met reële polen. Indien de polen negatief reëel zijn reageert het systeem oscillatorisch. In Fig.2-2 is te zien dat negatief reële polen in het z-vlak afkomstig zijn van complexe polen in het s-vlak. Dit verklaart het oscillatorische gedrag. Fig.2-3b. geeft responsies te zien van een tweede orde systjem met 2 reële polen. Fig.?-3c. geeft een beeld van een tweede orde systeem met 2 identieke reële polen. De oscillatorische neigin­gen zijn nog wat sterker bij negatief reële polen dan het geval was bij een eerste orde systeem. Polen op de cirkel met een multipliciteit groter dan 1 geven aan­leiding tot instabiel gedrag, zoals eerder in het s­domein het geval was bij de polen op de imaginaire as. Tenslotte geeft Fig.2-3d. nog een indruk van de respon­sie bij aanwezigheid van complexe polen.

Im(z)

-1 -48 -4Z 4Z 41

/·\ I ; ... L \.- I 1L L t:_··· L.· r.~: r r.-... · ·-~

Fig.2-3a. Enkelvoudige polen bij een eerste orde systeem.

2. MULTIVARIABELE SYSTEMEN. Pag. 2.6.

t Im(z}

-48 -az az 48

Re(z}-

b.

I t Im{z}

-1 -a a 0.8 1

\ J ! I . Re{zf-

••

~ 1l_LL "· • • • •

-1 Re{z}-

y-450 y·90· y•1J50

~ t

f*-~h d. •• "k-

Fig.2-3b.

Fig.2-3c. Fig.2-3d.

Enkelvoudige polen bij een tweede orde systeem. Identieke polen bij een tweede orde systeem. Complexe polen bij een tweede orde systeem.

2. MULTIVARIABELE SYSTEMEN. Pag. 2.7.

Om een bepaalde demping te krijgen in het systeem dient men de polen in het s-domein onder een bepaalde rechte lijn te kiezen. De transformatie van deze rechte lijn naar het z-vlak levert een logarithmische spiraal. In Fig.2-4 zijn zowel de lijn als de spiraal weergegeven, bij een dempingsratio "d" van 50% (0.5). Er geldt sin(S)=d. Bij een frequentie, gelijk aan een even aantal maal de Nyquistfrequentie gaat de spiraal door de positief reële z-as en bij een oneven aantal malen de Nyquistfrequentie door het negatief reële deel van deze as. Dit komt doordat het imaginaire deel van z dan gelijk is aan nul in formule (2.13). De term exp(jnweT) geeft afwisselend -1 en 1.

Uit de Figuren 2-3 en 2-4 kan men concluderen, dat polen van een systeem bij voorkeur op de positief reële as in het z-vlak moeten liggen, om een demping te krijgen zodanig dat oscillatorisch gedrag onderdrukt wordt. Immers bij een hoek S=90° in Fig.2-4a. is de demping d=sin(S)=1. De demping is maximaal. ûe spiraal wordt platter naarmate de demping zwaarder is.

;lm

s ·Piane z- plane

Fig.2-4 Het verband tussen de demping en de keuze van de poolpositie onder een logarithmische spiraal.

Tot nu toe is nog niet gesproken over de nulpunten van systemen. De nulpunten zijn de nulwaarden van de teller van een overdrachtsfunctie. In het algemeen wordt bij een MIMO-systeem gesproken over "transmissienulpunten" van het systeem. Een transmissienulpunt van een systeem treedt aan het licht bij bepaalde combinaties van ingangssignalen. Indien een systeem bijvoorbeeld drie ingangssignalen heeft kan het voorkomen dat bij een bepaalde grootte van ieder van de drie ingangssignalen de uitgangen van het systeem nul zijn. In dat geval is er sprake van een transmissienulpunt. Nulpunten die in het rechterhalfvlak liggen in het s-domein (of buiten de eenheidscirkel in het z-domein) geven aanleiding tot

2. MULTIVARIABELE SYSTEMEN. Pag. 2.8.

inverse responsies (niet-minimumfase gedrag). In Fig.2-5 is van een SISO-systeem een dergelijk gedrag weergege­ven.

0

-I

SAMPLE

Fig.2-5 Niet minimum-fasegedrag van een SISO-sys­teem.

Samenvattend kan gezegd worden dat de keuze voor reële eigenwaarden een demping van de "transient response" tot gevolg heeft. Het is daarom gunstig om eigenwaarden reëel te kiezen. De binnen PRIMAL ontwikkelde module PPLCR werkt met reële eigenwaarden.

2.4. Poolelaatsinq door middel van toestandsterugkop­peling.

Het robuuste algorithme van het PRIMAL-pakket plaatst de beh~lp van het principe van de Dit principe is weergegeven in

de nieuwe module PPLCR in polen van een systeem met toestandsterugkoppel ing. Fig.2-6.

~ D I

+ v(k) u(k x(k+l) x(k) 1'1 y(k)

~o-L B ~ I z-• ..... c ~ ~ .... + + ~~ ,l

+ +

L...__ A ...... _,

F x(k)

F ...... ._,

Fig.2-6 Het principe van de toestandsterugkoppeling.

2. MULTIVARIABELE SYSTEMEN. Pag. 2.9.

Voor dit systeem gelden de vergelijkingen (2.2) en (2.3). De toestandsterugkoppeling is in formulevorm te geven en luidt:

~ = y + F~ (2.14)

De matrix F is de proportionele toestandsterugkoppelma­trix. In Fig.2-6 is te zien waar deze matrix zijn naam aan dankt. Het ingangssignaal y is de zg. "reference input", een referentiesignaal voor het systeem. Op dit ingangssignaal kan men storingen en (andere) testsigna­len superponeren. De bedoeling van het plaatsen van de polen of eigenwaarden van een systeem is dat het systeem een bepaald gewenst gedrag gaat vertonen. Immers, de polen van een systeem zijn, zoals reeds eerder opge­merkt, in zeer sterke mate bepalend voor dit gedrag. De matrix F wordt zo bepaald, dat een systeem bepaalde gewenste polen heeft.

De vergelijkingen (2.2) en (2.3) veranderen voor het met behulp van de terugkoppeling F geregelde systeem in:

~((k+l)T) = (A+B*F)*~(kT) + B*y(kT) (2.15)

y(kT) = (C+D*F)*~(kT) + D*y(kT) (2.16)

Hierbij is y het ingangssignaal en de systeemmatrix van het geregelde systeem is A+B*F. De polen van het gere­gelde systeem zijn de door de gebruiker g~wenste polen.

In het volgende Hoofdstuk worden eigenschappen besproken van verschillende software pakketten, die geschikt zijn om systemen te identificeren en regelaars te ontwerpen. In het bijzonder wordt gekeken naar het regelen van systemen met behulp van poolplaatsing.

3. ONDERZOEK SOFTWARE-PAKKETTEN. Pag. 3.1.

3. ONDERZOEK SOFTWARE-PAKKETTEN.

3.1. Inleiding.

Gedurende het eerste deel van mlJn afstudeerperiode is onderzoek verricht aan software-pakketten, die gebruikt worden om het gedrag van systemen te analyseren en regelingen te ontwerpen. Het doel van dit onderzoek was het maken van een verantwoorde keuze omtrent de binnen het PRIMAL-pakket in te bouwen poolplaatsingsmodule voor MIMO-systemen. De module dient voor een bekend systeem op basis van poolkeuze een robuuste proportionele terugkoppeling te berekenen. Dit laatste valt onder de noemer "Computer Aided Control System Design" (CACSD) (zie [JAMS85]). In het bijzonder is gekeken naar de "control-toolboxes" van de software-pakketten. Achter­eenvolgens worden de volgende software-pakketten kort besproken: PC-MATLAB (en PRO-MATLAB), MATRIX-X, CTRL-C en KEDDC. De pakketten PC-MATLAB (en PRO-MATLAB) en MATRIX-X worden met elkaar vergeleken qua capaciteiten en gebrui­kersvriendelijkheid. Met betrekking tot de pakketten KEDDC en CTRL-C worden slechts enkele korte opmerkingen gemaakt.

3.2. PC-MATLAB (PRO-MATLAB).

Een van de eerste pakketten op het gebied van de sys­teemtheorie was MATLAB. Van oorsprong is MATLAB niet bedoeld voor CACSD, maar voor matrixalgebra in het algemeen. De enige datastructuur binnen MATLAB is de complexe "double precision" matrix. MATLAB was de voorganger van PC-MATLAB en PRO-MATLAB, geschikt voor VAX-computers van DEC (hierin zitten enkele krachtige, numeriek stabiele algoritmen verwerkt voor regelaaront­werp), MATRIX-X en CTRL-C.

PC-MATLAB en PRO-MATLAB beschikken over een groot aantal ingebouwde functies, gerangschikt in een aantal "tool­boxes". Deze toolboxes worden hier vermeld, samen met een aantal voorbeelden. In eerste instantie wordt gesproken over PC-MATLAB. De mogelijkheden, die dit pakket kent, zijn ook ingebouwd in PRO-MATLAB. Aan het eind van 3.2 besluiten we met een korte opmerking over PRO-MATLAB. De toolboxes bevatten functies voor:

standaard functies:

signaal-analyse

identificatie

Basis-bewerkingen, matrixverme­nigvuldiging, inverse, decompo­sities enz. Fouriertransformatie, Inverse Fourier-analyse, correlatieanaly­se enz. Overdrachtsfuncties, schattingen

3. ONDERZOEK SOFTWARE-PAKKETTEN. Pag. 3.2.

regelaarontwerp van modellen (SISO en MIMO). LOG-algoritme, regelbaarheid en observeerbaarheid, poolplaatsing.

Het rekenwerk kan zowel in het continue als het discrete tijddomein gebeuren. Het scala van MATLAB functies kan door de gebruiker uit­gebreid worden door buiten MATLAB om, zelf functies te definiëren met behulp van de MATLAB-editor.

Puntsgewijs komen nu een aantal functies en mogelijk­heden van MATLAB aan de orde, voorzien van opmerkingen. Hoofdzakelijk wordt gesproken over de control-toolbox. a. Meetdata kunnen ingelezen worden m.b.v. "load" als

de data in een ASCII-file staat of met het commando "translate", dat de data naar het MATLAB-fileformat converteert. Het is ook mogelijk vanuit MATLAB data te exporteren.

b. MATLAB kent een cyclische "command-stack". Tien commando's die eerder zijn gegeven in MATLAB worden bewaard.

c. De grafische mogelijkheden zijn vrij uitgebreid. Arrays van willekeurige data zijn tegen elkaar uit te zetten. In vertikale richting kan men meerdere arrays tekenen ten opzichte van de onafhankelijke variabele (bijv. meerdere stapresponsies in een figuur. Overigens kan men de stapresponsies steeds maar van één ingangssignaal tekenen. Tot de grafische mogelijkheden behoren o.a.

- Nyquistplaatjes - Bodeplaatjes

Rootlocus-figuren - Logaritmische schaling - 3D-plaatjes (zonder schaalverdeling) - Labeling van assen, belijning in plaatjes - Creëren van (slechts) vier subwindows

d. Het is mogelijk om systemen aan elkaar te koppelen met behulp van "parallel, series, feedback, append en conneet (of block-build)". Van te voren moet men wel op papier een schets hebben van de configur~­tie. Dit kan veel voorbereidend werk met zich mee­brengen.

e. MATLAB kan werken met zowel "State-Space"- als (SISO-)"Matrix Fraction Description"-modellen.

f. De MATLAB-functies "ctrb" en "obsv" berekenen respectievelijk de regelbaarheids- en observeer­baarheidsmatrices. die in Hoofdstuk 2 gedefinieerd zijn. De MATLAB-functie "ctrbf" sp 1 i tst het systeem in een regelbaar en een niet-regelbaar deel als de rang van de regelbaarheidsmatrix kleiner is dan n. Dit gebeurt met een unitaire gelijkvormigheids­transformatie, zodanig dat het systeem in de zg. "controllability-staircase"-vorm komt te staan. Hierbij is (Ac:.B.::) volledig regelbaar. Met "obsvf" is op analoge wijze een "observability-staircase"­vorm te berekenen. Nu bevat de matrix a een obser­veerbaar deelsysteem Ao en een onobserveerbaar deelsysteem Auo. Het systeem (Ao.Cc) is volledig

3. ONDERZOEK SOFTWARE-PAKKETTEN. Pag. 3.3.

observeerbaar. De "controllability-staircase"-vorm ziet er als volgt uit:

a TB r =er

a [ ~: :] 6 = [ :]

Gebruikmakend van "minreal" is de minimale realisa­tie van een model te berekenen. Overtollige toe­standen worden geëlimineerd (voor modellen die geschreven zijn als overdrachtsfuncties met nulpun­ten en polen komt het erop neer dat nulpunten en polen, die elkaar (vrijwel) compenseren, verwijderd worden) . "Minreal" maakt gebruik van "obsvf" en "ctrbf".

g. Poolplaatsing m.b.v. "Acker" en "Place". Met de eerstgenoemde functie, waarvan het algorithme is gebaseerd op de theorie van Ackermann, kan men alleen polen plaatsen van systemen met één ingang. In de functiespecificatie claimt men dat "Acker" minder betrouwbaar is dan "place". Deze laatste functie berekent de matrix F in y-~+F~ via een transformatie naar een basis van eigenvectoren behorende bij de gewenste eigenwaarden op basis van een robuuste methode van Kautsky, Nichols en Van Dooren. Dus van de matrix M-A+B*F wordt een basis van eigenvectoren bepaald en hieruit wordt F bere­kend. Op beide methodes wordt in een later stadium uitgebreid ingegaan (Hoofdstukken 4 en 5). De extra vrijheidsgraden worden benut om de gevoeligheid van dn polen voor verstoringen in de gesloten loop te minimaliseren (robuustheid). Men dient er bij poolplaatsing rekening mee te houden, dat vertragingen ordeverhogend werken. Inverse responsies ZlJn met poolplaatsing niet zonder meer weg te regelen (wel met een voorwaarts­koppeling).

Tenslotte nog enkele losstaande opmerkingen en nadelen: - PC-MATLAB werkt vrij traag. Dit wordt mede veroorzaakt

door de kloksnelheid van de PC. Het werkgeheugen is beperkt tot 64k (Dit komt overeen met één 90x90-matrix. Het is vreemd dat met behulp van "minreal" één van twee complex geconjugeerde eigenwaarden kan worden verwij­derd. De overblijvende complexe eigenwaarden wordt reëe 1. MATLAB kent geen functies voor niet-lineaire syste­men.

3. ONDERZOEK SOF1WARE-PAKKETIEN. Pag. 3.4.

In PRO-MATLAB is een nieuwere versie van "place" inge­bouwd. Daarvan heb ik een enigszins gewijzigde versie gemaakt die meer input en output-variabelen kent. Deze functie die "PLACEPRO" is gedoopt, werkt volgens een algorithme dat aan de orde komt in Hoofdstuk 5. Van deze functie is namelijk herhaaldelijk gebruik gemaakt om de prestaties te vergelijken met die van de nieuwe PRIMAL-module "PPLCR".

3.3. MATRIX-X.

Net als MATLAB biedt MATRIX-X de gebruiker een groot aantal functies waarmee bewerkingen op het gebied van signalen, procesidentificatie en regelaarontwerp kunnen worden verricht. MATLAB en MATRIX-X zijn globaal op dezelfde leest geschoeid. Het schrijven van MATRIX-X­functies door de gebruiker is omslachtiger dan in MATLAB. Een functie is te schrijven met behulp van ieder willekeurig tekstverwerkerprogramma, maar hiervoor is het nodig alle variabelen op te bergen en daarna MATRIX­X te verlaten. Als de functie ingevoerd is moet MATRIX-X weer opnieuw gestart worden. Bovendien zijn zelfge­schreven functies pas bekend aan het begin van een sessie als ze eerst gedefinieerd zijn. Bij MATLAB is een functie direct bekend en te gebruiken. MATRIX-X kent een "debug"-optie om functies door te lopen. Communicatie met de "buitenwereld" (bijvoorbeeld het Operating System) is onmogelijk zonder het pakket te verlaten. Dit is een slechte eigenschap van het pakket. Puntsgewijs komen een aantal eigenschappen van het pakket aan de orde, die ook bij de bespreking van MATLAB de revue zijn gepasseerd. a. Ook in MATRIX-X kan met werkelijke meetdata gewerkt

worden als tenminste het format door MATRIX-X wordt geaccepteerd.

b. Een zwakker karaktertrekje is, dat· het pakket geen "command-stack" kent. Slechts het laatste conmando kan worden teruggeroepen.

c. De grafische mogelijkheden zijn in grote lijnen gelijk aan die van MATLAB (op de "System Build"­optie na) . Opmerkelijke verschillen zijn:

Men kan op willekeurige plaatsen op het scherm plotten omdat het scherm horizontaal en vertikaal in 100 stukken is te verdelen.

- Bij het plotten van bijvoorbeeld een staprespon­sie worden de overdrachten geplot van alle ingangssignalen naar alle uitgangssignalen.

d. Voor kleine systemen kan men, net als in MATLAB,met de commando's "series, parallel. connect" enz. wer­ken. Met het commando "build" komt men in de "Sys­tem-Build"-mode, een menu gestuurd grafisch pakket om systeemblokken aan elkaar te koppelen en hiermee te simuleren. MATLAB kent deze fraaie optie niet. "System-Build" is nuttig als men met grote systemen

3. ONDERZOEK SOFTWARE-PAKKEITEN. Pag. 3.5.

werkt. elf. Voor veel bewerkingen in MATRIX-X is het nodig om

het systeem in "State-Space" vorm in één grote ma­trix S onder te brengen:

s- [-H+] Indien men bijvoorbeeld de functies "cntrlable" en/of "observable" gebruikt, moet het systeem op deze manier beschreven zijn. Deze twee laatstgenoemde functies berekenen van S respectievelijk het regelbare en observeerbare deelsysteem en werken hetzelfde als de functies "ctrbf" en "obsvf" in MATLAB.

g. Poolplaatsing m.b.v. "poleplace". Dit kan alleen voor single-input systemen. Bij single-output systemen kan men de polen van de toestandsschatter aangeven. Het verschil in presta­ties met betrekking tot poolplaatsing van MATRIX-X en MATLAB is nihil.

3.4. CTRL-C.

Het pakket CTRL-C biedt niet wezenlijk meer mogelijk­heden dan MATLAB en MATRIX-X. Het is geschreven in Fortran. De versie waarmee ik gewerkt heb was geschikt voor VAX/VMS. De poolplaatsingsmogelijkheden zijn ook hier alleen voor SISO-systemen te gebruiken.

3.5. KEDDC.

Het in Bochum ontwikkelde pakket KEDDC is anders van opzet, dan de reeds besproken pakketten. KEDDC is opgebouwd uit een zevental zg. "managers". Dit zijn verzamelingen functies geschreven in Fortran, die betrekking hebben op één onderwerp. Zo zijn er bijvoor­beeld de signalmanager, de systemmanager, de graphics­manager (geschreven in Pascal) enz. Binnen een manager bestaan commando's uit twee letters. Dit is niet erg bevorderlijk voor de overzichtelijkheid en de gebrui­kersvriendelijkheid. Binnen een manager kan de gebruiker vaak kiezen uit verschillende menu's. Een groot nadeel is, dat de gebruiker steeds het gehele menu moet doorlo­pen als hij er op een gegeven moment achter komt, dat hij een bepaalde instelling wil veranderen. Dit is een tijdrovende bezigheid. Bovendien is de presentatie van de

3. ONDERZOEK SOFTWARE-PAKKETTEN. Pag. 3.6.

ingevoerde parameters niet erg overzichtelijk. Binnen het PRIMAL-pakket is dit met behulp van vragenpagina's opgelost. KEDDC is een veel omvangrijker pakket dan de reeds behandelde pakketten MATLAB en MATRIX-X. De manual bij het pakket weerspiegelt iets van de afmetingen. Indien men een probleem wil oplossen waarvoor in KEDDC nog geen algoritmen bestaan. dan beginnen de problemen. De combinatie van bestaande algoritmen tot nieuwe is niet zo eenvoudig als in de andere pakketten. Een erg mooie eigenschap van het pakket is dat het niet alleen zg. "help-functies" kent bij de commandos in de managers, maar bovendien bij foutmeldingen die bij het gebruik kunnen optreden. Dit is niet moeilijk te imple­menteren en wel zo elegant.

Op regelaarontwerpgebied zijn er programma's voor compensatieregelaars met en zonder toestandswaarnemers (state-observers, zie Hoofdstuk 4). stoorsignaalwaarne­mers, oplosmethoden voor Ricattivergelijkingen en pool­plaatsingsmethoden. Ook is het mogelijk om systemen te balanceren (en zodoende tevens beter te conditioneren). Het pakket kent transformaties naar verschillende bijzon­dere vormen van de systeemmatrices. Bijvoorbeeld: - Waarneembaarheidsnormaalvorm I waarnemernormaalvorm - Regelbaarheidsnormaalvorm I regelaarnormaalvorm - Jordanvorm - Upperl Lower Hessenbergvorm - Hessenbergl Nour-Eldin vormen enz.

3.6. Conclusies.

Dit hoofdstuk is een op zichzelf vergelijkend onderzoek beschrijft. volgende bladzijde is een zeer kort de genoemde pakketten.

staand geheel dat een In Tabel.3-1 op de

overzicht gegeven van

Cellier et. al hebben een uitgebreid onderzoek gedaan naar de mogelijkheden van 21 softwarepakketten [CELL86). Op dezelfde wijze als hierboven zijn de pakketten gehono­reerd met 0,1 of 2 punten naarmate de prestaties beter waren op een bepaald gebied. Voor een bepaald onderdeel waar naar gekeken wordt, ZlJn deze punten aan elkaar gerelateerd. Uit het onderzoek blijkt dat het pakket MATRIX-X met kop en schouders boven de rest uitsteekt. CTRL-C, PC-MATLAB en KEDDC zijn ook alle veel beter dan gemiddeld.

In het volgende Hoofdstuk wordt wat dieper ingegaan op een tweetal methoden voor poolplaatsing uit de litera­tuur. Deze methoden zijn niet geïmplementeerd in PRIMAL en de redenen hiervoor komen aan de orde.

3. ONDERZOEK SOFTWARE-PAKKETTEN. Pag. 3.7.

PC-MATLAB MATRIX-X CTRL-C KEDDC

continue tijddomein 2 2 2 2

discrete tijddomein 2 2 2 2

MIMO-syst. 1 1 1 2

Niet-lin. 0 2 2 1

commando- 1 )

gestuurd 2 0/2 2 1

uitbreid-baarheid 2 2 2 1

omvang 1 1 1 2

model-reductie 1 2 1 0

pool-plaatsing 2 1 1 1

adaptieve regelingen 1 1 0 2

"source" beschikb. 1 0 0 2

Tabel.3-1 Een kleine vergelijking tussen de perfor­mances van de softwarepakketten.

3) De "System-Build" optie is menu-gestuurd.

4. POOLPLAATSINGSTECHNIEKEN. Pag. 4.1.

4. POOLPLAATSINGSTECHNIEKEN.

4. 1 . In 1 ei ding.

In dit Hoofdstuk worden een tweetal poolplaatsings­technieken besproken. De uiteindelijk binnen het PRIMAL­pakket geïmplementeerde robuuste methode van Kautsky, Nichols en van Dooren komt uitgebreid in het volgende Hoofdstuk aan de orde. In 4.2 wordt ingegaan op de methode, die ik voor het gemak de Ackermann-methode noem en in 4.3 komt zeer beknopt de methode aan de orde waarbij een systeem naar Upper Hessenbergvorm wordt getransformeerd met behulp van een aantal orthogonale transformaties. Er wordt steeds van uitgegaan, dat er een model van een systeem bekend is. Dit zou bijvoor­beeld met behulp van PRIMAL-identificatiemethoden geschat kunnen zijn.

4.2. De methode van Ackermann.

Besproken worden achtereenvolgens de methode die Acker­mann beschrijft (zie [ACKE72], [ACKE77], [ACKE83) en [ACKE85]) en het principe van de toestandswaarnemer ("state observer") indien niet alle toestanden direct fysisch zijn terug te koppelen.

De poolplaatsingsmethode via toestandsterugkoppeling (zie Fig.2-6) die door Ackermann wordt beschreven, vereist dat het systeem volledig regelbaar is. Dit bete~~nt, dat de regelbaarheidsmatrix S genoemd in 2.2, rang n heeft. Verder dient de nxp B-matrix van het systeem rang p te hebben. Deze laatste eis is geen zware eis, omdat dit impliceert dat het systeem geen ononder­scheidbare invloeden van de ingangen on.dervindt. Bij het identificeren van een systeem worden dergelijke relaties niet meegenomen. De eerste eis (volledige regelbaarheid) is wel een vrij zware eis. Het is onmogelijk om systemen te gebruiken bij het algorithme, die één of meer niet­regelbare eigenwaarden (modes) hebben. Dit is een beperking. In Hoofdstuk 5 zal blijken dat deze eis niet gesteld hoeft te worden voor het regelen van een systeem met behulp van de robuuste methode volgens Kautsky, Nichols en Van Dooren. omdat deze methode wel niet­regelbare systemen kan hanteren.

Bij de Ackermann-methode worden eerst n onafhankelijke vectoren uit de matrix S (formule (2.4)) gekozen. Hierbij gaat men als volgt te werk: Kies b1, ga vervol­gens na of A*Q1 lineair onafhankelijk is van Q1. Indien dit het geval is, controleren we hetzelfde voor A2 *Q1. Indien dit niet het geval is vervolgen we met ~ enz. Stel dat we in de reeks met Q1 door kunnen gaan tot Aj*b1, dan is met de eerste ingang (horend bij b1) een (j+l)• orde systeem te regelen. Het getal (j+l) heet de

4. POOLPLAATSINGSTECHNIEKEN. Pag. 4.2.

regelbaarheidsindex voor de eerste ingang. De regelbaar­heictsindices voor de p ingangen worden vanaf nu aange­duid met n1, n2 t/m np. Wanneer AJ*b~ de laatste van de bij Q:~. behorende onafhankelijke kolommen is, dan gaat men de afhankelijkheden van de vectoren AJ*Q~+~, AJ*Qi+2, enz. na, van alle vorige lineair onafhankelijke (reeds geselecteerde) vectoren volgens:

met k > j ( 4.1)

De vectoren ~1 zijn reeds geselecteerde vectoren. De getallen c1 zijn coëfficiënten. Tenslotte levert dit de pxp-matrix M, waarin alle getallen m:~.J zijn verzameld.

1 m~2 m13 m1p M 0 1 lll::z3 lll::zp (4. 2)

0 0 1

0 0 0 0 1

Indien de n onafhankelijke vectoren zijn bepaald worden deze samengevoegd in een matrix R. Van deze matrix R wordt de inve~se bepaald. Uit deze matrix wordt de transformatiematrix T bepaald met behulp van dié rijen uit R-· 1

, die :1oren bij de kolommen van R, die ieder overeenkomen me~: een laatste onafhanke 1 ijke vector van een reeks bellurende bij een bepaalde Q. De matrix T wordt hier niet gegeven. T is nu de transformatie­matrix, die het systeem tran~formeert naar de z.g. "kanonieke regelingsnormaalvorm", ontwikkeld door Luenberger [LUEN67]. Met behulp van ~-T*~ levert dit het volgende systeem:

~((k+1)T) • AR*~(kT) + EA*g(kT) (4. 3)

~(kT) =~*~(kT) + D*g(kT) (4.4)

De matrices AR en ER ZlJn op de volgende bladzijde weergegeven. De AR-matrix bestaat uit diagonaalmatrices met afmetingen n:~. xn:~. (de rege lbaarheidsindices) die geschreven ZlJn in de regelinganormaalvorm (ook wel Frobeniusblokken genoemd) met matrices daarnaast waarvan slechts één rlJ (de laatste). elementen bevat ongelijk aan nul. De B-matrix is het produkt van de genoemde matrix M en een matrix E.

4. POOLPLAATSINGSTECHNIEKEN.

-0 1 0 . . 0 0 . . 0 0 1 . . 0 0 . .

. . . . 0 . . 1 0 . .

(gl 1 ) T (gc:o:?)T

'AR T* A*!- 1 =

0 . . 0 0 1 0 . . 0 . . 0 0 0 1 . .

. . .. 0 . . 0 0 . .

(.9:_:21) T (.9:_:z2)T

0 . . 0 0 . . 0 . . 0 0 . .

. . . . 0 . . 0 0 . .

(_9p1 )T (_ç!p2)T ...._

r-- -0 0 0 0 0

n1 1 0 0

0 0 0 ElF. - T*B = 0 0 * M .. E*M

~ 0 1 0 0

0 0 0 0 0

0 0 1 - -

p

De matric CR is gelijk aan C*T- 1•

Men definieert F als volgt:

F

Pag. 4.3.

-0 0 .. 0 0 0 .. 0

. . 0 0 .. 0

(g1p) T

0 0 .. 0 0 0 .. 0

. . . 1 0 .. 0

(~p)T

0 0 1 0 .. 0 0 0 0 1 .. 0

. . 0 0 .. 1

(_ç!pp)T

-(4. 5)

(4.6)

(4.7)

4. POOLPLAATSINGSTECHNIEKEN. Pag. 4.4.

Toestandsterugkoppeling met behulp van:

( 4. 8)

levert

~((k+1)T)

(4. 9)

Nu blijkt uit vergelijking (4.9), dat de systeemmatrix AR+E*FR dezelfde vorm heeft als de matrix ~ op de vorige bladzijde, immers BR*F*~=E*M*Ml 1 *FR*T*~=E*FR*~· Het verschil is, dat de elementen diJ in de matrix AR nu vervangen zijn door de elementen h~J=d1J+f1J. De elemen­ten f1J zijn elementen uit de matrix FR. Alle elementen h1_:1 in de matrix, die niet in een diagonaalblok (Frobe­niusblok) staan, worden nul gemaakt door fiJ gelijk te kiezen aan -di _:J • Een dee 1 van de matrix FR is dan reeds gevuld. De systeemmatrix bestaat uiteindelijk uit P diagonaalblokken en verder alleen maar nullen. Ieder Frobeniusblok op de diagonaal stelt nu een deelsysteem voor van het totale systeem. Elk deelsysteem wordt geregeld door één ingangssignaal. Dit laatste valt te concluderen uit de matrix E voor de vector y in verge­lijking (4.9). De determinant van de systeemmatrix is gelijk aan het produkt van de p determinanten van de p Frobeniusblokken. We krijgen derhalve een karakteristie­ke vergelijking, die het produkt is van p karakteristie­ke vergelijkingen. De karakteristieke vergelijking van het volgende Frobeniusblok:

FROB

luidt

0 1 0 0 0 1 0 0 0 0 1

0 0 0

1 a.-

P(z) - -a1 - a:zz - d3Z2 - ... - a,...Z"'"- 1 - zr

(4.10)

(4.11)

Door de keuze van de coëfficiënten in het polynoom P kunnen de polen van het subsysteem vastgelegd worden. Bij het kiezen van deze coëfficiënten heeft men nog wel keuzevrijheid, maar men heeft veel keuzevrijheid voor de matrix F verloren doordat ervoor gezorgd moest worden,

4. POOLPLAATSINGSTECHNIEKEN. Pag. 4.5.

dat de getallen hiJ buiten de diagonaalblokken in de matrix ~<+E*FR nul zouden worden.

Door de keuze van de coëfficiënten in de p karakteris­tieke vergelijkingen (er zijn evenveel karakteristieke vergelijkingen als ingangen) zijn tenslotte alle elemen­ten in de matrix FR bekend. Door de transformatie F=M-- 1 *FF<*T is tenslotte ook de matrix F bekend. Dit is het eindpunt van de berekeningen. Tijdens een bezoek aan de Ruhr-Universität te Bochum in het voorjaar is uitvoerig met de heren Unbehauen en Schmidt gesproken over (robuust) regelen. Hier zijn ook een aantal grote nadelen besproken van de methode die werkt met de kanonieke vormen van Luenberger, zoals beschreven door Ackermann. Deze nadelen zijn:

1. De kanonieke vormen van Luenberger worden bereikt via transformaties die numeriek instabiel kunnen zijn. Het gevolg hiervan is dat de poolplaatsingsme­thode die hierop gebaseerd is, veel hinder kan ondervinden van rekenfouten, vooral bij slecht geconditioneerde problemen.

2. In de door Luenberger ontwikkelde kanonieke vormen heeft men weinig vrijheid om de regeling robuust te maken omdat uiteindelijk het aantal vrijheidsgraden (parameters) in de karakteristieke vergelijkingen even groot is als het aantal te kiezen polen. De getallen in de F-matrix die gekozen zijn om het gesloten systeem in diagonaalvorm te krijgen met alleen Frobeniusblokken op de diagonaal ZlJn immers "verloren" gegaan voor de keuzevrijheid. Die getal­len werden in feite gedwongen gekozen.

3. De onafhankelijkheid van de vectoren in de regel­baarheidsmatrix moet onderzocht worden. In de regel zal blijken dat vrijwel het gehele systeem te regelen is met slechts enkele van de ingangssig­nalen. De andere ingangssignalen regelen hele kleine systemen. Hiertoe dient het volgende voorbeeld: stel dat men een systeem heeft van orde 16 met 3 ingan­gen. Het kan dan voorkomen, dat met ingang 1 een systeem van orde 14 is te regelen en met de beide andere ingangen systemen van orde 1. Het probleem wordt er dan niet eenvoudiger op. Men moet 14 polen kiezen voor het eerste deelsysteem en dit is niet echt veel gemakkelijker dan het kiezen van de polen voor een systeem van orde 16.

Tot zover de poolplaatsingsmethode van Ackermann. Tot slot van 4.2 wordt nog even ingegaan op de toestands­waarnemer of "state observer". Het kan voorkomen dat van een systeem niet alle toestanden direct zijn terug te koppelen. Zo heb ik met behulp van PRIMAL van een in de vakgroep aanwezige warmtewisselaar een vierde orde model met twee ingangen en twee uitgangen geschat. Er zijn dus vier toestanden, maar deze toestanden zijn niet direct terug te koppelen, zo men ze al kent. Derhalve zullen deze toestanden eerst bepaald moeten worden. Dit gebeurt met behulp van een toestandswaarnemer. Overigens

4. POOLPLAATSINGSTECHNIEKEN. Pag. 4.6.

is dit geen concreet object, zoals de naam wellicht suggereert. maar een algorithme. Nemen we een systeem, waarvan de D-matrix gelijk is aan nul (dus y(k)=C*~(k)). In Fig.4-1 is een systeem weerge­geven met een toestandswaarnemer daaronder. De toe­standswaarnemer berekent de toestanden ~ met behulp van het ingangs- en het uitgangssignaal van het oorspronke­lijke systeem.

.!!,(k) -B t I z• - c ....

~ ~

x(k+ 1) x(k)

+u

A <J--

'7 ~(k) H ....... - )

~

,.-- A <J--

n+ +~'7 L-....p B + +o---e::= I z-t v c --<><.

!,(k+l) ....,

tk _() ~

Fig.4-1 Systeem s~en met toestandswaarnemer.

We noemen e(k)=Cx(k)-C~(k). We willen dat de toestanden ~(k+l) convergeren naar de toestanden x(k+l). De toe­standsvergelijking voor de toestandswaarnemer luidt:

~(k+l) - A*&(k) + B*g(k) + H*~(k)

A*~(k) + B*g(k) + H*( C~(k)-C~(k) (4.12)

en voor het systeem:

4. POOLPLAATSINGSTECHNIEKEN. Pag. 4.7.

~(k+l)

Trekt men vergelijking (4.12) dit (met ~(k)=~(k)-~(k)) eigenwaardenvergel ijking:

~(k+1) (A-H*C)~(k)

( 4. 13)

af van (4.13) dan levert en y(k)=C*~(k) de volgende

(4.14)

De polen van de matrix A-H*C dienen zo gekozen te worden dat er een snelle convergentie van ~(k) naar nul plaats vindt (binnen een klein aantal bemonsteringsinterval­len). In dat geval convergeren de geschatte toestanden naar de werkelijke. Deze geschatte toestanden zijn terug te koppelen. In de reeds genoemde literatuur van Acker­mann wordt diep ingegaan op het fenomeen "toestandswaar­nemer".

4.3. Poolplaatsing via transformatie naar Upper

Hessenberg-vorm.

De methode van poolplaatsing die verloopt via een aantal orthogonale transformaties van een systeem naar Upper Hessenberg-vorm is ontwikkeld door Patel en Misra (zie [PATE84]). Voor het kunnen toepassen van deze methode op een model van een systeem worden dezelfde eisen gesteld aan de systeemmatrices, als in 4.2. Ook met deze methode zijn dus geen systemen te hanteren met niet-regelbare polen.

Omdat het algorithme tamelijk uitgebreid is en het bovendien niet geïmplementeerd wordt binnen het PRIMAL­pakket wordt er hjer niet diep op ingegaan.

Een systeem wordt eerst getransformeerd naar een zodani­ge vorm dat er een aantal "single-input" systemen overblijven. Ieder te regelen "single-input" systeem wordt naar Upper Hessenberg-vorm getransformeerd. In dat geval is de A-matrix van het "single-input" systeem dat geregeld wordt via de k• ingang, een matrix met alle elementen gelijk aan nul die beneden de eerste subdiago­naal liggen (AiJ=O als i2j+2) en de B-matrix is een kolom met slechts het k• element ongelijk aan nul·Nu worden volgens een bepaalde methode (gebaseerd op het "implicitly shifted QR-algorithm" een vector f_T en een orthogonale transformatie N bepaald, zodanig dat W*(A-Q*f_T)*N in reële "Schur"-vorm kan worden geschre­ven. Dergelijke matrices zijn bovendriehoekamatrices met de gewenste eigenwaarden op de diagonaal. De vectoren f_T (p stuks) worden later samengevoegd in één matrix F*. De "vectorblokken" komen liggend op de diagonaal, zoals in de volgende vergelijking is weergegeven.

4. POOLPLAATSINGSTECHNIEKEN.

(f_1) T

F* 0 0 0

0 0 0 0 0

0 0 0 0

Pag. 4.8.

0 0 (4.15)

Dit is de terugkoppelmatrix. Na terugtransformaties wordt de terugkoppelmatrix F verkregen.

Ook aan deze methode kleven een aantal nadelen:

1. Bij deze methode blijkt wederom (zoals in 4.2) dat vrijwel het gehele systeem steeds te regelen is met slechts enkele van de ingangssignalen. De andere in­gangssignalen regelen wederom hele kleine systemen.

2. De Hessenbergvormen worden weliswaar bereikt met behulp van orthogonale transformaties (dus numeriek stabiel). maar verderop in het algorithme wordt niet meer over numerieke stabiliteit gesproken. Met name in Bochum twijfelden Schmidt c.s. over de numerieke betrouwbaarheid van bepaalde vervolgberekeningen.

In Bochum is tenslotte gesproken over een enkele jaren geleden ontwikkelde robuuste poolplaatsingsmethode. De nadelen van de in 4.2 en 4.3 besproken methoden waren voldoende ernstig om mij in juli te doen besluiten definitief af te zien van implementatie van de door Ackermann en Patel beschreven methoden. De keuze is gevallen op de robuuste methode van Kautsky, Nichols en Van Dooren. die in het volgende Hoofdstuk uitvoerig aan de orde komt.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.1.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER.

5 . 1 . In 1 ei ding.

In de procesindustrie is men voor veel systemen geïnte­resseerd in robuuste regelingen. Tot nu toe hebben we bij het plaatsen van de polen van een systeem nog niet gekeken naar de mate van robuustheid van deze actie. Het is de vraag in hoeverre de met behulp van de algorithmen in Hoofdstuk 4 berekende regelingen robuust zijn. Dit Hoofdstuk gaat over de robuuste poolplaatsingsmethode van Kautsky. Nichols en Van Dooren (zie [KAUT85). [DOOR81] en [FLET85]). Allereerst is het nodig. het begrip "robuust" nader toe te lichten. Een regeling is robuust. als de gekozen eigenwaarden van het systeem zo ongevoelig mogelijk zijn voor veranderingen van de systeemparameters in het gesloten systeem. In mathematische zin wordt hiermee bedoeld. dat onder invloed van veranderingen van getal­len in de A- en/of B- en/of F-matrix de eigenwaarden van het gesloten systeem A+B*F zo min mogelijk veranderen. Vaak dient men onder veranderingen te verstaan: wijzi­gingen die plaatsvinden in een tijdsduur die in de orde van grootte van de procestijdconstanten ligt. Zo is het verouderen van een proces moeilijk robuust te regelen, omdat dat vaak een traag (drift)proces is. In het robuuste poolplaatsingsalgorithme dat ik geduren­de mijn afstuderen heb geïmplementeerd is de mogelijk­heid aanwezig om verstoringen in de matrices A en/of B en/of F aan te brengen om zo de robuustheid van de regeling te testen. Het is zaak, de gevoeligheden van de eigenwaarden voor parameterveranderingen te minimaliseren. Indien dit gedaan wordt. geldt bovendien dat zowel de bovengrens van de norm van de terugkoppelmatrix F geminimaliseerd wordt als de bovengrens van de "transient response" van het systeem. De stabiliteitsmarge van het systeem wordt gemaximaliseerd. In het vervolg van dit hoofdstuk worden een aantal theorema's met betrekking tot de mathematiek achter het robuuste regelen genoemd of afgeleid. Daarna wordt ingegaan op enkele eigenschappen van het robuust gere­gelde systeem. In 5.5 komt tenslotte het algorithme uitgebreid aan de orde. Een alternatieve methoden (zie 5.6) is geïmplementeerd in PC-MATLAB en PRO-MATLAB, zoals reeds eerder vermeld. Bij het behandelen van deze onderwerpen wordt in grote lijnen het artikel van Kautsky. Nichols en Van Dooren gevolgd ([KAUT85]). Het vergelijken van de prestaties van de module PPLCR die in PRIMAL is ingebouwd en de functie "PLACEPRO" in (PC- en PRO-) MATLAB is een belangrijk onderdeel van mijn afstu­deeronderzoek.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.2.

5.2. Theorema's over robuust regelen.

De F-matrix voor een MIMO-systeem ligt niet eenduidig vast, tenzij een systeem slechts één ingang heeft. Men heeft dus nog vrijheid in de keuze van de F-matrix. Juist deze keuzevrijheid kan gebruikt worden om een goed geconditioneerd (robuust) gesloten systeem te verkrij­gen. Deze keuze dient uiteraard op een numeriek stabiele manier te gebeuren. We dienen F zo te kiezen, dat A+B*F regulier is. Dit legt bepaalde eenvoudige beperkingen op aan de multipliciteiten van de eigenwaarden. Hierover later meer. Allereerst zullen een aantal theorema's besproken worden, die van belang zijn voor een goed begrip van de rest van de tekst.

Theorema 1

Een proportionele terugkoppelmatrix F van een systeem bestaat voor elke set van gewenste eigenwaarden L dan en slechts dan als (A.B) volledig regelbaar is. De regelbaarheid van een systeem is besproken in 2.2. Voor een volledig regelbaar systeem geldt:

{ ~TA == l:1. ~T én ~TB ., 0 } ( •) ~T = 0 (5 .1)

Hierin is ~T een linker-eigenvector en 1:~. de bijbehoren­de eigenwaarde. Stel dat er een ~T ~ 0 is, zodanig dat ~TA= l;,~T en ~TB= 0, dan geldt ~T(A+B*F) • l~~T voor iedere matrix F. Derhalve is 1:~. een eigenwaarde die door geen enkele F te beïnvloeden is. De eigenwaarde 1:~. is niet regelbaar (niet verplaatsbaar in het z-vlak) en moet behoren tot iedere set van eigenwaarden die men kiest voor het betreffende systeem. Dit alles wordt weerspiegeld door het volgende theorema.

Theorema 2

Indien (A,B) niet volledig regelbaar is, dan bestaat er een F dan en slechts dan als de set van toegewezen eigenwaarden L alle niet-regelbare eigenwaarden van het systeem bevat. Hoewel de niet-regelbare eigenwaarden dus onveranderd meegenomen moeten worden is het wel mogelijk om de wel­regelbare eigenwaarden robuust te regelen. Het algorithme binnen de PRIMAL-module PPLCR gebruikt een ander robuustheidscriterium dan de PRO-MATLAB­functie PLACEPRO.

Voordat het volgende theorema besproken wordt. defini­eren we allereerst het begrip "gevoeligheid van een eigenwaarde'' voor veranderingen in de matrix A+B*F (dus indirect ook voor veranderingen in de A-.B- en/of F­matrix). Dit begrip is door Wilkinson [WILK65] gedefi-

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.3.

nieerd als het inwendig produkt van de genormaliseerde linker- en rechter-eigenvectoren van de systeemmatrix van het gesloten systeem. Een rechter-eigenvector van A+B*F voldoet aan:

(A+B*F) 2$..:; ( 5. 2)

en een linker-eigenvector voldoet aan:

(J0) T (A+B*F) (y_; )'M (5. 3)

Deze laatste vergelijking is equivalent met:

( 5. 4)

Omdat de determinant van een matrix CM in dit geval) gelijk is aan de determinant van de getransponeerde van die matrix, ZIJn de eigenwaarden van beide matrices hetzelfde. (Is de matrix bovendien Unitair of Hermi­tisch, dan zijn ook de eigenvectoren hetzelfde.) Volgens Wilkinson is de gevoeligheid (s_;) van de eigen­waarde l_; gelijk aan de absolute waarde van het volgende inprodukt:

< 1 (5.5)

Hierin zijn 2$..:;~ en (~~)T respectievelijk de genormali­seerde rechter- en linker-eigenvector, behorend bij eigenwaarde 1..:~.

= en 11 x~ llz

cx-1 )T~"j ~~ = (5.6)

(Met YT=X- 1, vanwege M*X-X*L en YT*M=L*~)

Wat nu nagestreefd wordt is een zo klein mogelijke gevoeligheid van de eigenwaarden. In dat geval kan men pas spreken over een op robuuste wijze geregeld systeem. Gebruiken we de genormaliseerde eigenvectoren in (5.6) dan vinden we:

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.4.

<~ > Tx-1 *X~ I S..:;

11 x~ 112 11 (X-1) T~ 112

1 (5. 7)

11 x~ ll:z 11 (X-1) T~ ll:z

Omdat 11 x~ 112 ~ 11 x ll:z 11 ~ 112 = 11 x 11 2 en

derhalve ook 11 < x-1 > T ~_j ll:z ~ 11 x-1 fl:z geldt:

1/s_j ~ k:z (X) met k2 (X) = 11 x 11 :z * 11 x- 1 11 :z (5. 8)

k:z(X) is het conditiegetal van de matrix X. Het getal c_j is de reciproke waarde van sJ en wordt door Kautsky, Nichols en Van Deoren het conditiegetal van het eigen­vector-koppel ~ en ~J genoemd. Algemeen geldt:

max ( 1/s_j, ) max ( c_j ) ~ k:.or (X) (5. 9)

Hoe kleiner het conditiegetal van de matrix X van (rechter)-eigenvectoren, hoe kleiner de gevoeligheden van de eigenwaarden voor fluctuaties van elementen van M=A+B*F. In het ideale geval is k:z(X)=1 indien X een orthonormale basis van eigenvectoren is (X is dan unitair of Hermitisch). In dat geval zijn alle c..:~ ook gelijk aan 1 en dat is de kleinst mogelijke waarde. Tijdens het op een robuuste manier plaatsen van de eigenwaarden van een systeem dient derhalve gestreefd te worden naar een zo goed mogelijk geconditioneerde basis van eigenvectoren X (dus een basis van eigenvectoren die zo goed mogelijk orthonormaal is). Voor het gemak worden de genormaliseerde linker- en rechter-eigenvectoren vanaf nu aangeduidt met 2fJ en ~ . De matrix X van genormaliseerde eigenvectoren 2fJ voldoet aan :

(A+B*F)*X=X*L (5.10)

Hierin is L de matrix met op de diagonaal de geplaatste eigenwaarden van het systeem.

Theorema 3

Indien we de eigenvectoren in een matrix X verenigen en indien de OR-decompositie van de nxp-matrix B met rang p er als volgt uitziet:

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.5.

B (5.11)

Dan bestaat er een terugkoppelmatrix F dan en slechts dan als:

(5.12)

De matrix Q = [ Oo 01 ] is een hermitische matrix d.w.z. de matrix heeft orthonormale kolommen. De matrix Oo is een nxp-matrix. Van een hermitische matrix is de gecon­jugeerde getransponeerde gelijk aan de inverse van de matrix. Unitaire matrices zijn zuiver reëel en derhalve geldt voor dergelijke matrices dat de getransponeerde gelijk is aan de inverse. Unitariteit is een speciaal geval van Hermiticiteit. Vanwege het feit dat een fysisch systeem een reële B-matrix heeft en dus een reële OR-decompositie is de Q-matrix steeds unitair. De matrix R is een orthogonale bovendriehoeksmatrix. Met behulp van formules (5.10) en (5.11) kan men aflei­den, dat:

(X*L*X- 1 - A) (5 .13)

en dus:

(5 .14)

en ook (5.12) volgt hieruit:

0 = (Q1 )T* (X*L*X- 1 -A) (5.15)

Het is ook mogelijk om een singuliere waarden-ontbinding van B te berekenen. In dat geval wordt de matrix R geschreven als R- L*VT. Dit is het produkt van de othogonale matrix V en de diagonaalmatrix L met op de diagonaal de singuliere waarden van matrix B. Formule (5.15} geeft weer, dat alle vectoren in de matrix (X*L*X- 1 -A) loodrecht staan op de vectoren in de matrix (Ql)T. Dit is belangrijk voor het volgende theorema.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.6.

Theorema 4

De met de eigenwaarde 1~ van A+B*F corresponderende eigenvector ~3 moet deel uitmaken van de subruimte:

(5.16)

Hierin wordt argument. De met:

met "null" bedoeld, de nulruimte van het dimensie van de nulruimte van s~ is p+k~

(5.17)

De waarde van kJ is voor iedere eigenwaarde verschil­lend. Het bewijs van (5.16) en (5.17) wordt gegeven in Appendix A. De waarden van de getallen kJ hebben gevolgen voor de multipliciteiten die gekozen mogen worden in het pool­plaatsingsprobleem. De maximaal te kiezen multipliciteit is namelijk gelijk aan de dimensie van de nulruimte van s~. Indien (A,B) volledig regelbaar is, ZlJn de waarden van k3 voor alle eigenwaarden (voor alle j) gelijk aan nul. De maximale multipliciteit, die men aan een eigen­waarde mag toekennen bedraagt in dat geval: p+O. Een volledig regelbaar systeem met p ingangen kan dus geen regelbare eigen•-vaarden hebben met een multipliciteit groter dan p. In het geval dat (A,B) niet volledig regelbaar is en dus niet-regelbare eigenwaarden heeft, geldt wederom dat de maximale multipliciteit van de eigenwaarden gelijk is aan de dimensie van de nulruimte van SJ . Echter omdat de getallen kJ voor niet-regelbare eigenwaarden niet gelijk ZlJn aan nul maar groter, is de maximaal te kiezen multipliciteit voor dergelijke eigenwaarden: p+kJ. Er is nu echter ook sprake van een minimale multipliciteit. Deze minimale multipliciteit is gelijk aan het minimum van de bij de eigenwaarde behorende kJ en de multiplici­teit, die de eigenwaarde daadwerkelijk heeft in het oor­spronkelijke ongeregelde systeem. Niet-regelbare eigenwaarden moeten meegenomen worden. We hadden immers enkele matrix F de niet-regelbare positie kan laten veranderen in het vlak.

bij de poolkeuze gezien, dat geen eigenwaarden van

complexe s- of z-

Het poolplaatsingsprobleem is nu in feite volledig gedefinieerd. We dienen niet-regelbare eigenwaarden bij het pool­plaatsingsprobleem te kiezen met een multipliciteit, die tussen bepaalde grenzen ligt. Daarnaast is er nog een keuzevrijheid voor regelbare eigenwaarden die echter

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.7.

wel beperkt is door een maximale multipliciteit. Vaak heeft een systeem alleen regelbare eigenwaarden, zodat de keuze vrijwel onbeperkt is. Door een zo goed mogelijk geconditioneerde basis van eigenvectoren te kiezen is een robuuste regeling te berekenen. Het algorithme doet dit op een iteratieve wijze.

5.3. Eigenschappen van robuust geregelde systemen.

Het minimaliseren van het conditiegetal k2(X) van de matrix X (wat tevens inhoudt dat de gevoeligheden cJ worden geminimaliseerd, zoals bleek uit (5.9)) leidt tot een aantal gunstige eigenschappen van het geregelde "closed-loop" systeem. Er is een relatie af te leiden tussen de norm van de matrix F enerzijds en het conditiegetal k2(X) ander­zijds. Een dergelijke relatie is ook af te leiden voor de "transient responses" van de toestanden ~(t) (of ~(k)) van het systeem.

5.3.1. Bovengrens componenten van F.

Volgens theorema 3 uit 5.2 geldt voor de F-matrix:

F {5 .14)

Nemen we de 2-norm van het linker- en rechterlid, dan geldt (volgens Cauchy-Schwartz):

11 F 11 2 ~ lP~- 1 11 2 * 11 ( Qo ) T 11 2 * { 11 x 11 2 * 11 x- 1 H 2 * 11 L llz + 11 A 11=- )

(5 .18)

De singuliere waarden-ontbinding van B geeft: R = ~*VT. Nu geldt:

1

IIR- 111 2 '"' * IIVII 2

op (B) (5.19)

Hierin is Op(B) de kleinste singuliere waarde van B. De 2-norm van een matrix is de grootste singuliere waarde van die matrix. Daarom heeft L- 1 als grootste singuliere waarde de reciproke van de kleinste singuliere waarde van L. Overigens is de inverse van VT de matrix V zelf. vanwege de orthogonaliteit van de matrix V.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.8.

Omdat bovendien de matrix Q unitair is geldt:

(5.20)

De 2-norm van F wordt van boven begrensd door:

(5.21)

Dit is de bedoelde relatie tussen de 2-norm van F en het conditiegetal k2(X) van de matrix van eigenvecto­ren. Overigens is het niet alleen van belang, dat k2(X) klein is. Het is tevens belangrijk dat de nxp-matrix B rang p heeft. Hiervoor zijn twee redenen te geven: 1. Een nxp-(input)matrix met een rang kleiner dan p bevat nog een afhankelijkheid van ingangssignalen. Eén of meer kolommen kunnen geschreven worden als som van andere kolommen. De betreffende afhankelijkheden dienen te worden opgeheven door één of meer kolommen te verwij­deren. 2. Indien de kleinste singuliere waarde van B dichtbij nul ligt, d.w.z. B heeft bijna een rang kleiner dan p, dan is IIFII2 groot (F heeft twee kolommen die bijna afhankeliJk zijn).

5.3.2. Begrenzing "Transient Responses".

Bij toestandsterugkoppeling is u=v+Fx. Hierin is y het nieuwe ingangssignaal en y is de zg. "reference input", zoals in Fig.2-6. Nemen we voor het gemak even ~(0) -~ en y = Q. Aan de toestandsvergelijking in hoofdstuk 2 wordt voldaan door:

(5. 22)

respectieve 1 Uk

~ (t) ~*exp((A+B*F)t) = ~*X*exp(Lt)*X- 1 (5.23)

in het continue geval. Dit is snel te controleren door in te vullen in de betreffende differentiaalvergelijkingen. Door van beide vergelijkingen van zowel het linker- als

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.9.

rechterlid de 2-norm te nemen, verkrijgt men:

(5.24)

en

(5.25)

Ook de "transient responses" van de toestanden op ieder tijdstip zijn dus begrensd door het conditiegetal van de eigenvectormatrix X. Overigens bewijzen Kautsky, Nichols en Van Deoren dat de matrix A+B*F+6(A+B*F) stabiel blijft voor verstoringen waarvoor (in het discrete geval) geldt:

116 ( A+ B * F ) 11 ~ 5.. mi n ( crn ( z I - ( A+ B * F ) ) ) (5.26)

De 2-norm van 6 mag niet groter zijn dan de kleinste singuliere waarde van de matrix zl-(A+B*F), indien men in het z-vlak alle z-waarden neemt binnen de cirkel I z 1 = 1 ( st ab i e 1 e po 1 en) .

5.4. Indicatoren voor robuustheid.

In dit deel worden een viertal indicatoren voor de robuustheid van een regelaar besproken. E~n van deze vier wordt gebruikt als stopcriterium voor het ontwik­kelde algorithme binnen het PRIMAL-pakket. Een andere is gebruikt in de functie PLACEPRO binnen PRO-MATLAB. In 5.2 is bij theorema 2 gesproken over de gevoelig­heden SJ en de reciproke waarden hiervan. Het conditie­getal cJ is steeds groter dan of gelijk aan 1. In het ideale geval zijn alle cJ gelijk aan 1. De eigenvector­matrix is dan unitair of hermitisch. We kunnen de eerste robuustheids"measure" als volgt definiëren:

Jl.t = 11 _ç_ 11 ... (5. 27)

Hierin is _ç_ de vector met als componenten de condi­tiegetallen cJ van de koppels van linker- en rechterei­genvectoren. Doel is, ervoor te zorgen, dat de grootste cJ zo klein mogelijk is. Omdat max(c .. :d 5.. ~(X) ligt het voor de hand om als tweede robuustheidsindicator te definiëren:

/..1.2 = kz(X) (5. 28)

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.10.

Dit is de waarde die binnen PRO-MATLAB wordt geminimali­seerd in de functie PLACEPRO. Overigens volgt uit formule (5.9), dat U2 de majorant is van U1. . De derde robuustheidsindicator U3 is degene die gebruikt is in het (nog te behandelen) algorithme in de modele PPLCR binnen PRIMAL. Hierbij komt het er kort gezegd op neer dat de Frobeniusnorm van de inverse van de eigen­vectormatrix X wordt geminimaliseerd. Het zal blijken dat dit neerkomt op het minimaliseren van de 2-norm van de vector ~ van conditiegetallen cJ. De Frobeniusnorm van een matrix is te beschouwen als de wortel van de som van de kwadraten van de normen van de kolommen van de matrix. Nemen we allereerst aan dat de rechter-eigenvec­toren ~ zijn genormaliseerd voor alle j. Voor de matrix Y van linker-eigenvectoren geldt:

(5.29)

(Dit volgt uit de vergelijkingen: M*X=X*L en YT*M=L*YT) De conditiegetallen c~, gedefinieerd in 5.2 zien er dan vanwege de normalisatie van de eigenvectoren ~~ als volgt uit:

c_j = 11 Y..J ll2 2 1 (5 .30)

Vanwege de zojuist gegeven definitie van de Frobenius­norm geldt voor de matrices X en·X- 1

(n)-"l en 11 x- 1 IIF == 11 YT IIF - (L(c_j) 2 )"!

(5. 31)

Nu wordt U3 gedefinieerd als:

n-"L H x-1 IIF ,., n-"L 11 ~ 112 -

n- 1 11 X 11 F 11 x- 1 11 F - n- 1 kF ( X) (5.32)

Vergelijkt men formule (5.28) met formule (5.32) dan dient in elk van de twee algorithmen een conditiegetal geminimaliseerd te worden dat betrekking heeft op de matrix X van rechter-eigenvectoren. In het ene geval betreft het het minimaliseren van het k2(X)-conditiege­tal en in het andere geval het Frobeniusconditiegetal kF(X) (Wat in feite neerkomt op het minimaliseren van de Frobeniusnorm van de linker-eigenvectormatrix YT). Indien alle c_j gelijk ZlJn aan 1. dan bereikt U3 zijn minimale waarde 1. Overigens geldt verder dat 1 ~ U3 ~

U1 ~ U;;z. ~ ru.L::s •

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.11.

Een analoge redenering is op te zetten voor het geval dat de vectoren ~ niet genormaliseerd ZIJn. In dat geval worden de matrices XD- 1 en DX- 1 gebruikt. De matrix D heeft op de diagonaal de normen van X. Nu is af te leiden dat:

J.l::s (5. 33)

In de module PPLCR worden steeds de eigenvectoren ~1 genormaliseerd zodat formule (5.32) te gebruiken is.

Tenslotte is er nog een vierde robuustheidsindicator 1.14. Deze geeft een indruk van de "afstand" tussen de matrix X en een unitaire matrix X*. De vectoren ~worden zo gekozen dat ze de orthogonale projecties van ~j* (uit de unitaire matrix) zijn in de ruimtes s~, waar de diverse ~j vandaan komen. Nemen we even aan dat de ~ genormali­seerd zijn dan dient de volgende som geminimaliseerd te worden:

1.14 = n-"! (2: sin2 6J )"! j

0 ~ 1.14 i. 1

(5. 34)

Hierin is ej de hoek tussen ~ en ~*. Op het bewijs van deze uitdrukking wordt niet ingegaan. In Appendix B wordt daar verder op ingegaan. Samengevat hebben we dus de volgende vier robuustheids­indicatoren:

1.11 11 _ç_ 11-

}.l::z = k::z (X)

J.l'::s = 11 x-1 IIF/n"!

1.14 = (1: sin2 6j )"!/n"' j

5.5. Het Robuuste Algorithme in de PRIMAL-module

PPLCR.

In dit deel wordt het algorithme besproken zoals het geïmplementeerd is in de PRIMAL-module PPLCR (PolePLaCe in a Robust way). Het algorithme kent drie wezenlijke stappen. De eerste en de derde stap zijn qua lengte vergelijkbaar, als men het aantal subroutine-aanroepen

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.12.

beschouwd. Het tweede deel is aanmerkelijk groter. Op de implementatie binnen het PRIMAL-pakket en de manipulatie met datasets wordt in het volgende hoofdstuk ingegaan.

De drie stappen die achtereenvolgens worden doorlopen zijn:

Stap 1: Initialisatie. Stap 2: Iteratieslagen om vectoren~ te kiezen. Stap 3: Berekening matrix F en closed-loop.

Stap 1.

Tot deze stap behoren een aantal voorbereidingsfasen. Allereerst wordt de dataset geopend, waarin systeemmo­dellen zijn opgeslagen. Op de eerste vragen-pagina wordt hieruit een systeem geselecteerd. Dit moet een "State­Space"-model zijn met een reguliere A-matrix en een nxp-matrix B met rang gelijk aan p. Na het "reserveren" van drie output-datasets worden de eigenwaarden van het systeem berekend en wordt met behulp van de matrix B nagegaan of deze eigenwaarden regelbaar ZlJn of niet. Hiertoe wordt de OR-decompositie van B bepaald. Dit levert onder andere de matrices Oo en 01 . Vervolgens wordt de nulruimte van C01)T~ (A-lJ*I) bepaald d.m.v. een OR-decompositie:

(5. 35)

De kolommen van de matrix SJ spannen deze nulruimte op. Voor iedere eigenwaarde lJ afzonderlijk wordt daarna de dimensie van de nulruimte van (Q1)T*(A-l~*I) berekend met behulp van een singuliere waarden decompositie. De matrices s~ zelf worden opgeslagen. De (n-p)*n matrix (Q1)T*(A-1J*I) (zie (5.16)) zal n-p singuliere waarden hebben en derhalve een maximale rang n-p. De nulruimte, opgespannen door de kolommen van s~ heeft daarom een dimensie die minimaal p is. Iedere singuliere waarde wordt vergeleken met een bepaalde tolerantie TOL. Als de singuliere waarde kleiner is dan TOL nemen we aan dat deze nul is. De bij de eigenwaarde behorende waarde van kJ is dan ongelijk aan nul. De rang van genoemde matrix is gelijk aan n-p-kJ en de dimensie van de nulruimte van (Q1)T*(A-1J*I) is p+kJ (Zie theorema 4 in 5.2). Indien kJ=O voor de eigenwaarde dan is deze regelbaar. Indien kJ~O voor een eigenwaarde, dan is deze niet-regelbaar. Op de tweede vragenpagina worden de eigenwaarden gekozen met de multipliciteiten tussen de grenzen, zoals die besproken zijn in 5.2. De keuze is beperkt tot reële eigenwaarden. Omdat men een systeem wil regelen, zonder dat er oscillaties in voorkomen kiest men in de praktijk meestal reële eigenwaarden.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.13.

Op de tweede vragenpagina wordt ook een keuze gemaakt over het al dan niet verstoren van de A- en/of B- en/of F-matrix van het systeem om na het berekenen van de F­matrix in de laatste stap de robuustheid van de regeling te testen (te controleren of de eigenwaarden na versto­ring nog steeds op de aangewezen plaatsen liggen). Men kan kiezen tussen het verstoren van ieder element van elke matrix met een bepaald percentage of het herdefini­eren van bepaalde elementen van de matrices. Hierbij dient echter opgemerkt te worden dat voor de matrix F alleen de eerste optie mogelijk is, omdat de F-matrix uiteraard in stap 1 niet bekend is. Afhankelijk van de keuze voor verstoringen worden na de tweede vragenpagina twee of drie van de "gereserveerde" datasets geopend. Stap 1 is nu ten einde.

Stap 2.

Uit iedere nulruimte s~ wordt allereerst een aantal eigenvectoren gekozen dat gelijk is aan de multiplici­teit van de eigenwaarde. De op deze manier verkregen nxn-matrix X wordt bewerkt. Uit iedere nulruimte wordt gedurende één iteratieslag van het algorithme een nieuwe eigenvector gekozen. Dit gaat als volgt: uitgaande van een eigenvector kiest men in de basis (de bewuste nulruimte), waar ~ vandaan komt, een andere vector die zo goed mogelijk loodrecht staat op alle andere vectoren in de X-matrix. De gevonden nieuwe vector wordt genor­maliseerd en vervangt dan de oude ~ in de eigenvec­tormatrix X. Dit wordt gedaan voor alle vectoren in X. Deze werkwijze wordt een instelbaar aantal iteratie­slagen gevolgd. In één iteratieslag komen alle ~ aan de beurt. De resulterende X-matrix is een zo goed mogelijke benadering van een unitaire matrix die in het aantal slagen tot dan toe kan worden verkregen. Het algorithme verloopt als volgt (indien X bestaat uit genormaliseerde eigenvectoren):

We zoeken een ( p+k~) -vector ~ met 11~ ll:z ""' 1 en ~ =S~ *~ ZOdanig dat JIX- 1 HF minimaal iS. N-u WOrdt ~ Uit de matrix X "gelicht". Van deze matrix blijft over:

x~ ... l .2Ç1 .~ • .!Ç:s, •••• ~-1 .~.1 ••••• ~ 1

We wisten reeds:

(5. 36)

OR-decompositie van Xj levert:

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.14.

x_, (5.37)

Hierin is 5W een staande vector en QT een liggende nulvector met lengte n-1. De bovendriehoeksmatrix R." heeft rang n-1, omdat de vectoren in X..;~ onafhankelijk zijn. Wegens

YTX

geldt:

YTQQTX

[

R."

0 ... 0

[

(R,.;~)-1

0 ... 0

met a_, = 1/ ( (S,J) T*S.J~) .

(5. 38)

r F

(5. 39)

Het minimaliseren van IIYTIIF komt neer op het minimalise­ren van:

<<IJ > 2 + < <XJ > 2 * H < R.., > -1 * < (L > T. 8_, ~ I 2

(5 .40)

De matrix tussen rechte haken heeft afmetingen (n-l+p+k)*(p+k),zoals eenvoudig te controleren is. Graag zouden we formule (5.40) willen herschrijven in de vorm van een zg. "Least-Squares-Problem". Hiervan is met behulp van standaardprocedures het minimum te berekenen. Allereerst wordt daarom de OR-decompositie van de (p+k)xl-vector (S.J)Tg_, berekend.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.15.

Derhalve is:

(S,..;),-S_;

Nu is:

p .J (lf * e.J

0

0

6.J * [ 1 0 0

6_; * (1?.,.;) T

0 ] * [ (.E,J)T

.. -----p.J

1/a_; (S,..; )T*S.J~ = 6.J*(E,J)T*~

a.J :!!..;~ CI..JP_;(If* (P.JCII)T*~

P..:~*~ + (1/6..;~)*E..J

]

6.J 0

0

(5.41)

( 5. 42)

( 5. 43)

(5. 44)

Nu dient het volgende "Least Squares Problem" opgelost te worden (Dit is mogelijk met standaard subroutines van bijvoorbeeld LINPACK) :

min ( l/5>) *E.d [

(5. 45)

Dit heeft de (p+k.J-1)-vector ~ als oplossing. De nieuwe vector ~ luidt dan:

(5.46)

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.16.

Voor alle vectoren~ wordt deze werkwijze gevolgd.

Stap 3.

In de derde stap wordt de matrix F berekend met behulp van (5.14). Verder wordt het "closed loop"-systeem berekend en de verstoringen worden aangebracht op het systeemparameters, indien gewenst. Na afloop van alle berekeningen worden gegevens weggeschreven naar data­sets. In het volgende Hoofdstuk wordt verder ingegaan op "flow-charts" van de module en op een aantal subroutines in de module.

5.6. Het Robuuste Algorithme in de functie

PLACEPRO binnen PRO-MATLAB.

De functie PLACEPRO heette in het PRO-MATLAB-pakket oorspronkelijk "PLACE", maar ik heb deze versie enigs­zins gewijzigd, zodanig dat de nieuwe functie het aantal iteratieslagen ook als invoerparameter heeft en boven­dien de basis X van rechter-eigenvectoren als extra uitvoerparameter. Het doel van het algorithme is het kiezen van dié vector ~ uit de bijbehorende nulruimte s~. zodanig dat de hoek tussen deze vector en de genormaliseerde vector ~ minimaal is. De vector ~ staat loodrecht op de (n-1)­dimensionale ruimte, opgespannen door de vectoren ~ (met uitzondering van~). Deze vector~ is te bereke­nen met een OR-decompositie van de matrix XJ, waar de vector ~ niet inzit:

XJ = [ ~.l , ~ , • • • , ~- 1 , ~ + 1 , • • • , ~ ]

De projectie van~ in de ruimte SJ. waaruit de nieuwe ~ gekozen dient te worden, is de vector die de kleinste hoek maakt met~. In één iteratieslag worden bij alle vectoren ~ nieuwe vectoren gekozen. De methode is een­voudig te implementeren. De programmatekst is dan ook kort. vergeleken met die van PPLCR. Echter in PPLCR wordt tevens gecontroleerd op het regelbaar zijn van iedere eigenwaarde. Bovendien is het zo dat de methode, geïmplementeerd in PLACEPRO niet noodzakelijk conver­geert. Voor de meeste systemen voldoet de methode wel.

5. POOLPLAATSING OP EEN ROBUUSTE MANIER. Pag. 5.17.

Resumerend kan opgemerkt worden, dat er twee verschil­lende algorithmen zijn geïmplementeerd in twee verschil­lende pakketten. Allereerst is er PPLCR in PRIMAL (besproken in 5.5). In dit algorithme wordt de Frobeniusnorm van de basis van linker-eigenvectoren YT geminimaliseerd (ofwel de Frobeniusnorm van x- 1

, immers YT=X- 1 ). PPLCR berekent vooraf de regelbare en niet-regelbare eigenwaarden en men kan kiezen voor het verstoren van bepaalde matrices om de robuustheid van de regeling te testen. De keuze is beperkt tot reële eigenwaarden. Als tweede is er PLACEPRO in PRO-MATLAB (en nu ook in PC-MATLAB). In dit algorithme wordt het conditiegetal k2(X) geminimaliseerd. De keuze van eigenwaarden is niet beperkt.

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6.1.

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET.

6 . 1 . I n 1 e i ding .

In dit Hoofdstuk wordt ingegaan op de opbouw van de module uit subroutines. Allereerst komen twee "flow­charts" van de module aan de orde. Daarna wordt gespro­ken over subroutines uit de ondersteunende bibliotheek LIBM.MAT, waarin een aantal enigszins gewijzigde stan­daard-decomposities en matrixbewerkingen uit LINPACK zijn verzameld (zie ook [VELT85] en [VELT86]). Tenslotte wordt ingegaan op de functie van de door mij geschreven subroutines die specifiek geschreven zijn voor de module: de PPLCR-subroutines.

6.2. Flowcharts van de module.

In Fig.6-1 is een flowchart geschetst van de totale module. In Fig.6-2 is het gedeelte weergegeven, waarin de polen daadwerkelijk geplaatst worden. Zoals uit Fig.6-1 blijkt is de poolplaatsing met de verstoring slechts een onderdeel van de totale "source" van het programma. Het blijkt dat het eigenlijke pool­plaatsen zo'n 60% uitmaakt van de totale programmatekst. De rest bestaat uit vragenpagina's en het manipuleren met datasets.

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6.2.

I Initialisatie.

Open model-dataset.

Eerste vragenpagina. (systeem en iteraties)

Lees model uit dataset.

Berekening eigenw. en max. en min. mu 1 tip 1.

Tweede vragenpagina. (eigenw. + mu 1 tip 1. en verstoringsopt ie)

Aanmaken 3 datasets.

POOLPLAATSING + evt. verstoring:.

* Wegschrijven mode 11en

en tekst naar datasets.

einde.

Fig.6-l Flowchart van de module PPLCR.

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6. 3.

Berekenen van een bepaalde subruimte voor iedere eigenwaarde.

Initiële basis van eigenvectoren.

~

Iteraties lag. Berekening van een betere basis van Eigenvectoren. Tevens berekening van Robuustheidsindicator / .. bs en het con-

di tiegetal van de nieuwe basis.

Aantal iteraties < gewenste aantal ?

ja.

nee.

Berekening van A+B*F ~n C+D*F.

Is verstoring gewenst ?

nee. ja.

Vervolg Fig.6-1 Verstoor systeem. bij * .

I Bereken eigenw.

Vervolg Fig.6-l bij * .

I Fig.6-2 Detail van de poolplaatsingsmodule. Dit deel

hoort in het dubbelomkaderde deel in Fig.6-1

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6.4.

6.3. Subroutines uit de LIBM.MAT-bibliotheek.

De subroutines uit de LIBM-bibliotheek ZlJn afgeleid van subroutines in LINPACK. Omdat binnen LINPACK getal­len van het type "complex" niet worden beschouwd als twee "double precision" getallen, maar als twee "single precision" getallen is gekozen voor subroutines in de LIBM-bibliotheek. Deze hebben dezelfde functies als hun (vrijwel) gelijknamige evenknieën in LINPACK, maar getallen van het type "complex" bestaan nu uit twee "double precision" getallen. De in de module PPLCR gebruikte subroutines worden nu in het kort behandeld.

WQRDC en WQRSL : Worden samen gebruikt om de QR-decom­positie van een matrix te berekenen. WGECO en WGEDI : Worden samen gebruikt om de LU-decom­positie van een matrix te berekenen (WGECO) en de inverse van die matrix (WGEDI). CORTH en COMQR3 : De eerste subroutine transformeert een matrix met behulp van een unitaire gelijkvormigheids­transformatie naar Upper Hessenbergvorm. COMQR3 berekent de eigenwaarden en eigenvectoren van een complexe Upper Hessenberg-matrix via een QR-decompositie van deze matrix. WSVDC : Levert de singuliere waarden van een willekeuri­ge matrix. De matrix wordt geschreven als het produkt van een unitaire, een diagonaal- en een orthogonale matrix. URAND : Is een uniforme random getallen generator. Als startwaarde ("seed") kan men een willekeurige integer meegeven. WNRM2 : Is een functie die de 2-norm van een complexe vector berekent.

§.4. PPLCR-subroutines.

De functie van deze subroutines wordt beschreven in de volgorde waarin ze worden aangeroepen.

PPINFl (INFormation 1). Deze subroutine opent de dataset waarin het model zit opgeborgen, waarvan de polen geplaatst gaan worden. Bovendien wordt door deze subroutine de eerste informatie uit deze dataset gele­zen. Deze informatie bestaat uit : de naam van de module die de dataset heeft gecreërd met datum en tijd waarop dit gebeurd is, de naam van de dataset en de versie van het model (model-"update"). Verder wordt het aantal systeemmodellen gelezen, dat in de dataset is opgeslagen (in één dataset kunnen maximaal 9 modellen zijn opgebor­gen) , de spec if icat i es van de modellen (bijv. "State­Space" of "Matrix Fraction Description") en de systeem­dimensies. Deze informatie is belangrijk, omdat de gebruiker op de eerste vragenpagina moet opgeven welk

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6.5.

systeemmodel hij wil gebruiken. Overigens werkt PPLCR alleen met State-Space-modellen.

PPQPl : (QuestionPage 1). De eerste vragenpagina, die meteen volgt op de subroutine PPIFl. Hoewel de naam dit niet suggereert is een vragenpagina een subroutine. Deze subroutine wordt cyclisch doorlopen na het initialiseren van het vragenpagina-systeem. Op de vragenpagina PPQPl wordt de naam van het systeemmodel opgegeven dat men uit de dataset wil lezen en bovendien ook het aantal itera­ties waarin de beste basis van rechtereigenvectoren moet worden bepaald.

PPRMD : (Read MoDel). Leest het gewenste systeemmodel uit de dataset. Het State-Space model wordt ingelezen samen met delays, offsets, begincondities van de toe­standen, bemonsteringstijd en dimensies. In PPRMD wordt nog aangeroepen de subroutine:

PPCKD : (ChecK Delays). Deze subroutine controleert of input- en output-delays gelijk zijn aan nul. Vooralsnog is PPLCR alleen in staat om te werken met systemen zonder delays. Als de delays nul zijn wordt het systeem ingelezen en verlaten we de subroutine PPRMD.

Alvorens met de tweede vragenpagina wordt begonnen, doorloopt het programma de subroutine:

PPCLMB : (Compute LaMBda). Hierin worden alle eigenwaar­den en multipliciteiten van het ingelezen systeem bepaald. Indien het systeem een aantal niet-regelbare eigenwaarden bezit, moeten deze bekend zijn voordat de gebruiker de door hem gewenste eigenwaarden gaat invoe­ren op de tweede vragenpagina. Immers, de niet-regelbare eigenwaarden moeten meegenomen worden bij de keuze (zie Hoofstuk 5) .

PPQP2 : (QuestionPage 2) . De tweede vragenpagina is langer dan de eerste. Op de tweede vragenpagina dienen de eigenwaarden met hun multipliciteiten door de gebrui­ker opgegeven te worden. Indien het ongeregelde systeem een aantal niet-regelbare eigenwaarden heeft worden die aan de gebruiker medegedeeld. Het enige wat de gebruiker in dit geval kan doen, is het opgeven van de multiplici­teiten van de niet-regelbare eigenwaarden. Op de vragen­pagina wordt meteen uitgerekend of de gebruiker de multipliciteiten binnen de toegestane grenzen kiest. Ook wordt er op gelet, dat de som van alle multipliciteiten niet groter is dan de systeemorde. Het tweede deel van deze vragenpagina heeft als doel het inwinnen van informatie over het al of niet verstoren van het systeem, na afloop van berekenen van het gere­gelde systeem. Er ZlJn twee mogelijkheden. De eerste mogelijkheid is het verstoren van ieder element in de A­en/of B- en/of F-matrix. Deze verstoringen worden berekend door een z.g. "uniform random number genera­tor". Het verstoringspercentage wordt per matrix opgege­ven. Het betreft hier een maximaal verstoringspercentage

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6.6.

van ieder element, zowel in negatieve als positieve zin. De tweede mogelijkheid is het herdefiniëren van een aantal elementen in de A- (maximaal n elementen) en/of B-matrix (maximaal p elementen).

Nu is alle informatie, nodig om het hoofdprogramma te kunnen laten uitvoeren, bekend. Het is belangrijk om zich te realiseren, dat de output-datasets nog niet bestaan. Een naam hebben de datasets al wel, maar ze moeten nog gecreërd worden. Dit gebeurt door de subrou­tines PPCRMT, PPCRTX en PPCRDS.

PPCRMT : (CReate MaTrix-dataset) . Deze subroutine maakt de matrix-dataset aan, waarin het geregelde systeem na afloop wordt opgeborgen. In de subroutine wordt bere­kend, hoeveel ruimte het systeem nodig heeft.

PPCRTX (CReate TeXt-dataset) . De tekstdataset wordt aangemaakt met deze subroutine.

PPCRDS : (CReate DiSturbed matrix-dataset). Op dezelfde wijze als in PPCRMT wordt een dataset aangemaakt om het verstoorde systeem in op te bergen. Let wel: als op de vragenpagina's niet is gekozen voor de verstoringsoptie (dus random of herdefinitie), dan wordt deze dataset niet aangemaakt omdat hij dan exact dezelfde informatie zou bevatten als de eerste matrix-dataset.

Het eigenlijke rekenwerk gaat nu beginnen. De volgende subroutine wordt namelijk aangeroepen.

PPLC (pLaCe). Deze subroutine is de hoofdroutine, waar het eigenlijke poolplaatsen uitgevoerd wordt. Omdat in Hoofdstuk 5 diep is ingegaan op de werking van het poolplaatsingsalgorithme, worden de subroutines die direct met het poolplaatsen te maken hebben niet als apart item behandeld, maar kort aangestipt in het volger:de. De bedoelde subroutines zijn: PPSBSP, PPINV en PPNWBS. Allereerst worden de diverse nulruimtes van s~ berekend waaruit de vectoren ~ gekozen dienen te worden om een initiële basis te vormen van rechtereigenvectoren (zie Hoofdstuk 5). Dit gebeurt in de subroutine PPSBSP (SuBSPace), die binnen PPLC wordt aangeroepen. In de subroutine PPCL wordt verder nog gebruik gemaakt van PPINV (INVerse), die de inverse van een matrix berekent samen met U3, de robuustheideindicator die gebruikt wordt als criterium voor de module PPLCR. Ook wordt door PPINV het conditiegetal berekend van de matrix X van rechter-eigenvectoren. De subroutine PPNWBS (NeW BaSe), die ook binnen PPLC wordt aangeroepen bepaald een nieuwe basis van rechter-eigenvectoren op de wijze, zoals behandeld in Hoofdstuk 5. Na afloop van het op vragenpagina 1 opgegeven aantal iteratieslagen worden de eigenwaarden van het geregelde systeem uitgerekend met CORTH en COMQR3 (uit LIBM). Vervolgens wordt het geregelde systeem weggeschreven naar de eerste output-matrix-dataset. Indien op vragen-

I I i

6. IMPLEMENTATIE BINNEN HET PRIMAL-PAKKET. Pag. 6.7.

pagina 2 gekozen is voor het verstoren van één of meer matrices, dan wordt tenslotte nog de subroutine PPDSTR (DiSTuRbance) aangeroepen.

PPDSTR : Binnen deze subroutine wordt nagegaan, wat de gebruiker met een bepaalde matrix wil doen. Bij de verstoring van ieder element van een matrix met een bepaald percentage roept PPDSTR de subroutine PPCLDS (CoLlective DiSturbance) aan. De elementen in de matrix worden random verstoord met het door de gebruiker opgegeven maximale percentage. Het herdefiniëren van elementen in de A- en/of B-matrix wordt gedaan door de subroutine PPELRD <ELement ReDefinition), die ook vanuit PPDSTR wordt aangeroepen. Na het verstoren wordt het verstoorde, geregelde systeem weggeschreven naar de derde dataset. Als laatste actie worden binnen PPDSTR de eigenwaarden van het gestoorde systeem berekend. Deze De module PPLCR is nu vrijwel aan het einde gekomen. Het voorlaatste wat nu nog gedaan wordt, is het aanroepen van de subroutine:

PPTXl (TeXt 1). De tweede output-dataset is een tekst-dataset en hierin worden een aantal wetenswaardig­heden naartoe geschreven. Allereerst zijn dit de instel­parameters (zaken die op de vragenpagina's ZlJn opgege­ven). Verder het getal M3 en het conditiegetal van de matrix van rechter-eigenvectoren. Ook worden de door de gebruiker gewenste eigenwaarden naar de dataset wegge­schreven en de eigenwaarden van het geregelde systeem (als het goed is zijn dit dezelfde als de gewenste eigenwaarden). In het geval de gebruiker voor het verstoren van één of meer matrices heeft gekozen, worden ook de eigenwaarden van het verstoorde, geregelde systeem weggeschreven in de tekst-dataset. Nadat deze subroutine is doorlopen,worden de datasets gesloten en het programma beëindigd.

In Appendix C is weergegeven hoe de subroutines in de module "genest" zijn. Verder wordt daar ingegaan op de gebruikte subroutines uit de PRIMAL-bibliotheken. In Appendix D zijn de uitdraaien van de inhoud van de door PPLCR gecreërde tekst- en matrix-dataset weergege­ven voor een systeem dat in het volgende Hoofdstuk aan de orde komt.

In het volgende Hoofdstuk worden een aantal testsystemen met behulp van de module PPLCR onderzocht. Bovendien wordt een vergelijkend onderzoek gedaan met de PRO­MATLAB functie "PLACEPRO".

7. RESULTATEN. Pag. 7.1.

7. RESULTATEN.

Om de module PPLCR te testen ZlJn een tweetal systemen uit de literatuur gekozen. Deze komen in 7.1 aan de orde. In 7.2 wordt uit de ruwe meetdata van een warmte­wisselaar-systeem een model geschat.

7.1. Literatuurvoorbeelden.

7.1.1. Chemische reactor.

Kautsky, Nichols en Van Dooren [KAUT85] gebruiken het model van een chemische reactor [MUNR79], in het conti­nue tijddomein. Voor het gebruik binnen PRIMAL heb ik het 4x4-systeem met 2 ingangen getransformeerd naar het discrete tijddomein. Voor de transformatie is een bemon­steringstijd van 0.3 seconden gebruikt. Het systeem dat wordt verkregen ziet er dan als volgt uit:

7.2054 1.5295 5.1939 -2.4048

A -0.7117 0.0057 -0.4831 0.3576

0.2181 0.8880 0.3236 0.6069

-0.5153 0.7422 -0.2033 0.8599

[ 3.7162 1.5773 4.9802 4.6491

] BT -6.6488 0.5293 -1.1449 -0.1115

[ 1 0 0 0 ] c 0 1 0 0

[ 0 0

] D (7 .1) 0 0

Als C-matrix is een "quasi-eenheidsmatrix" gekozen. De poolplaatsingsmodule PPLCR in PRIMAL en de functie PLACEPRO (in PRO-MATLAB) worden vergeleken.

7. RESULTATEN.

Voor verschillende aantallen vergelijkend onderzoek gedaan beide algorithmen. Speciaal is gentie-eigenschappen van:

Pag. 7.2.

iteratieslagen is een naar de prestaties van de gekeken naar de conver-

de 2-nonn k2(F) van de "feedback"-matrix F. de robuustheidsindicator U2 (=k2CX)). de robuustheidsindicator 11:s ( =11 f. 112/(n)~ ) .

Het oorspronkelijke systeem, genoemd op bladzijde 7.1 heeft 2 instabiele polen Z1 = 7.3226 en Z2 = 1.0656 en twee stabiele polen Z3 = 0.0063674 en z~ = 0.0001724. In Fig.7-1 op de volgende bladzijde zijn de stapresponsies van de vier toestanden weergegeven. Duidelijk blijkt hieruit het instabiele gedrag. De twee laatstgenoemde polen worden bij de poolkeuze meegenomen en voor de twee andere polen worden uiteraard stabiele gekozen: Z1 = 0.40 en Z2 = 0.30. De keuze is tamelijk arbitrair. In Tabel 7.1 zijn de resultaten van de boven genoemde berekeningen weergegeven. De voor respectievelijk PPLCR en PLACEPRO relevante criteria ZlJn onderstreept. PLACEPRO heeft U2 als robuustheidsindicator en PPLCR U3.

I ter. 11 F 11 2 U2 U-::5

PPLCR 2 1.3846 5.3409 2.1680 PLACEPRO 2 1.3851 5.0714 2.1475

PPLCR 5 1.3848 5.3456 2.1543 PLACEPRO 5 1.3860 5.0444 2.1451

PPLCR 10 1.3855 3.7419 2.1423 PLACEPRO 10 1.3869 5.0378 2.1458

PPLCR 20 1.3872 5.7295 2.1233 PLACEPRO 20 1.3875 5.0313 2.1452

Tabel 7.1 Resultaten van berekeningen.

P3

7. RESULTATEN. Pag. 7.3.

)(M•-.& ÄH& .... VHL..A ....... .......... I •

0 __)_ ------

'\ -· -~o

-~· 0 • ~0 a• ...............

Fig.7-1 Stapresponsies van het instabiele systeem.

In Tabel 7.1 vallen een aantal zaken op: 1. De getallen U:s berekend door PLACEPRO enerzijds

en PPLCR anderzijds zijn vrijwel gelijk. Dit geldt tevens voor de getallen U2. Beide algorithmen zitten reeds na enkele iteraties dicht bij de minimale waarde van hun respectievelijke criteria. De minimale waarden van Uz en U3 zijn allebei 1. Na 100 iteraties zijn U2 en u:s niet meer dan 0.01 verder gedaald ten opzichte van de waarden na 20 iteraties. Beide regelingen ZlJn zo robuust als haalbaar. Opvallend is, dat U2 na 10 iteraties voor PPLCR de kleinste waarde aanneemt die in de tabe 1 is vermeld. Deze "uitschieter" doet geen onrecht aan de relatie: U3~Uz~nu:s. Waarschijnlijk is PPLCR tijdens de convergentie naar een minimale U3 toevallig een basis met rechter-eigenvectoren "gepasseerd" met u:z=3.7419. U2 is echter niet het robuustheidscriterium van PPLCR.

2. De waarde van U3 daalt aanvankelijk voor PPLCR.

2.2

2.18

2.16

2.14

2.12 0

Na ruim 20 iteraties gaat U3 licht alterneren rond een bepaalde waarde. In Fig.7-2 is dit grafisch weergegeven. Waarschijnlijk hangt het verschijnsel sa~en met een cyclische keuze van een betere basis van ~igenvectoren. Het is dus niet zo dat u:s blijft dalen. Op een gegeven moment blijft U:s rond zijn minimale waarde hangen en meer iteraties leveren dan geen verbetering meer op.

10 20 30 40 50

Iterations. Fig.7-2 Alterneren van U3 als functie van het

aantal iteraties.

60

7. RESULTATEN. Pag. 7.4.

De kleinste U3 is 2.1233. 3. De waarde van U2 daalt aanvankelijk voor PLACEPRO

ook tot een bepaalde waarde. Vanaf een aantal iteraties treedt wederom een alterneren van U2 op rond deze waarde. Na het uitvoeren van het algorithme zorgt PPLCR ervoor dat dié basis van eigenvectoren wordt gekozen waarbij de kleinste Uz hoort. Dit hoeft dus niet de laatste basis te zijn in de reeks van bases verkregen na iedere iteratieslag. De functie PLACEPRO neemt wel de laatste basis. Dit is niet altijd de beste (maar vaak is het verschil tussen de laatste en de beste marginaal).

4. De waarden van U2 en uz dalen niet gelijktijdig. Dat wil zeggen: als U2 daalt hoeft U3 niet te dalen. Dit is niet in strijd met de mathematiek. Er geldt namelijk voor iedere matrix X en matrix YT:

11 x 11 2 ~ 11 x 11~=

11 YTII:z ~ 11 YTIIF ( 7. 2)

en verder een relatie waarbij de singuliere waarden zijn betrokken:

11 x 11 2 ( 7. 3)

2 2 2 "1:

11 X 11 F = ( a 1 + a:z + . . . + a,.., ( 7 . 4)

(zie [ GOLU83 l) Derhalve geldt:

(7.5)

Aan deze relatie moeten U2 en U3 voldoen. Het is dus mogelijk dat beide grootheden niet gelijktijdig dalen.

Met behulp van Tabel 7.1 kan men nagaan dat: uz~U2~DUz voor zowel PPLCR als PLACEPRO. De door PPLCR en PLACEPRO berekende F-matrices zijn respectievelijk (na 10 iteraties):

F - [

0.1314 -0.0827 0.0732 -0.1305 ] 1.0640 0.1902 0.7597 -0.3820

7. RESULTATEN. Pag. 7.5.

( 0. 1339 -0.0834 0.0743 -0.1325 ]

F (7.6) 1.0650 0.1890 0.7596 -0.3836

Het is opvallend dat beide F-matrices elementsgewijs zoveel op elkaar lijken. Ook is te zien dat in de terugkoppeling (elementen van de F-matrices) geen grote versterkingen optreden. We hebben geen "woest" regelge­drag, tenzij de toestanden x~ of de signalen (By)~ groot zijn.

Een aantal zaken ZlJn nog gecontroleerd. De 2-norm van de F-matrix wordt inderdaad van boven begrensd door een rechterlid, welke k:z(X) bevat (formule 5.20):

UFII:z ~ [ IIAII:z + max( 1.:~ ) *k:z (X)] 1 Op (B) (5.20)

Omdat IIAII:z = 9.40 en Op = 4.80 is het quotiënt van die twee gel1jk aan 2.5. Dit quotiënt is dus reeds voldoende groot om IIFJI:z van boven te begrenzen. De extra term in formule (5.2~) zorgt voor een nog groter rechterlid.

Het is interessant om na te gaan welke F-matrix de meest robuuste regeling realiseert. Het valt te verwachten (gezien de waarden van ~:z en ~3 die volgens beide methoden vrijwel gelijk zijn) dat beide regelingen qua robuustheid niet voor elkaar zullen onderdoen. Om de robuustheid na te gaan worden de systeemparameters verstoord (bijvoorbeeld de matrixelementen van matrix A) . Daarna wordt gekeken of de eigenwaarden verschoven zijn. Dit wordt als volgt gedaan: op de vragenpagina van PPLCR voert men in welke matrix men elementsgewijs (dat wil zeggen ieder element) wil verstoren en met welk maximale percentage. Binnen PRO-MATLAB doen we hetzelf­de. Vervolgens worden de eigenwaarden van de verstoorde A+B*F uitgerekend. Dit wordt voor ieder verstoringsper­centage een aantal maal herhaald (bijvoorbeeld 4). De verstoringen ZlJn "random" dus bij iedere berekening krijgen we andere eigenwaarden. Na afloop van de bereke­ningen wordt voor iedere eigenwaarde een gemiddelde absolute en een gemiddelde relatieve afwijking berekend. In Tabel 7.2 ZlJn de resultaten weergegeven voor een elementsgewijze verstoring van matrix A met verschillen­de maximale percentages. De metingen zelf staan in appendix E. De oorspronkelijke eigenwaarden (voor de verstoringen) waren: 1: 0.40 2: 0.30 3: 0.0063674 4: 0.0001724. In de tabel staan kolomsgewijs de gemiddelde absolute afwijkingen en relatieve afwijkingen van de eigenwaarden 1 tot en met 4 vermeld.

7. RESULTATEN. Pag. 7.6.

verst. 0.001% verst. 0.01% verst. 0.1% abs rel abs rel abs rel * 1o-~ ( * 1) *1o-~ ( * 1) * 10-4 ( * 1)

PPLCR 6.25 (0.016) 85.0 (0.21) 96.2 (2.41) 1.00 (0.0017) 5.00 (0.016) 2.50 (0.082) 3.00 (0.47) 28.0 (4.37) 37.9 (59.5) 0.395 (2.29) 3.04 (17.6) 2.80 ( 162)

PLACEPRO 5.63 (0.014) 19.0 (0.065) 16.0 (0.40) 3.42 (0.16) 6.50 (0.029) 4.63 (0.15) 3.19 (0.50) 6.30 (0.99) 3.74 (10.2) 0.30 ( 1. 73) 3.79 (22.0) 3.01 (175)

Tabel 7.2 Verschuivingen van eigenwaarden in het complexe z-vlak (absoluut en relatief) ten gevolge van random verstoringen in matrix A

De getallen ZlJn de gemiddelde waarden van 4 testen bij ieder verstoringspercentage. Het is moeilijk om hieruit conclusies te trekken, omdat daar eigenlijk veel meer testen voor nodig ZlJn (de stochastische fluctuaties nemen af met de reciproke wortel van het aantal testen). De percentuele afwijkingen van de kleinste eigenwaarden ZlJn steeds het grootst. De kleinste eigenwaarden (grootste procestijdconstanten) ondervinden van de verstoringen relatief de grootste hinder. Overigens bij iedere orde dat het verstoringspercentage toeneemt nemen ook de relatieve fouten ruwweg een orde van grootte toe bij zowel PPLCR als PLACEPRO. De regeling, die is bere­kend door PLACEPRO is (volgens de informatie uit de kolommen met verstoringspercentages van respectievelijk 0.01% en 0.1 %) iets robuuster dan de regeling berekent door PPLCR. Geen der eigenwaarden was zover verschoven dat het systeem instabiel werd. Overigens zijn de matrices F genomen, die na 10 iteraties zijn berekend. Na 10 iteraties waren U2 en U3 voldoende geconvergeerd.

In Fig.7-3a. zijn alle mogelijke stapresponsies van het systeem weergegeven als het gesloten systeem geregeld wordt volgens de terugkoppeling F, berekend met PPLCR en in Fig.7-3b. als het geregeld wordt volgens de terugkoppeling, berekend met PLACEPRO. De Figuren a. en b. zijn nauwelijks van elkaar te onderscheiden. De Figuren 7-4a. en 7-4b. geven het effect weer van een (random) percentuele verstoring van alle elementen in de A-matrix met (maximaal) 0.1% voor respectievelijk de regeling berekend m.b.v. PPLCR en PLACEPRO. De effecten van deze verstoringen zijn gering als men Fig.7-4 vergelijkt met Fig.7-3. Verstoringen van (maximaal) 1% van ieder element in de A-matrix hebben uiteraard een iets grotere uitwerking, zoals in Fig.7-5 te zien is. Vergelijkt men Fig.7-5 met Fig.7-3, dan blijken de stapresponsies van het met behulp van PLACEPRO geregelde systeem minder af te

b.

7. RESULTATEN. Pag. 7.7.

wijken van de oorspronkelijke, dan bij het met behulp van PPLCR geregelde systeem. Tenslotte geeft Fig.7-6 de invloed weer van veranderingen van maximaal 10% in alle elementen van A als het systeem geregeld wordt met behulp van de regelaar. ontworpen door PLACEPRO. De twee responsies (met de kleinste statische versterkingen) die ook in de andere figuren ongevoelig bleken voor versto­ringen zijn dat zelfs nu nog.

><HSJ AH2J VHS.J! +H2.J!

5 Î

0 1 -!5 \

-10 \ \~

-1!5

0 10 20 30

SAMPLE

10.---~~---,----~----~-----r----~----~----,

;----------------------------------------------------------------------------------------------------------,,_, 0 1- ·--------------------------------------------------------------------------------------------------

-5

-10

-taL---~==~==========================~ 0 10 15 20 25 30 35 olO

Fig.7-3 a. Stapresponsies van het systeem geregeld volgens PPLCR-regelaar. en b. volgens PLACE­PRO-regelaar. H1_2 betekent het volgende: de responsie van de 2- uitgang op een eenheids­stap, aangebracht op ingang 1.

b.

7. RESULTATEN. Pag. 7.8.

><H1J AH2J VHl_J! +H2..2

5 (

0 l -5 \ \ ~

-10

-1!5

0 10 20 30

SAMPLE

10.---~~--~----~----~-----.--------------~

/------------------------------------------------------------------------------------------------------------

0 :-----------------------------------------------------------------------------------------------------------

-5

-10

-15L----~====~==~====~==~====~======~ 0

Fig.7-4

10 15 20 25 30

SAKPLB

a. Stapresponsies na randomverstoringen van 0.1% in A-matrix. Regelaar volgens PPLCR en b. Stapresponsies na randomver­storingen van 0.1% in A-matrix. Regelaar volgens PLACEPRO.

a.

7. RESULTATEN. Pag. 7.9.

><HiJ VH1..2 +H2..2

5 Î

0 ~ -5 \

-10

1\ \ ..

-1!5

0 10 20 30

SAMPLE

10,---~----~----~----~----~--~----~----~

-5

-10

SAMPLE

Fig.7-5 Stapresponsies bij verstoringen van 1% in ieder element van matrix A. Systemen geregeld met respectievelijk a. PPLCR en b. PLACEPRO.

7. RESULTATEN. Pag. 7.10.

10,---~----~----~--~----~--------------~

5

0 (.·.····································································

-5

-10

-15~--~----~----~--~----~----~--------~ 0 10 15 20 25 30 35 -lO

SAMPLE

Fig.7-6 Stapresponsies na randomverstoringen van 10 % in A-matrix. Regelaar volgens PLACEPRO.

Het verstoren van het systeem met behulp van percentuele afwijkingen in de B- en/of F-matrix is ook mogelijk (PPLCR kent dit als optie). Veranderingen in de matrix van het gesloten systeem zijn steeds:

o(A + B*F) oA + B*oF + oB*F

~ U oA U- + U B U-U oF 0- + 0 oB 0-U F U-~ ~a~ ( loA 1 ) i • .:J + p*max ( 1 BI loF 1 ) :1. ..J +

l,J i,j

p*max( i,j

) i • .:J ( 7. 7)

In het geval van het 4• orde systeem zullen verstoringen in B de eigenwaarden weinig beïnvloeden. De verstoringen in B worden namelijk gedempt door de componenten van de F-matrix. daar dit hoofdzakelijk getallen kleiner dan 1 zijn. Verstoringen in de F-matrix daarentegen worden door de B-matrix versterkt vanwege het feit dat de meeste elementen van B groter dan 1 zijn. De resultaten van deze berekeningen worden niet vermeld omdat deze geen nieuwe inzichten verschaffen.

Het is interessant te weten. hoe groot de invloed is van het veranderen van één (of enkele) elementen in de A en/of B-matrix. Voor dergelijke gevallen geldt eveneens vergelijking (7.7). Ook dit is in de module PPLCR ingebouwd. Een aantal veranderingen zijn geprobeerd,

7. RESULTATEN. Pag. 7.11.

waaronder:

A(2,3) = -0.50 in plaats van -0.4831.

De verandering van A(2,3) bedraagt 3.38 %. Zowel PPLCR als PLACEPRO leveren eigenwaarden die fors afwijken (variërend van 1% voor eigenwaarde 1 tot 205% voor eigenwaarde 3) .

B(1,2) = -6.7 in plaats van -6.6488.

De verandering van B(1,2) 0.01%). Alle eigenwaarden methoden globaal evenveel af geven in de kolom, behorende tage van 0.01 %.

bedraagt 0.0077 % (orde wijken nu volgens beide als in Tabel 8.1 is weerge­bij het verstoringspercen-

Omdat het ongeregelde systeem slecht geconditioneerd is (het conditiegetal van A is 7.9*104 ) kan men overwegen om het systeem te balanceren met behulp van de PRO­MATLAB-functie "balance". Deze functie bepaalt een gelijkvormigheidstransformatie T, zodanig dat de matrix Ao = T- 1 *A*T ongeveer gelijke rij- en kolomnormen heeft. Het conditiegetal van de matrix wordt kleiner. Het systeem ziet er dan als volgt uit:

~ (k+1) = A.:,~ (k) + T- 1 *By_(k)

y(k) C*T~ (k) + Dg(k) met ~ ( k) == T~ ( k) ( 7 . 8)

Balanceren heeft bij het besproken systeem geen zin. Het conditiegetal k2(X) van A wordt nu weliswaar 5.81*104

maar de regelaars en hun robuustheid verbeteren niet. De oorspronkelijke A-matrix was slecht geconditioneerd (en blijft dit ook) maar niet slecht gebalanceerd, omdat de transformatiematrix T vrijwel de eenheidsmatrix was (op één element na). Het was derhalve te verwachten dat het balanceren niet veel verbetering zou brengen. Van het genoemde systeem is tenslotte te zeggen, dat het ondanks de slechte conditionering op een zodanige wijze te regelen is. dat de eigenwaarden van het gesloten systeem grote afwijkingen gaan vertonen als de A-matrix elementsgewijs met 0.1% of meer worden verstoord. Zoals uit de Figuren 7-2 t*m- 1 7-5 blijkt, gaan de staereson­sies significante afwijkingen vertonen als alle elemen­ten van de A-matrix met 10% of meer worden verstoord. De regeling ontworpen door PLACEPRO is voor dit slecht geconditioneerde systeem-model iets beter dan de rege­ling ontworpen door PPLCR. Vergelijkt men Fig.7-5a. met Fig.7-5b. dan blijkt dat het verschil in robuustheid niet groot is.

7. RESULTATEN. Pag. 7.12.

7.1.2. Voorbeeld uit de KEDDC-demonstratiehandleiding.

Het tweede voorbeeld stamt uit de demonstratiehand­leiding van het software-pakket KEDDC. Dit pakket is reeds aan de orde geweest bij de behandeling van de diverse software-pakketten in Hoofdstuk 4. Het betreft een systeem. genaamd "turbogenerator" met 9 toestanden. 2 ingangen en 2 uitgangen [SCHM85]. Op de fysica van het probleem wordt ook in dit voorbeeld niet ingegaan. De matrices A.B,C en D van het continue systeem zijn vermeld in de demonstratiehandleiding van KEDDC. Het systeem is getransformeerd naar het discrete domein met een bemonsteringstijd van 0.1 s. Het oorspronkelijke systeem kent 1 reële en 4 paren complex toegevoegde eigenwaarden. De reden voor het onderzoeken van dit systeem is dat de A-matrix veel beter geconditioneerd is dan de A-matrix van het systeem uit 7.1.1. Het conditiegetal van het systeem uit de demonstratiehandleiding van KEDDC is ~{X)=193. Wordt dit systeem gebalanceerd met behulp van de functie "balance" binnen PROMATLAB dan neemt het conditiegetal van A zelfs af tot 3.55. Net zoals in 7.1.1 worden een aantal eigenwaarden gekozen voor het systeem. Zowel met behulp van PPLCR als PLACEPRO wordt een robuuste regeling berekend. De gekozen eigenwaarden staan in Tabel 7.3 weergegeven.

eigenwaarde multipliciteit

0.20 2 0.30 2 0.40 1 0.50 1 0.60 2 0.70 1

Tabel 7.3 Eigenwaarden en multipliciteiten van het KEDDC-systeem.

De keuze van de eigenwaarden is wederom alleen om de eigenschappen van beide algorithmen te testen. Voor zowel het gewone systeem als het gebalanceerde systeem worden Uz en U3 met behulp van de twee algorithmen berekend. De 2-norm van F, die overigens fluctueert tussen 3 en 7 wordt niet vermeld. In Tabel 7.4 zijn de waarden van Uz en U3 weergegeven, samen met het aantal iteratieslagen, voor het oogebalanceerde systeem. Uit de Tabel 7.4 volgt, dat de matrix X van rechter­eigenvectoren nergens goed geconditioneerd is, hoewel de systeemmatrix wel goed geconditioneerd is. De getallen U2 en U3 nemen wel af als het aantal iteraties toeneemt, maar na 300 iteraties ZlJn uz en U3 niet significant gedaald t.o.v. de waarden, na 100 iteraties.

7. RESULTATEN. Pag. 7.13.

i ter. U :::i ( *E3) U3

PPLCR 2 15.40 1254 PLACEPRO 2 7.714 1157

PPLCR 5 12.36 1174 PLACEPRO 5 7.561 1135

PPLCR 10 10.64 1162 PLACEPRO 10 7.519 1129

PPLCR 100 10.69 1140 PLACEPRO 100 7.515 1128

Tabel 7.4 Robuustheidsindicatoren hij verschillende aantallen iteraties voor het KEDDC-systeem.

Tabel 7.5 geeft de waarden van U2 en U3 voor het geba­lanceerde systeem weer, samen met het aantal iteraties.

i ter. U:z U-:s

PPLCR 2 1054 162 PLACEPRO 2 980 171

PPLCR 5 1054 162 PLACEPRO 5 1153 191

PPLCR 10 1054 162 PLACEPRO 10 1126 184

PPLCR 20 1054 162 PLACEPRO 20 1122 184

PPLCR 100 1054 162 PLACEPRO 100 1122 172

Tabel 7.5 Robuustheidsindicatoren bij verschillende aantallen iteraties voor het gebalanceerde KEDDC-systeem.

Ik vermoed, dat het slecht geconditioneerd ZlJn van de eigenvectormatrices samenhangt met het feit dat de eigenwaarden op de positieve reële as relatief dicht bij elkaar gekozen dienen te worden voor systemen met hoge orde. De nulruimtes s~ gaan meer op elkaar lijken naarmate de eigenwaarden dichter bij elkaar worden gekozen. Om deze veronderstelling te staven heb ik de eigenwaarden van het systeem nog dichter bij elkaar gekozen. Steeds is als kleinste eigenwaarde 0.1 gekozen. Allereerst heb ik de eigenwaarden gekozen vanaf 0.1 met

7. RESULTATEN. Pag. 7.14.

een onderling verschil van 0.10. De getallen U2 en U3 ZIJn van de orde 102 à 103 . Vervolgens zijn eigenwaar­den gekozen vanaf 0.1 met onderlinge verschillen 0.05. U2 en U3 zijn nu van de orde 10~. Indien de onderlinge verschillen van de gekozen eigenwaarden nog kleiner werden gekozen werden U2 en U3 van de orde 106 en nog veel groter (1013 enz.).

Vergelijkt men Tabel 7.5 met Tabel 7.4 dan vallen twee zaken op:

In Tabel 7.4 zijn de getallen U2 en U3 voor PLACEPRO steeds kleiner dan voor PPLCR. Ondanks dit feit zal straks de regeling, berekend door PPLCR robuuster blijken te zijn dan de regeling, berekend door PLACE­PRO. Mogelijkerwijs hangt dit samen met het feit dat de PLACEPRO-regelaar zó specifiek is voor het systeem dat fluctuaties in de systeemparameters minder goed kunnen worden "opgevangen" door deze regelaar dan door de minder specifieke PPLCR-regelaar. Het wordt dan echter de vraag in welke context we "robuust" moeten gaan zien. In Tabel 7.5 zijn de getallen U2 en U3 (vanaf 2 iteratieslagen) voor PPLCR kleiner dan voor PLACEPRO.

-De waarden van U2 en U3 zijn in Tabel 7.5 factoren 5 à 10 groter dan in Tabel 7.4. Het berekenen van regelin­gen voor het gebalanceerde systeem levert veel beter geconditioneerde matrices X van rechter-eigenvectoren.

Het is erg voorbarig om nu te stellen dat de regeling die berekend kan worden bij de gebalanceerde versie van het systeem robuuster is dan de regeling die berekend kan worden zonder het systeem te balanceren. Het balan­ceren van een matrix heeft een betere conditie van de matrix tot gevolg en het resultaat hiervan is, dat het berekenen van robuuste regeling op een numeriek stabie­lere manier verloopt. Een systeem dat reeds goed gecon­ditioneerd is, heeft van balanceren mogelijkerwijs weinig extra voordeel te verwachten. Nemen we vergelij­kingen (7.7) en (7.8) als uitgangspunt. Stel dat bij de gebalanceerde matrices Ac, Eb en eb een terugkoppelma­trix Fb berekend kan worden, dan wordt het volgende geregelde systeem verkregen.:

~(k+l)

Door terugsubstitutie van ~(k) • ~ 1 ~(k) vinden we:

~ 1 ~(k+l) = (Ao+Eb*Fb)*T- 1 ~(k) + Bt,g{k)

~(k+l) T* (At,+Bt.*Fb)*~ 1 ~(k) + T*Bt:.g(k)

(A+B*Fb*~ 1 )~(k) + Bg(k) = (A+B*F)~(k) + Bg(k)

(7. 9)

7. RESULTATEN. Pag. 7.15.

Hieruit volgt, dat Fo*T- 1 F. Indien inderdaad de berekende Fo vermenigvuldigd wordt met de berekende T- 1

levert dit. dat de meeste elementen van de F-matrix tot op meer dan twee decimalen nauwkeurig gelijk zijn aan de overeenkomstige elementen in de matrix Fb*T- 1

• De verwachting is daarom dat de twee regelingen vergelijk­bare prestaties leveren. Had het balanceren in 7.1.1 weinig zin vanwege het reeds goed gebalanceerd zijn van het 4• orde systeem. Hier is het nut van het balanceren klein omdat de A-matrix niet extreem slecht gecondi­tioneerd is. Balanceren verbetert de conditie van het systeem wel, maar het rertdement is minder dan gehoopt. Deze opmerkingen over het balanceren lopen enigszins vooruit op het feit dat verstoringen van alle elementen in de A-matrix met een bepaald percentage, evenveel gevolgen voor de ligging van de eigenwaarden hebben voor zowel het engebalanceerde als het gebalanceerde systeem. Het voert te ver om net als in 7.1.1 alle percentages te gaan vermelden. die de eigenwaarden afwijken van de oorspronkelijke waarden (het zijn er immers 9). In Tabel 7.6 zijn voor zowel het engebalanceerde als het gebalan­ceerde systeem grootte-ordes gegeven voor het gemiddelde percentage, dat de eigenwaarden gaan afwijken bij verstoringen van alle elementen van de A-matrix met een gegeven (maximaal) percentage. De gemiddelde foutenper­centages ZlJn berekend voor systemen met een regeling berekend door PPLCR en door PLACEPRO. De werkelijke percentages zijn weergegeven in Appendix F voor versto­ringen van 0.001 % in ieder element van de matrix A. Volgens de tabel maakt balanceren van de systeemmatrix voor dit systeem niet veel uit. De ordegrootte's van de percentuele fouten zijn voor het engebalanceerde en het gebalanceerde systeem gelijk. Het is duidelijk uit Tabel 7.6 dat PPLCR een robuustere regeling heeft berekend dan de functie PLACEPRO. De eigenwaarden blijven beter op de aangewezen plaatsen liggen bij verstoringen in de A-matrix. De afwijkings­percentages liggen voor PLACEPRO ruwweg een factor 1 tot 10 hoger dan voor PPLCR.

verst.% A Ongeb. %afw. Geb. %afw.

PPLCR 0.001 0.01 à 0.1 0.01 à 0.1 PLACEPRO 0.001 0.1 à 1.0 0.1 à 1.0

PPLCR 0.01 0.1 à 1.0 0.1 à 1.0 PLACEPRO 0.01 1.0 à 10 1.0 à 10

PPLCR 0.1 1.0 à 10 1.0 à 10 PLACEPRO 0.1 > 10 > 10

Tabel 7.6 Gemiddelde afwijkingapercentages bij het engebalanceerde en het gebalanceerde systeem met regelingen volgens PPLCR en PLACEPRO.

7. RESULTATEN. Pag. 7.16.

Ook hier zijn de resultaten grafisch weergegeven. Van de stapresponsies van het 9• orde systeem worden de respon­sies bekeken als gevolg van een stap op ingang 2. In Fig.7-7a. zijn de stapresponsies weergegeven van het ongeregelde systeem (regeling met PPLCR en PLACEPRO levert dezelfde stapresponsies). Fig.7-7b. geeft de stapresponsies weer van het geregelde systeem. Bij dit systeem ZlJn nog geen verstoringen aangebracht in de matrices A,B of F. In de Figuren 7-Sa. en 7-Sb. zijn de responsies van dezelfde uitgangen te zien als ieder element van de A­matrix met maximaal 1% wordt verstoord. Duidelijk is te zien, dat de responsies van het systeem, dat geregeld is met een regelaar berekend door PLACEPRO (Fig.7-8b.) een hogere "overshoot" hebben dan het op de andere wijze geregelde systeem. Vergelijkt men de Figuren in 7-8 met Fig.7-7b., dan kan men concluderen, dat het systeem robuuster te regelen is m.b.v. de regelaar ontworpen door PPLCR. Fig.7-9 geeft de responsies weer van het systeem, dat geregeld is met de regelaar, berekend door PLACEPRO. Het systeem werd verstoord door maximale afwijkingen van 0.1% in alle elementen van de A-matrix. De overshoot van dit systeem is iets kleiner dan de overshoot die het systeem van Fig.7-8a. vertoont. Een verstoring van ieder element in de A-matrix met 0.1% bij het systeem, gere­geld met behulp van PLACEPRO (Fig.7-9) heeft globaal dezelfde gevolgen als een verstoring van 1% van ieder element van A als het systeem geregeld wordt m.b.v. PPLCR (Fig.7-8a.)

3.---~----~----~----~----~--~----~----,

2.5

2

1.5

0.5

0

-0.5

I­i i ! I

-tL---~----~----~----~----~--~----~--~ 0 10 30 50 60 70 80

SAMPLE

Fig.7-7a. Stapresponsies van het ongeregelde systeem.

4.

••

7. RESULTATEN. Pag. 7 17.

o.45 r '· ~ ---------------------- --------------------------- ------·- ------------ ---------------

0.4 ~ ..

\

0.35 ~

0.3 ~ i i : I

0.25 f- l I

0 2 t 1 0.15 ~

I I 0.1 r

0.051

o' n 10 20 30 40 50 60 70 60

SAMPLE

Fig. 7-T_ ._-:_~~~-:r-:~~=,~=~:::-·::P3 \/f3r: ·:-:et ç-~r-:--ge~è~ SYE-teenl. ><H2J 4H2.J!

0.4 ~. !l I ~ 0.3

0.2

0.1

0.0

0 20 40 60

0.45 '~

0.4 /\ i\

0.35

0.3

0.25

1~:~/-···_--_----_---·_----_----_-----_----_----_----_----_-----_----_---_-_---_-----_----_---_----_-----_----~---

\

0.2 I 0.15

0.1

0.05

0 i 0 10 20 30 40 50 60 70 60

SAMPLE

Fig.7-8 Stapresponsies van het systeem met verstorin­gen van maximaal 1% in alle elementen van A. a. Systeem geregeld m.b.v. PPLCR. b. Systeem geregeld m.b.v. PLACEPRO.

7. RES'JLTATEN.

0.4

0.35

0.3

I 0.25

0.2

0.15

0.!

0.05

Pag. 7.18.

~

i

i Î I

-1

i

j

0~--~~--~----~----~----~----~----~--~ 0 10 20 30 40 60 70 80

SAMPLE

Fig ~-9 Systeem geregeld m.b.v. PLACEPRO. Verstorin­gen in A-matrix maximaal 0.1%.

Om het verschil in robuustheid van de regelaars. ontwor­pen m.b.v. PPLCR enerzijds en PLACEPRO anderzijds nog eens te benadrukken, zijn random verstoringen aange­bracht van 10% in alle elementen in de A-matrix. In Fig.7-10 zijn vier plaatjes te zien van stapresponsies van het systeem. geregeld m.b.v. de regelaar van PLACE­PRO. Vanwege het random karakter van de verstoringen zijn de vier plaatjes verschillend. Er is geen enkel stabiel systeem bij. Deze vier stapresponsies vormen een greep uit een erg groot aantal. Ook bij dit grote aantal waren geen stabiele systemen. Derhalve is te concluderen dat bij verstoringen van 10% of meer in alle elementen van de A-matrix de regelaar het laat afweten en het systeem instabiel wo~dt.

200 30

100 20

0 10

-100 0

-200 -10 0 20 40 60 80 0 20 40 60 80

6 :a:JOII 10 x10II

0 6

-6

0

~ -10

-15 -6 0 20 40 80 80 0 20 40 60 80

Fig.7-10 Stapresponsies van het verstoorde systeem (regelaar volgens PLACEPRO) .

a.

b.

~.

7. RESULTATEN. Pag. 7.19.

In Fig.7-ll is te zien wat er gebeurt met het systeem dat geregeld is m.b.v. de regelaar volgens PPLCR. als ieder element van A met maximaal 10% wordt verstoord. Van dit systeem zijn twee stapresponsies weergegeven. In de derde figuur zijn stapresponsies weergegeven van hetzelfde systeem als de A-matrix met maximaal 30% wordt verstoord.

... ...... o ...

o .•

o ••

o.o.

o.o ~.~--------~.=.----------~ .. 7.----------~.~.--------~

.........

: : : : :

o.o

-o.& ~.----------~.~.----------~ .. 70----------~.~o--------~

x-~ ......... ...... .,. • I • ..

-~' 0

-· 0 •o ... --~L.·

Fig.7-11 Verstoringen van 10% (a. en b.) en van 30% in elementen van A (c.)

Uit de stapresponsies van de geregelde systemen kan men concluderen dat de regeling, die berekend is met de module PPLCR robuuster is dan de regeling volgens PLACEPRO. Vooral de stapresponsies van de systemen, waarvan de A-matrix met maximaal 10% wordt verstoord maken dit duidelijk.

7. RESULTATEN. Pag. 7.20.

7.2. Het warmtewisselaar-systeem.

In de vakgroep is een warmtewisselaar aanwezig. waaraan gedurende geruime tijd geäxperimenteerd is. De ruwe meetdata is aanwezig in een PRIMAL-dataset. Achtereen­volgens wordt de meetdata besproken. daarna het conditi­oneren van de meetdata en het schatten van een MIMO­model en tenslotte worden een aantal stapresponsies vergeleken van het oorspronkelijke systeem en het op verschillende wijzen geregelde systeem.

Het warmtewisselaar-systeem waarvan het model wordt geschat heeft twee ingangen en twee uitgangen. Het model is van orde vier. De twee ingangssignalen die aan het systeem worden aangeboden ZlJn QKS en QWS. Dit zijn respectievelijk het gestuurde koudwaterdebiet en het gestuurde warmwaterdebiet. Door de dynamica van de kleppen en verschildrukzenders en door meetruis zijn de gestuurde signalen niet gelijk aan de werkelijke in­gangssignalen. De twee werkelijke (gemeten) ingangs­signalen zijn respectievelijk QKM en QWM. De gemeten uitgangssignalen zijn de temperatuur van het koude water en de temperatuur van het warme water aan de uitgang van de warmtewisselaar. De watertemperaturen aan de ingang worden eveneens gemeten. Het blijkt dat vooral de temperatuur van het warme water, dat de warmtewisselaar ingaat een trend vertoond. Dit betekent dat gedurende de meting de temperatuur langzaam verandert (in dit geval stijgt de temperauur). In Fig.7-12 is een schema van het model weergegeven.

QKM

QWM

Warmte­wisselaar.

TKU

TWU

Fig.7-12 Schema van het warmtewisselaarmodel.

7. RESULTATEN. Pag. 7.21.

Het meten aan de warmtewisselaar vond plaats met een bemonsteringsperiade van 1 seconde. Gedurende de eerste 1000 seconden is een testsignaal aangeboden aan de klep die het warmwaterdebiet stuurt en gedurende de 1000 seconden daarna is een testsignaal aangeboden aan de klep die het koudwaterdebiet stuurt. In beide gevallen betrof het een z.g. "pseudo-random binair ruissignaal".

Het conditioneren van de ruwe meetdata gebeurt binnen PRIMAL met de module "Filter". Gekozen is voor een filter dat de hoge frequenties doorlaat. Uitgaande van de gefilterde meetdata is de module "Guidorzi" een MIMO-model wisselaar-systeem geschat. In appendix weergegeven.

met behulp van van het warmte­

G is het model

Vervolgens is het mogelijk om het model te gaan valide­ren. De module "Modeltst" laat het model op grond van ingangssignalen. aangeboden aan het systeem het uit­gangssignaal berekenen. In Fig.7-13 ZlJn een aantal samples van de werkelijke uitgangssignalen weergegeven. samen met de door het model voorspelde waarden. Het verschil van de twee signalen is de simulatiefout. De vermogens van deze simulatiefouten ZlJn uit te drukken als percentages van de vermogens van de bijbeho­rende berekende uitgangssignalen. Dit percentage is voor de signalen in Fig.7-13a. 4.57 (uitgang: TKU) en voor de signalen in Fig.7-13b. : 22.0 (uitgang: 1WU).

De eigenwaarden van het geschatte model zijn:

1. 0. 8772 2. 0. 6595 3. -0.4081 + i*0.0460 4. -0.4081 - i*0.0460

ATM.U

. ..

-· ~--------~------~--------~--------~------~ ~ &00 &&&0 ..... o

x ...... 4TWU

0

-· -a ~.-.-0 ------~ •• ~o------~.-?-O------~ •• ~o------~.-.-o------~

,..oo ... g_

Flg.7-13 Werkelijke en voorspelde uitgangssignalen (m.b.v. "Modeltst")

7. RESULTATEN. Pag. 7.22.

In Fig.7-14 zijn respectievelijk de impulsresponsies en de stapresponsies weergegeven van het ongeregelde sys-teem.

)(H&-.A 6H&- ... -~ ........

~ I

.... I o.o

-o.•

V tl. -o.e .. . .. . .. . .. ........... &-. )(H&_.& AH&_. ... -~ ·---

:~ : : :! "·

-· r -· '~===== --· ..., " 11 : .. i

IA.

h,

.. ... i.o ' •o ........ ~~....

Fig.7-14 a. Impulsresponsies van het ongeregelde systeem. b. Stapresponsies van dit systeem.

Met de module "PPLCR" zijn vervolgens de polen geplaatst van dit systeem. Gekozen is voor de volgende polen om het systeem sneller te laten reageren op input-veran­deringen: 0.30, 0.35, 0.40 en 0.45. De impuls- en stapresponsies van dit systeem zijn weergegeven in Fig.7-15.

x ........ 'O'Ha.....a

~--------------------------------------------~

! o.•

Î'"'__"-o.•

o.o 9 -o.•

-o ... \; -o.•

-o.• 0 &0 ao ao

....... L..

)(M&....a ·---

-~ t_~ --~ ---~ -----+~-------1: I ~ .. ~--------~&7 .. ----------~.~ .. ----------~.~ .. ---------J

Fig.7-15. Impuls- en stapresponsies van het geregelde systeem.

a.

6.

7. RESULTATEN. Pag. 7.23.

Om het systeem desgewenst nog sneller te laten reageren ZlJn in Fig.7-16a. de stapresponsies weergegeven van het systeem met de polen: 0.20, 0.24, 0.28 en 0.32. In Fig.7-16b. zijn de stapresponsies weergegeven van het systeem als de volgende polen zijn geplaatst: 0.08, 0.12, 0.16 en 0.20. Aan de stapresponsies is te zien dat het plaatsen van polen dicht bij nul tot gevolg heeft, dat de statische versterkingen wat afnemen.

)(H&_.& 6 .... _. ·~ +-...

•• 0

... o.o

-o.•

0 00 •• ........ L...

)(M&_.a AH&_. ·-..... +-...

...

... -o.• \ -· ..

0 •• •• • • ....... L...

Fig.7-16. Het systeem geregeld met nog kleinere polen.

Aanvankelijk was het de bedoeling om de regelingen daadwerkelijk te gaan uitproberen op de warmtewisselaar­opstelling. Dit is mogelijk met een software-pakket, genaamd "Control EG". Met dit pakket is het mogelijk om testsignalen op een systeem te zetten en software~atig het systeem te regelen. Het systeem is tegenwoordig gekoppeld aan een opstelling met een klimaatkamer, die zijn warmte ontrekt aan een vloerverwarming waar water doorheen stroomt. Dit water is afkomstig van een opslag­vat met gelaagde warmte-opslag. Staals beschrijft dit experiment dat gestuurd wordt door het bedoelde soft­ware-pakket [STAA88]. Gezien de tijd die het zou vergen om zich eigen te rnaken met dit software-pakket is uiteindelijk afgezien van het testen van de warmtewisselaar met "Control EG".

8. CONCLUSIES EN SUGGESTIES. Pag. 8.1.

8. CONCLUSIES EN SUGGESTIES VOOR VERDER ONDERZOEK.

8.1. Conclusies.

Tijdens het afstuderen is de poolplaatsingsmodule PPLCR ontwikkeld. De module kan reële polen plaatsen op gewenste posities, zodanig dat de polen zo ongevoelig mogelijk zijn voor verstoringen van de matrices van het systeem. De module is vergeleken met de PRO-MATLAB­functie "PLACE", die voor dit doel enigszins gewijzigd is. De gewijzigde versie is "PLACEPRO" gedoopt.

Uit de resultaten zijn de volgende conclusies te trek­ken:

1. Het vergelijkend onderzoek van de software-pakketten bracht aan het licht dat de meeste pakketten globaal dezelfde mogelijkheden bieden. Uit een groot opgezet vergelijkend onderzoek naar de mogelijkheden van 21 pakketten, uitgevoerd door Cellier en Rimvall (zie [CELL86]) blijkt dat het software-pakket MATRIX-X het best uit de bus komt. Dit is mede te danken aan de grafische "system-build"-mogelijkheid die het pakket biedt.

2. Op rcbuust regelaarontwerpgebied zijn de mogelijk­heden van alle pakketten, behalve PRO-MATLAB, erg be­perkt (poolplaatsing kan vaak alleen voor SISO­systemen) . PRO-MATLAB kent de poolplaatsingsfunctie "PLACE" (voor MIMO-systemen) die gebaseerd is op een robuust algorithme van Kautsky, Nichols en Van Dooren. De functie "PLACEPRO" is ontstaan uit "PLACE".

3. Het robuuste algorithme van Kautsky, Nichols en Van Dooren verdient de voorkeur boven de methode beschre­ven door Ackermann en de methode beschreven door Patel. Deze laatste methoden hebben globaal dezelfde nadelen: - Niet gegarandeerd numeriek stabie 1. - Splitsing van het systeem in subsystemen, waarvan

één of enkele nog van hoge orde kunnen zijn, ter­wijl het doel van beide methoden is: het splitsen van het systeem in subsystemen van ongeveer gelijke grootte. Beperkte bewegingsvrijheid voor keuze van F. Eis van volledige regelbaarbeid voor een systeem.

4. De module PPLCR levert voor een slecht geconditio­neerd 4• orde systeem een regelaar die iets minder robuust is dan de functie PLACEPRO in PRO-MATLAB. De stapresponsies van het systeem gaan duidelijke afwijkingen vertonen als alle elementen van de A­matrix met 10 % of meer worden verstoord. Balanceren van de matrices van het systeem had in dit geval weinig verbetering van de robuustheid van de regeling tot gevolg omdat de syteemmatrix A, hoewel slecht geconditioneerd, niet slecht gebalanceerd was (de rlJ- en kolom-normen van de A-matrix zijn van dezelfde grootte-orde).

8. CONCLUSIES EN SUGGESTIES. Pag. 8.2.

~. Voor een goed geconditioneerd 9• orde systeem functioneert de module PPLCR beter dan PLACEPRO. De afwijkingspercentages van de eigenwaarden liggen bij verstoringen van het systeem dat geregeld is met behulp van PLACEPRO een factor 1 tot 10 hoger dan voor het systeem geregeld met behulp van PPLCR. Bij verstoringen van 10 % of meer in ieder element van de A-matrix wordt het systeem dat geregeld is met behulp van PLACEPRO instabiel. Het met de andere regelaar geregelde systeem blijft bij dergelijke verstoringen stabiel. Bij verstoringen van 30% is ook dit gere­gelde systeem instabiel. Balanceren had hier weinig zin omdat de systeemmatrix zo goed geconditioneerd was, dat een erg robuuste regelaar te berekenen was.

6. Balanceren heeft waarschijnlijk alleen veel effect voor systemen met een systeemmatrix die zowel slecht geconditioneerd als slecht gebalanceerd is.

7. Ondanks een goed geconditioneerde A-matrix kan de matrix van eigenvectoren X toch slecht geconditio­neerd zijn. Dit is afhankelijk van de afstand tussen de eigenwaarden, die men kiest op de positieve reële as.

Uiteraard kunnen deze conclusies pas werkelijk op hun waarde beoordeeld worden als ·voor veel meer dan twee systemen een regelaar wordt ontworpen door zowel PPLCR en PLACEPRO.

8.2. Suggesties voor verder onderzoek.

Enkele aanbevelingen zijn de volgende:

1. De robuustheid van een systeem kan worden getest, door verstoringen aan te brengen in A, B en/of F. Men kan ook de robuustheid van de regeling testen door het gedrag van een geregeld, geschat model van een systeem te vergelijken met het werkelijke geregelde systeem. Door een model van een systeem te schatten dat één of meer ordes lager is dan het werkelijke systeem, worden in feite modelfouten geïntroduceerd. Het is interessant om na te gaan of de regelaar die geschat wordt met behulp van het model ook in de praktijk goed functioneert. Is dat het geval. dan is de regelaar robuust. Binnen PRIMAL is dit als volgt uit te voeren: Men neemt een geschat model van een systeem (bijvoorbeeld 14• orde). Vervolgens berekent men een model van lagere orde (bijvoorbeeld 4• orde) dat het systeemgedrag zo goed mogelijk kan verklaren. Bepaal bij dit 4• orde model een regelaar en gebruik deze om het 14• orde model te regelen. Bij deze werkwijze zal het berekenen van een toe­standswaarnemer nodig zijn, daar het aantal toestan­den van de modellen verschillend is.

8. CONCLUSIES EN SUGGESTIES. Pag. 8.3.

2. Als vervolgonderzoek is het nuttig om Integrerende actie toe te voegen aan de Proportionele actie van de met behulp van PPLCR berekende terugkoppeling.

3. Het is nuttig om te onderzoeken of het balanceren van een slecht geconditioneerd én gebalanceerd systeem "winst" oplevert wat betreft robuustheid van de regeling.

4. Om na te gaan hoe de groot de afwijkingen zijn van de eigenwaarden bij verschillende verstoringspercen­tages is het nodig om een groot aantal maal een geregeld systeem "random" te verstoren. De stochasti­sche fluctuaties nemen af met de reciproke wortel van het aantal berekeningen dat men uitvoert. Om de onzekerheid met een factor 100 te verminderen zijn 10000 berekeningen nodig (en dit zal voor het negende orde systeem in totaal twee etmalen rekentijd kosten op een VAX-(2000)-station).

5. Het is interessant om de door PPLCR berekende rege­laar te testen op praktijkprocessen, bijvoorbeeld de warmtewisselaar. Bij de warmtewisselaar kan de regelaar geïmplementeerd worden met behulp van het software-pakket "Control EG". Met dit pakket kan men ook I-actie aan de regeling toevoegen. De I-actie dient dan voor het wegregelen van de statische afwij­king.

6. Betrek de binnentemperatuur Tr van de klimaatkamer als te regelen grootheid bij het systeem. De opstel­ling is hiervoor compleet en de instellingen in het "Control EG"-pakket ZlJn reeds gedaan door Staals tijdens zijn afstuderen [STAA88].

7. Het is beter om steeds een ander "seed" mee te geven aan de "random number generator" URAND, in de LIBM­bibliotheek om ervoor te zorgen dat de verstoringsop­tie in PPLCR niet steeds dezelfde "random"-reeks getallen pakt.

LITERATUURLIJST.

[ACKE72] Ackermann. J., Abtastregelung., Springer Verlag, Berlin, 1972.

[ACKE77] Ackermann. J., Entwurf durch Polvorgabe., Regelungstechnik, 1977, vol.7, p.209.

[ACKE83] Ackermann, J., Abtastregelung, zweite Auflage., Band I : Analyse und Synthese. Band II: Entwurf rebuster Systeme. Springer Verlag, Berlin, 1983.

[ACKE85] Ackermann, J., Sampled data control systems., Springer Verlag, Berl1n, 1985.

[CELL86] Cellier, F.E., Rimvall, M., Computer-aided control system design: techniques and tools., CERL­report 86/04., University of Arizona, Tucson, Arizona.

[DOOR81] Van Dooren, P., The generalized eigenstructure problem in linear system theory., IEEE Trans. AC, 1981, vol.26, pp. 111-129.

[FLET85] Fletcher, L.R., Kautsky, J., Kolka, G.K.G. and Nichols, N.K., Some necessary and sufficient condi­tions for eigenstructure assignment., Int. J. Contr., 1985, vol.42, pp.1457-1468.

[GOLU83] Golub, G.H., Van Loan, C.F., Matrix Computati­ons., North Oxford Academie, Oxford, 1983.

[GUNT86] Günther, Prof. Dr.-Ing. M., Zeitdiskrete Steuersysteme., VEB Verlag Technik, Berlin, 1986.

[JAMS85] Jamshidi, M., Herget, C.J., Computer aided control system engineering., North Holland publishers, New York, 1985.

[KAUT85] Kautsky, J, Nichols, N.K., en Van Dooren, P., Robust pole assignment in linear state feedback., Int.J. Control, 1985, vol.41, pp.1129-1155.

[KU080] Kuo, B.C., Digital Control Systems., CBS publis­hing Japan, Ltd., 1980.

[LIND86] Linden, Ir. R.J.P van der, Handleiding voor het schrijven van PRIMAL-applicaties., Faculteit der Techni­sche Natuurkunde van de Technische Universiteit Eindho­ven, NR-1312P, 1986.

[LIND85] ard for van de 1985.

Linden, Ir. R.J.P. van der, Programming stand­PRIMAL., Faculteit der Technische Natuurkunde

Technische Universiteit Eindhoven, NR-1229P,

[LUEN67] Luenberger, D.G., Canonical forms for multiva­riable systems., IEEE Trans. AC, 1967, vol.12, p.290.

[MUNR79] Munro, N., Proc. Instn. electr. Engrs, 1979, Vol.126, p. 549.

[PATE84] Patel, R.V. en Misra, P., Numerical Algorithms for eigenvalue assignment by state feedback., Proc. of the IEEE, 1984, vol.72, pp.1755-1764.

[RADE85] Rademaker, Prof. Ir. 0., Dynamische systemen en informatieverwerking., collegedictaat faculteit Techni­sche Natuurkunde van de Technische Universiteit Eindho­ven, NR-1305, 1985.

[SCHM85] Schmidt, demonstratiehandleiding KEDDC.

[STAA88] Staals, G.F.R., Verificatie van dynamisch optimale sturingen die ZlJn verkregen door computer­simulaties., Afstudeerverslag Technische Universiteit Eindhoven, NR-1561E, 1988.

[VELT85] Veltkamp, rieke methoden., en Informatica van no. 2368, 1985.

Prof. Dr. G.W., Inleiding in de nume­collegedictaat faculteit der Wiskunde de Technische Universiteit Eindhoven,

[VELT86] Veltkamp, Prof. Dr. G.W., Methoden uit de nume­rieke algebra., collegedictaat faculteit der Wiskunde en Informatica van de Technische Universiteit Eindhoven, no. 2413, 1986.

[WILK65] Wilkinson, J.H., The algebraïc eigenvaluepro­blem., Oxford University Press, Oxford, 1965.

APPENDIX A.

Bewijs van de Formules (5.16) en (5.17).

De eigenvector ~j van A+B*F moet deel uitmaken van de ruimte:

S.; (A. 1)

De dimensie van Sj is: ingangen en het getal nieerd als:

p+k; (De som van het aantal k_i). Dit getal k_; wordt gedefi-

k_i = dim ( nu 11 { [ B 1 A - l_; * I ) ,. } ) (A. 2)

Bewijs:

Omdat (Qd '*(A~.; - l_; *~d =0 voor alle j en derhalve ook X; deel uitmaakt van S; (zie (5.15) ) , geldt volgens CA.2l dat (omdat de dimensie van een ruimte gelijk is aan de som van de dimensies van de nulruimte en de beeldruimte):

rank( [B 1 A- l_1*I ) )=n-k_; (A. 3)

Gebruiken we nu

en

B [ ~. Q, ] • [ : ] (A.4)

dan is de (n-p)xn matrix

1..:~ *I)]

1..:~ *I)

(A.5)

De matrix R van de OR-decompositie is orthogonaal en heeft afmetingen pxp. Derhalve geldt dat de rang van

(Qt)'*(A- L,*I) (de dimensie van de beeldruimte van die matrix) gelijk is aan: n-p-k~. vanwege formule (A.3l.

n-p-kj rank { ( Ot ) .,. * (A - L j I ) } (A.6)

Hieruit volgt meteen, dat

dim( null{ (Q1)T*(A- l_;*!)} )=dim( 5_; )=p+k.J

(A.7)

Hiermee is het bewijs afgerond.

APPENDIX B.

De vierde robuustheidsindicator geeft een indruk van de "afstand" tussen de matrix X en een unitaire matrix X*. De vectoren ~j worden zo gekozen dat ze de orthogonale projecties van :l<1 (uit de unitaire matrix) zijn in de ruimtes S_j , waar de di verse ~-; vandaan komen. We kunnen het i nprodukt u i trekenen van ~-i en .&..j .

COS6_; ( 1- ( 4>-j ) :2 ) ~ 1 (B. 1)

Hierin is 6_; de hoek tussen de twee vectoren en 4>J=sin6_; Als vierde maat voor de robuustheid kunnen we nemen een bepaalde som voor de hoeken tussen de vectoren. Deze som luidt:

n-".1: (:L: sin2 6_1 ) .. s. j

n--~ ( :L: ( 4>_; ) 2 ) ".!:

j

Het is duidelijk dat voor ~4 geldt:

(B. 2)

(B. 3)

Wederom bereikt deze robuustheidsindicator ZlJn minimale waarde als de set van rechter-eigenvectoren in het algo­rithme orthonormaal is. De minimale waarde is nul. In het artikel van Kautsky, Nichols en Van Dooren wordt nog afgeleid hoe U4 eruit ziet bij een niet-genormaliseerde basis van eigenvectoren. Hier wordt er verder niet op ingegaan, omdat deze robuustheidsindicator toch niet gebruikt wordt in de module PPLCR.

APPENDIX C.

Om de opbouw van de module PPLCR te verduidelijken is in Fig.C-l op de volgende bladzijde een lagenstructuur weergegeven. Laag 0 is de bovenste laag, het hoofdpro­gramma. Van daaruit dringen we met behulp van verschil­lende subroutine-aanroepen door in de diepere lagen. In de figuur zijn de namen van de subroutines weergegeven (uiteraard niet de argumentenlijst). Op de betekenis van de diverse PRIMAL-subroutines wordt straks teruggekomen. De PPLCR- en LIBM-subroutines zijn reeds aan de orde geweest in Hoofdstuk 6. Onderstreepte subroutinenamen zijn door mij geschreven module-specifieke subroutines. De niet-onderstreepte namen komen uit de LIBM.MAT bibliotheek en de vet gedrukte subroutine-namen komen uit PRIMAL-bibliotheken. Subroutine-namen bestaan in FORTRAN-77 uit maximaal 6 letters of cijfers. Andere conventies voor het schrijven van PRIMAL-modules zijn te vinden in [LIND85}.

PRIMAL-subroutines.

Van de verschillende PRIMAL-subroutines, die gebruikt zijn in de module PPLCR wordt een zeer korte omschrij­ving gegeven. Uitgebreidere beschrijvingen worden gegeven in de PRIMAL-documentatie. Achtereenvolgens (alfabetisch) worden de gebruikte subroutines genoemd, voorzien van toelichting.

1.

APLERR

APLERI APLINF

APLINT APLOKE APLRUC

APLSTP APLTRC

APLWCL

MTXCHK

MTXCRE MTXOPN MTXWR2 TXTCRE

Subroutines uit de "PRIMAL application program 1 ibrary".

Rapporteert een fout bij uitvoer van een programma(-deel). Rapporteert fout + een integer waarde. Leest de standaard-informatie uit een dataset (oorsprong, datum, tijd, enz.). Zorgt voor de initialisatie van een module. Meldt succesvolle start van module. "Unclaim" bepaald type dataset na lezen uit de dataset. Meldt dat module gestopt (klaar) is. "Claim" een bepaalde dataset om te lezen uit de dataset. "Claim" een bepaalde dataset om te schrijven in de dataset.

Retourneert de matrices, die aan een bepaalde eis voldoen (bijv. deel uitmaken van een State-Space systeem) . Creëert en open een matrix-dataset. Opent een matrix-dataset om te kunnen lezen. Schrijft een matrix naar een dataset. Creëert en opent een bepaald type tekst-data­set.

laag 0 laag 1 laag 2 laag 3 laag 4

PPLCR APLINT PPIFl MTXOPN

APLERR APLTRC APLINF MTXCHK MLRGRP APLRUC

PPQPl QSIN QSINI QSTPAG QSPTXT QSQIDN QSQINT QSOUT APLERR

PPRMD MLRSSl PPCKD APLERR APLRUC

PPCLMB CORTH, COMQR3 WQRDC, WQRSL WSVDC APLERR

PPQP2 QSIN QSINI QSTPAG QSPTXT QSQINT QSQDBL QSQLOG QSOUT APLERR

PPCRMT MTXCRE PPCRTX TXTCRE PPCRDS MTXCRE APLWCL APLOKE PPLC PPSBSP WQRDC, WQRSL

PPINV WGECO, WGEDI WNRM2

PPNWBS WQRDC, WQRSL WGECO, WGEDI WNRM2

CORTH COMQR3 MLWSSl MTXWR2 PPDSTR PPELRD

PPCLDS URAND MLWSSl MTXWR2 CORTH COMQR3

PPTXl TXTWR TXTUPD

APLSTP

Fig.C-l Laagstructuur van de module PPLCR.

TXTWR

2.

MLRGRP MLRSSl MLWSSl

3.

QSIN QSINI QSOUT QSPTXT QSQDBL QSQIDN QSQINT QSQLOG QSTPAG

Schrijft naar een dataset van dat type.

Subroutines uit de "PRIMAL matrix operations 1 ibrary".

Leest systeemspecificaties uit een dataset. Leest een State-Space model uit een dataset. Schrijft een State-Space model naar dataset.

Subroutines uit de "PRIMAL question system library".

Begint vragenlus in vragenpagina. Initialiseert vragenpagina-systeem. Beeindigt vragenlus in vragenpagina. Drukt tekst op een vragenpagina af. Vraagt om "double precision" waarde. Vraagt om "ident if i er". Vraagt om "integer" waarde. Vraagt om "boolean" waarde. Start een (sub)vragenpagina.

APPENDIX D.

Tekst Dataset:

PPLCR, Release: 1.3.0

----------Input Data------------------------------

[EXTERN.-JMATEDIT.-;1 120CT88 MATEDIT

----------Model-----------------------------------

Selected system

Number of inputs Number of outputs

State Space Model

SYSTEM

2 2

State vector dimension 9

Number of iterations 10

----------Measure of resemblance of ----------

----------left and right eigenvectors. ----------

NUU (eigenvectors) 1140.9

Condition eigv.matrix 12086.

----------Userdefined eigenvalues-----------------

Eigenvalue 1 0.20000 Multiplicity 2

Eigenvalue 2 0.40000 Multiplicity 1

Eigenvalue 3 0.50000 Multiplicity 1

Eigenvalue 4 0.60000 Multiplicity 2

Eigenvalue 5 0.70000 Multiplicity 1

Eigenvalue 6 0.30000 Multiplicity 2

----------Calculated eigenvalues (check)----------

Calc. Eigenv. 1 0.70000 + i* O.OOOOE+OO

Calc. Eigenv. 2 0.50000 + i* O.OOOOE+OO

Calc. Eigenv. 3 0.40000 + i* O.OOOOE+OO

Calc. Eigenv. 4 0.20000 + i* O.OOOOE+OO

Calc. Eigenv. 5 0.20000 + i* O.OOOOE+OO

Calc. Eigenv. 6 0.30000 + i* 0.2292E-13

Matrix-dataset:

C n:,; Cu 1 i'iudt1L: c,l,ci . .i.ull li.:h:/1.~ml·::

Li -~ I,,;·.:,;: i. :~ .\ .......

' ' tn~; L. I .1. \,.' t.' >.- ,.

c

r:· i""l. CF: 1 i~(l!J(i()

1 ' .. ij,.

D

; ..; •• <\:"' \i

1 [·:; 1 :l ::?<i

DT

J .................. .. .................. ·- ,;·· .................. ·î· ................... :i ....... -·-·· ...... l)-- ·-

1 i :21

,') • ,') 'l ;" ··1 (j > IJ ~ 0./0~~~ .. 0l O.~YE~

J .,,,,..,

•• ~) ., ,. ~)..=, 14.·~'7 .. <i, :iëWO {i, 1:, 77E .. \iJ ··(i, ·Hl /'~il~ · (l :)

Jl 1.:.::~1 ··t!.óiil ··.:dHl0 0>\>.J.; .. (L:~O:ï::>

41 .J.::-H;~T·O:: ·{i,:;o;~\;[ .. {);2 \i,r',i,:ï:ii:. .. 01 O.:::ïl:·:r- .. O.:W!ióE-\i:) :j I (j • :) _lil~' i:> !i:: ti, .l /<)at> 0:: ·· 0 , 4 B 1 ~} E ·-ti:: - () , 14 tl a i:> 0:: 0 .c'H) <1 7 61 · o.177:::if .. o:: .. .:;,:t4J1L .. o:2 o.:)'lt;1E· o:· \i,/t:(i:;~ .. <l::· o.:;:;?o ,., o.::,L.;;;;:: .. o4 G,J·,~.;;;r: .. o4 .. o.;i4i>/i·>-<i4 -·0.1()/:~t: .. oJ ··(),1B/1E .. O~.i 3 I (i.:::;:: l'l'l:. ·\i~'· 0, H ·H)E .. o:-; .. 0, l L'OE .. 0:: .. (i, ~;:'V!if. .. (ï;2 .. 0, /'/'!i 1E ··(i1 '? I <i , .l M> ;;~:-- 0 i> 0 , Li :~:a·:-- Ol> .. <l .. ~i':; :a-:-- 0 i1 .. 0 , i',;·.~ 0 C -0 <'1 .. 0 , ~! 4 :':3(->- <i 1

·--- •- •·• ~.",. •••-•••·•·•-• •·• 8· • .. - ,,,, ... , .. ,,,, ~j•••••oo

1 I ~~ / ~" ~ .... \)Ü,

21 (l. ~ t:2 ·H· ... o:2 31 1.4:.:3 -41 0 + :: ~: ,•1 ~~ [ . (l ::

:il ·-l} .. 4/7 ~I .. ~~. ~:o 71 0 • J.'l :;o 31 0. 80S'2E · 01 71 (j, :~~iill [ .. 04

o.~JY3 ··10,/6 (i, :):ol>~·F .. o::; .. 0, i COr ... 01

0.31GOE-O~ .. (i,iOVJE .. Ol ··l,J30 ·1,377 1.110 1.046

··O,l~ö~f·Ot ·O,~~:i~E-01

0,6346 ·l,/'~&

<i, B:!~i/L .. 01 0, ~.j·14

··-- ~ ... - 1· ...... ·- .......... ~: .... ·-11 <) > 0 ()\)<) f + () () :; > ;j',! 1 21 O.OOOOEiOO 0. :) }lj'IJt .. o::: 31 0 >()()<)<)[i·()() ;; ; !l22 41 0, OOOOE Hl(l o, :~t.;;;ol:. .. 02 :il ·-:~.1:~7 O,OOOOE+OO ól 1.i~7 0. 0(l00r. -1-00 il ··O,'l.-il:iE-01 O,OOOOE-i-00 SI ·0.51t.t. 0, 0(l(l0E ·1-00

91 ··!) .lllllHE ··O.i Q,OOOOHOO

C<1:2s1:ó)

(j.3J~ê

0. :;~j2óE -0:5

0' 1777 (l, :)•12:tE -0:5 0.2i36 o. n:~a ... <ll O.û:::>OE ·01 (l, 1/'::;;. o.~17BE-04

--· ... - 1· ................. ·- :! .. ·-···· .. ···-·· .. ·- ::; .. ··--· - .... -- 4·· ...... ··-···· ...• ~·-· ..•... ------ ó··:·-11 21

o.oooor:too O.OOOOEHlO

C0;2ri':V>

O,OOOOftOO O.OOOOEtOO 1.000 1.000 O.OOOOE+OO O.OOOO[t(IO

-· .. .. .. .. .. • .... ·-·· -···-·· .. ·- !i·· .......... - ...... '-1'·· ···-11 O,OOOOEtOO Q,QOOOEtOO 1.000 21 1.ooo o.oooo[too o.oooo~too

D<1 ;211 ;·n -· .. .. .. .. .. l ................. ·-- :z ... -

11 O,OOOOf+OO O.OOOOEtOO

O.OOOOEtOO O.OOOOE+OO OcOOOOEtOO O,OOOOEtOO

2l O.OOOOEtOO O.OOOOt.tOO

DT -···· ...... ·- 1·

11 \),1000

SYSTEI-1\ 1: :.n J :::I :...: I;.' I..: G:: 1

11 tl

21 ... "' 31 c

·11 D :31 l!T

.t- ··~··· .... --· :.: --· ··-. {. ~ . ti-.:_"l,:,i

I~ ••~ t,.\_.,..j~

DEL lt~- T

;'7 · Hlo> I, I .~ ,;( 1 ; ::I .l :Cj J . . . . 1· ........ ·-·-·· .. ·- .... ·-·· .. ·-·-···-- ;;·· ·-·-·· .. ·-·-·· .. ·- ·l·· -··-·· ----·~·- --·· :i--···--------·--- ,)·----

11 ··0, .l<HO~:-·o:: ··0, ao·.:n:-·o:; !i, :~::t>:)L·-0:~ 0, H1l:~(-><)2 (), l:ïOO ··0. :;JJó

:I 0. ·H 1 /" ··0, ï·o:UE··(ll O, bot:li>Ol

r- ""111 ,, :.~ .\ ;; ( 1 ; ~: J ;' : ~~ J -- ·- · ·· ~ · · · · ~ .. · · ·· ·- ·· - ·- ·- · · ·· ·- r; ·· ·- ·- ·· ·· ·· ·- ·- ·· ... 1·· ·- ·-

11 ··(), .l :ic'lÛ I), b1JB7 ;2, J02 21 O.·Hi70 O.t".l·l~•I:.··Ol ··L:i·1l:"

APPENDIX E.

B~rekeningen verricht aan het vierde orde systeem van Kautsky, Nichols en Van Dooren. Links staan de gemiddel­de absolute en relatieve afwijkingen van de eigenwaarden ten opzichte van hun oorspronkelijke posities als men het systeem verstoord dat geregeld is m.b.v. de regelaar berekend met PLACEPRO. Rechts staan dezelfde grootheden voor het systeem geregel m.b.v. de regelaar, berekend met PPLCR. Het aantal iteraties is steeds 10. De eigenwaarden ZlJn achtereenvolgens (deze volgorde wordt ook verder gehanteerd): 0.4, 0.3, 0.0063674 en 0.001724.

Maximaal verstoringspercentage van alle elementen van de A-matrix : 0.001 %.

PLACEPRO PPLCR

5.63E-5 0.014 % 6.25E-5 0.016 % 3.42E-5 0.160 % 1.00E-5 0.002 % 3 .19E-5 0.500 % 3.00E-5 0.470 % 0.30E-5 1.730 % 3.95E-6 2.290 %

In beide gevallen zijn de verstoringen in absolute zin van de orde 1.0E-5.

Maximaal verstoringspercentage van alle elementen van de A-matrix : 0.01 %.

PLACEPRO

1.90E-4 6.50E-5 6.30E-5 3.79E-5

0.065 % 0.029 % 0.990 %

22.00%

PPLCR

8.50E-5 5.00E-5 2.80E-4 3.04E-5

0.210 % 0.016 % 4.370 %

17.60%

In beide gevallen zijn de verstoringen in absolute zin van de orde 1.0E-4. De waarden van PLACEPRO zijn iets kleiner dan die van PPLCR.

Maximaal verstoringspercentage van alle elementen van de A-matrix : 0.1 %.

PLACEPRO

1.60E-3 4.63E-4 3.47E-4 3.01E-4

0.400 % 0.150%

10.20% 175.0%

PPLCR

9.62E-3 2.50E-4 3.79E-3 2.80E-4

2.410% 0.082 %

59.50% 162.0%

In beide gevallen ZlJn de verstoringen in absolute zin van de orde l.OE-3. De waarden van PLACEPRO zijn wederom iets kleiner dan die van PPLCR.

APPENDIX F.

In Hoofdstuk 7 wordt gesproken over het ge orde systeem uit de KEDDC-handleiding. In deze appendix worden de percentages gegeven. die de eigenwaarden gaan afwijken van hun oorspronkelijke posities in het z-vlak, als ieder element van de matrix A met maximaal 0.001% wordt verstoord. Andere verstoringspercentages geven hetzelfde beeld te zien als het wat in deze appendix wordt ge­toond. De eigenwaarden zijn: 0.2 (2 maal), 0.3 (2 maal), 0.4, 0.5, 0.6 (2 maal) en 0.7. In de linkerkolom staan de afwijkingspercentages van de eigenwaarden als het systeem is geregeld met behulp van de regeling, ontworpen door PPLCR (eerst voor het engebalanceerde systeem, daarna voor het gebalanceerde systeem). In de rechterkolom staan dezelfde percentages weergegeven voor het systeem dat geregeld is met behulp van de regelaar, ontworpen door PLACEPRO. Bij de opsom­ming van de percentages is dezelfde volgorde aangehouden als bij bovenstaande opsomming van de eigenwaarden.

Verstoringspercentage elementen A-matrix: 0.001% Ongebalanceerde systeem.

PPLCR. (%)

0.290 0.020 0.126 0.070 0.065 0.012 0.007 0.012 0.004

Gebalanceerde systeem.

PPLCR. (%)

0.490 0.045 0.460 0.043 0.110 0.018 0.007 0.015 0.004

PLACEPRO. (%)

0.400 1.150 0.230 2.133 0.580 0.060 0.017 0.550 0.200

PLACEPRO. (%)

0. 386 ( 1

0. 386 ( 1

0. 429 ( 1

0. 429 ( 1

0.450 0.060 0.020 0.020 0.142

1 Complex toegevoegde eigenwaarden.

De regeling ontworpen voor het ongebalanceerde systeem is net zo robuust als de regeling, ontworpen voor het gebalanceerde systeem. Het is echter wel opvallend dat steeds de regelingen ontworpen door PPLCR een factor 1 à 10 keer zo robuust zijn (globaal gezien). als de rege­lingen ontworpen door PLACEPRO. Dit geldt nog sterker voor verstoringspercentages in de A-matrix van respec­tievelijk 0.01. 0.1, 1 en 10. Het systeem dat volgens PLACEPRO wordt geregeld kent reeds complex toegevoegde eigenwaarden voor het gebalan­ceerde systeem als ieder element in de A-matrix met 0.001% wordt verstoord. Het is vreemd, dat het gebalan­ceerde systeem slechter te regelen is dan het ongebalan­ceerde als men beide regelt met een door PLACEPRO ontworpen toestandsterugkoppeling. Het (volgens PPLCR) geregelde, verstoorde systeem begint vanaf verstoringspercentages (in de A-matrix) van 0.01% toegevoegd complexe eigenwaarden te vertonen. Het ongebalanceerde en het gebalanceerde systeem zijn even robuust geregeld.

APPENDIX G.

Het door de module "Guidorzi" geschatte model van de warmtewisselaar ziet er als volgt uit:

A

B

c

D

0.0000 0.2837 0.0000 0.1885E-2

-0.5381 -0.3639 -0.1279 -0.1164

[ 1.0000 0.0000

[-0.2596 -0.9674E-2

1.0000 0.3485 0.0000 0.1565

0.6425E-1 0.8020E-1 0.4330 0.2787

0.0000 0.0000

0.0000 1.0000

-0. 1156E-2] 0.1685

0.0000 0.7965E-1 0.0000 0.3444

0. 0000 J 0.0000

0.0000 0.5472E-1 1.0000 0.3721

Dit model is ook gevalideerd met behulp van "Modeltst".