Simulink: Einführende Beispiele

Transcription

Simulink: Einführende Beispiele
Simulink: Einführende Beispiele
Simulink ist eine grafische Oberfläche zur Ergänzung von Matlab, mit der Modelle mathematischer,
physikalischer bzw. technischer Systeme aus Blöcken mittels plug-and-play zusammengesetzt
werden können.
Ein Modell besteht mindestens aus einer Signalquelle (Teilbibliothek „Sources“) und einer
Signalsenke (Teilbibliothek „Sinks“), dazwischen findet sinnvollerweise eine Signalverarbeitung statt.
Signalquelle können z.B. Sinusgenerator, Variablen aus Matlab („From Workspace“) oder Dateien
sein („From File“). Als Senken dienen z.B. das Oszilloskop („Scope“), eine Matlab-Variable
(„To Workspace“) oder eine Datei („To File“).
Ein Signal lässt sich aus einfachen
Bausteinen zusammenbauen, z.B.
„Clock“ liefert die aktuelle
Simulationszeit t.
Mit Doppelklick auf die Sinusquelle bzw. den ProduktBlock kann man deren Parameter einstellen. Ein
„Product“ kann beliebig viele Signale multiplizieren und
dividieren, dazu gibt man unter „Number of Inputs“ die
entsprechenden Symbole * oder / ein.
Das Oszilloskop zeigt nach der Simulation
eine gedämpfte Schwingung an:
Mit „To Workspace“ wird ein Signal in eine Matlab-Variable kopiert. Als Array stellt diese Variable
einen Zeilenvektor dar, bzw. eine Matrix aus Zeilenvektoren für mehrere Kanäle. Als Struktur (mit
Zeit) kann man auf Matlab-Ebene über ysim.signals.values auf die Signalwerte und mit ysim.time
auf die Zeitwerte zugreifen.
Auch in Simulink werden keine symbolischen Berechnungen durchgeführt, sondern numerische
Werte zu bestimmten Zeitpunkten berechnet. Das gilt auch die die „kontinuierlichen“ Funktionsblöcke,
die ausgangsseitig ein kontinuierliches Signal simulieren. In den meisten Fällen muss man aber bei
der Signalquelle oder der Signalverarbeitung eine Abtastzeit TA = 1/fA explizit angeben.
Operationsverstärker
Einen idealen OPV kann man durch einen Differenzeingang und einen sehr großen
Verstärkungsfaktor simulieren.
Bei der Rückkopplung des Ausgangs auf den Eingang können im Modell Probleme entstehen, weil für
die Berechnung des Ausgangssignals zu einem bestimmten Zeitpunkt eben dieses Signal am
Eingang bereits bekannt sein muss. Simulink warnt vor dieser Situation als „Algebraic Loop“ und
versucht sie iterativ zu lösen.
Im Beispiel unten gelingt dies:
Die Berechnung einer „Algebraic Loop“ benötigt aber immer deutlich mehr Zeit, als wenn Simulink
die Lösung eines Zeitpunkts in einem Schritt berechnen kann.
Echo
Der Block „From Wave File“ liest eine Sound-Datei im Wave-Format ein; die Abtastrate ist dann
durch die Datei vorgegeben.
Der Block „Integer Delay“ verzögert sein Eingangssignal um ein ganzzahliges Vielfaches der
Abtastzeit. Eine Einsatzmöglichkeit ist ein Echo-Generator.
Bei der Rückkopplung entsteht hier keine „Algebraic Loop“, weil zur Berechnung des aktuellen
Ausgangssignals nur Werte aus der Vergangenheit benötigt werden.
Der Block „To Audio Device“ spielt ein Signal über die Soundkarte ab. Übergibt man die Werte
einzeln (direkte Kopplung an ein Signal), dann entstehen bedingt durch die Rechenzeiten in der
Simulation kurze Pausen zwischen den Tönen, das Audiosignal ist damit wertlos. Mit dem Block
„Buffer“ kann man mehrere einzelne Signalwerte zu einem Vektor zusammenfassen, der an den
nächsten Block komplett übergeben wird. Mit einem solchen Buffer kann das Audiosignal ohne
störende Verzögerungen abgespielt werden.
Filter
Ein Chirp ist ein sinusförmiges Signal, das seine Frequenz mit der Zeit ändert. Die Datei chirp3.wav
enthält einen linearen Chirp von 0 Hz bis 5,5 kHz (wegen des Shannon-Theorems ist 5,5 kHz die
maximale Frequenz, die bei der Abtastrate von ca. 11 kHz noch dargestellt werden kann). Das
Betragsspektrum eines linearen Chirps ist überall etwa gleich groß. Der Chirp eignet sich deshalb, um
Filter zu testen.
R
uE
uA
C
Im Folgenden wird ein RC-Glied untersucht. Aus der Maschengleichung
und der Kondensatorgleichung
ergibt sich für die Ausgangsspannung die Differentialgleichung
Für sinusförmige (komplexe) Signale
bzw.
gilt
(Fourier-Darstellung) und
(Laplace-Darstellung); daraus ergibt sich direkt die Übertragungsfunktion
die für kleine Frequenzen näherungsweise 1 ergibt ( → uA = uE), während größere Frequenzen immer
stärker gedämpft werden. Der Übergang zwischen dem Durchlassbereich und dem Sperrbereich
geschieht wenn RC⋅ω =1, also bei der Grenzfrequenz
. Das Verhalten entspricht einem
Tiefpass.
Ein solcher Tiefpass kann in Simulink mit dem Block „Transfer Fct“ simuliert werden. Für eine
Grenzfrequenz von 1 kHz lautet die Übertragungsfunktion 1/(0,00016⋅s + 1).
„Transfer Fct“ simuliert ein kontinuierliches Signal. Die Darstellung einer FFT im „Spectrum Scope“
erfordert aber eine Abtastung zu diskreten Zeitpunkten. Die bewirkt der Block „Zero Order Hold“.
Empfohlene Einstellungen für den Block
„Spectrum Scope“
Verschiedene Arten von Tiefpässen kann das „Analog Filter Design“ liefern: