SlideShare a Scribd company logo
1 of 19
Download to read offline
AS-0.2230 Automaatio- ja systeemitekniikan laboratoriotyöt

LABORATORIOTYÖ 8




                         Konttinosturin sumea säätö


                                    Einar Toivonen, Lasse Eriksson

                                                  2006
1.     Johdanto
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 (2.5 m x 0.8 m), jolla voidaan siirtää konttia kahdessa suunnassa (vaaka- ja
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ä
kontin heiluminen siirron aikana minimoituu, mutta samalla pyritään pitämään siirtonopeus
kohtuullisena.




                         Kuva 1. Konttinosturi Shanghain Wai Gao Qiao telakalla.

1.1. Työn tavoitteet

Työssä tarkastellaan konttinosturin pienoismallin säätöongelmaa ja sovelletaan kaskadi PID-säätöä
ja sumeaa logiikkaa kontin siirrossa. Tavoitteena on tutustuttaa opiskelijat kaskadi PID-säädön
virittämiseen ja sumean logiikan perusteisiin sekä näyttää miten sumeaa logiikkaa voidaan soveltaa
säätöongelman ratkaisussa käytännössä. Työssä vertaillaan sumeaa säädintä PID-säätimeen, jotta
säädinrakenteiden erot tulisivat hyvin esille (suorituskyky, kompleksisuus, viritys jne.). Työssä
tarkastellaan myös mittausten suodatusta ja sovelletaan Kalman-suodatinta käytännön säätöjärjestel-
mässä. Työssä sivutaan myös mm. ultraäänimittauksen periaatteita ja käytännön säätöjärjestelmän
ongelmia (häiriöt jne.).

1.2. Säätöjärjestelmän kuvaus

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.
Kuva 2. Konttinosturin CAD-kuva.

Konttinosturia säädetään kolmella säätimellä. Vaunun paikkaa ja kontin korkeutta säädetään
kaskadi PID-säätimillä. Kaskadisäätöä käytetään, koska takaisinkytkentä vaunun paikan ja kontin
korkeuden muutoksesta eli nopeudesta parantaa näiden suureiden säätöä. Sumeaa säätöä käytetään
vaimentamaan kontin heilahtelua siirron aikana.

Kontin heilahteluja voidaan parhaiten kompensoida vaunumoottorin avulla, joten sumea säädin
ohjaa vaunumoottoria paikkasäädön rinnalla. Näin ollen vaunumoottoria ohjataan vaunun
paikkatiedon mukaan siten, että kontin heilahtelu pysyy minimissään. Narun pituuteen eli kontin
korkeuteen vaikuttaa vain nostomoottori. Referenssitrajektorit PID-säätimille saadaan
radansuunnittelualgoritmin avulla. Tämä ottaa huomioon moottorien maksiminopeudet yms., ja
laskee realistisesti saavutettavissa olevat radat halutusta alkupisteestä loppupisteeseen huomioiden
rataa mahdollisesti rajoittavat esteet. Jotta säätimet saavat luotettavaa mittaustietoa on
takaisinkytkentään lisätty Kalman-suodatin, joka antaa luotettavan estimaatin halutuista suureista.

Konttinosturin säätöjärjestelmän rakenne esitetään kuvassa 3.

2.     Konttinosturin malli
Konttinosturilla voidaan siirtää kuormia kahdessa dimensiossa eli se pystyy nostamaan kontin ja
liikuttamaan sitä vaakasuunnassa kuvan 4 mukaisesti. Kontin liikuttamiseen vaadittavat
vääntömomentit saadaan kahdesta systeemissä olevasta moottorista: vaunumoottori (trolley motor)
ja nostomoottori (hoist motor). Vaunumoottori vaikuttaa vaunun paikkaan liukujohteen (linear
actuator) avulla.




                                                                                                  3
ˆ
      Φ
      ˆ
      Φ              Fuzzy


          Vaunun paikan kaskadisäätö

      Θ1,ref                  Θ1,ref
 ˆ
 Θ1                                                       u1
      +                PID       +        PID        +          Vaunumootori             x(t ) = f ( x, u )    Θ1
                                     ˆ
                                     Θ1                                                  y (t ) = g ( x, u )   Θ2
                                                                                                               Φ
          Kontin korkeuden kaskadisäätö
           Θ 2,ref           Θ 2,ref                                                       Konttinosturi
      ˆ
      Θ2
                                                           u2
           +           PID   +            PID                   Nostomoottori
                               ˆ
                               Θ2

                                                                                ˆ
                                                                                Θ1
                                                                                ˆ
                                                                                Θ1
                                                                                ˆ
                                                                                Θ2
                                                                                ˆ
                                                                                Θ
                                                                                        Kalman-suodin
                                                                                    2
                                                                                ˆ
                                                                                Φ
                                                                                ˆ
                                                                                Φ



                                     Kuva 3. Konttinosturin säätöjärjestelmän komponentit.




                                                Kuva 4. Konttinosturin kaaviokuva.

2.1. 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


                                                                                                                    4
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 ⎛ ∂L ⎞ ∂L
   ⎜     ⎟−    = N1 − D1                                                                          (2.1)
dt ⎝ ∂θ1 ⎠ ∂θ1

d ⎛ ∂L ⎞ ∂L
   ⎜      ⎟−     = N 2 − D2                                                                       (2.2)
dt ⎝ ∂θ 2 ⎠ ∂θ 2

d ⎛ ∂L ⎞ ∂L
   ⎜    ⎟−   = 0,                                                                                 (2.3)
dt ⎝ ∂Φ ⎠ ∂Φ

missä

                 1        1         1           1           1
L = T −U =         J1θ12 + J 2θ 22 + mv r12θ12 + mk r12θ12 + mk r22θ 22 +
                 2        2         2           2           2                                     (2.4)
 1
+ mk r22θ 22 Φ 2 + mk r1r2θ1θ 2 sin Φ + mk r1r2θ1θ 2 Φ cos Φ + mk gr2θ 2 cos Φ.
 2

Yhtälöissä L on ns. Lagrangen funktio, L = T – U, missä T on liike-energia 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.

2.2. Moottorien mallit

Vaunumoottorina on Moogin valmistama AC-servomoottori (malli D314 L20), jossa käytetään
pulssinleveysmodulaatiota tuottamaan jännite staattorin käämeihin. Moottorin mallintaminen
analyyttisesti ei ole ollut mahdollista moottorin iän ja siitä johtuen puutteellisten tietojen valossa.
Tästä syystä moottorille on johdettu identifioimalla (mittauksiin perustuen) seuraava malli.

           B(q)
y (k ) =          u (k ) + e(k ),
           F (q )
B (q ) = 0.06495q −3 + 0.3543q −4 + 0.4354q −5 + 0.5031q −6                                       (2.5)
F (q ) = 1 + 0.2185q −1 + 0.1251q −2

Nostomoottori on DC-moottori, johon on kytketty välitys (välityssuhde i = 1/23). Nostomoottoria
kuvaa analyyttinen malli:

           Kt2      K
J gesθ 2 +     θ 2 − t U a + i 2 ⋅ Tload + T fric = 0 ,                                           (2.6)
           Ra       Ra

missä J ges on moottoriin kytketty kokonaisinertia, T fric kitkasta aiheutuva vääntömomentti, T load
massaan kohdistuva vääntömomentti, K t momenttivakio, U a herätejännite ja R a moottorin sisäinen
                                                                                  R




vastus.

                                                                                                     5
2.3. Kitkamalli

Koska moottoreissa ja liukujohteessa esiintyvät kitkat vaikuttavat huomattavasti systeemin
käyttäytymiseen, on systeemille johdettu myös kitkamalli. Nostomoottorin kitka johtuu
suurimmalta osin välityksestä, ja se on helppo mallintaa moottorintoimittajan ohjekirjan perusteella.
Moottorin hyötysuhde kyseiseen välitykseen liitettynä on 50 %, joten voidaan olettaa, että 50 %
vääntömomentista häviää kitkan takia.

Vaunumoottorin ja liukujohteen kitkan mallinnuksessa on sovellettu ns. LuGre-kitkamallia.
Yleisesti mallin on todettu soveltuvan hyvin erilaisten säätöjärjestelmien kitkan mallintamiseen.
Yleisessä muodossa malli on seuraava:

dz           v
   = v −σ0        z,
dt         g (v )
                             2
g (v) = α 0 + α1e − ( v / v0 ) ,                                                                (2.7)
                   dz
F = σ 0 z + σ1        + α 2 v.
                   dt

Kitkamomentti F on funktio vaunun nopeudesta v. α i ja v o ovat staattisia parametrejä ja σ i ovat
dynaamisia parametrejä. Staattiset parametrit on saatu ajamalla järjestelmää vakionopeuksilla ja
dynaamiset vertaamalla järjestelmän simulointi- ja mittaustuloksia. Mallin muuttuja z liittyy
kitkamallin fysikaaliseen tulkintaan, mutta muuttuja ei ole mitattavissa.

2.4. Kontin narun kulman mittaus

Kontin narun kulma mitataan ultraääneen perustuvalla mittausjärjestelmällä. Kontissa on lähetin,
joka lähettää lyhyitä (2 ms) ultraäänipulsseja 40 kHz taajuudella neljä kertaa sekunnissa.
Konttinosturin kehikkoon on kiinnitetty ultraäänivastaanottimia, jotka vastaanottavat pulssit. Narun
kulma lasketan vastaanottoaikaerojen perusteella.

Ultraäänipulssien lähetysaikaa ei tunneta, koska kontissa olevaa lähetintä ei ole kytketty
mittausjärjestelmään. Vastaanottimia kuitenkin luetaan samanaikaisesti 20 kHz:n taajuudella, joten
pulssin kulkuajan ero kahden vastaanottimen välillä voidaan laskea. Koska pulssien lähetysaikaa ei
tiedetä, on mahdotonta laskea suoraan matkaeroa kontin ja vastaanottimen välillä. Kuitenkin kahden
vastaanottimen välinen etäisyys ja muu geometria sekä pulssin vastaanottoajan erotus tunnetaan,
joten lähettimen ja vastaanottimien etäisyys voidaan laskea. Näiden avulla narun kulma saadaan
laskettua käyttäen hyväksi kosinilausetta (laajennettu Pythagoraan lause), jonka yleinen muoto
esitetään kuvassa 5 ja kaavassa (2.8). Kuvan 5 mukaiselle kolmiolle pätee yhteys

a 2 = b 2 + c 2 − 2bc cos(α ) .                                                                 (2.8)

                                         δ                a

                                             c                         β
                                                      α
                                                                   b
                                   Kuva 5. Kosinilauseeseen liittyvät muuttujat.




                                                                                                   6
X c2
                                        R2           X 12          R1     X c1           Trolley

                                                δ                                    β
                                                                    X1
                                                       X2                            L'


                                                                             Load
                                        Kuva 6. Kulman mittaaminen ultraäänen perusteella.

Kuvassa 6 on hahmoteltu narun kulman laskemiseen liittyvää geometriaa. Kuvassa R i on                   R




ultraäänivastaanottimen i paikka, X ci ultraäänivastaanottimen i ja vaunun (Trolley) välinen etäisyys
ja X ij vastaanottimien i ja j välinen etäisyys. L’ on narun pituus ja X i ultraäänen kulkema matka
vastaanottimelle R i .     R




Narun kulma on muuttuja β kuvassa 6. Koska narun pituus L’ voidaan mitata ja vaunun etäisyys
vastaanottimista tunnetaan, voidaan narun kulma laskea, jos etäisyys X 1 saadaan selville.
Seuraavassa johdetaan kaava X 1 :lle ultraäänipulssien vastaanottoaikojen erotusten perusteella.

Yleisesti kahden vastaanottimen etäisyysero suhteessa lähettimeen saadaan ultraäänen nopeuden ja
vastaanottimien vastaanottoaikojen erotuksen perusteella

dij = X j − X i = vs Δtij ,                                                                             (2.9)

missä Δt ij on vastaanottoaikojen erotus vastaanottimien R i ja R j välillä ja v s on äänennopeus.
                                                                                 R         R




Soveltamalla kosinilausetta kulmalle δ kolmioihin (Load, R 1 , R 2 ) sekä (Load, Trolley, R 2 ), saadaan
                                                                            R        R             R




johdettua seuraavat yhtälöt:

L '2 = X c22 + X 2 − 2 X c 2 X 2 cos(δ ) ja
                 2
                                                                                                       (2.10)

X 12 = X 12 + X 2 − 2 X 12 X 2 cos(δ ) .
          2     2
                                                                                                       (2.11)

Yhtälöstä (2.11) voidaan päätellä, että

                 X 12 + X 2 − X 12
                    2       2
cos(δ ) =                          .                                                                   (2.12)
                      2 X 12 X 2

Etäisyys d 12 = X 2 – X 1 , eli

X 2 = X 1 + d12 .                                                                                      (2.13)

Sijoittamalla yhtälöt (2.12) ja (2.13) yhtälöön (2.10) saadaan

                                                X 12 + ( X 1 + d12 ) 2 − X 12
                                                   2
L ' = X + ( X 1 + d12 ) − 2 X c 2 ( X 1 + d12 )
   2        2
            c2
                               2

                                                     2 X 12 ( X 1 + d12 )
                                                                                                       (2.14)
                        X
= X + X + 2 X 1d12 + d − c 2 ( X 12 + 2 X 1d12 + d12 ) .
       2
       c2        1
                  2               2 2
                                   12
                                                   2

                        X 12

Yllä olevasta lausekkeesta muokkautuu X 1 :lle toiseen asteen yhtälö

                                                                                                            7
X c2                               d2
X 12 + 2d12 (1 −        ) X 1 + X c 2 ( X c 2 − X 12 − 12 ) + d12 − L '2 = 0 ,
                                                                2
                                                                                                               (2.15)
                   X 12                               X 12

josta etäisyys X 1 ratkaistaan

          ⎛X       ⎞
X 1 = d12 ⎜ c 2 − 1⎟ ± Δ ,                                                                                     (2.16)
          ⎝ X 12   ⎠

missä

                          d12 X c 2 d12 X c22
                            2         2
Δ = L '2 + X c 2 X 12 −            +     2
                                              − X c22 .                                                        (2.17)
                            X 12      X 12

Kahdesta ratkaisusta valitaan se, joka antaa etäisyydeksi X 1                                 positiivisen arvon, eli
neliöjuurilausekkeen edessä oleva merkki on +.

Narun kulma voidaan ratkaista kolmiosta (Trolley, Load, R 1 ).              R




X 12 = X c21 + L '2 − 2 X c1 L 'cos ( β )
             ⎛ X + L '2 − X 12 ⎞                                                                               (2.18)
⇒ β = arccos ⎜ c1              ⎟.
             ⎝    2 X c1 L '   ⎠

Koska vastaanottimia ei ole oikeassa järjestelmässä mahdollista sijoittaa suoraan vaunun ja
liukujohteen yläpuolelle, vastaanottimet on asennettu konttinosturin kehikon reunalle. Kyseiselle
konstruktiolle on rakennettu kuvan 7 mukainen kehikko, jossa vastaanottimet ovat liukujohteen
suuntaisesti kehikon reunalla (samalla korkeudella). Näin ollen yllä olevissa laskelmissa pitää
huomioida vielä vastaanottimien vaakasuora siirtymä (kuvassa 7 muuttuja W).

                                                                                       Rail
                                                             T          A
                                                                  α

                   W                                               L

                                            T’           y        A’
                                                     β


                                                             L’

                                                                        C




                                                                                      ½ Frame
                                                 Kuva 7. Vastaanottimien geometria.


                                                                                                                   8
Aikaisemmin johdettua narun kulman yhtälöä voidaan hyödyntää yllä olevaan konstruktioon, jossa
edellä käytetty narun pituus L’ määritellään apusuureeksi todelliselle narun pituudelle L.

Kulmasta β ja etäisyydestä L’ on mahdollista laskea T’A’ vektorin pituus (myös TA:n pituus), missä
A ja A’ ovat normaaliprojektiot kontista C liukujohteeseen ja vastaanotinlinjaan, ja missä T’ on
normaaliprojektio vaunun paikasta T vastaanotinlinjalle. Olkoon T’A’:n pituus y.

y = L 'cos ( β )                                                                                (2.19)

Nyt todellinen narun kulma α voidaan laskea geometrian avulla

              ⎛ y⎞              ⎛ L 'cos ( β ) ⎞
α = arccos ⎜ ⎟ = arccos ⎜                      ⎟.                                               (2.20)
            L ⎝ ⎠               ⎝      L       ⎠

L’ voidaan nyt laskea käyttäen Pythagoraan lausetta, kun tiedetään narun todellinen pituus sekä
vastaanottimien vaakasuora siirtymä W,

L ' = L2 + W 2 .                                                                                (2.21)

Sijoittamalla yhtälö (2.21) yhtälöön (2.20) sekä sijoittamalla β:n tilalle yhtälö (2.18), saadaan narun
todellinen kulma muotoon

              ⎛ X c21 − X 12 + L2 + W 2 ⎞
α = arccos ⎜                            ⎟.                                                      (2.22)
              ⎝         2 X c1 L        ⎠

Lisäksi tulee huomioida seuraavat ehdot: jos vastaanotin R 1 on narun vasemmalla puolella, on
                                                                                      R




narun kulma Φ = α, muulloin Φ = π - α.

3.       PID-säädin
PID-säädin on yksi säätötekniikan perussäätimistä ja sen toiminta perustuu takaisinkytkentään. PID-
säädin on yleisin teollisuudessa käytettävä säädin. PID-säätimen nimi muodostuu termeistä
proportional-integral-derivative (suhde-integroiva-derivoiva).

3.1. Jatkuva-aikainen PID-säädin

Säätimen ulostulo u(t) eli ohjaussignaali koostuu siis kolmesta termistä.

             ⎛        1
                         t
                                      de(t ) ⎞
u (t ) = K p ⎜ e(t ) + ∫ e(τ )dτ + TD        ⎟                                                    (3.1)
             ⎝        TI 0             dt ⎠

Usein yhtälö esitetään myös muodossa
                                                      t
                                                                           de(t )
u (t ) = u P (t ) + u I (t ) + uD (t ) = K p e(t ) + K I ∫ e(τ )dτ + K D          ,               (3.2)
                                                      0
                                                                            dt




                                                                                                     9
Kp
jolloin K I =          ja K D = K pTD .
                  TI

Suhdesäätötermi (P - proportional) on staattinen kuvaus erosuureesta ohjaukseen. Aina kun
erosuure muuttuu, niin u P muuttuu myös vakiosuhteessa erosuureen muutoksiin. Integroiva termi
integroi erosuuretta. u I on jatkuvassa muutostilassa, kunnes erosuure häviää (menee nollaan).
Integroiva termi poistaa pysyvää poikkeamaa, mutta saattaa lisätä järjestelmän värähtelyjä.
Derivoiva termi vahvistaa erosuureen muutosnopeutta. Aina kun erosuure on muutostilassa, niin u D
reagoi yrittäen vastustaa muutosta. Derivoiva termi nopeuttaa järjestelmää, mutta on herkkä
viiveille ja korkeataajuiselle kohinalle (esimerkiksi mittaushäiriöt).

Laplace-tasossa PID-säätimen siirtofunktio voidaan esittää seuraavasti:

             ⎛    1        ⎞
Gc ( s ) = K ⎜1 +   + TD s ⎟ .                                                                    (3.3)
             ⎝ TI s        ⎠

3.2. Diskreettiaikainen PID-säädin

Käytännössä PID-säätöalgoritmia lasketaan tietokoneilla mittausten perusteella, joten tarvitaan
diskreettiaikainen PID-säädin. Koska diskreettiaikainen PID-säädin ei ole yksikäsitteinen, niin
parametrien lisäksi on esitettävä myös kulloinkin käytettävä säätimen rakenne. Alla esitellään ns.
käytännöllisen PID-säätimen diskreettiaikainen muoto. Tähän käytännölliseen versioon on tehty
muutama muutos oppikirjaversioon (3.1) nähden. Nämä ovat referenssisignaalin painotus
suhdetermissä ja suodatuksen lisääminen derivointitermiin. Lisäksi derivointi kohdistuu vasteeseen
eikä erosuureeseen. Näillä muutoksilla pyritään nopeuttamaan säätöä, vähentämään askelmaisen
referenssisignaalin aiheuttamia ”piikkejä” ohjaussignaalissa sekä vähentämään mittauskohinan
vahvistumista ohjaussignaaliin. Tarkastellaan ensin jatkuva-aikaista PID-säädintä Laplace-tasossa.

             ⎛                                                           ⎞
             ⎜                         1                         TD s    ⎟
U ( s ) = K ⎜ bYREF ( s ) − Y ( s ) +      (YREF (s) − Y (s) ) − T Y (s) ⎟
             ⎜                        TI s                      1+ D s   ⎟                        (3.4)
             ⎝                                                     N     ⎠
= Pm ( s ) + I ( s ) + Dm ( s )

Nähdään, että derivointi on toteutettu suodatettuna siten, että korkeataajuiset signaalit suodatetaan
pois (häiriöt), säädin derivoi vain prosessin lähtösignaalia ja vain osa referenssisignaalista vaikuttaa
suhdesäätöön. Parametri N on suodatusvakio, jonka arvo valitaan yleensä väliltä 3...20. Säätimen
diskretionnissa suhdetermi ei muutu, ainoastaan jatkuva-aikaiset signaalit korvataan diskreeteillä.
Integraalitermi diskretoidaan käyttämällä Eulerin approksimaatiota ja derivaattatermi käyttäen
taaksepäin derivoinnin (backward differences) approksimaatiota. Näin saadaan ”käytännöllisen”
PID-säätimen diskreettiaikainen versio.

Pm ( s) = K ( bYREF ( s ) − Y ( s) ) ⇒ Pm ( z ) = K ( bYREF ( z ) − Y ( z ) )                     (3.5)

             K                         1 1                 h 1
I m (s) =        E (s) ⇒ I m ( z ) = K          E ( z) = K          E( z)                         (3.6)
            TI s                       TI z − 1            TI z − 1
                                       h


                                                                                                     10
z −1
              KTD s                                  zh                                     z −1
Dm ( s ) = −          Y ( s ) ⇒ Dm ( z ) = − KTD             Y ( z ) = − KTD                        Y ( z)                      (3.7)
                TD                                  TD z − 1                            ⎛  TD ⎞  TD
             1+     s                            1+                                     ⎜h+ ⎟z −
                N                                   N zh                                ⎝  N⎠    N

3.3. Kaskadisäätö

Useissa prosesseissa toimisuureen vaikutus säädettävään suureeseen näkyy vasta huomattavan ajan
kuluttua, jolloin yksinkertainen takaisinkytketty säätö on luonnostaan hidas. Jos kuitenkin
järjestelmästä on mitattavissa apusuureita, joissa ohjaussuureen ja/tai häiriöiden vaikutus näkyy
aikaisemmin kuin säädettävässä suureessa, voidaan säätötulosta merkittävästi parantaa
kerrostamalla säätöpiirejä ns. kaskadipiiriksi. Kaskadisäädön periaatekaavio esitetään kuvassa 8.

Kaskadisäädöllä saavutetaan seuraavanlaiset hyödyt. Säätö on helppo toteuttaa perinteisillä PID-
säätimillä. Tällöin voidaan hyödyntää takaisinkytkennän periaatetta. Systeemin suorituskyky
saadaan nousemaan huomattavasti, kun huolehditaan, että sisempi silmukka on nopeampi kuin
ulompi silmukka. Tällöin myös sisäinen silmukka käsittelee ulkoiset häiriöt nopeammin. Usein
myös käytännössäkin säätöjärjestelmien operaattorit mieltävät kaskadikäytön helpoksi.
Kaskadisäädön virityksessä pätee yleisesti, että sisemmän silmukan integrointivakio on suhteessa
vahvempi ulkoisempaan silmukkaan, mutta taas ulkoisemman silmukan vahvistus on suurempi
suhteessa sisäisempään silmukkaan (toisin sanoen sisempi silmukka on nopeampi).

Kaskadisäätöä käytetään kun yhden silmukan suorituskyky ei ole tyydyttävä. Kaskadisäädön
toimivuus edellyttää yleensä, että apusuure pystytään ylipäänsä mittamaan ja merkittävät häiriöt
tapahtuvat sisemmän silmukan sisällä. Myös sisemmän ja ulomman silmukan mitattujen suureiden
välillä on oltava hyvin määritelty yhteys (esimerkiksi nopeus ja paikka). Lisäksi sisemmän
silmukan dynamiikan pitää olla huomattavasti, noin 4-5 kertaa, nopeampi kuin ulomman silmukan.
On huomioitavaa, että toissijaisen muuttujan mittaaminen voi olla monimutkaista tai kallista, ja että
kaskadisäätö voi lisätä merkittävästi järjestelmän monimutkaisuutta.

Kaskadisäätimen viritys voidaan tehdä samoilla menetelmillä kuin muidenkin säätöjen viritys.
Ongelmaa voidaan lähestyä esimerkiksi analyyttisesti, jos prosessin siirtofunktio tai muu vastaava
malli on tiedossa tai mahdollista kehittää. Parametrien viritys voidaan tällöin toteuttaa käyttäen
perinteisiä menetelmiä kuten taajuustason analyysiä tai Ziegler-Nicholsin virityssääntöjä.
                                                                                                v(t )    häiriö


             yref (t )            y2,ref (t )                 u1 (t )                 u2 (t )                       y (t )
           asetusarvo    SÄÄDIN   asetusarvo    SÄÄDIN                   TOIMILAITE                     PROSESSI
                                                                                      toimisuure                   lähtösuure
                                                              ohjaus




                                                          y2,mit (t )
                                                                          MITTAUS
                                                     mitattu suure 2




                                                            ymit (t )
                                                                          MITTAUS
                                                         mitattu suure

                                            Kuva 8. Kaskadisäädön periaatekaavio.


                                                                                                                                  11
4.     Sumea logiikka ja säätö
Fuzzy- eli sumeaa säätöä käytetään yleisesti prosesseissa, joissa perinteiset lineaariset säätimet eivät
tuota haluttua säätötulosta johtuen prosessin epälineaarisuudesta tai siitä, että prosessin
käyttäytymistä ei tunneta tarkasti. Toinen yleinen syy sumean säädön käyttöön on, että se antaa
säätösuunnittelijoille mahdollisuuden käyttää suunnittelussa hyväksi ihmisoperaattoreiden
säätöstrategioita. Tätä lähestymistapaa on sovellettu esimerkiksi pyykinpesukoneen pesuaineen
annostelumäärän säädössä pyykin likaisuuden ja määrän mukaan.

4.1. Sumea logiikka

Fuzzy- eli sumea logiikka on ns. moniarvoinen logiikka, jossa alkio voi kuulua osittain joukkoon.
Tällöin esimerkiksi lauseen: ”Alkio x kuuluu joukkoon X” totuusarvo on väliltä [0,1]. Käytännössä
monesti kohdataan sellaisia ilmiöitä tms., joita ei voida kuvata perinteisellä eksaktilla
matematiikalla. Sumea joukko-oppi sisältää menetelmiä, joilla voidaan käsitellä tällaisia ongelmia.

4.2. Sumea säätö

Sumeaa logiikkaa voidaan käyttää säädössä hyväksi, jolloin säätöalgoritmin voidaan ajatella
koostuvan kolmesta osasta, jotka ovat sumeutus, päättely ja selkeytys. Säätäjän sisäänmenoille
määritellään jäsenyysfunktioiden avulla sumeat joukot, jotka nimetään kuvaavilla nimillä.
Jäsenyysfunktio määrittää jäsenyysasteen, jolla sisäänmenon arvo kuuluu kyseiseen sumeaan
joukkoon. Joukot määritellään tyypillisesti hiukan limittäin, jolloin sisäänmeno saattaa kuulua
osittain esimerkiksi pienten ja keskisuurten lukujen joukkoon. Säätöalgoritmin osaa, jossa
jäsenyysfunktioiden arvot lasketaan, kutsutaan yleensä sumeutukseksi. Päättely tapahtuu jos—niin
sääntöjen ja sumeutuksessa laskettujen jäsenyysfunktioiden arvojen perusteella. Yhdistelemällä eri
sisäänmenojen sumeita joukkoja and- ja or-, eli ja- sekä tai-operaattoreiden avulla, voidaan rajata
mitkä säännöt ovat kulloinkin voimassa. Koska sumeassa logiikassa alkiot voivat saada arvoja
väliltä [0,1], käsitetään and-operaattori min-operaattoriksi ja or-operaattori max-operaattoriksi.
Päättelemällä tähän tilanteeseen sopiva ohjaustoimenpide ja määrittelemällä se ko. säännön
johtopäätökseksi, saadaan koko säätöstrategia rakennettua pala palalta käymällä kaikki mahdolliset
tilanteet läpi. Päättely tuottaa tyypillisesti yhden sumean joukon. Ennen kuin sitä voidaan käyttää,
sumea joukko täytyy muuttaa täsmälliseksi sumean säätäjän ulostuloksi. Tätä vaihetta kutsutaan
selkeytykseksi. Kuvassa 9 esitetään sumean säädön osat.

Sumea säätäjä sisältää seuraavat peruskomponentit: sumeutusrajapinta, sääntökanta, sumea päättely
ja selkeytysrajapinta. Sumeutusrajapinnalla täsmälliset prosessista saadut mittausarvot muutetaan
sumeiden joukkojen jäsenyysfunktioiden arvoiksi. Sääntökannan ja sumeiden mittaustietojen avulla
päätellään tarvittavat sumeat ohjaukset. Sumeat ohjaukset muutetaan täsmällisiksi selkeytys-
rajapinnalla.

                                                      Sääntökanta




                                                        Sumea
                              Sumeutus                                           Selkeytys
                                                        päättely
                Täsmällinen                Sumea                    Sumea                    Täsmällinen
                mittaus                    mittaus                  ohjaus                   ohjaus
                                         Kuva 9. Sumean säädön periaatekaavio.

                                                                                                           12
4.2.1. Sumeutus

Säätösovelluksissa mitattu tieto on usein täsmällistä. Koska sumeassa säädössä ohjaus
muodostetaan sumeiden päättelysääntöjen avulla, täytyy täsmällinen mittaus sumeuttaa. Sumeutus
voidaan toteuttaa laskemalla mittauksen kaikkien sumeiden joukkojen jäsenyysfunktioiden arvot
kyseisellä mittauksen arvolla.

4.2.2. Sääntökanta

Sumean säätäjän sääntökanta koostuu kokoelmasta jos—niin sääntöjä, joiden perusteella sumeasta
mittauksesta päätellään sumea ohjaus. Säännöt ovat tyypillisesti muotoa: ”jos mittauksen tietty ehto
toteutuu, niin ohjauksen täytyy toteuttaa tietty ehto”. Nämä lingvistiset säännöt määrittelevät
käytettävän säätöstrategian. Sääntökanta voidaan muodostaa usealla eri tavalla. Parhaiten
sääntökanta saadaan teollisuusprosesseista huolellisesti suunniteltujen kokeiden ja mittausten avulla
tai prosessimallia analysoimalla. Sääntöjen lukumäärä on suoraan verrannollinen säätäjän
ohjelmointiin ja virittämiseen tarvittavaan työmäärään. Usein hyvin pienellä sääntökannalla,
esimerkiksi jo parilla säännöllä, voidaan saavuttaa sama lopputulos kuin useita kymmeniä sääntöjä
sisältävällä sääntökannalla.

4.2.3. Sumea päättely

Sumeassa päättelyssä sumean mittauksen ja sääntökannan avulla päätellään tarvittava ohjaus
käyttäen sumeita loogisia operaatioita kuten and, or ja not sekä sumeaa implikaatiota.

4.2.4. Selkeytys

Sumean päättelyn tuloksena on sumea ohjaus. Koska tyypillisesti prosessin ohjauksen täytyy olla
täsmällinen, täytyy sumea ohjaus muuttaa täsmälliseksi ohjaukseksi. Yleisesti käytetyin
selkeytysmenetelmä on painopistemenetelmä (center of gravity), joka antaa ohjaukseksi
jäsenyysasteiden painopisteen.

4.3. Pikaopas Matlabin Fuzzy-työkaluun

Matlabissa sumean säädön suunnittelutyökalu käynnistetään komennolla fuzzy. Tämä avaa kuvassa
10 esitetyn ikkunan. Vasemmalla ylhäällä oleva laatikko (input1) kuvaa sisään menevien
mittauksien jäsenyysfunktioita, keskimmäinen laatikko sisältää sumean säädön sääntökannan ja
oikeanpuoleinen laatikko ulostulon jäsenyysfunktiot. Vasemmalla alanurkassa valitaan
selkeyttämistapa, joka oletuksena on keskipisteen laskenta (centroid). Sumean logiikan
sisäänmenoja ja ulostuloja lisätään ikkunan valikosta Edit -> Add variable -> Input/Output. Tässä
vaiheessa on hyvä antaa jokaiselle muuttujalle nimi, jonka voi asettaa ikkunan oikealla puolella
(Current Variable -> Name). Tuplaklikkaamalla sisäänmeno- tai ulostulokuvaketta avautuu kuvan
11 mukainen ikkuna, jossa voidaan määrittää halutut jäsenyysfunktiot muuttujalle.

Avautuvassa ikkunassa oikealla voidaan määrittää jäsenyysfunktioiden nimet sekä käyrien halutut
muodot. Vasemmalla alhaalla määritetään haluttu vaikutusalue. Edit-valikon alta voidaan lisätä ja
poistaa jäsenyysfunktioita. Params-kohdassa voidaan määrittää jäsenyysfunktion parametrejä.
Esimerkiksi Gaussisen jäsenyysfunktion (gaussmf) tapauksessa parametrit ovat hajonta
(verrannollinen jäsenyysfunktion leveyteen) ja keskiarvo (jäsenyysfunktion keskipiste). Tästä
ikkunasta voidaan määrittää jokaisen sisäänmeno- ja ulostulomuuttujan jäsenyysfunktiot.



                                                                                                  13
Kuva 10. Fuzzy-työkalu.                             Kuva 11. Jäsenyysfunktioiden määrittely.

Kun jäsenyysfunktiot on määritelty, siirrytään sääntökannan määrittelyyn. Sääntökanta avautuu
tuplaklikkaamalla ensimmäisessä ikkunassa keskimmäistä laatikkoa, minkä jälkeen avautuu kuvan
12 mukainen ikkuna. Sääntökanta määritetään muodostamalla jos – niin -tyyppisiä sääntöjä.
Esimerkiksi: ”jos lämpötila on suuri niin lämmitysteho on pieni”. Tässä lämpötila on
sisäänmenomuuttuja ja lämmitysteho ulostulomuuttuja eli ohjaussuure. Sisäänmenon eräs
jäsenyysfunktio on nimeltään suuri, joka on siis edellä määritelty lämpötila-alueen yläpäähän.
Ulostulon eräs jäsenyysfunktio on nimeltään pieni, joka vastaa ohjausalueen pienimpiä arvoja.
Säännön takana oleva logiikka: jos on jo lämmintä, vähennetään lämmitystehoa, jotta olisi hieman
viileämpää.

Kun koko sääntökanta on määritelty, voidaan ensimmäisessä ikkunassa tarkastella säädön
käyttäytymistä eri sisäänmenojen arvoilla menemällä valikkoon View -> Rules. Toiminnolla voi
tarkastella sumean logiikan ulostulon arvoja eri sisäänmenon signaalien arvoilla.

Säädin on hyvä tässä vaiheessa tallentaa (myös aikaisemmin) tai viedä työtilaan valikosta File
-> Export -> To Workspace/To Disk. Tämän jälkeen sumean logiikan lohkoa voidaan käyttää
esimerkiksi Simulinkissä säätimenä. Simulinkin kirjastoista löytyy Fuzzy Logic Toolboxin alta
Fuzzy Logic Controller -lohko. Lohkon voi siirtää tavalliseen Simulink-malliin. Tuplaklikkaamalla
lohkoa voidaan määritellä säätimen nimi, joka on työtilassa, ja säädin on valmis käytettäväksi.




                                       Kuva 12. Sääntökannan määrittely.



                                                                                                            14
4.4. Esimerkki sumeasta säädöstä

Pesukoneen pesuaineen määrää annostellaan sumean logiikan avulla. Sisääntulosuureina ovat
pyykin määrä ja likaisuus, jotka mitataan automaattisesti. Pyykin määrää kuvaa muuttuja
”Täyttöaste”, joka mitataan kiloina välillä 0 – 5 kg. Pyykin määrää kuvaavat joukot [Tyhjä,
Normaali, Täysi], joiden jäsenyysfunktiot on nähtävissä kuvassa 13.

Pyykin likaisuus mitataan anturilla, joka antaa arvoja väliltä 0 - 100 % (0 % vastaa puhdasta, 100 %
likaista pyykkiä). Likaisuusastetta kuvaavat joukot [Puhdas, Likainen, Törky]. Likaisuus-muuttujan
jäsenyysfunktiot esitetään kuvassa 14. Pesuaineen määrä annostellaan välillä 0 – 40 g taulukossa 1
esitettävän sääntökannan perusteella. Ohjauslogiikan säännöt on annettu muodossa: Jos Täyttöaste
ja Likaisuus niin Annostelu. Annostelun jäsenyysfunktiot on nähtävissä kuvassa 15.

Oletetaan, että pesukoneen Täyttöaste on 4 kg ja Likaisuus 80 %. Tällöin Täyttöaste 4 kg antaa
seuraavat jäsenyysfunktioiden arvot: Tyhjä = 0, Normaali = 0.65, Täysi = 0.35. Likaisuus 80 %
vastaa jäsenyysfunktioiden arvoja: Puhdas = 0, Likainen 0.4, Törky = 0.6. Taulukossa 2 esitetään
sääntökannan arvot näillä jäsenyysfunktioiden arvoilla.
                                                                Taulukko 1. Pesukone-esimerkin sääntökanta.
                                                                                  Täyttöaste
                                                                                    Tyhjä      Normaali      Täysi
                                                                                      Ei           Ei          Ei
                                                                       Puhdas     ollenkaan    ollenkaan   ollenkaan
                                                           Likaisuus   Likainen    Vähän        Vähän        Paljon
                                                                        Törky       Paljon       Paljon      Paljon




   Kuva 13. Pyykin määrään liittyvät jäsenyysfunktiot
                    (Täyttöaste).




 Kuva 14. Pyykin likaisuuteen liittyvät jäsenyysfunktiot      Kuva 15. Pesuaineen annostelun jäsenyysfunktiot
                     (Likaisuus).                                              (Annostelu).



                                                                                                                 15
Taulukko 2. Sääntökannan arvot.
                                                   Täyttöaste
                                                     Tyhjä        Normaali          Täysi
                                                       Ei             Ei              Ei
                                      Puhdas     ollenkaan=0.0 ollenkaan=0.0    ollenkaan=0.0
                         Likaisuus:   Likainen    Vähän=0.0       Vähän=0.4      Paljon=0.35
                                       Törky       Paljon=0.0     Paljon=0.6     Paljon=0.35

Taulukon 2 arvot saadaan sääntökannan sääntöjen perusteella. Koska säännöt on annettu ja – niin-
muodossa, saadaan tulos ottamalla kahdesta sisäänmenon jäsenyysfunktion arvosta minimi (ja
vastaa min-operaatiota). Esimerkiksi: jos Täyttöasteen jäsenyys joukkoon Normaali on 0.65 ja
Likaisuuden jäsenyys joukkoon Likainen on 0.4, niin Annostelu on 0.4 (minimi jäsenyysfunktioiden
arvoista). Edelleen ulostulon (Annostelu) jäsenyysfunktioiden arvot saadaan ottamalla
maksimiarvot kunkin ulostulomuuttujan arvosta sääntökannassa. Taulukon 2 mukaan sumeiksi
ohjauksen arvoiksi saadaan: Ei ollenkaan = 0.0, Vähän = 0.4, Paljon = 0.6. Näiden ohjausten
selkeytys tehdään tässä painopistemenetelmällä. Sumean ohjauksen painopiste lasketaan

   ∑x A      i       i
x=   i
        ,                                                                                       (4.1)
   ∑A    i
                 i



missä x i ovat ohjauksen sumeat arvot ja A i jäsenyysfunktion pinta-ala (ks. kuva 16). Painopiste-
menetelmällä selkeytettynä ohjauksen arvoksi saadaan 23.6 g. Kuvassa 16 esitetään graafisesti
ohjauksen määräytyminen mittausten ja jäsenyysfunktioiden sekä sääntökannan perustella. Sumean
ohjauksen arvo näkyy oikeassa alakulmassa.




                                       Kuva 16. Sumeutuksen graafinen esitys.

5.           Kalman-suodatin
Käytännön säätöjärjestelmissä mittauksissa ja prosesseissa on häiriöitä, jotka tulee suodattaa ennen
signaalien käyttämistä säädössä. Toisaalta on mahdollista, että joitain tarvittavia suureita ei voi
mitata vaan ne pitää estimoida muiden mittausten perusteella. Kalman-suodatin on optimaalinen
tilaestimaattori, jos järjestelmässä on tilastolliseksi tulkittavaa kohinaa ja häiriötä. Kalman-
suodattimella voidaan muodostaa järjestelmän mallia hyödyntäen estimaatti tiloista, eli saada arvio
järjestelmän tiloista siten, että signaaleista on poistettu häiriö mahdollisimman tehokkaasti.


                                                                                                  16
Oletetaan, että järjestelmä noudattaa lineaarista dynamiikkaa, joka on annettu tilamuodossa

x( k + 1) = A ( k ) x ( k ) + B ( k )u ( k ) + w ( k ) ,                                                     (5.1)

missä x on järjestelmän tilavektori, u ohjaus ja sekä w prosessikohinaa. Hetkellä k järjestelmän
todellisista tiloista tehdään havainto (mittaus) z(k)

z ( k ) = C( k ) x ( k ) + v ( k ) ,                                                                         (5.2)

missä C on havaintomatriisi ja v mittauskohinaa. Häiriöt w ja v oletetaan normaalijakautuneiksi,
nollakeskiarvoisiksi ja niiden kovarianssifunktiot tunnetuiksi

  {
E w (k )w T (k ) = Q(k )}
                                     .                                                                       (5.3)
E {v (k ) v   T
                  ( k )} = R ( k )

Kalman-suodatin ratkaisee estimointiongelman, jossa järjestelmän tiloista on muodostettu
                                ˆ
minimivarianssiestimaatti x( k | k ) siten, että se voidaan laskea rekursiivisesti, kun tunnetaan
edellinen estimaatti x ( k − 1 | k − 1) ja uusi mittauspari u(k), y(k).
                     ˆ

5.1. Perusmuoto

Kalman-suodattimen perusmuoto on

x(k | k ) = x(k | k − 1) + K (k ) [ z (k ) − C(k )x(k | k − 1) ] ,
ˆ           ˆ                                     ˆ                                                          (5.4)

         ˆ
missä x( k | k ) tarkoittaa hetkellä k laskettavaa estimaattia, kun kaikki mittaustieto hetkeen k asti on
käytettävissä. Vastaavasti x ( k | k − 1) tarkoittaa estimaattia hetkellä k, kun mittaustietoa on hetkeen
                                  ˆ
k – 1 asti käytettävissä. Yllä olevasta yhtälöstä havaitaan, että estimaatti koostuu kahdesta osasta:
ennakoivasta          (prediktointi)       osasta    x( k | k − 1)
                                                     ˆ             ja   korjaavasta   (päivitys)    osasta
K (k ) [ z (k ) − C(k )x(k | k − 1)] , joka on saatu kertomalla suodattimen vahvistusmatriisi K viimeisen
                       ˆ
mittauksen estimointivirheellä. Kalman-suodatin sisältää yhtälöt ennakoivan osan muodostamiseksi
ja vahvistusmatriisin laskemiseksi, jotka kummatkin saadaan täydelliseen rekursiiviseen muotoon
siten, että laskenta voidaan suorittaa k:n kasvaessa askel kerrallaan.

5.2. Kalman-suodattimen perusyhtälöt

Seuraavassa on annettu Kalman-suodattimen perusyhtälöt rekursiivisessa muodossa siten, että
yhtälöiden perusteella suodatin on mahdollista toteuttaa esimerkiksi tietokoneohjelmana.

Prediktointi:

x ( k | k − 1) = A ( k ) x( k − 1| k − 1) + B ( k )u ( k ) , tilan prediktointi
ˆ                        ˆ                                                                                   (5.5)

P (k | k − 1) = A ( k )P (k − 1| k − 1) A ( k )T + Q( k ) , tilan estimointivirheen kovarianssin prediktointi (5.6)




                                                                                                                17
Päivitys:

y ( k ) = z ( k ) − C( k ) x ( k | k − 1) , mittausvirhe
                           ˆ                                                                             (5.7)

S(k ) = C(k )P (k | k − 1)C( k )T + R ( k ) , mittausvirheen kovarianssi                                 (5.8)

K (k ) = P (k | k − 1)C(k )T S(k ) −1 , optimaalinen Kalman-vahvistus                                    (5.9)

x ( k | k ) = x ( k | k − 1) + K ( k ) y ( k ) , tilaestimaatin päivitys
ˆ             ˆ                                                                                         (5.10)

P(k | k ) = ( I − K (k )C(k ) ) P(k | k − 1) , tilan estimointivirheen kovarianssimatriisin päivitys.   (5.11)

Usein A, B ja C, Q ja R ovat vakioita ajan suhteen, jolloin estimointivirheen kovarianssi P voidaan
laskea Riccatin yhtälöllä

        (
P = A P − PCT ⎡CPCT + R ⎤ CP AT + Q .
              ⎣         ⎦
                                     −1
                                             )                                                          (5.12)

Kalman-suodattimen teoriassa tunnetuiksi oletetut häiriöiden kovarianssimatriisit R ja Q eivät
yleensä ole käytännössä tunnettuja. Käytännössä suodatin viritetään valitsemalla R ja Q sekä
asettamalla suhde Q/R siten, että vahvistus tulee sopivaksi. Usein sopiva suhteen arvo valitaan
silmämääräisesti tuloksia tarkastelemalla. Erityisesti mittauskohinan varianssin voi yrittää arvioida
prosessikokeiden perusteella, jolloin R:lle voidaan joissain tapauksissa johtaa arvo. Q mittaa
prosessihäiriöiden tai epätarkkuuksien suuruutta, ja näitä on vaikeampi arvioida ennalta.

5.3. Laajennettu Kalman-suodatin

Monesti sekä prosessimalli että havaintomalli voivat olla epälineaarisia

⎪x(k + 1) = f ( x(k ), u(k ), k ) + w (k )
⎧
⎨                                          .                                                            (5.13)
⎪
⎩ z (k ) = h ( x(k ), k ) + v(k )

Funktiot f ja h eivät välttämättä ole lineaarisia, ja saattavat riippua x:n ja u:n lisäksi k:sta
(aikavarianttisuus). Yleisessä tapauksessa kovarianssit saattavat muuttua ajan funktiona, ja siksi
kovarianssimatriisit esitetään k:n funktioina. Prosessin tila x, heräte u, mittaus z, funktiot f ja h, sekä
kohinatermit w ja v ovat kaikki yleisessä tapauksessa vektoreita. Kalman-suodattimen yhtälöissä
esiintyvien matriisien K ja P laskemiseksi tarvitaan matriiseja A ja C. Mikäli malli on
epälineaarinen, nämä matriisit korvataan funktioiden f ja h jakobiaaneilla. A- ja C-matriisi
muodostetaan tällöin funktioiden f ja h osittaisderivaatoista. A-matriisi saadaan ottamalla f:n
osittaisderivaatat kunkin tilamuuttujan suhteen ja C-matriisi vastaavasti funktiosta h. Esimerkiksi:

    ⎡ ∂ f1        ∂ f1 ⎤
    ⎢ ∂x          ∂x2 ⎥        ⎡
                       ⎥ , C = ⎢ ∂h          ∂h ⎤
A = ⎢
         1
                                                 ⎥.                                                     (5.14)
    ⎢ ∂f2         ∂f2 ⎥        ⎣ ∂ x1        ∂x2 ⎦
    ⎢                  ⎥
    ⎣ ∂ x1        ∂x2 ⎦

Koska f ei ole lineaarinen, tulee matriiseihin termejä, jotka sisältävät tilamuuttujia ja herätteitä.
Tämän vuoksi A- ja C-matriisit lasketaan jokaisella kierroksella uudelleen. Matriisia A laskettaessa

                                                                                                           18
tilavektorina x käytetään edellisen kierroksen estimaattia x ( k − 1| k − 1) , kun taas C-matriisia
                                                                  ˆ
laskettaessa käytetään kuluvan kierroksen estimaattia x( k | k − 1) .
                                                      ˆ

Seuraavassa on annettu laajennetun Kalman-suodattimen yhtälöt.

Prediktointi:

x(k | k − 1) = f ( x(k − 1| k − 1), u(k ), k − 1) , tilan prediktointi
ˆ                  ˆ                                                                                       (5.15)

        ⎡ ∂f ( x(k − 1| k − 1), u(k ), k − 1) ⎤
               ˆ
A(k ) = ⎢                                     ⎥ , A:n korvaava derivaatta                                  (5.16)
        ⎣         ∂x(k − 1| k − 1)
                    ˆ                         ⎦

P (k | k − 1) = A ( k )P (k − 1| k − 1) A ( k )T + Q( k ) , tilan estimointivirheen kovarianssin prediktointi(5.17)

Päivitys:

        ⎡ ∂h ( x(k | k − 1), k ) ⎤
               ˆ
C(k ) = ⎢                        ⎥ , C:n korvaava derivaatta                                               (5.18)
        ⎣    ∂x(k | k − 1) ⎦
               ˆ

y (k ) = z (k ) − h ( x(k | k − 1) ) , mittausvirhe
                      ˆ                                                                                    (5.19)

S(k ) = C(k )P (k | k − 1)C( k )T + R ( k ) , mittausvirheen kovarianssi                                   (5.20)

K (k ) = P (k | k − 1)C(k )T S(k ) −1 , optimaalinen Kalman-vahvistus                                      (5.21)

x ( k | k ) = x ( k | k − 1) + K ( k ) y ( k ) , tilaestimaatin päivitys
ˆ             ˆ                                                                                            (5.22)

P(k | k ) = ( I − K (k )C(k ) ) P(k | k − 1) , tilan estimointivirheen kovarianssimatriisin päivitys.      (5.23)




                                                                                                               19

More Related Content

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Tyo 8 _tyoohje_2

  • 1. AS-0.2230 Automaatio- ja systeemitekniikan laboratoriotyöt LABORATORIOTYÖ 8 Konttinosturin sumea säätö Einar Toivonen, Lasse Eriksson 2006
  • 2. 1. Johdanto 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 (2.5 m x 0.8 m), jolla voidaan siirtää konttia kahdessa suunnassa (vaaka- ja 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ä kontin heiluminen siirron aikana minimoituu, mutta samalla pyritään pitämään siirtonopeus kohtuullisena. Kuva 1. Konttinosturi Shanghain Wai Gao Qiao telakalla. 1.1. Työn tavoitteet Työssä tarkastellaan konttinosturin pienoismallin säätöongelmaa ja sovelletaan kaskadi PID-säätöä ja sumeaa logiikkaa kontin siirrossa. Tavoitteena on tutustuttaa opiskelijat kaskadi PID-säädön virittämiseen ja sumean logiikan perusteisiin sekä näyttää miten sumeaa logiikkaa voidaan soveltaa säätöongelman ratkaisussa käytännössä. Työssä vertaillaan sumeaa säädintä PID-säätimeen, jotta säädinrakenteiden erot tulisivat hyvin esille (suorituskyky, kompleksisuus, viritys jne.). Työssä tarkastellaan myös mittausten suodatusta ja sovelletaan Kalman-suodatinta käytännön säätöjärjestel- mässä. Työssä sivutaan myös mm. ultraäänimittauksen periaatteita ja käytännön säätöjärjestelmän ongelmia (häiriöt jne.). 1.2. Säätöjärjestelmän kuvaus 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.
  • 3. Kuva 2. Konttinosturin CAD-kuva. Konttinosturia säädetään kolmella säätimellä. Vaunun paikkaa ja kontin korkeutta säädetään kaskadi PID-säätimillä. Kaskadisäätöä käytetään, koska takaisinkytkentä vaunun paikan ja kontin korkeuden muutoksesta eli nopeudesta parantaa näiden suureiden säätöä. Sumeaa säätöä käytetään vaimentamaan kontin heilahtelua siirron aikana. Kontin heilahteluja voidaan parhaiten kompensoida vaunumoottorin avulla, joten sumea säädin ohjaa vaunumoottoria paikkasäädön rinnalla. Näin ollen vaunumoottoria ohjataan vaunun paikkatiedon mukaan siten, että kontin heilahtelu pysyy minimissään. Narun pituuteen eli kontin korkeuteen vaikuttaa vain nostomoottori. Referenssitrajektorit PID-säätimille saadaan radansuunnittelualgoritmin avulla. Tämä ottaa huomioon moottorien maksiminopeudet yms., ja laskee realistisesti saavutettavissa olevat radat halutusta alkupisteestä loppupisteeseen huomioiden rataa mahdollisesti rajoittavat esteet. Jotta säätimet saavat luotettavaa mittaustietoa on takaisinkytkentään lisätty Kalman-suodatin, joka antaa luotettavan estimaatin halutuista suureista. Konttinosturin säätöjärjestelmän rakenne esitetään kuvassa 3. 2. Konttinosturin malli Konttinosturilla voidaan siirtää kuormia kahdessa dimensiossa eli se pystyy nostamaan kontin ja liikuttamaan sitä vaakasuunnassa kuvan 4 mukaisesti. Kontin liikuttamiseen vaadittavat vääntömomentit saadaan kahdesta systeemissä olevasta moottorista: vaunumoottori (trolley motor) ja nostomoottori (hoist motor). Vaunumoottori vaikuttaa vaunun paikkaan liukujohteen (linear actuator) avulla. 3
  • 4. ˆ Φ ˆ Φ Fuzzy Vaunun paikan kaskadisäätö Θ1,ref Θ1,ref ˆ Θ1 u1 + PID + PID + Vaunumootori x(t ) = f ( x, u ) Θ1 ˆ Θ1 y (t ) = g ( x, u ) Θ2 Φ Kontin korkeuden kaskadisäätö Θ 2,ref Θ 2,ref Konttinosturi ˆ Θ2 u2 + PID + PID Nostomoottori ˆ Θ2 ˆ Θ1 ˆ Θ1 ˆ Θ2 ˆ Θ Kalman-suodin 2 ˆ Φ ˆ Φ Kuva 3. Konttinosturin säätöjärjestelmän komponentit. Kuva 4. Konttinosturin kaaviokuva. 2.1. 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 4
  • 5. 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 ⎛ ∂L ⎞ ∂L ⎜ ⎟− = N1 − D1 (2.1) dt ⎝ ∂θ1 ⎠ ∂θ1 d ⎛ ∂L ⎞ ∂L ⎜ ⎟− = N 2 − D2 (2.2) dt ⎝ ∂θ 2 ⎠ ∂θ 2 d ⎛ ∂L ⎞ ∂L ⎜ ⎟− = 0, (2.3) dt ⎝ ∂Φ ⎠ ∂Φ missä 1 1 1 1 1 L = T −U = J1θ12 + J 2θ 22 + mv r12θ12 + mk r12θ12 + mk r22θ 22 + 2 2 2 2 2 (2.4) 1 + mk r22θ 22 Φ 2 + mk r1r2θ1θ 2 sin Φ + mk r1r2θ1θ 2 Φ cos Φ + mk gr2θ 2 cos Φ. 2 Yhtälöissä L on ns. Lagrangen funktio, L = T – U, missä T on liike-energia 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. 2.2. Moottorien mallit Vaunumoottorina on Moogin valmistama AC-servomoottori (malli D314 L20), jossa käytetään pulssinleveysmodulaatiota tuottamaan jännite staattorin käämeihin. Moottorin mallintaminen analyyttisesti ei ole ollut mahdollista moottorin iän ja siitä johtuen puutteellisten tietojen valossa. Tästä syystä moottorille on johdettu identifioimalla (mittauksiin perustuen) seuraava malli. B(q) y (k ) = u (k ) + e(k ), F (q ) B (q ) = 0.06495q −3 + 0.3543q −4 + 0.4354q −5 + 0.5031q −6 (2.5) F (q ) = 1 + 0.2185q −1 + 0.1251q −2 Nostomoottori on DC-moottori, johon on kytketty välitys (välityssuhde i = 1/23). Nostomoottoria kuvaa analyyttinen malli: Kt2 K J gesθ 2 + θ 2 − t U a + i 2 ⋅ Tload + T fric = 0 , (2.6) Ra Ra missä J ges on moottoriin kytketty kokonaisinertia, T fric kitkasta aiheutuva vääntömomentti, T load massaan kohdistuva vääntömomentti, K t momenttivakio, U a herätejännite ja R a moottorin sisäinen R vastus. 5
  • 6. 2.3. Kitkamalli Koska moottoreissa ja liukujohteessa esiintyvät kitkat vaikuttavat huomattavasti systeemin käyttäytymiseen, on systeemille johdettu myös kitkamalli. Nostomoottorin kitka johtuu suurimmalta osin välityksestä, ja se on helppo mallintaa moottorintoimittajan ohjekirjan perusteella. Moottorin hyötysuhde kyseiseen välitykseen liitettynä on 50 %, joten voidaan olettaa, että 50 % vääntömomentista häviää kitkan takia. Vaunumoottorin ja liukujohteen kitkan mallinnuksessa on sovellettu ns. LuGre-kitkamallia. Yleisesti mallin on todettu soveltuvan hyvin erilaisten säätöjärjestelmien kitkan mallintamiseen. Yleisessä muodossa malli on seuraava: dz v = v −σ0 z, dt g (v ) 2 g (v) = α 0 + α1e − ( v / v0 ) , (2.7) dz F = σ 0 z + σ1 + α 2 v. dt Kitkamomentti F on funktio vaunun nopeudesta v. α i ja v o ovat staattisia parametrejä ja σ i ovat dynaamisia parametrejä. Staattiset parametrit on saatu ajamalla järjestelmää vakionopeuksilla ja dynaamiset vertaamalla järjestelmän simulointi- ja mittaustuloksia. Mallin muuttuja z liittyy kitkamallin fysikaaliseen tulkintaan, mutta muuttuja ei ole mitattavissa. 2.4. Kontin narun kulman mittaus Kontin narun kulma mitataan ultraääneen perustuvalla mittausjärjestelmällä. Kontissa on lähetin, joka lähettää lyhyitä (2 ms) ultraäänipulsseja 40 kHz taajuudella neljä kertaa sekunnissa. Konttinosturin kehikkoon on kiinnitetty ultraäänivastaanottimia, jotka vastaanottavat pulssit. Narun kulma lasketan vastaanottoaikaerojen perusteella. Ultraäänipulssien lähetysaikaa ei tunneta, koska kontissa olevaa lähetintä ei ole kytketty mittausjärjestelmään. Vastaanottimia kuitenkin luetaan samanaikaisesti 20 kHz:n taajuudella, joten pulssin kulkuajan ero kahden vastaanottimen välillä voidaan laskea. Koska pulssien lähetysaikaa ei tiedetä, on mahdotonta laskea suoraan matkaeroa kontin ja vastaanottimen välillä. Kuitenkin kahden vastaanottimen välinen etäisyys ja muu geometria sekä pulssin vastaanottoajan erotus tunnetaan, joten lähettimen ja vastaanottimien etäisyys voidaan laskea. Näiden avulla narun kulma saadaan laskettua käyttäen hyväksi kosinilausetta (laajennettu Pythagoraan lause), jonka yleinen muoto esitetään kuvassa 5 ja kaavassa (2.8). Kuvan 5 mukaiselle kolmiolle pätee yhteys a 2 = b 2 + c 2 − 2bc cos(α ) . (2.8) δ a c β α b Kuva 5. Kosinilauseeseen liittyvät muuttujat. 6
  • 7. X c2 R2 X 12 R1 X c1 Trolley δ β X1 X2 L' Load Kuva 6. Kulman mittaaminen ultraäänen perusteella. Kuvassa 6 on hahmoteltu narun kulman laskemiseen liittyvää geometriaa. Kuvassa R i on R ultraäänivastaanottimen i paikka, X ci ultraäänivastaanottimen i ja vaunun (Trolley) välinen etäisyys ja X ij vastaanottimien i ja j välinen etäisyys. L’ on narun pituus ja X i ultraäänen kulkema matka vastaanottimelle R i . R Narun kulma on muuttuja β kuvassa 6. Koska narun pituus L’ voidaan mitata ja vaunun etäisyys vastaanottimista tunnetaan, voidaan narun kulma laskea, jos etäisyys X 1 saadaan selville. Seuraavassa johdetaan kaava X 1 :lle ultraäänipulssien vastaanottoaikojen erotusten perusteella. Yleisesti kahden vastaanottimen etäisyysero suhteessa lähettimeen saadaan ultraäänen nopeuden ja vastaanottimien vastaanottoaikojen erotuksen perusteella dij = X j − X i = vs Δtij , (2.9) missä Δt ij on vastaanottoaikojen erotus vastaanottimien R i ja R j välillä ja v s on äänennopeus. R R Soveltamalla kosinilausetta kulmalle δ kolmioihin (Load, R 1 , R 2 ) sekä (Load, Trolley, R 2 ), saadaan R R R johdettua seuraavat yhtälöt: L '2 = X c22 + X 2 − 2 X c 2 X 2 cos(δ ) ja 2 (2.10) X 12 = X 12 + X 2 − 2 X 12 X 2 cos(δ ) . 2 2 (2.11) Yhtälöstä (2.11) voidaan päätellä, että X 12 + X 2 − X 12 2 2 cos(δ ) = . (2.12) 2 X 12 X 2 Etäisyys d 12 = X 2 – X 1 , eli X 2 = X 1 + d12 . (2.13) Sijoittamalla yhtälöt (2.12) ja (2.13) yhtälöön (2.10) saadaan X 12 + ( X 1 + d12 ) 2 − X 12 2 L ' = X + ( X 1 + d12 ) − 2 X c 2 ( X 1 + d12 ) 2 2 c2 2 2 X 12 ( X 1 + d12 ) (2.14) X = X + X + 2 X 1d12 + d − c 2 ( X 12 + 2 X 1d12 + d12 ) . 2 c2 1 2 2 2 12 2 X 12 Yllä olevasta lausekkeesta muokkautuu X 1 :lle toiseen asteen yhtälö 7
  • 8. X c2 d2 X 12 + 2d12 (1 − ) X 1 + X c 2 ( X c 2 − X 12 − 12 ) + d12 − L '2 = 0 , 2 (2.15) X 12 X 12 josta etäisyys X 1 ratkaistaan ⎛X ⎞ X 1 = d12 ⎜ c 2 − 1⎟ ± Δ , (2.16) ⎝ X 12 ⎠ missä d12 X c 2 d12 X c22 2 2 Δ = L '2 + X c 2 X 12 − + 2 − X c22 . (2.17) X 12 X 12 Kahdesta ratkaisusta valitaan se, joka antaa etäisyydeksi X 1 positiivisen arvon, eli neliöjuurilausekkeen edessä oleva merkki on +. Narun kulma voidaan ratkaista kolmiosta (Trolley, Load, R 1 ). R X 12 = X c21 + L '2 − 2 X c1 L 'cos ( β ) ⎛ X + L '2 − X 12 ⎞ (2.18) ⇒ β = arccos ⎜ c1 ⎟. ⎝ 2 X c1 L ' ⎠ Koska vastaanottimia ei ole oikeassa järjestelmässä mahdollista sijoittaa suoraan vaunun ja liukujohteen yläpuolelle, vastaanottimet on asennettu konttinosturin kehikon reunalle. Kyseiselle konstruktiolle on rakennettu kuvan 7 mukainen kehikko, jossa vastaanottimet ovat liukujohteen suuntaisesti kehikon reunalla (samalla korkeudella). Näin ollen yllä olevissa laskelmissa pitää huomioida vielä vastaanottimien vaakasuora siirtymä (kuvassa 7 muuttuja W). Rail T A α W L T’ y A’ β L’ C ½ Frame Kuva 7. Vastaanottimien geometria. 8
  • 9. Aikaisemmin johdettua narun kulman yhtälöä voidaan hyödyntää yllä olevaan konstruktioon, jossa edellä käytetty narun pituus L’ määritellään apusuureeksi todelliselle narun pituudelle L. Kulmasta β ja etäisyydestä L’ on mahdollista laskea T’A’ vektorin pituus (myös TA:n pituus), missä A ja A’ ovat normaaliprojektiot kontista C liukujohteeseen ja vastaanotinlinjaan, ja missä T’ on normaaliprojektio vaunun paikasta T vastaanotinlinjalle. Olkoon T’A’:n pituus y. y = L 'cos ( β ) (2.19) Nyt todellinen narun kulma α voidaan laskea geometrian avulla ⎛ y⎞ ⎛ L 'cos ( β ) ⎞ α = arccos ⎜ ⎟ = arccos ⎜ ⎟. (2.20) L ⎝ ⎠ ⎝ L ⎠ L’ voidaan nyt laskea käyttäen Pythagoraan lausetta, kun tiedetään narun todellinen pituus sekä vastaanottimien vaakasuora siirtymä W, L ' = L2 + W 2 . (2.21) Sijoittamalla yhtälö (2.21) yhtälöön (2.20) sekä sijoittamalla β:n tilalle yhtälö (2.18), saadaan narun todellinen kulma muotoon ⎛ X c21 − X 12 + L2 + W 2 ⎞ α = arccos ⎜ ⎟. (2.22) ⎝ 2 X c1 L ⎠ Lisäksi tulee huomioida seuraavat ehdot: jos vastaanotin R 1 on narun vasemmalla puolella, on R narun kulma Φ = α, muulloin Φ = π - α. 3. PID-säädin PID-säädin on yksi säätötekniikan perussäätimistä ja sen toiminta perustuu takaisinkytkentään. PID- säädin on yleisin teollisuudessa käytettävä säädin. PID-säätimen nimi muodostuu termeistä proportional-integral-derivative (suhde-integroiva-derivoiva). 3.1. Jatkuva-aikainen PID-säädin Säätimen ulostulo u(t) eli ohjaussignaali koostuu siis kolmesta termistä. ⎛ 1 t de(t ) ⎞ u (t ) = K p ⎜ e(t ) + ∫ e(τ )dτ + TD ⎟ (3.1) ⎝ TI 0 dt ⎠ Usein yhtälö esitetään myös muodossa t de(t ) u (t ) = u P (t ) + u I (t ) + uD (t ) = K p e(t ) + K I ∫ e(τ )dτ + K D , (3.2) 0 dt 9
  • 10. Kp jolloin K I = ja K D = K pTD . TI Suhdesäätötermi (P - proportional) on staattinen kuvaus erosuureesta ohjaukseen. Aina kun erosuure muuttuu, niin u P muuttuu myös vakiosuhteessa erosuureen muutoksiin. Integroiva termi integroi erosuuretta. u I on jatkuvassa muutostilassa, kunnes erosuure häviää (menee nollaan). Integroiva termi poistaa pysyvää poikkeamaa, mutta saattaa lisätä järjestelmän värähtelyjä. Derivoiva termi vahvistaa erosuureen muutosnopeutta. Aina kun erosuure on muutostilassa, niin u D reagoi yrittäen vastustaa muutosta. Derivoiva termi nopeuttaa järjestelmää, mutta on herkkä viiveille ja korkeataajuiselle kohinalle (esimerkiksi mittaushäiriöt). Laplace-tasossa PID-säätimen siirtofunktio voidaan esittää seuraavasti: ⎛ 1 ⎞ Gc ( s ) = K ⎜1 + + TD s ⎟ . (3.3) ⎝ TI s ⎠ 3.2. Diskreettiaikainen PID-säädin Käytännössä PID-säätöalgoritmia lasketaan tietokoneilla mittausten perusteella, joten tarvitaan diskreettiaikainen PID-säädin. Koska diskreettiaikainen PID-säädin ei ole yksikäsitteinen, niin parametrien lisäksi on esitettävä myös kulloinkin käytettävä säätimen rakenne. Alla esitellään ns. käytännöllisen PID-säätimen diskreettiaikainen muoto. Tähän käytännölliseen versioon on tehty muutama muutos oppikirjaversioon (3.1) nähden. Nämä ovat referenssisignaalin painotus suhdetermissä ja suodatuksen lisääminen derivointitermiin. Lisäksi derivointi kohdistuu vasteeseen eikä erosuureeseen. Näillä muutoksilla pyritään nopeuttamaan säätöä, vähentämään askelmaisen referenssisignaalin aiheuttamia ”piikkejä” ohjaussignaalissa sekä vähentämään mittauskohinan vahvistumista ohjaussignaaliin. Tarkastellaan ensin jatkuva-aikaista PID-säädintä Laplace-tasossa. ⎛ ⎞ ⎜ 1 TD s ⎟ U ( s ) = K ⎜ bYREF ( s ) − Y ( s ) + (YREF (s) − Y (s) ) − T Y (s) ⎟ ⎜ TI s 1+ D s ⎟ (3.4) ⎝ N ⎠ = Pm ( s ) + I ( s ) + Dm ( s ) Nähdään, että derivointi on toteutettu suodatettuna siten, että korkeataajuiset signaalit suodatetaan pois (häiriöt), säädin derivoi vain prosessin lähtösignaalia ja vain osa referenssisignaalista vaikuttaa suhdesäätöön. Parametri N on suodatusvakio, jonka arvo valitaan yleensä väliltä 3...20. Säätimen diskretionnissa suhdetermi ei muutu, ainoastaan jatkuva-aikaiset signaalit korvataan diskreeteillä. Integraalitermi diskretoidaan käyttämällä Eulerin approksimaatiota ja derivaattatermi käyttäen taaksepäin derivoinnin (backward differences) approksimaatiota. Näin saadaan ”käytännöllisen” PID-säätimen diskreettiaikainen versio. Pm ( s) = K ( bYREF ( s ) − Y ( s) ) ⇒ Pm ( z ) = K ( bYREF ( z ) − Y ( z ) ) (3.5) K 1 1 h 1 I m (s) = E (s) ⇒ I m ( z ) = K E ( z) = K E( z) (3.6) TI s TI z − 1 TI z − 1 h 10
  • 11. z −1 KTD s zh z −1 Dm ( s ) = − Y ( s ) ⇒ Dm ( z ) = − KTD Y ( z ) = − KTD Y ( z) (3.7) TD TD z − 1 ⎛ TD ⎞ TD 1+ s 1+ ⎜h+ ⎟z − N N zh ⎝ N⎠ N 3.3. Kaskadisäätö Useissa prosesseissa toimisuureen vaikutus säädettävään suureeseen näkyy vasta huomattavan ajan kuluttua, jolloin yksinkertainen takaisinkytketty säätö on luonnostaan hidas. Jos kuitenkin järjestelmästä on mitattavissa apusuureita, joissa ohjaussuureen ja/tai häiriöiden vaikutus näkyy aikaisemmin kuin säädettävässä suureessa, voidaan säätötulosta merkittävästi parantaa kerrostamalla säätöpiirejä ns. kaskadipiiriksi. Kaskadisäädön periaatekaavio esitetään kuvassa 8. Kaskadisäädöllä saavutetaan seuraavanlaiset hyödyt. Säätö on helppo toteuttaa perinteisillä PID- säätimillä. Tällöin voidaan hyödyntää takaisinkytkennän periaatetta. Systeemin suorituskyky saadaan nousemaan huomattavasti, kun huolehditaan, että sisempi silmukka on nopeampi kuin ulompi silmukka. Tällöin myös sisäinen silmukka käsittelee ulkoiset häiriöt nopeammin. Usein myös käytännössäkin säätöjärjestelmien operaattorit mieltävät kaskadikäytön helpoksi. Kaskadisäädön virityksessä pätee yleisesti, että sisemmän silmukan integrointivakio on suhteessa vahvempi ulkoisempaan silmukkaan, mutta taas ulkoisemman silmukan vahvistus on suurempi suhteessa sisäisempään silmukkaan (toisin sanoen sisempi silmukka on nopeampi). Kaskadisäätöä käytetään kun yhden silmukan suorituskyky ei ole tyydyttävä. Kaskadisäädön toimivuus edellyttää yleensä, että apusuure pystytään ylipäänsä mittamaan ja merkittävät häiriöt tapahtuvat sisemmän silmukan sisällä. Myös sisemmän ja ulomman silmukan mitattujen suureiden välillä on oltava hyvin määritelty yhteys (esimerkiksi nopeus ja paikka). Lisäksi sisemmän silmukan dynamiikan pitää olla huomattavasti, noin 4-5 kertaa, nopeampi kuin ulomman silmukan. On huomioitavaa, että toissijaisen muuttujan mittaaminen voi olla monimutkaista tai kallista, ja että kaskadisäätö voi lisätä merkittävästi järjestelmän monimutkaisuutta. Kaskadisäätimen viritys voidaan tehdä samoilla menetelmillä kuin muidenkin säätöjen viritys. Ongelmaa voidaan lähestyä esimerkiksi analyyttisesti, jos prosessin siirtofunktio tai muu vastaava malli on tiedossa tai mahdollista kehittää. Parametrien viritys voidaan tällöin toteuttaa käyttäen perinteisiä menetelmiä kuten taajuustason analyysiä tai Ziegler-Nicholsin virityssääntöjä. v(t ) häiriö yref (t ) y2,ref (t ) u1 (t ) u2 (t ) y (t ) asetusarvo SÄÄDIN asetusarvo SÄÄDIN TOIMILAITE PROSESSI toimisuure lähtösuure ohjaus y2,mit (t ) MITTAUS mitattu suure 2 ymit (t ) MITTAUS mitattu suure Kuva 8. Kaskadisäädön periaatekaavio. 11
  • 12. 4. Sumea logiikka ja säätö Fuzzy- eli sumeaa säätöä käytetään yleisesti prosesseissa, joissa perinteiset lineaariset säätimet eivät tuota haluttua säätötulosta johtuen prosessin epälineaarisuudesta tai siitä, että prosessin käyttäytymistä ei tunneta tarkasti. Toinen yleinen syy sumean säädön käyttöön on, että se antaa säätösuunnittelijoille mahdollisuuden käyttää suunnittelussa hyväksi ihmisoperaattoreiden säätöstrategioita. Tätä lähestymistapaa on sovellettu esimerkiksi pyykinpesukoneen pesuaineen annostelumäärän säädössä pyykin likaisuuden ja määrän mukaan. 4.1. Sumea logiikka Fuzzy- eli sumea logiikka on ns. moniarvoinen logiikka, jossa alkio voi kuulua osittain joukkoon. Tällöin esimerkiksi lauseen: ”Alkio x kuuluu joukkoon X” totuusarvo on väliltä [0,1]. Käytännössä monesti kohdataan sellaisia ilmiöitä tms., joita ei voida kuvata perinteisellä eksaktilla matematiikalla. Sumea joukko-oppi sisältää menetelmiä, joilla voidaan käsitellä tällaisia ongelmia. 4.2. Sumea säätö Sumeaa logiikkaa voidaan käyttää säädössä hyväksi, jolloin säätöalgoritmin voidaan ajatella koostuvan kolmesta osasta, jotka ovat sumeutus, päättely ja selkeytys. Säätäjän sisäänmenoille määritellään jäsenyysfunktioiden avulla sumeat joukot, jotka nimetään kuvaavilla nimillä. Jäsenyysfunktio määrittää jäsenyysasteen, jolla sisäänmenon arvo kuuluu kyseiseen sumeaan joukkoon. Joukot määritellään tyypillisesti hiukan limittäin, jolloin sisäänmeno saattaa kuulua osittain esimerkiksi pienten ja keskisuurten lukujen joukkoon. Säätöalgoritmin osaa, jossa jäsenyysfunktioiden arvot lasketaan, kutsutaan yleensä sumeutukseksi. Päättely tapahtuu jos—niin sääntöjen ja sumeutuksessa laskettujen jäsenyysfunktioiden arvojen perusteella. Yhdistelemällä eri sisäänmenojen sumeita joukkoja and- ja or-, eli ja- sekä tai-operaattoreiden avulla, voidaan rajata mitkä säännöt ovat kulloinkin voimassa. Koska sumeassa logiikassa alkiot voivat saada arvoja väliltä [0,1], käsitetään and-operaattori min-operaattoriksi ja or-operaattori max-operaattoriksi. Päättelemällä tähän tilanteeseen sopiva ohjaustoimenpide ja määrittelemällä se ko. säännön johtopäätökseksi, saadaan koko säätöstrategia rakennettua pala palalta käymällä kaikki mahdolliset tilanteet läpi. Päättely tuottaa tyypillisesti yhden sumean joukon. Ennen kuin sitä voidaan käyttää, sumea joukko täytyy muuttaa täsmälliseksi sumean säätäjän ulostuloksi. Tätä vaihetta kutsutaan selkeytykseksi. Kuvassa 9 esitetään sumean säädön osat. Sumea säätäjä sisältää seuraavat peruskomponentit: sumeutusrajapinta, sääntökanta, sumea päättely ja selkeytysrajapinta. Sumeutusrajapinnalla täsmälliset prosessista saadut mittausarvot muutetaan sumeiden joukkojen jäsenyysfunktioiden arvoiksi. Sääntökannan ja sumeiden mittaustietojen avulla päätellään tarvittavat sumeat ohjaukset. Sumeat ohjaukset muutetaan täsmällisiksi selkeytys- rajapinnalla. Sääntökanta Sumea Sumeutus Selkeytys päättely Täsmällinen Sumea Sumea Täsmällinen mittaus mittaus ohjaus ohjaus Kuva 9. Sumean säädön periaatekaavio. 12
  • 13. 4.2.1. Sumeutus Säätösovelluksissa mitattu tieto on usein täsmällistä. Koska sumeassa säädössä ohjaus muodostetaan sumeiden päättelysääntöjen avulla, täytyy täsmällinen mittaus sumeuttaa. Sumeutus voidaan toteuttaa laskemalla mittauksen kaikkien sumeiden joukkojen jäsenyysfunktioiden arvot kyseisellä mittauksen arvolla. 4.2.2. Sääntökanta Sumean säätäjän sääntökanta koostuu kokoelmasta jos—niin sääntöjä, joiden perusteella sumeasta mittauksesta päätellään sumea ohjaus. Säännöt ovat tyypillisesti muotoa: ”jos mittauksen tietty ehto toteutuu, niin ohjauksen täytyy toteuttaa tietty ehto”. Nämä lingvistiset säännöt määrittelevät käytettävän säätöstrategian. Sääntökanta voidaan muodostaa usealla eri tavalla. Parhaiten sääntökanta saadaan teollisuusprosesseista huolellisesti suunniteltujen kokeiden ja mittausten avulla tai prosessimallia analysoimalla. Sääntöjen lukumäärä on suoraan verrannollinen säätäjän ohjelmointiin ja virittämiseen tarvittavaan työmäärään. Usein hyvin pienellä sääntökannalla, esimerkiksi jo parilla säännöllä, voidaan saavuttaa sama lopputulos kuin useita kymmeniä sääntöjä sisältävällä sääntökannalla. 4.2.3. Sumea päättely Sumeassa päättelyssä sumean mittauksen ja sääntökannan avulla päätellään tarvittava ohjaus käyttäen sumeita loogisia operaatioita kuten and, or ja not sekä sumeaa implikaatiota. 4.2.4. Selkeytys Sumean päättelyn tuloksena on sumea ohjaus. Koska tyypillisesti prosessin ohjauksen täytyy olla täsmällinen, täytyy sumea ohjaus muuttaa täsmälliseksi ohjaukseksi. Yleisesti käytetyin selkeytysmenetelmä on painopistemenetelmä (center of gravity), joka antaa ohjaukseksi jäsenyysasteiden painopisteen. 4.3. Pikaopas Matlabin Fuzzy-työkaluun Matlabissa sumean säädön suunnittelutyökalu käynnistetään komennolla fuzzy. Tämä avaa kuvassa 10 esitetyn ikkunan. Vasemmalla ylhäällä oleva laatikko (input1) kuvaa sisään menevien mittauksien jäsenyysfunktioita, keskimmäinen laatikko sisältää sumean säädön sääntökannan ja oikeanpuoleinen laatikko ulostulon jäsenyysfunktiot. Vasemmalla alanurkassa valitaan selkeyttämistapa, joka oletuksena on keskipisteen laskenta (centroid). Sumean logiikan sisäänmenoja ja ulostuloja lisätään ikkunan valikosta Edit -> Add variable -> Input/Output. Tässä vaiheessa on hyvä antaa jokaiselle muuttujalle nimi, jonka voi asettaa ikkunan oikealla puolella (Current Variable -> Name). Tuplaklikkaamalla sisäänmeno- tai ulostulokuvaketta avautuu kuvan 11 mukainen ikkuna, jossa voidaan määrittää halutut jäsenyysfunktiot muuttujalle. Avautuvassa ikkunassa oikealla voidaan määrittää jäsenyysfunktioiden nimet sekä käyrien halutut muodot. Vasemmalla alhaalla määritetään haluttu vaikutusalue. Edit-valikon alta voidaan lisätä ja poistaa jäsenyysfunktioita. Params-kohdassa voidaan määrittää jäsenyysfunktion parametrejä. Esimerkiksi Gaussisen jäsenyysfunktion (gaussmf) tapauksessa parametrit ovat hajonta (verrannollinen jäsenyysfunktion leveyteen) ja keskiarvo (jäsenyysfunktion keskipiste). Tästä ikkunasta voidaan määrittää jokaisen sisäänmeno- ja ulostulomuuttujan jäsenyysfunktiot. 13
  • 14. Kuva 10. Fuzzy-työkalu. Kuva 11. Jäsenyysfunktioiden määrittely. Kun jäsenyysfunktiot on määritelty, siirrytään sääntökannan määrittelyyn. Sääntökanta avautuu tuplaklikkaamalla ensimmäisessä ikkunassa keskimmäistä laatikkoa, minkä jälkeen avautuu kuvan 12 mukainen ikkuna. Sääntökanta määritetään muodostamalla jos – niin -tyyppisiä sääntöjä. Esimerkiksi: ”jos lämpötila on suuri niin lämmitysteho on pieni”. Tässä lämpötila on sisäänmenomuuttuja ja lämmitysteho ulostulomuuttuja eli ohjaussuure. Sisäänmenon eräs jäsenyysfunktio on nimeltään suuri, joka on siis edellä määritelty lämpötila-alueen yläpäähän. Ulostulon eräs jäsenyysfunktio on nimeltään pieni, joka vastaa ohjausalueen pienimpiä arvoja. Säännön takana oleva logiikka: jos on jo lämmintä, vähennetään lämmitystehoa, jotta olisi hieman viileämpää. Kun koko sääntökanta on määritelty, voidaan ensimmäisessä ikkunassa tarkastella säädön käyttäytymistä eri sisäänmenojen arvoilla menemällä valikkoon View -> Rules. Toiminnolla voi tarkastella sumean logiikan ulostulon arvoja eri sisäänmenon signaalien arvoilla. Säädin on hyvä tässä vaiheessa tallentaa (myös aikaisemmin) tai viedä työtilaan valikosta File -> Export -> To Workspace/To Disk. Tämän jälkeen sumean logiikan lohkoa voidaan käyttää esimerkiksi Simulinkissä säätimenä. Simulinkin kirjastoista löytyy Fuzzy Logic Toolboxin alta Fuzzy Logic Controller -lohko. Lohkon voi siirtää tavalliseen Simulink-malliin. Tuplaklikkaamalla lohkoa voidaan määritellä säätimen nimi, joka on työtilassa, ja säädin on valmis käytettäväksi. Kuva 12. Sääntökannan määrittely. 14
  • 15. 4.4. Esimerkki sumeasta säädöstä Pesukoneen pesuaineen määrää annostellaan sumean logiikan avulla. Sisääntulosuureina ovat pyykin määrä ja likaisuus, jotka mitataan automaattisesti. Pyykin määrää kuvaa muuttuja ”Täyttöaste”, joka mitataan kiloina välillä 0 – 5 kg. Pyykin määrää kuvaavat joukot [Tyhjä, Normaali, Täysi], joiden jäsenyysfunktiot on nähtävissä kuvassa 13. Pyykin likaisuus mitataan anturilla, joka antaa arvoja väliltä 0 - 100 % (0 % vastaa puhdasta, 100 % likaista pyykkiä). Likaisuusastetta kuvaavat joukot [Puhdas, Likainen, Törky]. Likaisuus-muuttujan jäsenyysfunktiot esitetään kuvassa 14. Pesuaineen määrä annostellaan välillä 0 – 40 g taulukossa 1 esitettävän sääntökannan perusteella. Ohjauslogiikan säännöt on annettu muodossa: Jos Täyttöaste ja Likaisuus niin Annostelu. Annostelun jäsenyysfunktiot on nähtävissä kuvassa 15. Oletetaan, että pesukoneen Täyttöaste on 4 kg ja Likaisuus 80 %. Tällöin Täyttöaste 4 kg antaa seuraavat jäsenyysfunktioiden arvot: Tyhjä = 0, Normaali = 0.65, Täysi = 0.35. Likaisuus 80 % vastaa jäsenyysfunktioiden arvoja: Puhdas = 0, Likainen 0.4, Törky = 0.6. Taulukossa 2 esitetään sääntökannan arvot näillä jäsenyysfunktioiden arvoilla. Taulukko 1. Pesukone-esimerkin sääntökanta. Täyttöaste Tyhjä Normaali Täysi Ei Ei Ei Puhdas ollenkaan ollenkaan ollenkaan Likaisuus Likainen Vähän Vähän Paljon Törky Paljon Paljon Paljon Kuva 13. Pyykin määrään liittyvät jäsenyysfunktiot (Täyttöaste). Kuva 14. Pyykin likaisuuteen liittyvät jäsenyysfunktiot Kuva 15. Pesuaineen annostelun jäsenyysfunktiot (Likaisuus). (Annostelu). 15
  • 16. Taulukko 2. Sääntökannan arvot. Täyttöaste Tyhjä Normaali Täysi Ei Ei Ei Puhdas ollenkaan=0.0 ollenkaan=0.0 ollenkaan=0.0 Likaisuus: Likainen Vähän=0.0 Vähän=0.4 Paljon=0.35 Törky Paljon=0.0 Paljon=0.6 Paljon=0.35 Taulukon 2 arvot saadaan sääntökannan sääntöjen perusteella. Koska säännöt on annettu ja – niin- muodossa, saadaan tulos ottamalla kahdesta sisäänmenon jäsenyysfunktion arvosta minimi (ja vastaa min-operaatiota). Esimerkiksi: jos Täyttöasteen jäsenyys joukkoon Normaali on 0.65 ja Likaisuuden jäsenyys joukkoon Likainen on 0.4, niin Annostelu on 0.4 (minimi jäsenyysfunktioiden arvoista). Edelleen ulostulon (Annostelu) jäsenyysfunktioiden arvot saadaan ottamalla maksimiarvot kunkin ulostulomuuttujan arvosta sääntökannassa. Taulukon 2 mukaan sumeiksi ohjauksen arvoiksi saadaan: Ei ollenkaan = 0.0, Vähän = 0.4, Paljon = 0.6. Näiden ohjausten selkeytys tehdään tässä painopistemenetelmällä. Sumean ohjauksen painopiste lasketaan ∑x A i i x= i , (4.1) ∑A i i missä x i ovat ohjauksen sumeat arvot ja A i jäsenyysfunktion pinta-ala (ks. kuva 16). Painopiste- menetelmällä selkeytettynä ohjauksen arvoksi saadaan 23.6 g. Kuvassa 16 esitetään graafisesti ohjauksen määräytyminen mittausten ja jäsenyysfunktioiden sekä sääntökannan perustella. Sumean ohjauksen arvo näkyy oikeassa alakulmassa. Kuva 16. Sumeutuksen graafinen esitys. 5. Kalman-suodatin Käytännön säätöjärjestelmissä mittauksissa ja prosesseissa on häiriöitä, jotka tulee suodattaa ennen signaalien käyttämistä säädössä. Toisaalta on mahdollista, että joitain tarvittavia suureita ei voi mitata vaan ne pitää estimoida muiden mittausten perusteella. Kalman-suodatin on optimaalinen tilaestimaattori, jos järjestelmässä on tilastolliseksi tulkittavaa kohinaa ja häiriötä. Kalman- suodattimella voidaan muodostaa järjestelmän mallia hyödyntäen estimaatti tiloista, eli saada arvio järjestelmän tiloista siten, että signaaleista on poistettu häiriö mahdollisimman tehokkaasti. 16
  • 17. Oletetaan, että järjestelmä noudattaa lineaarista dynamiikkaa, joka on annettu tilamuodossa x( k + 1) = A ( k ) x ( k ) + B ( k )u ( k ) + w ( k ) , (5.1) missä x on järjestelmän tilavektori, u ohjaus ja sekä w prosessikohinaa. Hetkellä k järjestelmän todellisista tiloista tehdään havainto (mittaus) z(k) z ( k ) = C( k ) x ( k ) + v ( k ) , (5.2) missä C on havaintomatriisi ja v mittauskohinaa. Häiriöt w ja v oletetaan normaalijakautuneiksi, nollakeskiarvoisiksi ja niiden kovarianssifunktiot tunnetuiksi { E w (k )w T (k ) = Q(k )} . (5.3) E {v (k ) v T ( k )} = R ( k ) Kalman-suodatin ratkaisee estimointiongelman, jossa järjestelmän tiloista on muodostettu ˆ minimivarianssiestimaatti x( k | k ) siten, että se voidaan laskea rekursiivisesti, kun tunnetaan edellinen estimaatti x ( k − 1 | k − 1) ja uusi mittauspari u(k), y(k). ˆ 5.1. Perusmuoto Kalman-suodattimen perusmuoto on x(k | k ) = x(k | k − 1) + K (k ) [ z (k ) − C(k )x(k | k − 1) ] , ˆ ˆ ˆ (5.4) ˆ missä x( k | k ) tarkoittaa hetkellä k laskettavaa estimaattia, kun kaikki mittaustieto hetkeen k asti on käytettävissä. Vastaavasti x ( k | k − 1) tarkoittaa estimaattia hetkellä k, kun mittaustietoa on hetkeen ˆ k – 1 asti käytettävissä. Yllä olevasta yhtälöstä havaitaan, että estimaatti koostuu kahdesta osasta: ennakoivasta (prediktointi) osasta x( k | k − 1) ˆ ja korjaavasta (päivitys) osasta K (k ) [ z (k ) − C(k )x(k | k − 1)] , joka on saatu kertomalla suodattimen vahvistusmatriisi K viimeisen ˆ mittauksen estimointivirheellä. Kalman-suodatin sisältää yhtälöt ennakoivan osan muodostamiseksi ja vahvistusmatriisin laskemiseksi, jotka kummatkin saadaan täydelliseen rekursiiviseen muotoon siten, että laskenta voidaan suorittaa k:n kasvaessa askel kerrallaan. 5.2. Kalman-suodattimen perusyhtälöt Seuraavassa on annettu Kalman-suodattimen perusyhtälöt rekursiivisessa muodossa siten, että yhtälöiden perusteella suodatin on mahdollista toteuttaa esimerkiksi tietokoneohjelmana. Prediktointi: x ( k | k − 1) = A ( k ) x( k − 1| k − 1) + B ( k )u ( k ) , tilan prediktointi ˆ ˆ (5.5) P (k | k − 1) = A ( k )P (k − 1| k − 1) A ( k )T + Q( k ) , tilan estimointivirheen kovarianssin prediktointi (5.6) 17
  • 18. Päivitys: y ( k ) = z ( k ) − C( k ) x ( k | k − 1) , mittausvirhe ˆ (5.7) S(k ) = C(k )P (k | k − 1)C( k )T + R ( k ) , mittausvirheen kovarianssi (5.8) K (k ) = P (k | k − 1)C(k )T S(k ) −1 , optimaalinen Kalman-vahvistus (5.9) x ( k | k ) = x ( k | k − 1) + K ( k ) y ( k ) , tilaestimaatin päivitys ˆ ˆ (5.10) P(k | k ) = ( I − K (k )C(k ) ) P(k | k − 1) , tilan estimointivirheen kovarianssimatriisin päivitys. (5.11) Usein A, B ja C, Q ja R ovat vakioita ajan suhteen, jolloin estimointivirheen kovarianssi P voidaan laskea Riccatin yhtälöllä ( P = A P − PCT ⎡CPCT + R ⎤ CP AT + Q . ⎣ ⎦ −1 ) (5.12) Kalman-suodattimen teoriassa tunnetuiksi oletetut häiriöiden kovarianssimatriisit R ja Q eivät yleensä ole käytännössä tunnettuja. Käytännössä suodatin viritetään valitsemalla R ja Q sekä asettamalla suhde Q/R siten, että vahvistus tulee sopivaksi. Usein sopiva suhteen arvo valitaan silmämääräisesti tuloksia tarkastelemalla. Erityisesti mittauskohinan varianssin voi yrittää arvioida prosessikokeiden perusteella, jolloin R:lle voidaan joissain tapauksissa johtaa arvo. Q mittaa prosessihäiriöiden tai epätarkkuuksien suuruutta, ja näitä on vaikeampi arvioida ennalta. 5.3. Laajennettu Kalman-suodatin Monesti sekä prosessimalli että havaintomalli voivat olla epälineaarisia ⎪x(k + 1) = f ( x(k ), u(k ), k ) + w (k ) ⎧ ⎨ . (5.13) ⎪ ⎩ z (k ) = h ( x(k ), k ) + v(k ) Funktiot f ja h eivät välttämättä ole lineaarisia, ja saattavat riippua x:n ja u:n lisäksi k:sta (aikavarianttisuus). Yleisessä tapauksessa kovarianssit saattavat muuttua ajan funktiona, ja siksi kovarianssimatriisit esitetään k:n funktioina. Prosessin tila x, heräte u, mittaus z, funktiot f ja h, sekä kohinatermit w ja v ovat kaikki yleisessä tapauksessa vektoreita. Kalman-suodattimen yhtälöissä esiintyvien matriisien K ja P laskemiseksi tarvitaan matriiseja A ja C. Mikäli malli on epälineaarinen, nämä matriisit korvataan funktioiden f ja h jakobiaaneilla. A- ja C-matriisi muodostetaan tällöin funktioiden f ja h osittaisderivaatoista. A-matriisi saadaan ottamalla f:n osittaisderivaatat kunkin tilamuuttujan suhteen ja C-matriisi vastaavasti funktiosta h. Esimerkiksi: ⎡ ∂ f1 ∂ f1 ⎤ ⎢ ∂x ∂x2 ⎥ ⎡ ⎥ , C = ⎢ ∂h ∂h ⎤ A = ⎢ 1 ⎥. (5.14) ⎢ ∂f2 ∂f2 ⎥ ⎣ ∂ x1 ∂x2 ⎦ ⎢ ⎥ ⎣ ∂ x1 ∂x2 ⎦ Koska f ei ole lineaarinen, tulee matriiseihin termejä, jotka sisältävät tilamuuttujia ja herätteitä. Tämän vuoksi A- ja C-matriisit lasketaan jokaisella kierroksella uudelleen. Matriisia A laskettaessa 18
  • 19. tilavektorina x käytetään edellisen kierroksen estimaattia x ( k − 1| k − 1) , kun taas C-matriisia ˆ laskettaessa käytetään kuluvan kierroksen estimaattia x( k | k − 1) . ˆ Seuraavassa on annettu laajennetun Kalman-suodattimen yhtälöt. Prediktointi: x(k | k − 1) = f ( x(k − 1| k − 1), u(k ), k − 1) , tilan prediktointi ˆ ˆ (5.15) ⎡ ∂f ( x(k − 1| k − 1), u(k ), k − 1) ⎤ ˆ A(k ) = ⎢ ⎥ , A:n korvaava derivaatta (5.16) ⎣ ∂x(k − 1| k − 1) ˆ ⎦ P (k | k − 1) = A ( k )P (k − 1| k − 1) A ( k )T + Q( k ) , tilan estimointivirheen kovarianssin prediktointi(5.17) Päivitys: ⎡ ∂h ( x(k | k − 1), k ) ⎤ ˆ C(k ) = ⎢ ⎥ , C:n korvaava derivaatta (5.18) ⎣ ∂x(k | k − 1) ⎦ ˆ y (k ) = z (k ) − h ( x(k | k − 1) ) , mittausvirhe ˆ (5.19) S(k ) = C(k )P (k | k − 1)C( k )T + R ( k ) , mittausvirheen kovarianssi (5.20) K (k ) = P (k | k − 1)C(k )T S(k ) −1 , optimaalinen Kalman-vahvistus (5.21) x ( k | k ) = x ( k | k − 1) + K ( k ) y ( k ) , tilaestimaatin päivitys ˆ ˆ (5.22) P(k | k ) = ( I − K (k )C(k ) ) P(k | k − 1) , tilan estimointivirheen kovarianssimatriisin päivitys. (5.23) 19