Modell prediktiv kontroll - Model predictive control

Modellprediktiv kontroll ( MPC ) är en avancerad metod för processkontroll som används för att styra en process samtidigt som den uppfyller en uppsättning begränsningar. Det har använts i processindustrin i kemiska anläggningar och oljeraffinaderier sedan 1980 -talet. Under de senaste åren har det också använts i kraftsystemet balanserings modeller och kraftelektronik . Modelförutsägbara styrenheter förlitar sig på dynamiska modeller av processen, oftast linjära empiriska modeller erhållna genom systemidentifiering . Den största fördelen med MPC är det faktum att den gör att den aktuella tidsluckan kan optimeras, samtidigt som framtida tidsluckor beaktas. Detta uppnås genom att optimera en begränsad tidshorisont, men bara genomföra den aktuella tidsluckan och sedan optimera igen, upprepade gånger, vilket skiljer sig från Linear-Quadratic Regulator ( LQR ). MPC har också förmågan att förutse framtida händelser och kan vidta kontrollåtgärder i enlighet därmed. PID -kontroller har inte denna förutsägbara förmåga. MPC är nästan universellt implementerat som en digital kontroll, även om det forskas om att uppnå snabbare svarstider med specialdesignade analoga kretsar.

Generaliserad prediktiv kontroll (GPC) och dynamisk matrisstyrning (DMC) är klassiska exempel på MPC.

Översikt

De modeller som används i MPC är generellt avsedda att representera beteendet hos komplexa dynamiska system . Den komplicerade komplexiteten hos MPC -styralgoritmen behövs i allmänhet inte för att tillhandahålla adekvat kontroll av enkla system, som ofta styrs väl av generiska PID -styrenheter . Vanliga dynamiska egenskaper som är svåra för PID-styrenheter inkluderar stora tidsfördröjningar och hög ordningsdynamik.

MPC -modeller förutsäger förändringen i de beroende variablerna i det modellerade systemet som kommer att orsakas av förändringar i de oberoende variablerna . I en kemisk process är oberoende variabler som kan justeras av regulatorn ofta antingen börvärdena för regulatoriska PID -regulatorer (tryck, flöde, temperatur etc.) eller det slutliga kontrollelementet (ventiler, spjäll, etc.). Oberoende variabler som inte kan justeras av regulatorn används som störningar. Beroende variabler i dessa processer är andra mätningar som antingen representerar kontrollmål eller processbegränsningar.

MPC använder de aktuella anläggningsmätningarna, processens nuvarande dynamiska tillstånd, MPC -modellerna, och processvariabelns mål och gränser för att beräkna framtida förändringar i de beroende variablerna. Dessa förändringar beräknas för att hålla de beroende variablerna nära målet samtidigt som begränsningarna för både oberoende och beroende variabler respekteras. MPC skickar vanligtvis bara ut den första ändringen i varje oberoende variabel som ska implementeras och upprepar beräkningen när nästa ändring krävs.

Även om många verkliga processer inte är linjära, kan de ofta anses vara ungefär linjära över ett litet arbetsintervall. Linjära MPC -tillvägagångssätt används i de flesta applikationer med MPC: s återkopplingsmekanism som kompenserar för förutsägelsefel på grund av strukturell felanpassning mellan modellen och processen. I modellprediktiva styrenheter som endast består av linjära modeller möjliggör superpositionsprincipen för linjär algebra att effekten av förändringar i flera oberoende variabler kan läggas ihop för att förutsäga svaret hos de beroende variablerna. Detta förenklar kontrollproblemet till en serie direktmatrisalgebraberäkningar som är snabba och robusta.

När linjära modeller inte är tillräckligt noggranna för att representera de verkliga processlinjäriteterna kan flera metoder användas. I vissa fall kan processvariablerna transformeras före och/eller efter den linjära MPC -modellen för att minska olineariteten. Processen kan styras med olinjär MPC som använder en olinjär modell direkt i kontrollprogrammet. Den olinjära modellen kan vara i form av en empirisk datapassning (t.ex. artificiella neurala nätverk) eller en dynamisk modell med hög trovärdighet baserad på grundläggande massa- och energibalanser. Den olinjära modellen kan vara lineariserad för att härleda ett Kalman -filter eller specificera en modell för linjär MPC.

En algoritmisk studie av El-Gherwi, Budman och El Kamel visar att ett dual-mode-tillvägagångssätt kan ge en betydande minskning av onlineberäkningar samtidigt som jämförande prestanda bibehålls med en oförändrad implementering. Den föreslagna algoritmen löser N konvexa optimeringsproblem parallellt baserat på informationsutbyte mellan kontroller.

Teori bakom MPC

Ett diskret MPC -schema.

MPC är baserat på iterativ, begränsad horisontoptimering av en anläggningsmodell. Vid tidpunkten samplas det aktuella anläggningstillståndet och en kostnadsminimerande kontrollstrategi beräknas (via en numerisk minimeringsalgoritm) för en relativt kort tidshorisont i framtiden : . Specifikt används en online- eller on-the-fly-beräkning för att utforska tillståndsbanor som utgår från det aktuella tillståndet och hitta (via lösningen av Euler – Lagrange-ekvationer ) en kostnadsminimerande kontrollstrategi tills dess . Endast det första steget i kontrollstrategin implementeras, sedan samplas anläggningstillståndet igen och beräkningarna upprepas med utgångspunkt från det nya nuvarande tillståndet, vilket ger en ny kontroll och en ny förutsagd tillståndsväg. Prognoshorisonten fortsätter att förskjutas framåt och därför kallas MPC också för avtagande horisontskontroll . Även om detta tillvägagångssätt inte är optimalt, har det i praktiken gett mycket bra resultat. Mycket akademisk forskning har gjorts för att hitta snabba metoder för att lösa Euler – Lagrange -ekvationer, för att förstå de globala stabilitetsegenskaperna för MPC: s lokala optimering och i allmänhet för att förbättra MPC -metoden.

Principer för MPC

Model Predictive Control (MPC) är en multivariabel kontrollalgoritm som använder:

  • en intern dynamisk modell av processen
  • en kostnadsfunktion J över den avtagande horisonten
  • en optimeringsalgoritm som minimerar kostnadsfunktionen J med hjälp av styringången u

Ett exempel på en kvadratisk kostnadsfunktion för optimering ges av:

utan att bryta mot begränsningar (låga/höga gränser) med

: Te styrd variabel (t.ex. uppmätt temperatur)
: Te referensvariabel (t.ex. önskad temperatur)
: E manipulerad variabel (t.ex. styrventil)
: viktningskoefficient som återspeglar den relativa betydelsen av
: viktningskoefficient som straffar relativa stora förändringar i

etc.

Olinjärt MPC

Nonlinear Model Predictive Control, eller NMPC, är en variant av modellprediktiv kontroll (MPC) som kännetecknas av användning av olinjära systemmodeller i förutsägelsen. Som i linjär MPC kräver NMPC den iterativa lösningen av optimala kontrollproblem vid en begränsad förutsägelsehorisont. Även om dessa problem är konvexa i linjär MPC, är de i olinjära MPC inte nödvändigtvis konvexa längre. Detta innebär utmaningar för både NMPC -stabilitetsteori och numerisk lösning.

Den numeriska lösningen för NMPC: s optimala kontrollproblem är vanligtvis baserad på direktoptimala kontrollmetoder med hjälp av optimeringsscheman av Newton-typ, i en av varianterna: direkt enkel fotografering , direkt flera fotograferingsmetoder eller direkt samlokalisering . NMPC -algoritmer utnyttjar vanligtvis det faktum att konsekutiva optimala kontrollproblem liknar varandra. Detta gör det möjligt att effektivt initiera lösningsförfarandet av Newton-typ genom en lämplig förskjuten gissning från den tidigare beräknade optimala lösningen, vilket sparar stora mängder beräkningstid. Likheten hos efterföljande problem utnyttjas ännu mer av sökväg efter algoritmer (eller "realtids iterationer") som aldrig försöker iterera något optimeringsproblem till konvergens, utan istället bara ta några iterationer för att lösa det mest aktuella NMPC-problemet, innan vi fortsätter till nästa, som är lämpligt initialiserad; se t.ex.

Medan NMPC -applikationer tidigare tidigare mest har använts i process- och kemiindustrin med jämförelsevis långsamma samplingshastigheter, tillämpas NMPC alltmer, med framsteg i styrenhetens hårdvara och beräkningsalgoritmer, t.ex. förkonditionering , till applikationer med höga samplingshastigheter, t.ex. i bilindustrin, eller till och med när delstaterna distribueras i rymden ( Distribuerade parametersystem ). Som en applikation inom rymd, nyligen har NMPC använts för att spåra optimala terrängföljande/undvikande banor i realtid.

Explicit MPC

Explicit MPC (eMPC) möjliggör snabb utvärdering av kontrollagen för vissa system, i skarp kontrast till online -MPC. Explicit MPC är baserat på den parametriska programmeringstekniken , där lösningen på MPC-kontrollproblemet som formulerats som optimeringsproblem är förberäknad offline. Denna offline -lösning, det vill säga kontrollagen, är ofta i form av en bitvis affin funktion (PWA), därav lagrar eMPC -styrenheten koefficienterna för PWA för varje delmängd (kontrollregion) av tillståndsutrymmet, där PWA är konstant, liksom koefficienter för vissa parametriska representationer för alla regioner. Varje region visar sig geometriskt vara en konvex polytop för linjär MPC, vanligen parametriseras med koefficienter för dess ytor, vilket kräver kvantisering noggrannhet analys. Att erhålla den optimala kontrollåtgärden reduceras sedan till att först bestämma regionen som innehåller det aktuella tillståndet och sedan enbart en utvärdering av PWA med hjälp av PWA -koefficienterna lagrade för alla regioner. Om det totala antalet regioner är litet kräver implementeringen av eMPC inte betydande beräkningsresurser (jämfört med online -MPC) och är unikt lämpad för styrsystem med snabb dynamik. En allvarlig nackdel med eMPC är exponentiell tillväxt av det totala antalet kontrollregioner med avseende på några nyckelparametrar i det kontrollerade systemet, t.ex. antalet tillstånd, vilket ökar kraven på styrenhetens minne dramatiskt och gör det första steget i PWA -utvärdering, dvs. söker efter den aktuella kontrollregionen, beräknat dyrt.

Robust MPC

Robusta varianter av Model Predictive Control (MPC) kan redogöra för uppsatta begränsade störningar samtidigt som de säkerställer att statliga begränsningar uppfylls. Några av de viktigaste metoderna för robust MPC ges nedan.

  • Min-max MPC . I denna formulering utförs optimeringen med avseende på alla möjliga utvecklingar av störningen. Detta är den optimala lösningen för linjära robusta kontrollproblem, men det bär en hög beräkningskostnad. Grundidén bakom min/max MPC-tillvägagångssättet är att modifiera online "min" -optimeringen till ett "min-max" -problem, minimera värsta fallet med objektivfunktionen, maximerad över alla möjliga anläggningar från osäkerheten.
  • Begränsning Åtdragande MPC . Här förstoras tillståndsbegränsningarna med en given marginal så att en bana kan garanteras hittas under alla störningar.
  • Rör MPC . Detta använder en oberoende nominell modell av systemet och använder en återkopplingsstyrenhet för att säkerställa att det faktiska tillståndet konvergerar till det nominella tillståndet. Mängden separation som krävs från tillståndsbegränsningarna bestäms av den robusta positiva invarianta (RPI) uppsättningen, som är uppsättningen av alla möjliga tillståndsavvikelser som kan införas genom störning med återkopplingsstyrenheten.
  • Flerstegs MPC . Detta använder en scenario-trädformulering genom att approximera osäkerhetsutrymmet med en uppsättning prover och tillvägagångssättet är icke-konservativt eftersom det tar hänsyn till att mätinformationen är tillgänglig vid varje tidpunkt i förutsägelsen och besluten i varje steg kan vara olika och kan fungera som ett sätt att motverka effekterna av osäkerheter. Nackdelen med tillvägagångssättet är dock att problemets storlek växer exponentiellt med antalet osäkerheter och förutsägelsehorisonten.
  • Rörförstärkt flerstegs MPC . Detta tillvägagångssätt synergiserar flerstegs MPC och rörbaserad MPC. Det ger hög grad av frihet att välja den önskade avvägningen mellan optimalitet och enkelhet genom klassificering av osäkerheter och val av kontrolllagar i förutsägelserna.

Kommersiellt tillgänglig MPC -programvara

Kommersiella MPC -paket är tillgängliga och innehåller vanligtvis verktyg för modellidentifiering och analys, styrdesign och tuning, samt utvärdering av kontrollerprestanda.

En undersökning av kommersiellt tillgängliga paket har tillhandahållits av SJ Qin och TA Badgwell i Control Engineering Practice 11 (2003) 733–764.

Öppna källkodsexempel

Python -bibliotek med olika implementeringar hittar du här:

https://github.com/AtsushiSakai/PyAdvancedControl

def main():
    # Define x0 -a [1x4] array and then transpose it to be a [4x1]
    x0 = np.array([[0.0, 0.0, 0.0, 0.0]]).T  # [x,y,v theta]
    # Print x0. It's our initial state- [xPos, yPos, Velocity and Angle in radians w.r.t +yPos]
    # Customise this as an input to see how different initial trajectories converge to the optimised path
    #
    print(x0)
    x = x0

    # Define Input - [2x1] array
    # x0 - [accelerator, steering_wheel_rate]
    u = np.array([[0.0, 0.0]]).T  # [a,beta]
    plt.figure(num=None, figsize=(12, 12))

    mincost = 100000

    for i in range(1000):
        A, B, C = LinealizeCarModel(x, u, dt, lr)
        ustar, xstar, cost = CalcInput(A, B, C, x, u)

        u[0, 0] = GetListFromMatrix(ustar.value[0, :])[0]
        u[1, 0] = float(ustar[1, 0].value)

        x = A @ x + B @ u

        plt.subplot(3, 1, 1)
        plt.plot(target[0], target[1], "xb")
        plt.plot(x[0], x[1], ".r")
        plt.plot(GetListFromMatrix(xstar.value[0, :]), GetListFromMatrix(
            xstar.value[1, :]), "-b")
        plt.axis("equal")
        plt.xlabel("x[m]")
        plt.ylabel("y[m]")
        plt.grid(True)

        plt.subplot(3, 1, 2)
        plt.cla()
        plt.plot(GetListFromMatrix(xstar.value[2, :]), "-b")
        plt.plot(GetListFromMatrix(xstar.value[3, :]), "-r")
        plt.ylim([-1.0, 1.0])
        plt.ylabel("velocity[m/s]")
        plt.xlabel("horizon")
        plt.grid(True)

        plt.subplot(3, 1, 3)
        plt.cla()
        plt.plot(GetListFromMatrix(ustar.value[0, :]), "-r", label="a")
        plt.plot(GetListFromMatrix(ustar.value[1, :]), "-b", label="b")
        plt.ylim([-0.5, 0.5])
        plt.legend()
        plt.grid(True)

        #  plt.pause(0.0001)

        #  raw_input()

        # check goal
        dis = np.linalg.norm([x[0] - target[0], x[1] - target[1]])
        if dis < 0.1:
            print("Goal")
            break

MPC kontra LQR

Model Predictive Control och Linear Quadratic Regulators är båda uttryck för optimal kontroll, med olika system för att ställa in optimeringskostnader.

Medan en modellprediktiv styrenhet ofta tittar på fasta längder, ofta gradvis vägda uppsättningar av felfunktioner, tittar den linjära kvadratiska regulatorn på alla linjära systemingångar och tillhandahåller överföringsfunktionen som kommer att minska det totala felet över frekvensspektrumet och avaktivera tillståndsfel mot ingångsfrekvens.

På grund av dessa grundläggande skillnader har LQR bättre globala stabilitetsegenskaper, men MPC har ofta mer lokalt optimala [?] Och komplexa prestanda.

De största skillnaderna mellan MPC och LQR är att LQR optimerar över hela tidsfönstret (horisonten) medan MPC optimerar i ett avtagande tidsfönster, och att med MPC en ny lösning beräknas ofta medan LQR använder samma enda (optimala) lösning för hela tidshorisonten. Därför löser MPC vanligtvis optimeringsproblemet i ett mindre tidsfönster än hela horisonten och kan därför få en suboptimal lösning. Men eftersom MPC inte gör några antaganden om linjäritet kan den hantera hårda begränsningar såväl som migrering av ett olinjärt system bort från sin lineariserade driftpunkt, som båda är stora nackdelar med LQR.

Detta innebär att LQR kan bli svag när man arbetar bort från stabila fasta punkter. MPC kan kartlägga en väg mellan dessa fasta punkter, men konvergens av en lösning garanteras inte, särskilt om man tänkte på problemutrymmet konvexitet och komplexitet.

Se även

Referenser

Vidare läsning

  • Kwon, WH; Bruckstein, Kailath (1983). "Stabiliserar tillståndsåterkopplingsdesign via rörlig horisont -metoden". International Journal of Control . 37 (3): 631–643. doi : 10.1080/00207178308932998 .
  • Garcia, C; Prett, Morari (1989). "Modellprediktiv kontroll: teori och praktik". Automatica . 25 (3): 335–348. doi : 10.1016/0005-1098 (89) 90002-2 .
  • Findeisen, Rolf; Allgower, Frank (2001). "En introduktion till olinjär modellprediktiv kontroll". Summerschool om "The Impact of Optimization in Control", Dutch Institute of Systems and Control. CW Scherer och JM Schumacher, redaktörer. : 3.1–3.45.
  • Mayne, DQ; Michalska, H. (1990). "Avtagande horisontkontroll av olinjära system". IEEE -transaktioner med automatisk kontroll . 35 (7): 814–824. doi : 10.1109/9.57020 .
  • Mayne, D; Rawlings; Rao; Scokaert (2000). "Begränsad modellprediktiv kontroll: stabilitet och optimalitet". Automatica . 36 (6): 789–814. doi : 10.1016/S0005-1098 (99) 00214-9 .
  • Allgöwer; Zheng (2000). Olinjär modell prediktiv kontroll . Framsteg i systemteori. 26 . Birkhauser.
  • Camacho; Bordons (2004). Modell prediktiv kontroll . Springer Verlag.
  • Findeisen; Allgöwer, Biegler (2006). Bedömning och framtida riktlinjer för olinjär modellprediktiv kontroll . Föreläsningsanteckningar i kontroll- och informationsvetenskap. 26 . Springer.
  • Diehl, M; Bock; Schlöder; Findeisen; Nagy; Allgöwer (2002). "Realtidsoptimering och olinjär modellprediktiv kontroll av processer som styrs av differentialalgebraiska ekvationer". Journal of Process Control . 12 (4): 577–585. doi : 10.1016/S0959-1524 (01) 00023-3 .
  • James B. Rawlings, David Q. Mayne och Moritz M. Diehl: ”Model Predictive Control: Theory, Computation, and Design” (2nd Ed.), Nob Hill Publishing, LLC, ISBN  978-0975937730 (oktober 2017).
  • Tobias Geyer: Modellprediktiv styrning av högeffektomvandlare och industridrivna enheter, Wiley, London, ISBN  978-1-119-01090-6 , november 2016

externa länkar