Kontinuierliche und diskrete Systeme

Kontinuierliche und diskrete Systeme Analoge Signale existieren zu jedem Zeitpunkt. Um ein analoges (kontinuierliches) Signal zu erzeugen, verwendet m...
Author: Anton Koch
6 downloads 0 Views 70KB Size
Kontinuierliche und diskrete Systeme Analoge Signale existieren zu jedem Zeitpunkt. Um ein analoges (kontinuierliches) Signal zu erzeugen, verwendet man entweder eine rein kontinuierliche Quelle („Signal Generator“ oder „Constant“) oder eine allgemeine Quelle mit der Einstellung „Sample Time = 0“. Die meisten signalverarbeitenden Blöcke erben das Zeitverhalten von ihrem Eingangssignal, können also sowohl diskrete als auch kontinuierliche Signale verarbeiten. Die Blöcke der Teilbibliothek „Continuous“ akzeptieren diskrete Eingangssignale, geben aber am Ausgang auf jeden Fall ein kontinuierliches Signal aus. Dass Simulink intern immer mit diskreten Zeiten arbeitet, erkennt man im folgenden Modell, wo eine Treppe mit den Werten 1 bis 5 nach der Zeit abgeleitet („Derivative“) wird.

Kontinuierliche Ableitung

Die Ableitung an einer Sprungstelle hängt vom gewählten Zeitschritt ab.

1:5

du/dt

Signal From Workspace

Derivative

Scope

Der Wert der Ableitung hängt vom beliebig gewählten Zeitschritt ab (Menü Simulation/Simulation Parameters/Max Step Size)

Simulink 2

Weitere Hinweise: • Die Quelle „Signal From Workspace“ kann Variablen aus Matlab importieren, aber auch einen angegebenen Signalvektor ausgeben. • Das „Scope“ kann beliebig viele Eingänge/Achsen erhalten. Mit Rechtsklick auf die Achsen kann man den Wertebereich einstellen. • Ein Doppelklick an beliebiger Stelle im Modell öffnet dort ein Kommentarfeld. Das Feld kann mit beliebigem Font, Farben und Rand/Schatten formatiert werden. Auch Tex-Ausdrücke (z.B. x_i oder x^2 für xi bzw. x²) sind optional möglich. In den meisten Blöcken, die nur diskrete Signale verarbeiten, lässt sich die Abtastzeit angeben. Ist das Eingangssignal kontinuierlich, dann muss man einen Wert „Sample time“ > 0 wählen. Bei diskreten Signalen kann die Abtastzeit mit „Sample Time“ = -1 geerbt werden. Einige Blöcke wie „Digital Filter“ oder „Upsample“ akzeptieren nur diskrete Eingangssignale. Ein kontinuierliches Signal kann mit dem „Zero-Order Hold“ in ein diskretes Signal gewandelt werden.

2 Signal Generator (continuous)

Simulink 2

Zero-Order Hold (Ts = 0.05)

Upsample Upsample fügt 0 zwischen Werten ein

Scope

Vektorsignale Mehrere Signale kann man zu einem Bündel (Vektor) zusammenfassen mit dem Block „Mux“. Viele Blöcke können Signalvektoren verarbeiten. „Scope“ zeigt die verschiedenen Komponenten des Signalvektors in einem einzigen Diagramm.

sin(t)

2

1 s

2

4 Gain

2

Integrator

Scope

sin(1.1*t)

(Anzeige der Signaldimension mit Menü Format/Signal Dimensions)

Quellen oder signalverarbeitende Blöcke, die man mit Vektorargumenten parametriert, produzieren ebenfalls Vektorsignale.

2

Sine Wave

2

4 Gain

num(s)

Scope

2

s sin(t)

Transfer Fcn

Scope

Hinweis: Ein Vektorsignal wird mit dem „Demux“-Block wieder in seine Komponenten zerlegt.

Simulink 2

Samples und Frames Der einzelne Abtastwert zu einem bestimmten Zeitpunkt heißt Sample. Im Normalfall wird in jedem Zeitpunkt von jedem Signal genau ein Sample verarbeitet. Das ist für die Simulation nicht günstig, denn beim Weiterreichen von Signalen zwischen Blöcken werden zusätzliche Informationen übertragen, so dass ein großer Overhead entsteht, wenn jeweils nur ein Sample übertragen wird. Besser ist es, mehrere Samples zu einem „Frame“ zusammenzufassen, der dann in einem Stück verarbeitet und zum nächsten Block weitergeleitet wird (vgl. in Matlab: for-Schleife gegenüber Vektoroperation, oder Hardware-Schnittstellen: blockweise Übertragung von Werten).

Im Beispiel werden zwei Signale erzeugt (Block „Signal From Workspace“) t ch1 ch2

0 1 1

1 2 1

2 3 0

3 4 0

4 5 1

5 6 1

6 7 0

7 8 0

8 9 1

9 10 1

Bereits in der Quelle werden je 4 Samples zu einem Frame kombiniert. Daten werden nur noch zu jedem 4. Abtastzeitpunkt übertragen (t = 0, t = 4, t = 8; siehe Bild). t ch1 ch2

0 {1,2,3,4} {1,1,0,0}

4 {5,6,7,8} {1,1,0,0}

8 {9,10,0,0} {1,1,0,0}

Durch die Bildung eines Frames ändert sich also die Abtastrate (hier von 1 Hz auf 4 Hz).

Simulink 2

Der Block „Buffer“ sammelt einzelne Samples zu Frames zusammen. Die Abtastrate am Ausgang ist entsprechend kleiner. „Buffer“ kann auch vorhandene Frames in neue Frames einteilen. Ein Vektorsignal (interpretiert als ein Bündel von unabhängigen Signalen) kann mit „To Frame“ in einen Frame umgewandelt werden. In Hardware entspricht das einem Parallel-SeriellWandler. „Magnitude FFT“ verarbeitet Frames als Eingangssignal (die Framegröße kann dann als FFTGröße dienen) und liefert am Ausgang das Ergebnis der FFT als Vektorsignal. Mit „To Frame“ wird daraus wieder ein einzelnes Signal, aber in Frames eingeteilt. Einige Blöcke wie z.B. das Scope können nur einzelne Samples verarbeiten. Zum Umwandeln eines Frames in einzelne Samples gibt es den „Unbuffer“-Block.

Umwandlung zwischen Samples, Frames und Vektoren

[128x1]

|FFT|

2

[128x1]

Sine Wave Buffer Ts = 1/128

[128x1]

Frame Status Conversion

Magnitude FFT 64 samples -> 1 Frame

To Frame

Vektor 64 Signale

64 samples -> 1 Frame

Scope

Unbuffer samples

Hinweis: Mit dem Menüpunkt „Format/Sample Time Colors“ werden im Modell Blöcke und Signale mit gleicher Abtastrate farblich gleich gekennzeichnet. Die Framegröße wird mit „Format/Signal Dimensions“ angezeigt.

Simulink 2