Konvertierung der Modellrate
Konvertieren von Modellen zwischen kontinuierlicher Zeit und diskreter Zeit und erneutes Abtasten von Modellen im Live-Editor
Seit R2019b
Beschreibung
Mit Convert Model Rate können Sie ein LTI-Modell interaktiv zwischen kontinuierlicher Zeit und diskreter Zeit konvertieren. Sie können damit außerdem ein zeitdiskretes Modell erneut abtasten. Der Task generiert automatisch MATLAB®-Code für Ihr Live-Skript.
Um den Task Convert Model Rate zu starten, wählen Sie das Modell aus, das Sie konvertieren möchten. Zudem können Sie die Zielabtastzeit, die Konvertierungsmethode und andere Parameter angeben. Der Task erzeugt das konvertierte Modell im MATLAB-Workspace und kann ein Antwortdiagramm erzeugen, mit dem Sie die Übereinstimmung zwischen dem ursprünglichen und dem konvertierten Modell überwachen können, während Sie mit den Konvertierungsparametern experimentieren.
Öffnen Sie die Aufgabe
Zum Hinzufügen des Task Convert Model Rate zu einem Live-Skript im MATLAB-Editor:
Wählen Sie auf der Registerkarte Live Editor die Option Task > Convert Model Rate.
Geben Sie in einen Code-Block in Ihrem Skript ein entsprechendes Schlüsselwort ein, z. B.
convert
,rate
oderc2d
. Wählen SieConvert Model Rate
aus den vorgeschlagenen Befehlsergänzungen.
Beispiele
Diskretisieren eines Modells im Live-Editor
Verwenden Sie den Task Convert Model Rate im Live-Editor, um ein Modell interaktiv von kontinuierlicher Zeit in diskrete Zeit zu konvertieren. Experimentieren Sie mit verschiedenen Methoden, Optionen und Antwortdiagrammen. Der Task erzeugt automatisch Code entsprechend der von Ihnen getroffenen Auswahl. Öffnen Sie dieses Beispiel, um ein vorkonfiguriertes Skript mit dem Task Convert Model Rate zu sehen.
Erstellen Sie ein zeitkontinuierliches Transferfunktions-Modell.
G = tf([1 -50 300],[1 3 200 350]);
Zum Diskretisieren des Modells öffnen Sie den Task Convert Model Rate im Live-Editor. Wählen Sie auf der Registerkarte Live Editor die Option Task > Convert Model Rate aus. Wählen Sie im Task G
als das zu konvertierende Modell.
Der Task diskretisiert das Modell automatisch unter Verwendung der Standard-Abtastzeit von 0,2 s und der Standard-Konvertierungsmethode Zero-order hold
. Außerdem wird ein Bode-Diagramm erstellt, in dem Sie die Antworten des ursprünglichen und des konvertierten Modells vergleichen können.
Die vertikale Linie im Diagramm zeigt die Nyquist-Frequenz, die mit der Standardabtastzeit verbunden ist. Angenommen, Sie möchten eine Abtastzeit von 0,15 Sekunden verwenden. Ändern Sie die Abtastzeit, indem Sie den neuen Wert in das Feld Sample Time eingeben. Das Antwortdiagramm wird automatisch aktualisiert, um die neue Abtastzeit zu berücksichtigen.
Wenn die genaue Dynamik der Resonanz für Ihre Anwendung wichtig ist, können Sie die Frequenzbereichsanpassung mit einer anderen Konvertierungsmethode verbessern. Versuchen Sie in diesem Task, verschiedene Methoden auszuprobieren, und beobachten Sie deren Auswirkungen auf das Antwortdiagramm.
Mit der Tustin-Methode kann eine bessere Übereinstimmung im Frequenzbereich erzielt werden als mit der Standard-Methode der Haltefunktion nullter Ordnung. (Siehe Continuous-Discrete Conversion Methods.) Wählen Sie unter Select Conversion Method die Option Bilinear (Tustin) approximation
aus. Anfangs ist die resultierende Übereinstimmung im Frequenzbereich schlechter als bei der Halte-Methode nullter Ordnung.
Sie können die Übereinstimmung mithilfe einer Vorverzerrungs-Frequenz verbessern. Diese Option erzwingt die Anpassung der zeitdiskreten Reaktion an die von Ihnen angegebene Frequenz. Die Resonanz von G
erreicht ihren Höhepunkt bei etwa 14 rad/s. Geben Sie diesen Wert für die Vorverzerrungs-Frequenz ein. Die Übereinstimmung verbessert sich in der Nähe der Resonanz. Die Resonanz liegt jedoch sehr nahe an der Nyquist-Frequenz für die Abtastzeit von 0,15 s, was die Genauigkeit der Anpassung einschränkt.
Der Task Convert Model Rate kann andere Arten von Antwortdiagrammen erzeugen. Um beispielsweise die Zeitbereichsantworten des ursprünglichen und des konvertierten Modells zu vergleichen, wählen Sie in Output Plot die Option step
oder impulse
.
Der Task generiert Code in Ihrem Live-Skript. Der generierte Code gibt die von Ihnen ausgewählten Parameter und Optionen wieder und enthält Code zur Erzeugung des von Ihnen angegebenen Antwortdiagramms. Zum Anzeigen des generierten Codes klicken Sie auf Show code unten im Parameterbereich des Task. Der Task wird erweitert, um den generierten Code anzuzeigen.
Standardmäßig verwendet der generierte Code sysConverted
als Namen der Ausgangsgröße, d. h. des konvertierten Modells. Wenn Sie einen anderen Namen für die Ausgangsgröße festlegen möchten, geben Sie den neuen Namen in die Zusammenfassungszeile oben in dem Task ein. Ändern Sie den Namen beispielsweise in sys_d
.
Der Task aktualisiert den generierten Code, um den neuen Namen der Ausgangsgröße anzuzeigen, und das neue konvertierte Modell sys_d
erscheint im MATLAB-Workspace. Sie können das Modell wie jedes andere Modellobjekt für weitere Analysen oder den Entwurf von Regelungen verwenden. Simulieren Sie z. B. die Antwort des konvertierten Systems auf eine Rechteckwelleneingabe. Verwenden Sie die von Ihnen in dem Task angegebene Abtastzeit.
[u,t] = gensig('square',4,10,0.15);
lsim(sys_d,u,t)
Parameter
Modell
— Zu konvertierendes Modell
LTI-Modell
Wählen Sie ein LTI-Modell aus. Die Liste enthält alle geeigneten zeitkontinuierlichen oder zeitdiskreten dynamischen Systemmodelle im MATLAB-Workspace, einschließlich:
numerische LTI-Modelle wie
tf
-,ss
- oderzpk
-Modelle.identifizierte LTI-Modelle wie
idss
undidtf
. (Für die Verwendung von identifizierten Modellen ist eine Lizenz für System Identification Toolbox™ erforderlich.)
Sie können SISO- oder MIMO-Modelle mit oder ohne Zeitverzögerungen konvertieren, wobei einige Konvertierungsmethoden nur für SISO-Modelle verfügbar sind (siehe Beschreibung der Method-Parameter). Mit der Funktion Convert Model Rate können Sie keine verallgemeinerten LTI-Modelle wie genss
oder uss
, Frequenzgangdatenmodelle wie frd
oder Prozessmodelle (idproc
) konvertieren.
Abtastzeit
— Ziel-Abtastzeit
0.2 (Standardeinstellung) | 0 | positiver Skalar
Geben Sie die Abtastzeit des konvertierten Modells in Einheiten von 1/TimeUnit
an, wobei TimeUnit
die TimeUnit
-Eigenschaft des Eingabemodells ist.
Zum Diskretisieren eines zeitkontinuierlichen Modells oder zur Neuabtastung eines zeitdiskreten Modells geben Sie die Ziel-Abtastzeit ein.
Wenn Sie ein zeitdiskretes Modell in ein zeitkontinuierliches umwandeln möchten, geben Sie 0 ein.
Methode
— Methode zur Ratenkonvertierung
Zero-order hold
(Standardeinstellung) | First-order hold
| Bilinear (Tustin) approximation
| ...
Wählen Sie eine Methode zur Ratenkonvertierung aus. Folgende Methoden sind verfügbar:
Zero-order hold
First-order hold
Impulse-invariant discretization
(Konvertierung von kontinuierlich zu diskret nur bei SISO-Modellen)Bilinear (Tustin) approximation
Zero-pole matching method
Least-squares method
(Konvertierung von kontinuierlich zu diskret nur bei SISO-Modellen)
Weitere Informationen zur Auswahl einer Konvertierungsmethode finden Sie unter Continuous-Discrete Conversion Methods.
Verzögerungsordnung
— Approximieren der Ordnung für die Schätzung der Zeitverzögerung
0 (Standardeinstellung) | positive ganze Zahl
Wenn Sie die Rate eines Modells mit Zeitverzögerung konvertieren, runden die Methoden Bilinear (Tustin) approximation
oder Zero-pole matching method
die Zeitverzögerung auf das nächste ganzzahlige Vielfache der Abtastzeit. Diese Rundung kann die Genauigkeit der Dynamik beeinträchtigen, insbesondere nahe der Nyquist-Frequenz.
Wählen Sie für Delay Order eine ganze Zahl ungleich Null, damit Convert Model Rate den Bruchteil der Verzögerung mithilfe eines Thiran-Filters näherungsweise ermittelt, anstatt zu runden. Verwenden Sie den kleinsten Wert, der eine ausreichend genaue ratenkonvertierte Dynamik für Ihre Anwendung ergibt. Weitere Informationen zu Thiran-Filtern finden Sie unter thiran
.
Vorverzerrungs-Frequenz (rad/s)
— Vorverzerrungs-Frequenz für die bilineare Methode (Tustin-Methode)
0 (Standardeinstellung) | positiver Skalar
Wenn Sie ein zeitkontinuierliches Modell diskretisieren und Ihr System bei einer bestimmten Frequenz wichtige Dynamiken aufweist, die bei der Ratenkonvertierung erhalten bleiben sollen, können Sie die Methode Bilinear (Tustin) approximation
mit Vorverzerrung der Frequenz (Prewarping) verwenden. Diese Methode gewährleistet eine Übereinstimmung zwischen den ursprünglichen und den konvertierten Antworten bei der von Ihnen angegebenen Vorverzerrungs-Frequenz. Siehe Continuous-Discrete Conversion Methods.
Ausgangsdiagramm
— Art des Antwortdiagramms
Bode
(Standardeinstellung) | Step
| Impulse
| ...
Die Funktion Convert Model Rate erzeugt automatisch ein Antwortdiagramm, mit dem Sie überprüfen können, ob die für Ihre Anwendung wichtigen Dynamiken erhalten bleiben. Legen Sie eine der folgenden Arten von Antwortdiagrammen fest, um die Antworten des ursprünglichen und des konvertierten Modells zu vergleichen, während Sie mit den Konvertierungsparametern experimentieren.
Bode
Step
Impulse
Pole-Zero
Der von dem Task generierte Code enthält Code zur Erstellung des ausgewählten Antwortdiagramms. Wenn Sie das Antwortdiagramm weglassen möchten, wählen Sie None
.
Versionsverlauf
Eingeführt in R2019b
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)