[A] Simulink
-
Bisher nur temporäres Zeugs, Feedback sinnfrei.
TAG_BEGIN
1 Einleitung
Simulink ist eine Umgebung zur grafischen Modellierung von Systemen. Dabei ist es ein Aufsatz für Matlab(tm), weswegen es auch häufig als Matlab/Simulink(tm) bezeichnet wird. Obwohl sich Simulink(tm)
nicht nur für die Modellierung technischer Systeme eignet, ist dies dennoch das häufigste Einsatzgebiet und deswegen liegt auch der Fokus dieses Artikels auf eben solchen.Die modellierten Systeme können direkt in Simulink simuliert werden. Es gibt gibt aber auch Erweiterungen mit welchen Quellcode, in der Regel C, für ein bestimmtes Zielsystem, genannt Target, generiert werden kann. Dieser Artikel beschränkt sich auf die Simulation. Vielmehr soll die Arbeitsweise mit dem Werkzeug anhand von kleinen aber realen Anwendungsbeispielen vorgestellt werden. Ganz ohne mathematische, signaltechnische Grundlagen geht dies zwar nicht, es wird aber auf ausführliche Herleitungen verzichtet.
2 Grundlagen
2.1 Differenzierung kontinuierlich/diskret
Analoge Signale (z.B. Spannungen) sind wert-und zeitkontinuierlich. Das heisst, dass ein analoges Signal zu jedem Zeitpunkt t jeden möglichen Wert x(t) haben kann.
Bild 2.1-1: Signal zeit- und wertkontinuierlichDies kann ein digital arbeitender Rechner nicht verarbeiten, die Signale werden mit einem Analog/Digital-Wandler in ein dem Computer verständliches Format gewandelt.
Zuerst wird das Signal durch den Abtastvorgang diskretisiert. Dabei wird vom A/D-Wandler zu bestimmten (in der Regel äquidistanten) Zeitpunkten der Wert des analogen Signals abgetastet (sampling). Dadurch wird das Signal zeitdiskret, bleibt aber immer noch wertkontinuierlich.
Bild 2.1-2: Signal zeitdiskret, wertkontinuierlichDurch die abschliessende Wandlung wird nun der Wertebereich eingeschränkt, quantisiert.
Bild 2.1-3: Signal zeit-und wertdiskretTAG_END
Ein paar Formeln...
Ein bißchen Code...
[i]% sample time and frequency[/i] t_sample = 0.01; f_sample = 1 / t_sample; [i]% filter design values[/i] omega_c = 2; [i]% calculation of intermediate values [/i] K = tan( (omega_c * t_sample) / 2 ); coeff_denom = 1 + (sqrt(2) * K) + (K^2); [i]% calculation of filter coefficients[/i] a0 = K^2 / coeff_denom; a1 = 2 * a0; a2 = a0; b1 = (2 * (K^2 - 1)) / coeff_denom; b2 = (1 - (sqrt(2) * K) + K^2) / coeff_denom;
Mal ein Bild...
-
beahndelst du die S-Functions oder "nur" die Simulationsoberflaeche
-
mosta schrieb:
beahndelst du die S-Functions oder "nur" die Simulationsoberflaeche
In diesem Artikel werde ich definitiv nur die normale Oberfläche behandeln. S-Functions werden bestimmt kurz erwähnt, aber mehr nicht. Wieso? Willst einen Artikel dazu schreiben? *g*
-
Wenn man irgendwan mal wieder zeit hat dann schon aber eher nicht