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: