Malliprediktiivinen säädin konttinosturille. Laboratoriotyön ohje. Olli Sjöberg Eero Vesaoja



Samankaltaiset tiedostot
Malliprediktiivinen säädin konttinosturille. Väliraportti

Harjoitus 6: Simulink - Säätöteoria. Syksy Mat Sovelletun matematiikan tietokonetyöt 1

Malliprediktiivinen säädin konttinosturille

Dynaamisten systeemien teoriaa. Systeemianalyysilaboratorio II

x = ( θ θ ia y = ( ) x.

Tilaesityksen hallinta ja tilasäätö. ELEC-C1230 Säätötekniikka. Luku 6: Tilasäätö, tilaestimointi, saavutettavuus ja tarkkailtavuus

2. kierros. 2. Lähipäivä

MATLAB harjoituksia RST-säädöstä (5h)

Mat Dynaaminen optimointi, mallivastaukset, kierros 1

v AB q(t) = q(t) v AB p(t) v B V B ṗ(t) = q(t) v AB Φ(t, τ) = e A(t τ). e A = I + A + A2 2! + A3 = exp(a D (t τ)) (I + A N (t τ)), A N = =

Y (z) = z-muunnos on lineaarinen kuten Laplace-muunnoskin

Säätötekniikkaa. Säätöongelma: Hae (mahdollisesti ulostulon avulla) ohjaus, joka saa systeemin toimimaan halutulla tavalla

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

(s 2 + 9)(s 2 + 2s + 5) ] + s + 1. s 2 + 2s + 5. Tästä saadaan tehtävälle ratkaisu käänteismuuntamalla takaisin aikatasoon:

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

Harjoitustyö 3. Heiluri-vaunusysteemin parametrien estimointi

Tilayhtälötekniikasta

Säätötekniikkaa. Säätöongelma: Hae (mahdollisesti ulostulon avulla) ohjaus, joka saa systeemin toimimaan halutulla tavalla

Y (s) = G(s)(W (s) W 0 (s)). Tarkastellaan nyt tilannetta v(t) = 0, kun t < 3 ja v(t) = 1, kun t > 3. u(t) = K p y(t) K I

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

6. Differentiaaliyhtälösysteemien laadullista teoriaa.

JAKSO 2 KANTA JA KOORDINAATIT

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Amazon.com: $130,00. Osia, jaetaan opetusmonisteissa

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

Kimppu-suodatus-menetelmä

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 4: Ketjusäännöt ja lineaarinen approksimointi

[xk r k ] T Q[x k r k ] + u T k Ru k. }.

ẋ(t) = s x (t) + f x y(t) u x x(t) ẏ(t) = s y (t) + f y x(t) u y y(t),

MS-C1340 Lineaarialgebra ja

Ei välttämättä, se voi olla esimerkiksi Reuleaux n kolmio:

Integrointialgoritmit molekyylidynamiikassa

TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio. Mat Systeemien Identifiointi. 4. harjoitus

ACKERMANNIN ALGORITMI. Olkoon järjestelmä. x(k+1) = Ax(k) + Bu(k)

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

Harjoitus 4: Matlab - Optimization Toolbox

Mat Lineaarinen ohjelmointi

Ensimmäisen ja toisen kertaluvun differentiaaliyhtälöistä

Mat Työ 1: Optimaalinen lento riippuliitimellä

Yleistä. Aalto-yliopisto Perustieteiden korkeakoulu Matematiikan ja systeemianalyysin laitos

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

8. kierros. 1. Lähipäivä

Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä

PID-sa a timen viritta minen Matlabilla ja simulinkilla

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Mat Dynaaminen optimointi, mallivastaukset, kierros Johdetaan ensiksi välttämättömät ehdot diskreettiaikaiselle optimisäätötehtävälle.

8. kierros. 2. Lähipäivä

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Mat Systeemien identifiointi, aihepiirit 1/4

Tehtävä 4.7 Tarkastellaan hiukkasta, joka on pakotettu liikkumaan toruksen pinnalla.

SaSun VK1-tenttikysymyksiä 2019 Enso Ikonen, Älykkäät koneet ja järjestelmät (IMS),

Mat Lineaarinen ohjelmointi

Johdatus tekoälyn taustalla olevaan matematiikkaan

Mat Dynaaminen optimointi, mallivastaukset, kierros Johdetaan välttämättömät ehdot funktionaalin. g(y(t), ẏ(t),...

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Lisämateriaalia: tilayhtälön ratkaisu, linearisointi. Matriisimuuttujan eksponenttifunktio:

Dynaamiset regressiomallit

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

Missä mennään. systeemi. identifiointi. mallikandidaatti. validointi. malli. (fysikaalinen) mallintaminen. mallin mallin käyttötarkoitus, reunaehdot

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Matematiikan tukikurssi

Johdatus tekoälyn taustalla olevaan matematiikkaan

Mat Dynaaminen optimointi, mallivastaukset, kierros 3

Mat Dynaaminen optimointi, mallivastaukset, kierros Vaimennetun heilurin tilanyhtälöt on esitetty luennolla: θ = g sin θ r θ

Antti Rasila. Kevät Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. Antti Rasila (Aalto-yliopisto) MS-A0204 Kevät / 16

Ominaisarvo-hajoitelma ja diagonalisointi

Dynaamisten systeemien identifiointi 1/2

MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42

Numeeriset menetelmät

Matematiikan tukikurssi

Numeeriset menetelmät

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

1 Rajoittamaton optimointi

Malliratkaisut Demot

12. Hessen matriisi. Ääriarvoteoriaa

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Säätötekniikan matematiikan verkkokurssi, Matlab tehtäviä ja vastauksia

k = 1,...,r. L(x 1 (t), x

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

1 Komparatiivinen statiikka ja implisiittifunktiolause

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Harjoitus (15min) Prosessia P säädetään yksikkötakaisinkytkennässä säätimellä C (s+1)(s+0.02) 50s+1

Säätötekniikan alkeita

Johdatus tekoälyn taustalla olevaan matematiikkaan

Aikatason vaste vs. siirtofunktio Tehtävä

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

12 Jatkuva-aikaisten tehtävien numeerinen ratkaiseminen

MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio.

Mekaniikan jatkokurssi Fys102

2. Teoriaharjoitukset

Algoritmit 2. Luento 13 Ti Timo Männikkö

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

Inversio-ongelmien laskennallinen peruskurssi Luento 2

LIITE 1 VIRHEEN ARVIOINNISTA

MS-A0004/A0006 Matriisilaskenta

Transkriptio:

Malliprediktiivinen säädin konttinosturille Laboratoriotyön ohje Olli Sjöberg Eero Vesaoja

Contents 1 Johdanto 2 2 MPC säädin 4 21 MPC:n yleinen toimintaperiaate 4 22 LQ-säätimen perusteet 5 23 MPC optimoituna LQ-teorian avulla 6 24 MPC säädin tässä työssä 8 3 Malli 9 31 Mekaaninen malli 9 32 Mallin linearisointi 11 33 Mallin diskretointi 11 4 Käyttöliittymä 12 1

1 Johdanto Järjestelmästä luotua mallia käytetään säätösuunnittelussa moniin eri tarkoituksiin Mallin avulla voidaan muun muossa simuloida ja ennustaa järjestelmän toimintaa eri tilanteissa Säädön kannalta erityisen tärkeä mallin ominaisuus on sen ennustuskyky Mallin avulla voidaan ennustaa järjestelmän toimintaa erilaisten syötteiden funktiona ja tämän avulla syötteet voidaan valita siten, että järjestelmän toiminta saadaan halutunlaiseksi Tässä voidaan käyttää esimerkiksi jotakin matemaattista kriteeriä, jonka suhteen mallin toimintaa halutaan optimoida Juuri tähän perustuu malliprediktiivinen säädin (MPC), jossa järjestelmästä tehtyä mallia käytetään tulevien ulostulojen ennustamiseen Ulostulot sitten optimoidaan herätteiden suhteen siten, että järjestelmä saadaan toimimaan suunnittelijan haluamalla tavalla Tässä harjoituksessa toteutetaan malliprediktiivinen säädin konttinosturille ja säädin optimoidaan käyttäen neliöllistä kustannusfunktiota Tässä työssä malliprediktiivistä säädintä käytetään konttinosturin ohjauksessa Konttinostureita käytetään muun muassa satamissa (ks kuva 1) konttien siirtelyyn sekä teollisuudessa raskaiden tavaroiden siirtämiseen teollisuushalleissa Oikeat nosturit voivat olla kooltaan kymmenien, jopa satojen metrien pituisia Laboratoriotyö käsittelee konttinosturin pienoismallia (25 m x 08 m), jolla voidaan siirtää konttia kahdessa suunnassa (vaakaja pystysuunta) Työssä tarkastellaan kontin siirron säätöä vakiokuormalla, vaikkakin todellisuudessa kuorma luonnollisesti vaihtelee siirrosta toiseen Työssä keskitytään virittämään säätö siten, että kontti seuraa mahdollisimman tarkasti referenssitrajektoria, mutta samalla pyritään pitämään siirtonopeus kohtuullisena Konttinosturia ohjaa kaksi erillistä moottoria Vaunumoottori liikuttaa liukujohteeseen kiinnitettyä vaunua vaakasuunnassa (ks kuva 2) Johdetta pitkin liikkuvaan vaunuun on kiinnitetty nostomoottori, jolla konttia voidaan siirtää pystysuunnassa Kontti roikkuu nostomoottoriin kiinnitetyn narun varassa Järjestelmän säädön tavoitteena on, että nosturi vie kontin halutusta alkutilasta (paikka) haluttuun lopputilaan mahdollisimman nopeasti huomioiden edessä olevat mahdolliset esteet sekä minimoi kontin heilahtelut 2

Figure 1: Konttinosturi Figure 2: Konttinosturin pienoismalli 3

2 MPC säädin 21 MPC:n yleinen toimintaperiaate Säätimen toimintaperiaate tulee hyvin esille kuvasta 3 Säätimelle on määritetty erikseen ohjaushorisontti ja ennustushorisontti Mallilla ennustetaan järjestelmän toimintaa ja pyritään saamaan aikaan sellaiset ohjaukset, että järjestelmä käyttäytyisi halutulla tavalla tavalla Yleinen tavoite säädössä on, että järjestelmä seuraisi referenssitrajektoria mahdollisimman tarkasti Tässä työssä halutaan minimoida neliöllinen kustannusfunktio, jolla pyritään minimoimaan sekä ohjauksen muutosta, että virhettä todellisen sijainnin ja referenssin välillä Kuvasta näkee, kuinka ohjaushorisontti voidaan asettaa huomattavasti lyhyemmäksi kuin ennustehorisontti Ohjaushorisontin jälkeiselle ajalle käytetään yleensä viimeisintä ennustettua ohjausta Figure 3: MPC:n toiminta Yleistä malliprediktiivistä säädintä voidaan ajatella menetelmänä, jossa kokeillaan prosessista tehdyn mallin avulla, millaista sen käytös tulisi erilaisilla herätteillä olemaan Näistä herätteistä etsitään jollain vapaasti valittavalla algoritmilla paras tietyn kriteerin mukaan Yleisimmässä mahdollisessta tapauksessa malli, optimointimenetelmä ja kriteeri kaikki voivat olla hyvin erilaisia Malli voi esimerkiksi olla siirtofunktio, tilaesitys, logiikkakone, neuroverkko tai vaikka pieni koelaitos, joka muistuttaa prosessia Optimointialgoritmi samoin voi periaattessa olla hyvinkin vaihteleva Yleisimpiä mentelmiä ovat LQ-säätö ja QP menetelmät Myös erilaisia gradienttihakuja tai vaikka neuroverkkoja voidaan käyttää optimoinnissa Kustannusfunktiot 4

yleensä valitaan olemaan positiviisia, monotonisia ajan funktioita Yleensä ne ovat integraaleja positiivisista luvuista Tyypillisimpiä käytettyjä ovat integral square error, ISE, integral absolute error, IAE ja integral time square error, ITSE Kustannus voidaan laskea joko absoluuttisesta ohjauksen tasosta, tai muutoksesta ohjaussuureeseen Rajoitukset ohjauksessa johtavat usein monimutkaisempien optimointialgoritmien käyttöön Käytännössä MPC on lähes aina diskreettiaikainen laskentalgoritmi, jossa tietyn pituisen ennustushorisontin matkalta etsitään tietyn pituisella optimointihorisontilla parhaat ohjauset minimoimaan kustannusfunktion Kustannusfunktio on lähes aina referenssin ja ulostulon välisestä erosta riippuvainen Horisonteista optimointihorisontti alkaa seuraavasta askelesta ja pitäisi olla pituudeltaa riittävä, että hitaampiinkin prosessin ilmiöihin voidaan vaikuttaa Optimoidun ohjausten sarjan ensimmäistä alkiota käytetään säätimen ulostuossa Ennustushorisontti valitaan alkamaan prosessin viiveen mukaan Viiveajalta ei kannata kustannusta laskea, koska siihen ei enää voi vaikuttaa Ennustushorisontin tulee olla niin pitkä, että prosessin käytös ehtii siinä rauhottua riittävästi Esimerkiksi kaksi-kymmenen kertaa prosessin aikavakio Pituuksia rajoittaa ylhäältä laskentatehot ja mallin tarkkuus Liian pitkät horisontit tuottavat pidempiä laskuja kuin säätimen diskretointiväli ja epätarkka malli saattaa divergoida pitkissä ennusteissa, jolloin laskennalliset ongelmat voivat pilata säädön 22 LQ-säätimen perusteet Kuten edellisessä luvussa mainittiin, MPC:n toiminnan voi optimoida haluamallaan tavalla Tässä työssä on käytetty LQ-teoriaa (linear quadratic) säätimen optimoimiseen ja siksi on hyvä käsitellä perinteisen LQ-säädön ideaa lyhyesti Karkeasti voidaan sanoa, että LQ-säädin on lineaariselle järjestelmälle toteutettava tilatakaisinkytentä, joka minimoi neliöllisen kustannusfunktion: J = 1 2 tf t 0 e T (t)qe(t) + u(t) T Ru(t)dt, (1) missä e(t) on erosuure ulostulon ja referenssin välillä, u(t) on ohjausvektori, Q on painomatriisi ulostuloille ja R on painomatriisi ohjaukselle Säätimessä Q ja R ovat viritysparametreja, joiden avulla säätimen toimintaa voidaan optimoida halutuksi Q-matriisin kasvattaminen aiheuttaa referenssin voimakkaamman seuraamisen, mutta samalla aiheuttaa myös ohjaussignaalin kasvamisen Vastaavasti asettamalla suurempi paino ohjauksille R- matriisin avulla, optimoidaan ohjaussignaalia, mutta tämä johtaa helposti laiskempaan referenssin seuraamiseen Koska tässä työssä optimointi on tehty LQ-menetelmällä, toimivat painomatriisit Q ja R vastaavalla tavalla 5

23 MPC optimoituna LQ-teorian avulla Prosessin ennustuksessa käytetty malli ei koskaan ole täydellinen, vaan ennusteessa on jonkin verran virhettä verrattuna todelliseen järjestelmään Virheet kasautuvat sitä suuremmiksi, mita kauemmaksi järjestelmän toimintaa ennustetaan Lisäksi ulkoiset häiriöt voivat vaikuttaa ohjattavan prosessin toimintaan Tämän vuoksi jokaisella iteraatiokierroksella lasketaan järjestelmän ennuste uudestaan ja näistä ennusteista käytetään vain ensimmäistä ohjausta varsinaisen prosessin ohjaukseen Toisin sanoen mallin avulla ennustetaan jokaisella iteraatiokierroksella optimaalinen ohjaussarja, mutta näistä ohjauksista vain ensimmäinen toteutetaan Sama logiikka toteutetaan myös seuraavalla kierroksella Minivoitavana kustannuksena käytetään tässä projektissa neliöllistä kustannusfunktiota (LQ-teoriasta), joka on käytännössäkin hyvin yleinen kriteeri: V (k) = H p i=h w ẑ(k + i k) ˆr(k + i k) 2 Q(i) + = Z(k) T (k) 2 Q + U(k) 2 R H u 1 i=0 û(k + i k) 2 R(i), (2) missä vektori Z(k) sisältää ennustetut vasteet, T (k) halutun trajektorin ja U(k) on vektori, jossa on kunkin ohjauksen muutokset Kaavan perusteella nähdään, että tarkoituksena on saada ohjaus mahdollisimman lähelle referenssisignaalia, mutta samanaikaisesti halutaan varmistaa, että ohjaukset eivät kasva liian suuriksi Kustannuksen painoa ohjauksen ja vasteen välillä voidaan muuttaa säätämällä Q ja R matriiseja LQ menetelmän vuoksi ei tulos ole optimaalinen, jos ohjauksissa on rajoituksia, mikäli niihin törmätään Tätä voidaan vältellä asettamalla R matriisi suuremmaksi, kunnes ohjaukset eivät enää leikkaannu missään toiminnan vaiheessa Tämä tosin hidastaa säätöä muuten Q ja R ovat painomatriisit, joilla säätimen toimintaan voidaan vaikuttaa Ne koostuvat lohkoista, jotka ovat ulostulojen ja ohjausten kokoisia neliömatriiseita Neliömatriisit painottavat siis kunkin ulostulon virheestä referenssiin nähden tai ohjauksen muutoksesta johtuvaa kustannusta Myös ristikkäisiä kustannuksia niiden välillä välillä voidaan käyttää Neliömatriisit voivat olla erilaisia eri askeleille Esimerkiksi kustannukset voidaan laittaa kasvamaan tai vaimenemaan tulevaisuudessa eksponentiaalisesti tai lineaarisesti Lohkomatriisien koot määräytyvät horisonttien pituuksista Q(H w ) 0 0 Q = 0 Q(H w + 1) (3) 0 0 0 Q(H p ) 6

R(0) 0 0 R = 0 R(1) 0 0 0 R(H u 1) Säätimen kaavoista ei suoraan näe, että niiden avulla minimoidaan kyseinen kustannusfunktio, sillä kustannuksen toteuttava ohjaus voidaan laskea analyyttisesti, jolloin ohjauksesta tulee tavallinen tilatakaisinkytkentä Toiminta ja käytetyt muuttujat tulevat luultavasti parhaiten selville, jos niitä käy järjestyksessä läpi Säätimen toiminta lähtee liikkeelle mallin ennustaman trajektorin laskemisesta: (4) Z(k) = Ψˆx(k k) + Γu(k 1) + Θ U(k), (5) missä matriisi Ψ kuvaa sitä, miten ulostulot muodostuvat tiloista eri tuleville hetkille, Γ kuvaa miten edellinen ohjaus vaikuttaa tuleviin ulostuloihin ja Θ kuvaa sitä, miten tulevat ohjauksen vaihtelut vaikuttavat tuleviin ulostulohoin Ψ on kahden lohkomatriisin tulo Ensimmäisessä on diagonaalilla C matriiseja muiden alkioiden ollessa nollia Tämä kuvaa siis kunkin tilavektorin ulostuloksi Toisessa on nousevia potensseja A matriisista Se kuvaa miten tila autoregressiivisesti muuttuu alussa olevasta eteenpäin Tämän matriisin alkiot saattavat helposti divergoida, mikäli tilansiirtomatriisin ominaisarvot ovat liian suuria C z 0 0 A Ψ = 0 C z 0 A Hp 0 0 C z ˆx(k k) (6) Matriisissa Γ myöskin on edessä vastaava C matriisien lohkodiagonaali Sen toinen osa on B matriisi kerrottuna nousevilla potensseilla A matriisista C z 0 0 B Γ = 0 C z u(k) (7) 0 Hp 1 i=0 A i B 0 0 C z Lopuksi vielä tulee laskea Θ matriisi: C z 0 0 B 0 Γ = 0 C z 0 Hp 1 i=0 A i Hp H B u i=0 A i B 0 0 C z 7 û(k k) û(k + H u 1 k) (8) u(k)

Näiden matriisien avulla säädin osaa estimoida tulevia aika-askelia Matriisien dimensiot määrittyvät horisonttien ja järjestelmän dimensioiden mukaan Seuraavaksi alkaa optimaalisen ohjauksen laskeminen Se saadaan tutkimalla tulevia erosuureita Erosuureen laskeminen voidaan esittää käyttämällä yllä olevia merkintöjä seuraavasti: ε(k) = T (k) Ψˆx(k k) Γu(k 1) (9) Tämän jälkeen voidaan optimaalinen ohjauksen muutos laskea käyttämällä seuraavia kaavoja: U (k) = 1 2 H 1 G G = 2Θ T Qε (10) H = Θ T QΘ + R 24 MPC säädin tässä työssä Tässä työssä käytetään konttinosturin mallista johdettua lineaarista mallia tässä luvussa johdetun lineaarisen MPC:n avulla Seuraavassa kuvassa näkyy rakenne, jota työssä käytetään Todellisessa prosessissa vihreä lohko korvaantuu oikealla järjestelmällä ja mittauksilla Mallissa kuitenkaan ei mitään häiriöitä ole, eli se on deterministinen Todellisen järjestelmän häiriöitä mittauksissa on pyritty minimoimaan Figure 4: Säätöjärjestelmän Simulink-malli 8

3 Malli 31 Mekaaninen malli Konttinosturin mallintamisessa käytetään seuraavia muuttujia: θ 1 [rad] on vaunumoottorin akselin kiertokulma (vaunun paikka d = r 1 θ 1, missä r 1 on liukujohteen akselin säde), θ 2 [rad] on nostomoottorin akselin kiertokulma (narun pituus l = r 2 θ 2, missä r 2 on nostomoottorin väkipyörän säde, jonka ympärille naru siis kiertyy) sekä Φ [rad] on narun absoluuttinen kulma Konttinosturin mekaniikkamalliksi saadaan Euler-Langrange-yhtälöiden perusteella: d dt d dt d dt ( L θ 1 ( L θ 2 ( L Φ ) L ) L θ 1 = N 1 D 1 (11) = N 2 D 2 (12) θ 2 ) L Φ = N 1 D 1 (13) Yhtälöissä L on ns Lagrangen funktio, L = T U, missä T on liikeenergia ja U on potentiaalienergia N i ovat moottorien tuottamat vääntömomentit, D i ovat systeemiin vaikuttavat kitkat ja J i ovat moottorien hitausmomentit Muuttujat m v ja m k ovat vaunun sekä kontin massat ja r i moottorien akselien säteet Merkinnöissä indeksi i = 1 viittaa vaunumoottoriin ja i = 2 nostomoottoriin Näistä saadaan muokattua tilaesitys, joka kuvaa prosessia moottorien sisääntuloista kontin paikkaan Näiden yhtälöiden avulla voidaan kirjottaa tilaesitys prosessille ja muotoilla se integerattorin avulla Simulinkkiin Mallissa on kaksi sisääntuloa, moottorien lähdöt ja kaksi ulostuloa, kontin x ja y paikka Tiloja on kuusi: x eli vaunun paikka, L eli narun pituus ja θ, eli narun kulma Kunkin näiden ensimmäinen derivaatta on toinen tila Saatu malli on seuraava kuvassa 5: 9

Figure 5: Konttinosturin Simulink-malli 10

32 Mallin linearisointi Malliprediktiivistä säätöä varten pitää olla käytettävissä malli säätimelle Säädin käyttää tätä mallia prosessin tulevan tilan ennustamiseen Prosessin tulevan tilan ennustamista tarvitaan, kun tulevia säätimen ulostuloja optimoidaan Tätä mallia voisi periaatteessa käyttää suoraan MPC:ssä mallina, mutta jotta laskenta olisi tarpeeksi nopeaa xpc-target tietokoneelle, on käytettävä yksinkertaisempaa lineaarista mallia Malli pitää siis linearisoida toimintapisteisiin Epälineaarisen tilaesityksen ẋ(t) = f(x(t), u(t), t) (14) y(t) = h(x(t), t) linearisointi tehdään Jacobin matriisin avulla Kunkin tilan ja ohjauksen vaikutukset tilojen derivaattoihin ratkaistaan osittaisderivoimalla epälineaarista funktioita eri tilojen tai ohjausten funktiona toimintapisteessä (15) Näistä osittaisderivaatoista kasataan dynamiikka ja ohjausmatriisit jatkuva-aikaiselle lineaariselle prosessille Tunnettu tila sijoitetaan, jolloin saadaan vakiomatriisit f 1 x 1 ẋ(t) = f m x 1 h 1 x 1 y(t) = h p x 1 33 Mallin diskretointi f 1 x n f m x n h 1 x n h p x n f x 1 1 u 1 + x f n n u m x 1 x n f 1 u m f n u m u 1 u m (15) Diskreettiaikainen säädin tarvitsee diskreettiaikaisen mallin, joten saadut tilaesityksen matriisit tulee vielä diskretoida Se voidaan tehdä useilla eri menetelmillä, esimerkiksi nollannen kertaluvun pidolla Diskretointi säätimessä suoritetaan Control Systems Toolboxin c2d-funktiolla Yleinen tapa analyyttisesti diskretoida jatkuvia viiveettömiä tilaesityksiä on tilansiirtomatriisien laskenta matriisieksponentin ja integroinnin avulla, kun tunnetaan jatkuva järjestelmä: ẋ(t) = Ax(t) + Bu(t) (16) y(t) = Cx(t) Voidaan vastaava diskreettiaikainen järjestelmä laskea seuraavasti: { x(kh + h) = Φ(h)x(kh) + Γ(h)u(kh), (17) y(kh) = Cx(kh) + Du(kh) 11

missä matriisit Φ(h) ja Γ(h) saadaan seuraavista yhtälöistä: Φ(h) = e Ah Γ(h) = h 0 e As dsb (18) Saatu diskreettiaikainen, lineaarinen, aikainvariantti tilaesitys soveltuu säätimen käyttöön Tässä muodossa olevaa prosessia voidaan optimoida LQ, eli lineaarikvadraattisen teorian perusteella, mikäli ohjauksia ei ole rajoitettu Yleisempi menetelmä ratkaista neliöllisiä kustannusfunktio-ongelmia on QP eli quadratic programmin menetelmät LQ laskenta on huomattavan nopeaa verrattuna yleisempiin tilanteisiin ja riittää tässä tarkuudeltaa hyvin 4 Käyttöliittymä Työssä on apuna yksinkertainen käyttöliittymä, jonka avulla voidaan asettaa säätimelle helposti tarvittavat parametrit, sekä tarkastella säätimen toimintaa asettamillaan parametreilla Koska käyttöliittymän käyttäminen ei välttämättä ole täysin ilmeistä, tässä on pieni ohje alkuun pääsemiseksi Parametripanellin yläreunassa olevan Tavoiteaika-tekstikentän avulla voidaan asettaa tavoitteellinen aika, joka kontilta kuluu lähtöpaikasta loppuun Huomioi, että nopeampi siirto aiheuttaa helpommin konttiin heiluntaa ja mahdollisesti jopa ohjauksen epäonnistumisen Hp-, Hw- ja Hu-tekstikenttien avulla voidaan asettaa prediktio- sekä ohjaushorisonttien pituudet Pidemmät horisontit parantavat ohjauksen laatua tiettyyn pisteeseen asti, mutta tekevät ohjauksen laskemisesta huomattavasti raskaampaa Liian pitkät horisontit tuottavat ohjausen laskemisessa hyvin suuria matriiseja ja laskenta saattaa tämän vuoksi epäonnistua Q i - ja R i -tekstikenttien avulla voidaan asettaa painomatriisit ulostulon ja ohjauksen optimoimiseksi Q i :n arvolla asetetaan painot järjestelmän ulostulolle x- ja y-suunnissa Painomatriiseilla on kaksi tekstikenttää, jotta painoa voi laittaa halutessaan enemmän ennustushorisontin alku- tai loppupuolelle Suuri painoarvo prediktiohorisontin alussa aiheuttaa tarkan referenssin seuraamisen ennusteen alussa kun taas lopussa pieni virhe ei aiheuta niin suurta kustannuksen kasvua Painot muuttuvat alku- ja loppupainon välillä lineaarisesti Vastaavasti R i -tekstikenttien avulla voidaan optimoida moottorien toimintaa 12