Schätzen von Prozessmodellen
Schätzung eines zeitkontinuierlichen Prozessmodells für ein System mit einem Eingang und einem Ausgang (SISO) entweder in der Zeit- oder Frequenzdomäne im Live Editor
Beschreibung
Mit dem Task Estimate Process Model (Prozessmodell schätzen) können Sie interaktiv ein Prozessmodell für SISO-Systeme schätzen und validieren. Sie können die Modellstruktur definieren und variieren und optionale Parameter wie die Handhabung der Anfangsbedingungen und die Suchmethoden angeben. Der Task generiert automatisch MATLAB®-Code für Ihr Live-Skript. Weitere Informationen zu Live Editor Tasks im Allgemeinen finden Sie unter Add Interactive Tasks to a Live Script.
Prozessmodelle sind einfache zeitkontinuierliche Transferfunktionen, die die lineare Systemdynamik beschreiben. Zu den Prozessmodellelementen gehören statische Verstärkung, Zeitkonstanten, Zeitverzögerungen, Integrator und Prozessnullpunkt.
Prozessmodelle werden in zahlreichen Branchen zur Beschreibung der Systemdynamik eingesetzt und sind auf verschiedene Produktionsumgebungen anwendbar. Die Vorteile dieser Modelle sind, dass sie einfach sind, dass sie die Schätzung der Transportverzögerung unterstützen und dass die Modellkoeffizienten leicht als Pole und Nullstellen zu interpretieren sind. Weitere Informationen über die Schätzung von Prozessmodellen finden Sie unter What Is a Process Model?
Der Task Estimate Process Model (Prozessmodell schätzen) ist unabhängig von der allgemeineren System Identification-App. Verwenden Sie die System Identification-App, wenn Sie Schätzungen für mehrere Modellstrukturen berechnen und vergleichen möchten.
Laden Sie zunächst die Experimentdaten, die Eingabe- und Ausgabedaten enthalten, in Ihren MATLAB-Workspace und importieren Sie diese Daten dann in den Task. Wählen Sie dann eine zu schätzende Modellstruktur aus. Der Task gibt Ihnen Kontrollen und Diagramme an die Hand, mit denen Sie mit verschiedenen Modellstrukturen experimentieren und vergleichen können, wie gut die Ergebnisse der einzelnen Modelle mit den Messungen übereinstimmen.

Öffnen Sie die Aufgabe
So fügen Sie die Aufgabe Estimate Process Model (Prozessmodell schätzen) zu einem Live-Skript im MATLAB Editor hinzu:
Wählen Sie auf der Registerkarte Live Editor die Option Task > Estimate Process Model.
Geben Sie in einen Codeblock in Ihrem Skript ein relevantes Schlüsselwort ein, z. B
processoderestimate. Wählen SieEstimate Process Modelaus den vorgeschlagenen Befehlsergänzungen.
Beispiele
Verwenden Sie den Live Editor Task Estimate Process Model (Prozessmodell schätzen), um ein Prozessmodell zu schätzen und die Modellausgabe mit den Messdaten zu vergleichen.
Einrichten der Daten
Laden Sie die Messdaten tt1 in Ihren MATLAB-Workspace. tt1 ist ein Timetable, der eine Eingangsvariable u und eine Ausgangsvariable y enthält.
load sdata1 tt1
Importieren von Daten in den Task
Setzen Sie im Abschnitt Select data (Daten auswählen) den Datentyp auf Timetable und setzen Sie Estimation data (Schätzdaten) auf tt1.

Der Task zeigt eine Tabelle mit den Namen der tt1-Eingangs- und -Ausgangsvariablen an.
Schätzen des Modells mit Standardeinstellungen
Untersuchen Sie die Modellstruktur und die optionalen Parameter.

Im Abschnitt Specify model structure (Modellstruktur angeben) ist die Standardoption One Pole (Ein Pol) ohne Verzögerung, Nullstelle oder Integrator. Die Gleichungen unterhalb der Parameter in diesem Abschnitt zeigen die festgelegte Struktur an.
Im Abschnitt Specify estimation initialization (Initialisierung der Schätzung festlegen) können Sie mit Hilfe von Initialisierungsparametern, die den Parametern Ihrer Modellstruktur entsprechen, Startpunkte für die Schätzung festlegen. Wenn Sie Fix (Fixieren) wählen, bleibt der Parameter auf den von Ihnen angegebenen Wert fixiert. Bei diesem Beispiel sollten Sie keine Initialisierung angeben. Der Task verwendet dann Standardwerte als Startpunkte.
Im Abschnitt Specify optional parameters (Optionale Parameter angeben) werden die Standardoptionen für die Prozessabschätzung festgelegt.
Führen Sie die Aufgabe auf der Registerkarte Live Editor aus, indem Sie auf den grünen Pfeil klicken. Sie können auch Autorun wählen, damit der Task automatisch bei jeder Aktualisierung eines Parameters ausgeführt wird.
![]()
Ein Diagramm zeigt die Schätzdaten, die geschätzte Modellausgabe und den Anpassungsprozentsatz an.

Experimentieren mit Parametereinstellungen
Experimentieren Sie mit den Parametereinstellungen und stellen Sie fest, wie sie die Anpassung beeinflussen.
Fügen Sie zum Beispiel eine Verzögerung zur One Pole-Struktur hinzu und führen Sie den Task aus.


Die Passgenauigkeit der Schätzung verbessert sich, obwohl der Prozentsatz der Passgenauigkeit immer noch unter 50% liegt.
Versuchen Sie es mit einer anderen Modellstruktur. Wählen Sie unter Specify model structure (Modellstruktur angeben) Underdamped Pair ohne Verzögerung und führen Sie den Task aus.


Die Anpassungsergebnisse verbessern sich erheblich.
Generieren von Code
Um den vom Task erzeugten Code anzuzeigen, klicken Sie auf
am unteren Ende des Parameterbereichs. Der Code, den Sie sehen, spiegelt die aktuelle Parameterkonfiguration des Task wider.

Verwenden Sie separate Schätz- und Validierungsdaten, um das geschätzte Prozessmodell zu validieren.
Einrichten der Daten
Laden Sie die Messdaten sdata1 in Ihren MATLAB-Workspace und untersuchen Sie deren Inhalt.
load sdata1 umat1 ymat1 Ts
Teilen Sie die Daten in zwei Sätze auf, wobei eine Hälfte zur Schätzung und die andere Hälfte zur Validierung verwendet wird. Der ursprüngliche Datensatz umfasst 300 Abtastungen, folglich umfassen die beiden neuen Datensätze je 150 Abtastungen.
u_est = umat1(1:150); u_val = umat1(151:300); y_est = ymat1(1:150); y_val = ymat1(151:300); Ts
Ts = 0.1000
Importieren von Daten in den Task
Setzen Sie im Abschnitt Select data (Daten auswählen) den Datentyp auf „Numeric“ (Numerisch). Stellen Sie die Abtastzeit auf 0.1 Sekunden. Wählen Sie die geeigneten Datensätze für die Schätzung und Validierung aus.

Schätzen und Validieren des Modells
Das Beispiel Schätzung des Prozessmodells mit Live Editor Task erzielt die besten Ergebnisse bei der Verwendung der Modellstruktur Underdamped Pair. Wählen Sie für dieses Beispiel die gleiche Option.

Führen Sie den Task aus. Bei der Ausführung des Task werden zwei Plots erstellt. Das erste Diagramm zeigt die Ergebnisse der Schätzung und das zweite Diagramm die Ergebnisse der Validierung.

Die Anpassung an die Schätzungsdaten ist etwas schlechter als bei Schätzung des Prozessmodells mit Live Editor Task. Für die Schätzung im vorliegenden Beispiel steht nur die Hälfte der Daten zur Verfügung, mit denen das Modell geschätzt werden kann. Die Anpassung an die Validierungsdaten, die die Güte des Modells im Allgemeinen darstellt, ist besser als die Anpassung an die Schätzdaten.
Parameter
Auswählen der Daten
Der Task akzeptiert numerische Messwerte, die gleichmäßig in Bezug auf die Zeit abgetastet werden. Eingangs- und Ausgangssignale können mehrere Kanäle enthalten. Daten können als numerische Arrays verpackt werden (für Numeric oder Frequency), als Timetable oder in einem Datenobjekt, wie einem iddata- oder idfrd-Objekt. Bei Multiexperimentdaten können numerische und Timetable-Daten als Zellenarrays verpackt werden. Bei Zellenarrays von Timetables müssen alle Timetables die gleichen Variablennamen enthalten. Datenobjekte verarbeiten Multiexperimentdaten intern.
Der von Ihnen gewählte Datentyp bestimmt, ob Sie zusätzliche Parameter angeben müssen.
Numeric– Legen Sie Sample Time (Abtastzeit) und Start Time (Startzeit) in den von Ihnen gewählten Zeiteinheiten fest.Timetable– Geben Sie keine zusätzlichen Parameter an, da der Timetable bereits Informationen über die Abtastzeit und die Startzeit enthält.Frequency– Legen Sie Frequency durch Auswahl des Variablennamens eines Frequenzvektors in Ihrem MATLAB-Workspace fest. Geben Sie die Einheiten für diesen Frequenzvektor an. Geben Sie die Abtastzeit Sample Time in Sekunden an.Data Object– Geben Sie keine zusätzlichen Parameter an, da das Datenobjekt bereits Informationen zur Zeit- oder Frequenzabtastung enthält.
Wählen Sie die Namen der Eingangs- und Ausgangsvariablen aus den Optionen im MATLAB-Workspace aus. Verwenden Sie diese Parameter, wenn der Data Type entweder Numeric oder Frequency ist.
Die Angabe von Validierungsdaten ist optional, wird aber empfohlen.
Wählen Sie den Namen der Zeitplanvariablen aus den Optionen im MATLAB-Workspace aus. Verwenden Sie diesen Parameter, wenn der Data Type Timetable ist. Der Task zeigt die Namen der Timetable-Variablen für den Eingang und den Ausgang an. Die Timetables für die Schätzung und die Validierung müssen dieselben Variablennamen enthalten.
Wählen Sie den Variablennamen des Datenobjekts aus den Optionen im MATLAB-Workspace aus. Verwenden Sie diesen Parameter, wenn der Data Type Data Object ist.
Festlegen der Modellstruktur
Der Task ermöglicht es Ihnen, eine von vier Grundstrukturen anzugeben. Diese Strukturen reichen von einem einfachen Prozess erster Ordnung bis zu einem dynamischeren Prozess zweiter oder dritter Ordnung mit komplexen konjugierten (unterdämpften) Polen.
One PoleTwo Real PolesUnderdamped PairUnderdamped Pair + Real Pole
Einschließlich Transportverzögerung oder Eingangs-Ausgangs-Verzögerung einer Abtastung. Die Transportverzögerung wird auch als Totzeit bezeichnet.
In den Zähler eine Prozessnullstelle aufnehmen.
Einen Integrator aufnehmen, der durch einen zusätzlichen 1/ s-Term dargestellt wird. Durch die Einbeziehung eines Integrators entsteht ein selbstregulierender Prozess.
Festlegen der Initialisierung der Schätzung
Legen Sie die Anfangswerte für die Schätzung fest und ob diese Werte feststehen oder geschätzt werden sollen. Welche Werte Sie angeben müssen, hängt von der Modellstruktur und Ihren Spezifikationen für Delay und Zero ab. Unter Specify model structure (Modellstruktur angeben) zeigt der Task die Gleichung an, die das angegebene System darstellt. Diese Gleichung enthält alle Parameter, die geschätzt werden können, und die Sie initialisieren oder festlegen können. Die möglichen Parameter sind:
Kp: Statische Verstärkung
Tp1: Zeitkonstante für den ersten reellen Pol
Tp2: Zeitkonstante für den zweiten reellen Pol
Tω: Zeitkonstante für komplexe Pole, gleich dem Kehrwert der Eigenfrequenz
ζ: Dämpfungskoeffizient für komplexe Pole
Td: Transportverzögerung
Tz: Zeitkonstante für die Prozessnullstelle
Alle zeitbasierten Parameter werden in den Zeiteinheiten angegeben, die Sie für Sample Time gewählt haben.
Festlegen optionaler Parameter
Der Anpassungsfokus gibt an, welcher Fehler in der Verlustfunktion während der Schätzung minimiert werden soll.
Prediction: Minimierung des Vorhersagefehlers zwischen gemessenen und vorhergesagten Ausgänge in einem Schritt. Dieser Schätzungsansatz konzentriert sich auf die Erstellung eines guten Vorhersagemodells für die Eingänge und Ausgänge der Schätzung. Die Fokussierung auf die Vorhersage führt im Allgemeinen zu den besten Schätzergebnissen, da sie sowohl Eingangs- als auch Ausgangsmessungen verwendet und somit Störungen berücksichtigt.Simulation: Minimierung des Fehlers zwischen gemessenen und simulierten Ausgängen. Dieser Schätzungsansatz konzentriert sich auf die Erstellung einer simulierten Modellreaktion, die eine gute Übereinstimmung mit den Eingängen und Ausgängen der Schätzung aufweist. Die Simulation eignet sich im Allgemeinen am besten zur Validierung, insbesondere bei Datensätzen, die nicht für die ursprüngliche Schätzung verwendet wurden.
Wählen Sie diese Option, wenn Sie eine bestimmte Methode für die Initialisierung des Modells wählen möchten. Bei der Standardeinstellung von Auto wählt die Software die Methode auf der Grundlage der Schätzungsdaten. Folgende Optionen stehen zur Auswahl:
Zero: Der Anfangszustand wird auf Null gesetzt.Estimate: Der Anfangszustand wird als unabhängiger Schätzungsparameter behandelt.Backcast: Der Anfangszustand wird mit Hilfe der besten Anpassung mittels kleinster Quadrate geschätzt.
Das Eingangs-Intersampling ist eine Eigenschaft der Eingangsdaten. Der Task nutzt diese Eigenschaft bei der Schätzung von Prozessmodellen. Legen Sie Input Intersampling fest, wenn Ihr Datentyp Time oder Frequency ist. Wenn Sie ein iddata-Objekt verwenden, enthält das Objekt bereits die Intersampling-Informationen. Die Auswahlmöglichkeiten für diese Eigenschaft sind:
Zero-order hold: Stückweise konstantes Eingangssignal zwischen den AbtastungenTriangle approximation: Stückweise lineares Eingangssignal zwischen den Abtastungen, auch bekannt als Halten erster OrdnungBand-limited: Das Eingangssignal hat oberhalb der Nyquist-Frequenz keine Leistung
Die verfügbaren numerischen Suchmethoden für die iterative Parameterschätzung sind:
| Suchmethode | Beschreibung |
|---|---|
Auto | Bei jeder Iteration durchläuft die Software die Methoden, bis sie die erste Abstiegsrichtung findet, die zu einer Reduzierung der Schätzkosten führt. |
Gauss-Newton | Singuläre Werte der Jacobimatrix kleiner als GnPinvConstant*eps*max(size(J))*norm(J) werden bei der Berechnung der Suchrichtung verworfen. J ist die Jacobimatrix. Die Hess’sche Matrix wird durch JTJ approximiert. Zeigt diese Richtung keine Verbesserung, versucht die Funktion es mit der Gradientenrichtung. |
Adaptive Gauss-Newton | Eigenwerte kleiner als gamma*max(sv) der Hess‘schen Matrix werden ignoriert, wobei sv die Singulärwerte der Hess‘schen Matrix enthält. Die Gauß-Newton-Richtung wird im verbleibenden Unterraum berechnet. gamma hat den Anfangswert InitialGnaTolerance (siehe Advanced in 'SearchOptions' für weitere Informationen). Dieser Wert wird jedes Mal um den Faktor LMStep erhöht, wenn bei der Suche ein niedrigerer Wert des Kriteriums in weniger als fünf Halbierungen nicht gefunden wird. Dieser Wert wird jedes Mal um den Faktor 2*LMStep verringert, wenn eine Suche ohne Halbierungen erfolgreich ist. |
Levenberg-Marquardt | Jeder Parameterwert ist -pinv(H+d*I)*grad des vorherigen Wertes. H ist die Hess’sche Matrix, I ist die Identitätsmatrix und grad ist der Gradient. d ist eine Zahl, die erhöht wird, bis ein niedrigerer Wert des Kriteriums gefunden wird. Diese Methode erfordert die Optimization Toolbox™-Software. Weitere Informationen finden Sie unter Levenberg-Marquardt Method (Optimization Toolbox). |
Gradient search | Kleinste-Quadrate-Suche mit steilstem Abstieg. |
Trust-Region Reflective Newton | Ein eingeschränkter nichtlinearer Solver. Dieser Solver benötigt die Optimization Toolbox-Software. Weitere Informationen finden Sie unter fmincon Trust Region Reflective Algorithm (Optimization Toolbox). |
Pattern Search | Solver für Nichtlinearitäten ohne wohldefinierte Gradienten. Dieser Solver erfordert eine Global Optimization Toolbox-Software. Weitere Informationen finden Sie unter patternsearch (Global Optimization Toolbox). |
Sequential Quadratic Programming (SQP) | Ein eingeschränkter nichtlinearer Solver. Dieser Solver benötigt die Optimization Toolbox-Software. Weitere Informationen finden Sie unter fmincon SQP Algorithm (Optimization Toolbox). |
Interior-Point | Ein eingeschränkter nichtlinearer Solver. Dieser Solver benötigt die Optimization Toolbox-Software. Weitere Informationen finden Sie unter fmincon Interior Point Algorithm (Optimization Toolbox). |
Legen Sie die maximale Anzahl der Iterationen bei der Fehlerminimierung fest. Die Iterationen enden, wenn Max. Iterations erreicht ist oder ein anderes Abbruchkriterium erfüllt ist, z. B. Tolerance.
Wenn der Prozentsatz der erwarteten Verbesserung kleiner als Tolerance ist, werden die Iterationen abgebrochen.
Wählen Sie diese Option, wenn Sie einen Gewichtungsvorfilter auf die Verlustfunktion anwenden möchten, die der Task bei der Schätzung des Modells minimiert. Wenn Sie eine Option auswählen, müssen Sie auch die zugehörige Variable in Ihrem Workspace auswählen, die die Filterinformationen enthält. Die verfügbaren Optionen hängen von der Datendomäne ab.
| Gewichtungsvorfilter | Datendomäne | Filtern von Informationen |
|---|---|---|
No Filter | Zeit und Frequenz | |
Passbands | Zeit und Frequenz | Durchlassbereiche, angegeben als 1-mal-2-Zeilenvektor oder als n-mal-2 Matrix, wobei n die Anzahl der Durchlassbereiche ist |
LTI Filter | Zeit und Frequenz | SISO-LTI-Modell |
Frequency Weights Vector | Frequenz | Frequenzgewichte, angegeben als Spaltenvektor mit der gleichen Länge wie der Frequenzvektor |
Nehmen Sie zum Beispiel an, dass Sie eine Schätzung mit SISO-Frequenzdomänendaten durchführen und in Ihrem MATLAB-Workspace ein Spaltenvektor W mit den Frequenzgewichten für den Vorfilter enthalten ist. Wählen Sie im Task den Menüpunkt Weighting prefilter > Frequency weights vector und die Variable W.
Visualisieren von Ergebnissen
Plotten Sie einen Vergleich zwischen dem Modellausgang und den ursprünglichen Messdaten zusammen mit dem Anpassungsprozentsatz. Wenn Sie über separate Validierungsdaten verfügen, wird in einem zweiten Diagramm die Modellreaktion auf die Validierungseingangsdaten mit der gemessenen Ausgabe aus dem Validierungsdatensatz verglichen.
Versionsverlauf
Eingeführt in R2019bSie können nun ein System schätzen, das eine Nichtlinearität ohne wohldefinierten Gradienten hat, indem Sie Pattern Search als Search Method wählen. Diese Methode erfordert eine Global Optimization Toolbox-Software.
Der Live Editor Task Estimate Process Model (Prozessmodell schätzen) unterstützt jetzt Daten aus mehreren Experimenten.
Der Task wird aktualisiert, um Zeitdomänendaten in Form eines Timetable zu akzeptieren. Der Task akzeptiert weiterhin auch numerische Zeitdomänendaten, und zwar mit der Datentyp-Option Numeric.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)