Realtids MPC - MPC för snabba och kritiska system
Projektledare: Daniel Axehill, Reglerteknik, ISY
1. Bakgrund och industriell relevans
Modellprediktiv reglering (MPC) är en få moderna avancerade
reglermetoder som har fått ett genomslag i industrin. Metoden
utvecklades under sjuttiotalet inom petroliumindustrin. Från att till
en början ha varit en intuitivt tilltalande metod som på ett
strukturerat sätt kunde lösa avancerade reglertekniska problem på ett
för användaren relativt enkelt sätt, har MPC nu utvecklats till en
metod som vilar på ett stabilt teoretiskt ramverk innefattande
fundamentala egenskaper som stabilitet och robusthet.
Precis som namnet antyder bygger MPC på att en matematisk modell
används för att prediktera ett systems beteende i framtiden. Systemets
beteende kan påverkas genom en eller flera insignaler och prediktionen
av det framtida beteendet gör det möjligt att välja det "bästa
beteendet" hos system, där det "bästa beteendet" exempelvis kan
innebära att få systemet att utföra en uppgift på det snabbaste eller
mest energieffektiva sättet. Mer konkret sker valet av det bästa
beteendet genom att upprepat lösa optimeringsproblem i realtid. Denna
formulering gör det inte bara möjligt att minimera relevanta kriterier
såsom tid och energi, utan ger också möjlighet att göra det under
förutsättning att vissa bivillkor hos styrsignaler och variabler i
systemet är uppfyllda. Det blir möjligt att formulera och lösa problem
som "värm upp inomhusluften i en byggnad med hjälp av en värmepump på
det mest energieffektiva sättet givet att temperaturen ligger i ett
komfortband mellan 19-21°C, samtidigt som varmvattentemperaturen
aldrig får understiga 50°C". Ett
snarlikt
problem har nyligen framgångsrikt studerats av en av
projektledarens examensarbetare på Bosch Thermoteknik AB (f.d. IVT) i
Tranås. Priset användaren får betala för att kunna använda detta
kraftfulla ramverk är att ett nytt optimeringsproblem måste lösas i
varje tidssteg. Längden på ett tidssteg är beroende på process och kan
löst formulerat innebära att allt från 10000 optimeringsproblem i
sekunden till 1 optimeringsproblem i månaden måste lösas. I takt med
att allt fler har insett fördelarna med MPC har ett behov uppstått att
kunna applicera metoden på allt snabbare processer vilket innebär att
man snabbt börjar närma sig gränsen för vad som är beräkningsmässigt
görbart idag, även för mycket enkla problem. Man börjar också närma
sig applikationer där konsekvenserna kan bli fatala om man inte lyckas
lösa optimeringsproblemet inom den föreskrivna tiden. Exempel på
sådana krävande applikationer är t.ex. reglering av kraftelektronik,
motorstyrning och obemannade farkoster. Tillförlitlighetsaspekten
finns även hos långsammare processer som reglering av insulinpumpar
och narkosutrustning.
MPC-ramverket kan användas för system av olika typer och
komplexitetsnivåer. Praktiskt sett blir skillnaden vilket
optimeringsproblem som måste lösas on-line i varje tidssteg. I det
föreslagna projektet är tanken att linjära system ska
betraktas. Optimeringsproblemen som då måste lösas blir av typen
linjärprogrammering (LP) eller kvadratisk programmering (QP).
Idag har flera olika angreppssätt använts för att minska
beräkningsbördan on-line för MPC och/eller för att göra beteendet
on-line förutsägbart. De mest kända och använda är:
- Utnyttjande av struktur: Stora beräkningsmässiga vinster kan göras
genom att utnyttja den speciella struktur som optimeringsproblem
från MPC får. Detta har framgångsrikt utnyttjats i många olika av
lösare för MPC och har varit en viktig ingrediens i projektledarens
forskning hittills.
- Parametrisk optimering: För små MPC-problem kan
(principiellt sett) alla optimeringsproblem av intresse lösas
off-line, vilket eliminerar behovet av att upprepat lösa
optimeringsproblem on-line. Detta kallas för ''explicit
MPC''. Dessvärre är denna metod enbart möjlig för små problem, men
när den är möjlig, erbjuder den både mycket korta beräkningtider
såväl som hög tillförlitlighet och förutsägbarhet.
- Suboptimala lösningar är tillräckligt: Ett viktigt resultat för
realtids-MPC är att den optimala lösningen inte behöver beräknas för
att kunna garantera stabilitet hos det slutna systemet och att
bivillkoren är uppfyllda i framtiden (''recursive
feasibility''). Däremot krävs att lösningen som används är tillåten,
vilket i sig inte alltid är enkelt att åstadkomma i mer praktiska
uppställningar. Genom att använda dessa resultat kan
beräkningsbördan minskas on-line med bibehållna stabilitetsgarantier
om man är beredd att offra prestanda (t.ex. referensföljning) hos
det slutna systemet. Dock följer fortfarande i princip inga
realtidsgarantier, även om det förekommer förslag på varianter som i
vissa fall kan ge realtidsgarantier baserat på dessa resultat.
- Kodgenerering: Ett relativt nytt spår för att vinna prestanda
såväl som tillförlitlighet är att använda kodgenerering. Detta
innebär att högspecialicerad källkod genereras automatiskt för det
specifika problemet som ska lösas. Den genererade koden kan sedan
kompileras för den tänkta plattformen. Detta tillvägagångssätt kan
ge en stor prestandavinst, men också mer tillförlitlig kod eftersom
den är så gott som specialskriven (automatiskt) för problemet som
ska lösas. Detta tillvägagångssätt ger ofta bra prestanda i
praktiken, men den är inte formellt garanterad.
Förutom dessa mer kända angreppssätt har ytterligare ett spännande
angreppssätt använts.
- Använda optimeringsmetoder där lösningens kvalitet kan garanteras
a priori: Genom att använda en optimeringsmetod där det är möjligt
att beräkna en undre gräns på framsteget (descent) i varje
iteration kan man ge garantier på graden av optimaliteten när
lösaren termineras. Två typer av lösare där sådana garantier kan
ges, i princip, är Interior-Point (IP) metoder och Fast Gradient
(FG) metoder. Praktiskt sett är dock garantierna för IP-metoder
oanvändbara eftersom de är för konservativa. Garantierna för FG
metoder är däremot användbara i praktiken, men enbart i enkla
specialfall.
Avslutningsvis kan man säga att olika varianter av MPC skulle
troligtvis idag kunna ersätta de flesta andra typer av reglermetoder,
om det inte hade varit för att beräkningskomplexiteten snabbt blir för
hög för den hårdvara som typiskt finns tillgänglig i de relevanta
tillämpningarna och att det fortfarande finns frågetecken kring MPCs
tillförlitlighet i praktiken. Den här forskningen strävar efter att
minska dessa båda brister som finns hos MPC idag. Målet med
forskningen är att utveckla, och vidareutveckla, optimeringsalgoritmer
som inte bara är snabbare än dagens algoritmer, utan också har ett
beteende som i större utsträckning än idag är möjligt att analysera
innan systemet tas i drift.
2. Projektbeskrivning
Befintliga metoder som används för
optimering inom MPC härstammar så gott som uteslutande från klassisk
numerisk optimering. Detta är ett naturligt angreppssätt, men det har
en viktig nackdel: metoderna är inte från grunden byggda för att vara
en del av ett inbyggt system med de krav på prestanda och
tillförlitlighet som ställs där. Istället är de ofta utvecklade för
ett scenario i stil med att en användare tillbringar en arbetsdag för
att formulera ett optimeringsproblem och sedan skickar detta till
optimeringsrutinen som inom några minuter, eller timmar, returnerar
ett resultat tillsammans med en flagga som beskriver om allt gick som
det ska. Detta är något helt annat än när en maskin formulerar 1
miljon optimeringsproblem i sekunden och kräver ett tillräckligt bra
resultat från lika många problem på samma tid. Detta krav på
realtidsprestanda ställer andra krav på algoritmerna, samtidigt som
egenskapen att snarlika optimeringsproblem löses hela tiden erbjuder
en möjlighet till bättre prestanda. I det här projektet vill vi
försöka sluta se optimeringen som en separat del av
regleringen. Optimeringen är regulatorn. De optimeringsalgoritmer som
idag standardmässigt används för MPC är inte byggda för att fungera
som regulatorer, utan snarare för att lösa t.ex. ekonomiska eller
ingenjörsmässiga problem på en kontorsdator övervakade av en ekonom
eller ingenjör. D.v.s., extrem prestanda eller möjligheter att a
priori analysera dessa algoritmers beteende då de upprepat löser
snarlika problem har egentligen aldrig varit av intresse för de som
utvecklade dessa algoritmer. Detta är en lucka i MPC-forskningen som
det här projektet ämnar att täppa till.
3. Spridning av metoder och algoritmer
Det är projektledarens
avsikt att tillgängliggöra resultaten av forskningen genom att
tillhandahålla högpresterande implementationer av de resulterande
algoritmerna. Både industri och akademi har visat ett stort intresse
för implementationer av de algoritmer som projektledaren redan har
utvecklat i dagsläget. Att tillhandahålla användbara implementationer
av dessa, och kommande, resultat ses som en viktig effekt av
forskningsmedel från CENIIT för denna forskning.
4. Forskningsmiljö och vision
Forskningen utförs
vid Avdelningen för
Reglerteknik på ISY i en del av gruppen som arbetar med optimering
för tillämpningar inom reglerteknik och signalbehandling. Denna del av
reglerteknikgruppen består av både seniora forskare såväl som
doktorander och sysselsätter för närvarande ca 10 personer. Resultat
från tidigare forskning i gruppen omfattar såväl högpresterande
optimeringsalgoritmer som är skräddarsydda för reglerproblem som MPC,
såväl som det internationellt välkända
optimeringsverktyget YALMIP.
Ett av projektledarens tidigare huvudresultat är en skräddarsydd
QP-algoritm som står sig mycket bra i den internationella
konkurrensen, både jämfört med akademiska alternativ såväl som
kommersiella alternativ. De fyra huvudsakliga målen för de närmaste
åren inom detta område sammanfattas som följande fyra punkter:
- Vidareutveckla befintliga algoritmerna från vår forskning för
att ytterligare öka effektiviteten och användbarheten för
applikationen MPC.
- Utveckla en högpresterande implementation baserat på dessa
resultat med målet att sprida dessa både till akademi och industri.
- Applicera denna implementation på praktiska problem för att
verifiera dess prestanda i praktiken samt lära sig vilka problem som
kvarstår att lösa.
- Börja undersöka möjligheterna att bygga optimeringsalgoritmer
som kan analyseras med avseende på garanterad prestanda i en
realtidsmiljö.
Projektledarens vision för det här projektet på längre sikt är att
leda en grupp bestående av två till tre personer som besitter
kompetens för att kunna kalla sig ledande inom QP-optimering för
realtids-MPC. Utanför det här specifika projektet är målet för
projektledarens kommande forskning att bredda sig mot applikationer
som relaterar till energioptimering av olika system. Områden där vi
tror att energieffektiva system baserat på reglering och optimering
kan vara av speciellt intresse är uppvärmning och ventilation av
byggnader, transportsystem, energiproduktion och industriell
produktion. För att få den nödvändiga bredden och kunskapen för dessa
applikationer planeras samarbeten med industri såväl som andra
forskningsgrupper. Tanken är att de högpresterande
realtidsoptimeringsalgoritmerna som är målet med det här
forskningsprojektet ska utgöra ryggraden för de mer applicerade
projekten och därmed utgöra grunden i uppbyggnaden av en grupp med
fokus mot forskning inom realtidsoptimering och energieffektiva
system.
Relaterade projekt
Projektledaren har 2011 fått ett
projektbidrag för unga forskare från VR för ett projekt som syftar
till att använda parallella beräkningar för MPC applicerat på hybrida
system (snarare än linjära system). Det finns goda möjligheter för
samordningsvinster mellan VR-projektet och CENIIT-projektet. Mer
specifikt kan idéer rörande parallella beräkningar återanvändas i
CENIIT-projektet, och en bra implementation av en effektiv QP-algoritm
för MPC skulle vara mycket användbart i VR-projektet.
Publikationer
Var vänlig se
projektledarens publikationslista.