Festlegen der Abtastzeit
Zuweisen von Abtastzeiten
Simulink® ermöglicht es Ihnen, eine Block-Abtastzeit direkt als numerischen Wert oder symbolisch über die Definition eines Abtastzeit-Vektors anzugeben. Der Abtastzeitwert muss ein double
oder ein Zwei-Elemente-Array von double
sein, das den Abtastzeitraum und -Versatz enthält. Bei einer diskreten Abtastzeit ist der Vektor [Ts
,
], wobei To
der Abtastzeitraum und Ts
der anfängliche Zeitversatz ist. Nehmen wir beispielsweise ein diskretes Modell, das alle zwei Sekunden seine Ausgaben erzeugt. Wenn die Basis-Zeiteinheit Sekunden ist, können Sie die diskrete Abtastzeit direkt festlegen, indem Sie den numerischen Wert To
2
als SampleTime
-Parameter festlegen. Da der Versatzwert Null ist, müssen Sie ihn nicht festlegen; Sie können jedoch [2,0
] in das Feld Sample time eingeben.
Bei nicht diskreten Blöcken sind die Komponenten des Vektors symbolische Werte, die einen der Typen in Types of Sample Time darstellen. In der folgenden Tabelle sind diese Typen und die entsprechenden Abtastzeit-Werte zusammengefasst. Die Tabelle definiert zudem die explizite Natur der Abtastzeittypen sowie die zugehörige Farbe und Anmerkung. Da eine vererbte Abtastzeit explizit ist, können Sie sie als [-1, 0]
oder -1
festlegen. Eine ausgelöste Abtastzeit hingegen ist implizit; nur Simulink kann die Abtastzeit [-1, -1]
zuweisen. (Weitere Informationen zu Farben und Anmerkungen finden Sie unter View Sample Time Information.)
Zuweisungen der Abtastzeit-Informationen
Typ der Abtastzeit | Abtastzeit | Anmerkung | Explizit |
---|---|---|---|
Discrete | [Ts, To] | D1, D2, D3, D4, D5, D6, D7,... Di | Ja |
Kontinuierlich | [0, 0] | Cont | Ja |
Fester kleiner Zeitschritt | [0, 1] | FiM | Ja |
Vererbt | [–1, 0] | k.A. | Ja |
Konstant | [Inf, 0] | Inf | Ja |
Variable | [–2,Tvo] | V1, V2,... Vi | Nein |
Multirate | k.A. | k.A. | Nein |
Asynchron | [–1, –n] | A1, A2,... Ai | Nein |
Datenstrom | k.A. | k.A. | Nein |
Die jedem Block zugewiesene Farbe hängt von der Abtastzeit relativ zu anderen Abtastzeiten im Modell ab. Das bedeutet, dass dieser Abtastzeit in einem übergeordneten Modell und von diesem referenzierten Modellen verschiedene Farben zugewiesen werden kann. (Siehe Modellreferenzen.)
Nehmen wir beispielsweise ein Modell, in dem drei Abtastzeiten definiert sind: 1
, 2
und 3
. Nehmen wir zudem an, dass das Modell ein weiteres Modell referenziert, das zwei Abtastzeiten definiert: 2
und 3
. In diesem Fall werden Blöcke, die mit der Abtastrate 2
ausgeführt werden, im übergeordneten Modell grün und im referenzierten Modell rot angezeigt.
Es muss darauf hingewiesen werden, dass die Blöcke Mux und Demux einfache Gruppierungs-Operatoren sind; durch diese Blöcke geleitete Signale behalten ihre Timing-Informationen bei. Daher können von einem Demux-Block ausgehende Linien verschiedene Farben haben, wenn ihre jeweiligen Quellen verschiedene Abtastzeiten aufweisen. In diesem Fall werden die Blöcke Mux und Demux hybrid (gelb) farbkodiert, um darauf hinzuweisen, dass sie Signale mit mehreren Raten verarbeiten.
Ähnlich hierzu werden Subsystem-Blöcke, die Blöcke mit verschiedenen Abtastzeiten enthalten, ebenfalls hybrid gefärbt, da mit ihnen keine einzelne Rate assoziiert ist. Wenn alle Blöcke in einem Subsystem mit einer Rate ausgeführt werden, wird der Subsystem-Block entsprechend der Rate farbkodiert.
Sie können die expliziten Abtastzeitwerte in dieser Tabelle interaktiv oder programmatisch und entweder für blockbasierte oder portbasierte Abtastzeiten verwenden.
Das folgende Modell dient als Referenz für diesen Abschnitt.
Setzen Sie in diesem Beispiel die Abtastzeit des Eingangs-Sinuswellensignals auf 0.1
. Das Ziel ist, eine Ausgangs-Abtastzeit von 0.2
zu erreichen. Der Rate Transition-Block dient als Halteglied nullter Ordnung. Auf der folgenden Abbildung ist das resultierende Blockdiagramm nach Festlegen der Abtastzeiten und Simulation des Modells angezeigt. (Farben und Anmerkungen weisen darauf hin, dass es sich um ein diskretes Modell handelt.)
ex_specify_sample_time nach Festlegen der Abtastzeiten
Interaktives Festlegen blockbasierter Abtastzeiten
Um die Abtastzeit eines Blocks interaktiv festzulegen:
Doppelklicken Sie im Simulink Modellfenster auf den Block. Das Dialogfeld „Parameters“ für den Block wird geöffnet.
Geben Sie die Abtastzeit in das Feld Sample time ein.
Klicken Sie auf OK.
Die folgende Abbildung stellt ein Parameter-Dialogfeld für den Sine Wave-Block nach Eingabe von 0.1
und das Feld Sample time dar.
Um die blockbasierten Abtastzeiten für ein gesamtes Modell festzulegen und zu betrachten, ist es ggf. empfehlenswert, den Model Data Editor zu verwenden (klicken Sie auf der Registerkarte Modeling auf Model Data Editor). Setzen Sie auf den Registerkarten Inports/Outports, Signals und Data Stores die Drop-Down-Liste Change view auf Design
und verwenden Sie die Spalte Sample Time. Weitere Informationen finden Sie unter Model Data Editor.
Interaktives Festlegen portbasierter Abtastzeiten
Der Rate Transition-Block weist portbasierte Abtastzeiten auf. Sie können die Ausgangsport-Abtastzeit interaktiv festlegen, indem Sie die folgenden Schritte ausführen:
Doppelklicken Sie auf den Rate Transition-Block. Das Parameters-Dialogfeld wird geöffnet.
Belassen Sie die Dropdown-Menü-Option Output port sample time options auf
Specify
.Ersetzen Sie den Wert
-1
im Feld Output port sample time durch0.2
.Klicken Sie auf OK.
Weitere Informationen zu den Abtastzeit-Optionen im Dialogfenster „Rate Transition Parameters“ finden Sie auf der Referenzseite Rate Transition.
Programmatisches Festlegen von blockbasierten Abtastzeiten
Um eine Block-Abtastzeit programmatisch festzulegen, setzen Sie den Parameter SampleTime
mithilfe des Befehls set_param
auf die gewünschte Abtastzeit. Um die Abtastzeit des Gain-Blocks im Modell Specify_Sample_Time auf vererbt (-1
) zu setzen, geben Sie den folgenden Befehl ein:
set_param('Specify_Sample_Time/Gain','SampleTime','[-1, 0]')
Wie bei der interaktiven Spezifikation können Sie nur die erste Vektor-Komponente eingeben, wenn die zweite Komponente Null ist.
set_param('Specify_Sample_Time/Gain','SampleTime','-1')
Programmatisches Festlegen von blockbasierten Abtastzeiten
Um die Ausgangsport-Abtastzeit des Rate Transition-Blocks auf 0.2
zu setzen, verwenden Sie den Befehl set_param
mit dem Parameter OutPortSampleTime
:
set_param('Specify_Sample_Time/Rate Transition',...'OutPortSampleTime', '0.2')
Programmatisches Zugreifen auf Abtastzeit-Informationen
Um auf alle mit einem Modell assoziierten Abtastzeiten zuzugreifen, verwenden Sie das API Simulink.BlockDiagram.getSampleTimes.
Um auf die Abtastzeit eines einzelnen Blocks zuzugreifen, verwenden Sie das API Simulink.Block.getSampleTimes.
Festlegen von Abtastzeiten für einen benutzerdefinierten Block
Sie können benutzerdefinierte Blöcke entwickeln, sodass die Eingangs- und Ausgangsports mit verschiedenen Abtastzeiten arbeiten. Informationen zur Festlegung blockbasierter und portbasierter Abtastzeiten für S-Functions finden Sie unter Specify S-Function Sample Times .
Ermitteln von Abtastzeiteinheiten
Da die Ausführung eines Simulink Modells nicht von einem bestimmten Satz Einheiten abhängt, müssen Sie die angemessene Basis-Zeiteinheit für Ihre Anwendung ermitteln und die Abtastzeitwerte entsprechend festlegen. Ist die Basis-Zeiteinheit beispielsweise Sekunden, könnten Sie eine Abtastzeit von 0.5
Sekunden darstellen, indem Sie die Abtastzeit auf 0.5
setzen.
Ändern der Abtastzeit nach Startzeit der Simulation
Um die Abtastzeit nach Beginn der Simulation zu ändern, müssen Sie die Simulation anhalten, den Parameter SampleTime
zurücksetzen und die Ausführung daraufhin erneut starten.
Verwandte Themen
- Was ist Abtastzeit?
- Types of Sample Time
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:
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
- Deutsch
- English
- Français
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本 (日本語)
- 한국 (한국어)
Contact your local office