Model voorspellende controle - Model predictive control

Model Predictive Control ( MPC ) is een geavanceerde methode van procesbeheersing die wordt gebruikt om een ​​proces te besturen terwijl aan een reeks beperkingen wordt voldaan. Het wordt sinds de jaren tachtig gebruikt in de procesindustrieën in chemische fabrieken en olieraffinaderijen . In de afgelopen jaren is het ook gebruikt in modellen voor het balanceren van energiesystemen en in vermogenselektronica . Modelvoorspellende controllers vertrouwen op dynamische modellen van het proces, meestal lineaire empirische modellen verkregen door systeemidentificatie. Het grote voordeel van MPC is dat hiermee het huidige tijdslot kan worden geoptimaliseerd, terwijl rekening wordt gehouden met toekomstige tijdsloten. Dit wordt bereikt door een eindige tijdhorizon te optimaliseren, maar alleen het huidige tijdslot te implementeren en vervolgens herhaaldelijk te optimaliseren, dus anders dan Linear-Quadratic Regulator ( LQR ). MPC heeft ook het vermogen om te anticiperen op toekomstige gebeurtenissen en kan dienovereenkomstig controlemaatregelen nemen. PID- regelaars hebben dit voorspellende vermogen niet. MPC wordt bijna universeel geïmplementeerd als een digitale besturing, hoewel er onderzoek is gedaan naar het bereiken van snellere responstijden met speciaal ontworpen analoge schakelingen.

Gegeneraliseerde voorspellende controle (GPC) en dynamische matrixcontrole (DMC) zijn klassieke voorbeelden van MPC.

Overzicht

De modellen die in MPC worden gebruikt, zijn over het algemeen bedoeld om het gedrag van complexe dynamische systemen weer te geven . De extra complexiteit van het MPC-regelalgoritme is over het algemeen niet nodig om een ​​adequate regeling te bieden van eenvoudige systemen, die vaak goed worden geregeld door generieke PID-regelaars . Veelvoorkomende dynamische kenmerken die moeilijk zijn voor PID-regelaars zijn onder meer grote vertragingen en dynamiek van hoge orde.

MPC-modellen voorspellen de verandering in de afhankelijke variabelen van het gemodelleerde systeem die zal worden veroorzaakt door veranderingen in de onafhankelijke variabelen . In een chemisch proces zijn onafhankelijke variabelen die door de controller kunnen worden aangepast vaak ofwel de setpoints van regulerende PID-controllers (druk, flow, temperatuur, enz.) Of het laatste regelelement (kleppen, dempers, enz.). Onafhankelijke variabelen die niet door de controller kunnen worden aangepast, worden als verstoringen gebruikt. Afhankelijke variabelen in deze processen zijn andere metingen die ofwel controledoelstellingen ofwel procesbeperkingen vertegenwoordigen.

MPC gebruikt de huidige fabrieksmetingen, de huidige dynamische toestand van het proces, de MPC-modellen en de procesvariabele doelen en limieten om toekomstige veranderingen in de afhankelijke variabelen te berekenen. Deze veranderingen worden berekend om de afhankelijke variabelen dicht bij het doel te houden, terwijl de beperkingen voor zowel onafhankelijke als afhankelijke variabelen worden gerespecteerd. De MPC verzendt doorgaans alleen de eerste wijziging in elke onafhankelijke variabele die moet worden geïmplementeerd en herhaalt de berekening wanneer de volgende wijziging vereist is.

Hoewel veel echte processen niet lineair zijn, kunnen ze vaak worden beschouwd als ongeveer lineair over een klein werkbereik. Lineaire MPC-benaderingen worden in de meeste toepassingen gebruikt, waarbij het feedbackmechanisme van de MPC voorspellingsfouten compenseert als gevolg van structurele mismatch tussen het model en het proces. In modelvoorspellingscontrollers die alleen uit lineaire modellen bestaan, maakt het superpositieprincipe van lineaire algebra het mogelijk om het effect van veranderingen in meerdere onafhankelijke variabelen bij elkaar op te tellen om de respons van de afhankelijke variabelen te voorspellen. Dit vereenvoudigt het regelprobleem tot een reeks directe matrixalgebra-berekeningen die snel en robuust zijn.

Wanneer lineaire modellen niet voldoende nauwkeurig zijn om de niet-lineariteiten van het werkelijke proces weer te geven, kunnen verschillende benaderingen worden gebruikt. In sommige gevallen kunnen de procesvariabelen voor en/of na het lineaire MPC-model worden getransformeerd om de niet-lineariteit te verminderen. Het proces kan worden bestuurd met niet-lineaire MPC die een niet-lineair model rechtstreeks in de besturingstoepassing gebruikt. Het niet-lineaire model kan de vorm hebben van een empirische data-fit (bijv. kunstmatige neurale netwerken) of een high-fidelity dynamisch model gebaseerd op fundamentele massa- en energiebalansen. Het niet-lineaire model kan worden gelineariseerd om een Kalman-filter af te leiden of een model voor lineaire MPC te specificeren.

Een algoritmisch onderzoek door El-Gherwi, Budman en El Kamel toont aan dat het gebruik van een dual-mode-benadering een aanzienlijke vermindering van online berekeningen kan opleveren, terwijl de prestaties vergelijkbaar blijven met een ongewijzigde implementatie. Het voorgestelde algoritme lost N convexe optimalisatieproblemen parallel op op basis van informatie-uitwisseling tussen controllers.

Theorie achter MPC

Image
Een discreet MPC-schema.

MPC is gebaseerd op iteratieve, eindige-horizon optimalisatie van een fabrieksmodel. Op het moment dat de huidige staat van de installatie wordt bemonsterd en een kostenminimaliserende regelstrategie wordt berekend (via een numeriek minimaliseringsalgoritme) voor een relatief korte tijdshorizon in de toekomst: . In het bijzonder wordt een online of on-the-fly berekening gebruikt om toestandstrajecten die voortkomen uit de huidige toestand te verkennen en (via de oplossing van Euler-Lagrange-vergelijkingen ) een kostenminimaliserende controlestrategie tot tijd te vinden . Alleen de eerste stap van de regelstrategie wordt geïmplementeerd, vervolgens wordt de fabriekstoestand opnieuw bemonsterd en worden de berekeningen herhaald vanaf de nieuwe huidige toestand, wat een nieuwe regeling en een nieuw voorspeld toestandspad oplevert. De voorspellingshorizon wordt steeds naar voren verschoven en daarom wordt MPC ook wel reeding horizon control genoemd . Hoewel deze aanpak niet optimaal is, heeft deze in de praktijk zeer goede resultaten opgeleverd. Er is veel academisch onderzoek gedaan om snelle oplossingsmethoden voor vergelijkingen van het Euler-Lagrange-type te vinden, om de globale stabiliteitseigenschappen van de lokale optimalisatie van MPC te begrijpen en in het algemeen om de MPC-methode te verbeteren.

Principes van MPC

Model Predictive Control (MPC) is een multivariabel besturingsalgoritme dat gebruik maakt van:

  • een intern dynamisch model van het proces
  • een kostenfunctie J over de teruglopende horizon
  • een optimalisatie-algoritme dat de kostenfunctie J minimaliseert met behulp van de besturingsingang u

Een voorbeeld van een kwadratische kostenfunctie voor optimalisatie wordt gegeven door:

zonder beperkingen te overtreden (lage/hoge limieten) met

: de regelbare variabele (bijv. gemeten temperatuur)
: de referentievariabele (bijv. gewenste temperatuur)
: de gemanipuleerde variabele (bijv. regelklep)
: wegingscoëfficiënt die het relatieve belang van . weergeeft
: wegingscoëfficiënt die relatief grote veranderingen in . benadeelt

enzovoort.

Niet-lineaire MPC

Niet-lineaire Model Predictive Control, of NMPC, is een variant van Model Predictive Control (MPC) die wordt gekenmerkt door het gebruik van niet-lineaire systeemmodellen bij de voorspelling. Net als bij lineaire MPC vereist NMPC de iteratieve oplossing van optimale regelproblemen op een eindige voorspellingshorizon. Hoewel deze problemen convex zijn in lineaire MPC, zijn ze in niet-lineaire MPC niet per se meer convex. Dit stelt zowel de NMPC-stabiliteitstheorie als de numerieke oplossing voor uitdagingen.

De numerieke oplossing van de NMPC optimale besturingsproblemen is meestal gebaseerd op directe optimale besturingsmethoden met behulp van Newton-type optimalisatieschema's, in een van de varianten: directe enkelvoudige opname , directe meervoudige opnamemethoden of directe collocatie . NMPC-algoritmen maken doorgaans gebruik van het feit dat opeenvolgende optimale controleproblemen op elkaar lijken. Dit maakt het mogelijk om de oplossingsprocedure van het Newton-type efficiënt te initialiseren door een geschikte verschoven schatting van de eerder berekende optimale oplossing, waardoor aanzienlijke hoeveelheden rekentijd worden bespaard. De gelijkenis van opeenvolgende problemen wordt zelfs nog verder benut door padvolgende algoritmen (of "real-time iteraties") die nooit proberen een optimalisatieprobleem naar convergentie te itereren, maar in plaats daarvan slechts een paar iteraties nemen naar de oplossing van het meest actuele NMPC-probleem, voordat u doorgaat naar de volgende, die op de juiste manier is geïnitialiseerd; zie bv.

Terwijl NMPC-toepassingen in het verleden vooral werden gebruikt in de proces- en chemische industrie met relatief lage bemonsteringsfrequenties, wordt NMPC steeds meer toegepast, met verbeteringen in controllerhardware en rekenalgoritmen, bijv. preconditionering , voor toepassingen met hoge bemonsteringsfrequenties, bijv. in de auto-industrie, of zelfs wanneer de toestanden in de ruimte zijn verdeeld ( Distributed parameter systems ). Als een toepassing in de lucht- en ruimtevaart is NMPC recentelijk gebruikt om optimale terreinvolg-/vermijdingstrajecten in realtime te volgen.

Expliciete MPC

Expliciete MPC (eMPC) maakt een snelle evaluatie van de controlewet voor sommige systemen mogelijk, in schril contrast met de online MPC. Expliciete MPC is gebaseerd op de parametrische programmeertechniek , waarbij de oplossing voor het MPC-regelprobleem, geformuleerd als optimalisatieprobleem, vooraf offline wordt berekend. Deze offline oplossing, dwz de regelwet , heeft vaak de vorm van een stuksgewijs affiene functie (PWA), vandaar dat de eMPC-controller de coëfficiënten van de PWA opslaat voor elk een subset (controlegebied) van de toestandsruimte, waar de PWA constant is, evenals coëfficiënten van enkele parametrische representaties van alle regio's. Elk gebied blijkt geometrisch een convexe polytoop te zijn voor lineaire MPC, gewoonlijk geparametriseerd door coëfficiënten voor zijn vlakken, wat een analyse van de nauwkeurigheid van de kwantisatie vereist . Het verkrijgen van de optimale regelactie wordt dan beperkt tot het eerst bepalen van het gebied dat de huidige toestand bevat en ten tweede een loutere evaluatie van PWA met behulp van de PWA-coëfficiënten die voor alle gebieden zijn opgeslagen. Als het totale aantal regio's klein is, vereist de implementatie van de eMPC geen significante rekenkracht (vergeleken met de online MPC) en is het bij uitstek geschikt voor besturingssystemen met een snelle dynamiek. Een serieus nadeel van eMPC is de exponentiële groei van het totale aantal controleregio's met betrekking tot enkele belangrijke parameters van het gecontroleerde systeem, bijvoorbeeld het aantal toestanden, waardoor de geheugenvereisten van de controller drastisch toenemen en de eerste stap van PWA-evaluatie zoeken naar het huidige controlegebied, rekenkundig duur.

Robuuste MPC

Robuuste varianten van Model Predictive Control (MPC) kunnen rekening houden met set-bounded verstoringen, terwijl er toch aan de toestandsbeperkingen wordt voldaan. Enkele van de belangrijkste benaderingen van robuuste MPC worden hieronder gegeven.

  • Min-max MPC . In deze formulering wordt de optimalisatie uitgevoerd met betrekking tot alle mogelijke evoluties van de verstoring. Dit is de optimale oplossing voor lineaire robuuste besturingsproblemen, maar het brengt hoge rekenkosten met zich mee. Het basisidee achter de min/max MPC-benadering is om de online "min"-optimalisatie te wijzigen in een "min-max"-probleem, waarbij het slechtste geval van de objectieve functie wordt geminimaliseerd, gemaximaliseerd over alle mogelijke installaties uit de onzekerheidsset.
  • Beperking Aanscherping MPC . Hier worden de toestandsbeperkingen met een bepaalde marge vergroot, zodat gegarandeerd een traject kan worden gevonden bij elke evolutie van verstoring.
  • Buis MPC . Dit maakt gebruik van een onafhankelijk nominaal model van het systeem en gebruikt een feedbackcontroller om ervoor te zorgen dat de werkelijke toestand convergeert naar de nominale toestand. De hoeveelheid vereiste scheiding van de toestandsbeperkingen wordt bepaald door de robuuste positief invariante (RPI) set, de verzameling van alle mogelijke toestandsafwijkingen die kunnen worden geïntroduceerd door verstoring met de feedbackcontroller.
  • Meertraps MPC . Hierbij wordt gebruik gemaakt van een scenarioboomformulering door de onzekerheidsruimte te benaderen met een reeks steekproeven en de benadering is niet-conservatief omdat er rekening mee wordt gehouden dat de meetinformatie beschikbaar is op elk tijdstip in de voorspelling en de beslissingen in elk stadium kunnen worden verschillend en kan fungeren als een toevluchtsoord om de effecten van onzekerheden tegen te gaan. Het nadeel van de aanpak is echter dat de omvang van het probleem exponentieel groeit met het aantal onzekerheden en de voorspellingshorizon.
  • Buisversterkte meertraps MPC . Deze benadering synergiseert multi-stage MPC en op buizen gebaseerde MPC. Het biedt een hoge mate van vrijheid om de gewenste afweging tussen optimaliteit en eenvoud te kiezen door de classificatie van onzekerheden en de keuze van controlewetten in de voorspellingen.

In de handel verkrijgbare MPC-software

Commerciële MPC-pakketten zijn beschikbaar en bevatten doorgaans tools voor modelidentificatie en -analyse, controllerontwerp en -afstemming, evenals prestatie-evaluatie van controllers.

SJ Qin en TA Badgwell hebben een overzicht gegeven van commercieel verkrijgbare pakketten in Control Engineering Practice 11 (2003) 733-764.

Voorbeelden van open source-code

Python-bibliotheek met verschillende implementaties is hier te vinden:

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 versus LQR

Model Predictive Control en Linear Quadratic Regulators zijn beide uitdrukkingen van optimale controle, met verschillende schema's voor het opzetten van optimalisatiekosten.

Terwijl een Model Predictive Controller vaak kijkt naar sets van foutfuncties met een vaste lengte, vaak geleidelijk gewogen sets, kijkt de Linear Quadratic Regulator naar alle lineaire systeemingangen en biedt de overdrachtsfunctie die de totale fout over het frequentiespectrum zal verminderen, waarbij de toestandsfout wordt afgewisseld met ingangsfrequentie.

Vanwege deze fundamentele verschillen heeft LQR betere globale stabiliteitseigenschappen, maar MPC heeft vaak meer lokaal optimale[?] en complexere prestaties.

De belangrijkste verschillen tussen MPC en LQR zijn dat LQR optimaliseert over het hele tijdvenster (horizon), terwijl MPC optimaliseert in een teruglopend tijdvenster, en dat bij MPC vaak een nieuwe oplossing wordt berekend terwijl LQR dezelfde enkele (optimale) oplossing gebruikt voor de hele tijdshorizon. Daarom lost MPC het optimalisatieprobleem doorgaans op in een kleiner tijdsbestek dan de hele horizon en kan daarom een ​​suboptimale oplossing verkrijgen. Omdat MPC echter geen aannames maakt over lineariteit, kan het zowel harde beperkingen aan als migratie van een niet-lineair systeem weg van zijn gelineariseerde werkpunt, wat beide grote nadelen zijn voor LQR.

Dit betekent dat LQR zwak kan worden als er buiten stabiele vaste punten wordt gewerkt. MPC kan een pad tussen deze vaste punten in kaart brengen, maar convergentie van een oplossing is niet gegarandeerd, vooral als niet is nagedacht over de convexiteit en complexiteit van de probleemruimte.

Zie ook

Referenties

Verder lezen

  • Kwon, WH; Bruckstein, Kailat (1983). "Stabilisatie van toestandsfeedbackontwerp via de bewegende horizonmethode". Internationaal Tijdschrift voor Controle . 37 (3): 631-643. doi : 10.1080/00207178308932998 .
  • Garcia, C; Prett, Morari (1989). "Model voorspellende controle: theorie en praktijk". Automatisch . 25 (3): 335-348. doi : 10.1016/0005-1098(89)90002-2 .
  • Findeisen, Rolf; Allgower, Frank (2001). "Een inleiding tot niet-lineaire model voorspellende controle". Summerschool over "The Impact of Optimization in Control", Dutch Institute of Systems and Control. CW Scherer en JM Schumacher, redacteuren. : 3.1-3.45.
  • Mayne, DQ; Michalska, H. (1990). "Receding horizon control van niet-lineaire systemen". IEEE-transacties op automatische controle . 35 (7): 814-824. doi : 10.1109/9.57020 .
  • Mayne, D; Rawlings; Rao; Scokaert (2000). "Constrained model predictive control: stabiliteit en optimaliteit". Automatisch . 36 (6): 789-814. doi : 10.1016/S0005-1098(99)00214-9 .
  • Allgöwer; Zheng (2000). Niet-lineaire model voorspellende controle . Vooruitgang in systeemtheorie. 26 . Birkhauser.
  • Camacho; Bordons (2004). Model voorspellende controle . Springer Verlag.
  • Vindeisen; Allgöwer, Biegler (2006). Beoordeling en toekomstige richtingen van niet-lineaire modelvoorspellende controle . Collegenota's in de controle- en informatiewetenschappen. 26 . springer.
  • Diehl, M; Bock; Schlöder; Vindeisen; Nagi; Allgöwer (2002). "Real-time optimalisatie en niet-lineaire Model Predictive Control van processen beheerst door differentiaal-algebraïsche vergelijkingen". Tijdschrift voor procesbeheersing . 12 (4): 577-585. doi : 10.1016/S0959-1524(01)00023-3 .
  • James B. Rawlings, David Q. Mayne en Moritz M. Diehl: "Model Predictive Control: Theory, Computation, and Design" (2e editie ), Nob Hill Publishing, LLC, ISBN  978-0975937730 (oktober 2017).
  • Tobias Geyer: Model voorspellende besturing van omvormers met hoog vermogen en industriële aandrijvingen, Wiley, Londen, ISBN  978-1-119-01090-6 , november 2016

Externe links