Model Predictive Control Toolbox

Entwerfen und Simulieren von modellprädiktiven Reglern

 

Die Model Predictive Control Toolbox™ bietet Funktionen, eine App und Simulink® Blöcke zum Entwerfen und Simulieren von modellprädiktiven Reglern (MPCs). Mit der Toolbox können Sie Strecken- und Störungsmodelle, Zeithorizonte, Beschränkungen und Gewichte festlegen. Durch Simulationen im geschlossenen Regelkreis können Sie die Regelgüte bewerten.

Sie können das Verhalten des Reglers anpassen, indem Sie die Gewichte und Begrenzungen während der Laufzeit variieren. Zur Regelung einer nichtlinearen Strecke können Sie adaptive bzw. MPCs mit Gainscheduling einsetzen. Für Anwendungen mit schnellen Abtastraten können Sie basierend auf einem regulären Regler einen expliziten modelprädiktiven Regler generieren oder aber eine Näherungslösung anwenden.

Zur Unterstützung von Rapid Prototyping und embedded Systemen unterstützt die Toolbox C-Code Generierung und die Erstellung von strukturiertem Text gemäß IEC 61131-3.

Erste Schritte:

Entwerfen modellprädiktiver Regler

Entwerfen Sie einen MPC-Regler zur Regelung von MIMO-Systemen, die Eingangs- und Ausgangsbeschränkungen unterliegen. Führen Sie Simulationen im geschlossenen Regelkreis durch, um die Reglergüte zu bewerten.

MPC-Entwurf in MATLAB

Verwenden Sie Funktionen aus der Kommandozeile, um MPC-Regler zu entwerfen. Definieren Sie ein internes Streckenmodell, passen Sie Gewichte, Beschränkungen und andere Reglerparameter an und simulieren Sie die Systemantwort im geschlossenen Regelkreis, um die Reglergüte zu bewerten.

Entwerfen von MPC-Reglern aus der Kommandozeile

MPC-Entwurf in Simulink

Modellieren und simulieren Sie MPC-Regler in Simulink mit dem MPC-Reglerblock sowie anderen in der Toolbox verfügbaren Blöcken. Trimmen und linearisieren Sie ein Simulink-Modell, um ein internes LTI-Streckenmodell für Ihren MPC-Regler zu berechnen, und berechnen Sie die nominale Werte für  die Ein- und Ausgänge der Strecke mit Simulink Control Design™.

MPC-Designer-App

Gestalten Sie Ihre MPC-Regler interaktiv durch Definition eines internen Streckenmodells und Anpassen von Zeithorizonten, Gewichten und Beschränkungen. Validieren Sie die Reglergüte durch Simulationsszenarien. Vergleichen Sie die Antworten mehrerer MPC-Regler.

Anwendungen für automatisiertes Fahren

Beschleunigen Sie die Entwicklung Ihres ADAS-Systems mit vorgefertigten Simulink-Blöcken. Verwenden Sie die Referenzbeispiele zur schnellen Entwicklung von ADAS-Reglern. Erzeugen Sie Codes aus den Simulink-Blöcken, um MPC-Regler in Fahrzeugen einzusetzen.

Vorgefertigte Blöcke

Nutzen Sie die Blöcke adaptiver Abstands- und Geschwindigkeitsregelung, Spurhalteassistent und Wegfolgesystem als Ausgangspunkt für Ihre ADAS-Anwendung und personalisieren Sie das Design wie gewünscht. Erzeugen Sie Code aus den vorgefertigten Blöcken, um MPC-Regler einzusetzen.

Mit dem vorgefertigten Simulink-Block zum Entwurf von adaptiven Abstands- und Geschwindigkeitsregelungssystemen.

Referenzanwendungen

Nutzen Sie Referenzanwendungen, die Ihnen die Abläufe des Entwurfs und Einsatzes von MPC-Reglern für Ihre automatisierten Fahrsysteme Schritt für Schritt näherbringen. Referenzanwendungen zeigen Ihnen ebenso, wie die verschiedenen Teile Ihres Systems mit unterschiedlichen Genauigkeitsgraden modelliert werden können.

Lineare modellprädiktive Regler

Entwerfen Sie MPC-Regler für Systeme mit linearer Dynamik. Entwerfen Sie adaptive und gain-scheduled MPC-Regler für Strecken mit Dynamiken, die sich abhängig von den Betriebsbedingungen ändern.

Lineare MPC-Regler

Entwerfen Sie mit der Control System Toolbox™ einen linearen MPC-Regler, indem Sie ein internes Streckenmodell als ein lineares zeitinvariantes (LTI) System spezifizieren oder indem Sie ein Simulink-Modell mittels Simulink Control Design linearisieren. Alternativ können Sie mit der System Identification Toolbox™ ein mit gemessenen Eingangs- und Ausgangsdaten erstelltes Modell importieren.

Spezifizierung eines internen Streckenmodells für den Entwurf eines linearen MPC-Reglers.

Adaptiver MPC-Regler

Entwerfen und simulieren Sie adaptive MPC-Regler, indem Sie die Kommadozeilenfunktionen und den adaptiven MPC-Reglerblock verwenden. Aktualisieren Sie ihr Streckenmodell bei jedem Berechnungsschritt und stellen Sie das Modell als Regler-Eingabewert bereit. Verwenden Sie einen eingebauten, linearen und zeitvariablen (LTV) Kalman-Filter mit garantierter asymptotischer Stabilität für die Zustandsschätzung in adaptiven modellprädiktiven Reglern.

Gain-scheduled MPC-Regler

Regeln Sie nichtlineare Strecken über eine Vielzahl von Betriebsbedingungen mit dem Reglerblock für multiple MPC-Regler. Entwerfen Sie einen MPC-Regler für jeden Betriebspunkt und wechseln Sie während der Laufzeit zwischen den Reglern.

Verwendnung des multiplen MPC-Reglerblocks zum Entwerfen eines gain-scheduled MPC-Regler.

MPC-Designparameter, Zustandsschätzung und Design-Überprüfung

Verbessern Sie Ihr Regler-Design kontinuierlich, indem Sie ein internes Streckenmodell definieren, Regler-Parameter anpassen und die Systemantwort im geschlossenen Regelkreis simulieren, um die Reglergüte zu bewerten. Überprüfen Sie Ihren Regler auf mögliche Designprobleme.

Regler-Parameter

Nach der Definition des internen Streckenmodells schließen Sie das Design Ihres MPC-Reglers ab, indem Sie Samplezeit, Prognose- und Kontrollhorizonte, Skalierfaktoren, Eingangs- und Ausgangsbeschränkungen sowie Gewichte festlegen. Die Toolbox unterstützt ebenso die Abmilderung von Beschränkungen sowie zeitvariable Beschränkungen und Gewichte.

Festlegen der Regler-Parameter in der MPC-Designer-App.

Zustandsschätzung

Schätzen Sie die Reglerzustände anhand gemessener Ausgangswerte mit dem integrierten Zustandsestimator. Alternativ können Sie die benutzerdefinierte Zustandsschätzoption verwenden, wenn Sie Werte an den Regler senden, die mit Ihrem personalisierten Algorithmus geschätzt wurden.

Benutzerdefinierte Zustandsschätzung.

Designüberprüfung

Erfassen Sie mit der Diagnosefunktion der Toolbox potenzielle Stabilitäts- und Robustheitsprobleme Ihres MPC-Reglers. Verwenden Sie dieses Diagnosetool zum Anpassen der Regler-Gewichte und -Beschränkungen während des Entwurfsvorgangs, um Laufzeitfehler zu verhindern.

Verbesserung des Regler-Designs mithilfe von Empfehlungen des Designprüfberichts.

Laufzeit-Parameterabstimmung und Güteüberwachung

Verbessern Sie die Reglergüte durch Abstimmen der Gewichte und Beschränkungen während der Laufzeit. Untersuchen Sie die Laufzeitleistung des Reglers.

Laufzeit-Parameterabstimmung

Passen Sie die Gewichte und -Beschränkungen Ihres MPC-Reglers während der Laufzeit an, um seine Güte ohne neues Design oder neue Implementierung zu optimieren. Nehmen Sie die Laufzeit-Regler-Abstimmung sowohl in MATLAB als auch in Simulink vor.

Anpassung der Gewichte und Beschränkungen während der Laufzeit.

Laufzeitleistungsüberwachung

Greifen Sie auf das Optimierungsstatus-Signal zu, um die seltenen Fälle zu erfassen, in denen eine Optimierung falsch konvergiert, und entscheiden Sie dann, ob ein Backup-Regler zum Einsatz kommen soll.

Erfassen von Regler-Ausfällen in Echtzeit. 

Einsatz von schnellen, modellprädiktiven Reglern

Entwerfen, simulieren und verwenden Sie MPC-Regler in Anwendungen mit begrenzter Rechnerleistung

Expliziter MPC-Regler

Erstellen Sie einen expliziten MPC-Regler basierend auf einem impliziten MPC-Entwurf. Vereinfachen Sie einen erstellten expliziten MPC-Regler und verringern Sie so den Arbeitsspeicherbedarf.

Erstellen eines expliziten MPC-Reglers basierend auf einem vorab entworfenen impliziten Regler.

(Suboptimale) Näherungslösung

Entwerfen, simulieren und verwenden Sie MPC-Regler mit garantierter Worst-Case-Ausführzeit durch Verwendung einer (suboptimalen) Näherungslösung.

Vergleich der Ausführzeiten optimaler und (suboptimaler) Näherungslösungen.

Nichtlineare modellprädiktive Regler

Entwerfen Sie nichtlineare MPC-Regler zur Regelung von Strecken mittels nichtlinearer Prognosemodelle, Kostenfunktionen oder Beschränkungen.

Optimale Planung

Verwendung nichtlinearer MPC-Regler für optimale Planungsanwendungen, die ein nichtlineares Modell mit nichtlinearen Kosten oder Einschränkungen erfordern.

Trajektorien-Optimierung und Regelung von Flugrobotern mit nichtlinearer MPC-Regelung.

Feedback-Regelung

Simulieren Sie einen geschlossenen Regelkreis von nichtlinearen Strecken unter nichtlinearen Kosten und Beschränkungen. Standardmäßig verwenden nichtlineare MPC-Regler die Optimization Toolbox™, um das Problem nichtlinearer Programmierung zu beheben. Sie können ebenso Ihren eigenen personalisierten nichtlinearen Solver festlegen.

Nichtlineare modellprädiktive Regelung eines exothermen Chemiereaktors.

Ökonomischer MPC-Regler

Designen Sie ökonomische MPC-Regler zur Optimierung des Reglers für eine beliebige Kostenfunktion unter beliebigen nichtlinearen Beschränkungen. Sie können ein lineares oder ein nichtlineares Prognosemodell anwenden, eine benutzerdefinierte nichtlineare Kostenfunktion sowie benutzerdefinierte nichtlineare Beschränkungen.

Ökonomische MPC-Regelung bei der Ethylenoxidproduktion.

Codegenerierung

Erstellen Sie Code für in Simulink und MATLAB entworfene modellprädiktive Regler und nutzen Sie ihn für Echtzeit-Regler-Anwendungen.

Code-Generierung mit MATLAB und Simulink

Entwerfen Sie einen MPC-Regler in Simulink und erstellen Sie C-Code und IEC 61131-3-strukturierten Text mit dem Simulink Coder™, bzw. Simulink PLC Coder™. Verwenden Sie MATLAB Coder™, um C-Code in MATLAB zu schreiben und ihn zur Echtzeit-Regelung zu nutzen. Alternativ können Sie MPC-Regler auch mit dem MATLAB CompilerTM einsetzen.

Generieren von C-Code aus dem MPC-Reglerblock.

Embedded Solver

Generieren Sie Code mit dem verfügbaren QP-Solver (quadratische Programmierung) für eine effiziente Umsetzung in einem eingebetteten Prozessor. Stellen Sie den generierten Code für eine beliebige Anzahl von Prozessoren bereit. Nutzen Sie den verfügbaren QP-Solver mit standardmäßiger MPC-Formel oder nutzen Sie ihn zum Lösen von benutzerspezifischen MPC-Problemen.

Benutzerdefinierte MPC-Regler.

Benutzerdefinierte QP-Solver

Verwenden Sie einen benutzerdefinierten Solver für quadratische Programmierung (QP) Ihrer Wahl für die Simulation und die Codegenerierung.

Benutzerdefinierte QP-Solver für Simulation und Codegenerierung

Neue Funktionen

Nichtlineare MPC

Erzeugen von Code für nichtlineare MPC-Controller, die den Standard-fmincon-Solver mit dem SQP-Algorithmus verwenden

Innere-Punkte-QP-Solver

Entwurf und Implementierung effizienter MPC-Controller für Anwendungen, die Bedingungen über große Prognose- und Steuerbereiche erzwingen

Details zu diesen Merkmalen und den zugehörigen Funktionen finden Sie in den Versionshinweisen.