Open-Source-Alternative zu Matlab/Simulink Technische Systeme mit Scilab und Xcos simulieren

Ein Gastbeitrag von Prof. Dr.-Ing. Jörg Böttcher 6 min Lesedauer

Anbieter zum Thema

Die Simulation technischer Prozesse ist ein Eckpfeiler der modernen Entwicklung. Während kommerzielle Pakete oft hohe Lizenzkosten verursachen, bietet das Open-Source-Tool Scilab mit seiner grafischen Erweiterung Xcos eine leistungsstarke, kostenfreie Alternative. Dieser Beitrag zeigt, wie Ingenieure damit komplexe Systeme modellieren und analysieren können.

Simulation: Die Simulation technischer Prozesse ist die Grundlage der Elektronikentwicklung. Scilab und Xcos sind Open-Source-Alternativen zu Matlab/Simulink. (Bild:  frei lizenziert /  Pixabay)
Simulation: Die Simulation technischer Prozesse ist die Grundlage der Elektronikentwicklung. Scilab und Xcos sind Open-Source-Alternativen zu Matlab/Simulink.
(Bild: frei lizenziert / Pixabay)

Scilab wurde ursprünglich als Open-Source-Alternative zu MATLAB konzipiert. Das spiegelt sich nicht nur in der Syntax, sondern auch in der Philosophie des Tools wider. Während Scilab die rechnerische Basis liefert, dient Xcos als grafische Oberfläche für die Simulation und ist das Pendant zum bekannten Simulink. Xcos ist ein fester Bestandteil der Scilab-Installation und ermöglicht die Modellierung über Signalflusspläne.

Die Simulation über Scilab-Konsolenbefehle

Bild 1: Eine Simulation mit Scilab-Konsolenbefehlen.(Bild:  Prof. Böttcher)
Bild 1: Eine Simulation mit Scilab-Konsolenbefehlen.
(Bild: Prof. Böttcher)

Innerhalb der Befehlszeilen-orientierten Bedienkonsole von Scilab lassen sich technische Prozesse simulieren, insofern eine mathematische Beschreibung dieser vorliegt. Letzteres ist typischerweise eine Laplace-Übertragungsfunktion. Auf andere in der Systemtheorie verwendeten Systembeschreibungen wie beispielsweise die Zustandsraumbeschreibung (State Space Model) wollen wir hier nicht weiter eingehen. Bild 1 zeigt, wie eine solche Übertragungsfunktion zunächst definiert werden kann.

Dazu wird zunächst s als komplexe Frequenz definiert und anschließend eine mit s als Variablen arbeitende Übertragungsfunktion. Mit dem Befehl syslin wird daraus die systemintern benötigte Darstellung eines linearen Systems generiert. Die weiteren Befehle dienen der Erzeugung von Sprungantwort, Bode-Diagramm und Nyquist-Diagramm. Speziell für die Sprungantwort steht kein eigenständiger Befehl zur Verfügung, diese muss vielmehr über expliziten Aufruf eines Simulationslaufs (noch ohne Xcos) per csim-Befehl berechnet werden.

Per csim lassen sich Systemantworten auf beliebige Eingangssignale berechnen, insofern diese zuvor mit entsprechenden Konsolenbefehlen definiert wurden. Konsolenbefehle, die mit einem Semikolon enden, werden in ihrem Ergebnis übrigens nicht angezeigt, was in der Befehlssequenz des Bildes an einigen Stellen gemacht wurde, um zu lange Zeichenkolonnen im Konsolenfenster zu vermeiden.

Exkurs: Der Weg zur Übertragungsfunktion

Bild 2: Systemdifferenzialgleichungen zu technischen Prozessen.(Bild:  Prof. Böttcher)
Bild 2: Systemdifferenzialgleichungen zu technischen Prozessen.
(Bild: Prof. Böttcher)

Durch Einsetzen der mathematisch formulierten physikalischen Zusammenhänge eines technischen Systems mit einer möglichen Linearisierung nichtlinearer Zusammenhänge um einen Arbeitspunkt lässt sich eine lineare Differentialgleichung zu diesem System ermitteln, insofern man sich um den Zusammenhang zwischen einem Eingangs- und einem Ausgangssignal interessiert. Bild 2 zeigt zwei Beispiele. Im linken Teilbild wird eine Masse m über einen Dämpfer mit dem Dämpfungsbeiwert d in einer Dimension beschleunigt. Eingangsgröße ist die Positionsänderung xe, welche durch eine Krafteinwirkung f bewirkt wird. Im Ergebnis soll f jedoch nicht weiter interessieren. Ausgangsgröße sei die dabei beobachtete Positionsänderung xa der Masse selbst. Das rechte Teilbild zeigt ein aus drei Elementen bestehendes bekanntes elektrisches System, einen Serienschwingkreis.

Allgemein hat eine solche lineare Differentialgleichung die Form:

(Bild:  Prof. Böttcher)
(Bild: Prof. Böttcher)

Die Laplace-Rechnung zeigt, dass dieser Zusammenhang auch im Laplace-Spektrum (mit der komplexen Laplace-Frequenz s) durch die Übertragungsfunktion F(s) dargestellt werden kann:

(Bild:  Prof. Böttcher)
(Bild: Prof. Böttcher)

Für die Simulation ist es lediglich wichtig zu wissen, dass die Koeffizienten der Differentialgleichung einfach an die entsprechenden Stellen im Zähler und Nenner der Übertragungsfunktion übertragen und exakt so im Scilab-Konsolenbefehl eingegeben werden.

Grafische Modellierung in Xcos

Bild 3: Simulation mit Signalflussplan in Xcos.(Bild:  Prof. Böttcher)
Bild 3: Simulation mit Signalflussplan in Xcos.
(Bild: Prof. Böttcher)

Der Weg zur grafischen Simulation führt in Xcos über den Signalflussplan (Bild 3). Hierzu stellt die Software neben dem Editor-Fenster eine umfassende Bibliothek an Funktionsblöcken in verschiedenen Paletten bereit. Für die Modellierung sind insbesondere die Paletten „Quellen“ (Sources) zur Signalerzeugung sowie „Senken“ (Sinks) zur Signalausgabe und Visualisierung essenziell.

Das Beispiel des Serienschwingkreises verdeutlicht den Aufbau: Als Eingangssignal dient ein Sprunggenerator, während die Ergebnisse in einem „Scope“ (Oszilloskop-Block) dargestellt werden. Um Ein- und Ausgangssignale für einen direkten Vergleich zu überlagern, wird ein Multiplexer aus der Palette „Signal Routing“ vorgeschaltet. Eine Besonderheit in Xcos ist die Ansteuerung des Scopes: Dieses wird über einen separaten Eingang durch eine „Event Clock“ getriggert, die den Takt für die Datenübernahme aus der laufenden Simulation vorgibt.

Konfiguration und Solver-Auswahl

Bild 4: Simulationsparameter in Xcos.(Bild:  Prof. Böttcher)
Bild 4: Simulationsparameter in Xcos.
(Bild: Prof. Böttcher)

Bevor der Simulationslauf gestartet werden kann, ist eine präzise Parametrierung erforderlich (Bild 4). Im Menüpunkt „Simulation“ muss zwingend die Endzeit (im Beispiel 0,01 s) definiert werden. Während einfache Modelle oft mit den Standardeinstellungen operieren, erfordern komplexe Systeme oder hochdynamische Analysen tiefere Eingriffe in die Simulationsparameter.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Dies betrifft vor allem die Wahl des passenden Gleichungslösers (Solver). Je nach Modellcharakteristik stehen unterschiedliche numerische Verfahren zur Verfügung, die sich in ihrem Rechenaufwand und ihrer Eignung für spezifische Probleme (z. B. „steife“ Differentialgleichungen) unterscheiden. Die korrekte Auswahl ist hier entscheidend, um ein optimales Gleichgewicht zwischen Rechenzeit und numerischer Genauigkeit zu erzielen.

Parametrierung von Scope und Zeitbasis

Zusätzlich zu den globalen Parametern sind spezifische Einstellungen direkt im Signalflussplan erforderlich. Beim Scope muss neben der Y-Achsen-Skalierung vor allem der Zeitbereich definiert werden. In der Praxis ist es sinnvoll, den Endpunkt der Zeitachse (hier 0,01 s) mit der zuvor festgelegten Simulationsendzeit zu synchronisieren.

Die Datenerfassung wird über die Event Clock gesteuert: Ein eingestellter Intervall von 0,00001 s bewirkt, dass das Scope in diesem Rhythmus neue Werte aus der Simulation übernimmt. Da im vorliegenden Modell ein Multiplexer genutzt wird, erfasst das Scope simultan jeweils einen Wert für das Eingangs- und das Ausgangssignal. Nach dem Start der Simulation über die Toolbar (Startpfeil) generiert das System somit eine Datenreihe von insgesamt 1.000 Werten pro Signal (0,01 s Simulationszeit / 0,00001 s Abtastrate), wie in Bild 4 dargestellt.

Analyse im Frequenzbereich

Bild 5: Übertragen eines Xcos-Modells in Scilab.(Bild:  Prof. Böttcher)
Bild 5: Übertragen eines Xcos-Modells in Scilab.
(Bild: Prof. Böttcher)

Für Auswertungen im Frequenzbereich bietet Xcos derzeit keine direkte Ein-Klick-Lösung innerhalb der grafischen Oberfläche. Die Analyse erfolgt stattdessen über die Scilab-Konsole (Bild 5). Hierzu wird das Xcos-Modell zunächst als sogenannte Superblock (ein gekapseltes Untersystem) gespeichert.

Der anschließende Workflow in der Konsole umfasst zwei Schritte:

  • Import: Über den Befehl xcosDiagramToScilab wird das grafische Modell eingelesen.
  • Linearisierung: Mit dem Befehl lincos wird das Modell linearisiert, was die Voraussetzung für die klassische Systemanalyse ist.

Im Anschluss können die Befehle für Bode- und Nyquist-Diagramme genutzt werden. Diese lassen sich über zusätzliche Parameter präzise steuern. Das kann zum Beispiel zur Definition des darzustellenden Frequenzbereichs sein. Speziell beim Nyquist-Diagramm ermöglicht die Kennung %f (false), die Anzeige negativer Frequenzen zu unterdrücken, um die Übersichtlichkeit der Darstellung zu erhöhen.

Bedeutung der Linearisierung mit „lincos“

Der Befehl lincos ist ein entscheidendes Werkzeug für die Systemanalyse, da er die Linearisierung von Xcos-Modellen mit nichtlinearen Anteilen ermöglicht. Da Frequenzgänge systemtheoretisch ausschließlich für lineare Systeme definiert sind, überführt lincos das Modell in eine kompatible interne Darstellung.

Bei Modellen, die bereits linear aufgebaut sind, ändert dieser Befehl lediglich die interne Repräsentation, ohne das Systemverhalten zu beeinflussen. Bei der Linearisierung explizit nichtlinearer Modelle bietet lincos zudem die Möglichkeit, über zusätzliche Parameter einen spezifischen Arbeitspunkt zu definieren, um den herum die Linearisierung erfolgen soll. Das ist eine essenzielle Funktion für die Analyse realer technischer Systeme.

Vom mathematischen Modell zum Signalflussplan

Bild 6: Ermitteln eines Signalflussplans aus Systemdifferenzialgleichungen.(Bild:  Prof. Böttcher)
Bild 6: Ermitteln eines Signalflussplans aus Systemdifferenzialgleichungen.
(Bild: Prof. Böttcher)

Wie erfolgt der Transfer von einer mathematischen Beschreibung hin zum grafischen Modell? Am Beispiel des Serienschwingkreises (Bild 6) lässt sich das systematische Vorgehen verdeutlichen:

  • 1. Umformung: Die Systemgleichung wird zunächst so nach der Ausgangsgröße aufgelöst, dass im Ergebnis ausschließlich Integrationen und keine Ableitungen mehr vorkommen. Dies ist für die numerische Stabilität in der Simulation von entscheidender Bedeutung.
  • 2. Grafische Umsetzung: Ausgehend vom Ausgangssignal ua(t) werden die benötigten mathematischen Operationen (Integrationen, Summierungen, Verstärkungen) aus der Tool-Palette entnommen und schrittweise verdrahtet.

Flexibilität in der Granularität

Entwickler haben bei der Modellbildung in Xcos volle Freiheit bezüglich der Detailtiefe (Granularität). Während ein Aufbau aus Elementaroperationen (Bild 6) eine hohe Transparenz der internen Abläufe bietet, kann ein komplexes System auch kompakt als ein einziger Block dargestellt werden. Hierfür bieten sich zwei Wege an:

  • Superblocks: Hierbei wird ein Teilmodell gekapselt und kann als Unterblock in übergeordnete Modelle integriert werden.
  • Laplace-Transferfunktion-Block: Alternativ lässt sich das Übertragungsverhalten direkt über einen Standardblock definieren. In diesem Fall müssen lediglich die Zähler- und Nennerkoeffizienten der Übertragungsfunktion als Parameter hinterlegt werden – analog zur Vorgehensweise bei den zuvor beschriebenen Scilab-Konsolenbefehlen.

Prof. Dr.-Ing. Jörg Böttcher von der Universität der Bundeswehr in München hat passend zu den Schwerpunkten dieses Beitrags mehrere praxisnahe Fachbücher veröffentlicht. Diese sind in der Reihe „Basiswissen für die intelligente Systemautomatisierung“ (Verlag Books on Demand) erschienen. Details finden Sie auf der Webseite. (heh)

* Prof. Dr.-Ing Jörg Böttcher hat eine Professur für Regelungstechnik und Elektrische Messtechnik an der Universität der Bundeswehr München inne.

(ID:50864709)