Modellierung und Simulation - Programmstrukturen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Autor: Prof. Dr.-Ing. Schneider
Termin: 24.04.2025
Feedback: wooclap Ereigniscode: JNLXEK

Aufgabe 5.1 - Programmiergrundlagen - Schleifen und Bedingungen

  1. Schreiben Sie ein MATLAB®-Skript, das mit Hilfe einer for -Schleife die Summe der Zahlen von 1 bis 100000 berechnet (z. B. n=n+1).
  2. Schreiben Sie ein MATLAB®-Skript, das mit Hilfe einer while-Schleife die Summe die Zahlen von 1 bis 100000 berechnet.
  3. Schreiben Sie ein MATLAB®-Skript, das
    1. Einen Vektor X mit 10000 Zufallszahlen zwischen 0 und 1 erzeugt.
    2. Mit Hilfe einer for-Schleife den Index des ersten Elementes in X berechnet, das > 0.9 ist (falls ein solches existiert) und diesen Index in der Variablen x1 speichert.
    3. Mit Hilfe einer while-Schleife den Index des ersten Elementes in X berechnet, das< 0.1 ist (falls ein solches existiert) und diesen Index in der Variablen x2 speichert.
    4. Mit Hilfe von „ logical indexing" das erste Element findet, das echt zwischen 0.5 und 0.55 liegt (falls ein solches existiert) und diesen Index in der Variablen x3 speichert.

Nützliche Befehle: for, if, while, break

Aufgabe 5.2 - Programmiergrundlagen - Funktionen

  1. Schreiben Sie das MATLAB®-Skript aus Aufgabe 5.1.3 zu einer MATLAB®-Function mit dem Namen analyse um, die
    1. als Eingabeargument die Zahl n bekommt und dann
    2. einen Vektor mit n Zufallszahlen zwischen 0 und 1 erzeugt
    3. Anschließend soll die Funktion genau die Werte x1,x2 und x3 wie in Aufgabe 5.1.3 berechnen und diese als Rückgabewerte zurückliefern.
    4. Machen Sie sich anhand der Funktion analyse mit dem Setzen von „Breakpoints" und dem MATLAB®-Debugger vertraut.
  2. Schreiben Sie ein kurzes Matlab Skript start.m, mit dem Sie die Funktion analyse aufrufen. Springen Sie dabei mit einem Breakpoint in die Funktion.

Nützliche Befehle: function

Nützlicher Artikel: MATLAB function

Aufgabe 5.3 - Programmiergrundlagen - Messdaten simulieren

Abb. 1: Ausreisser in einer verrauschten Messung
  1. Schreiben Sie das Skript simuliereAussreisser.m, welche normalverteilte Spannungen (Mittelwert: 10 V, Standardabweichung: 5 V) simuliert.
  2. Die x-Achse Bildet die Zeit. Nehmen Sie den Index (1, 2, 3,...) in s.
  3. Bauen Sie zufällig einen Ausreißer in das Datenarray Spannung von 20 V ein.
  4. Zeigen Sie das Ergebnis entsprechend Abb. 1. Eine graue Gerade bildet den Mittelwert, die Messwerte sind tote Punkte und der Ausreißer ist blau eingekreist.
  5. Speichern Sie die Variablen Zeit und Spannung in der Datei Messdaten.mat.
  6. Werten Sie den Quelltext mit Header, Kommentaren und Hilfe auf.

Nützliche Befehle: randn, randi, save

Aufgabe 5.4 Logische Indizierung

  1. Erzeugen Sie eine 5x5 Matrix mit 1²..5² als Inhalt so sortiert, dass die Summe in den Zeilen und spalten immer gleich sind.
  2. Finden Sie die Einträge > 20 über zwei verschachtelte Schleifen.
  3. Finden Sie die Einträge > 20 über zwei über Logische Indizierung.

Nützliche Befehle: magic, for, if

Nützlicher Artikel: Matrix Indexing in MATLAB®

Aufgabe 5.5 Finde Ausreisser

  1. Schreiben Sie das Skript findeAusreisser.m welches die Messdaten Messdaten.mat aus Aufgabe 5.3 lädt.
  2. Nutzen Sie Logische Indizierung, um die Außreißer zu finden.
  3. Nutzen Sie als zweiten Ansatz Index = find(Spannung > 10)
  4. Zeichnen Sie das Ergebnis gemäß Abb. 1.



→ Termine 1 2 3 4 5 6
MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: BSE Modellierung und Simulation - SoSe26