AlphaBot: Messdatenverarbeitung mit MATLAB: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 63: | Zeile 63: | ||
'''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoGleitenderMittelwert SVN: DemoGleitenderMittelwert] | '''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoGleitenderMittelwert SVN: DemoGleitenderMittelwert] | ||
Eine ausführliche Beschreibung finden Sie in [1, S. 11 ff.]. | Eine ausführliche Beschreibung mit Musterlösung finden Sie in [1, S. 11 ff.]. | ||
</div> | </div> | ||
Zeile 83: | Zeile 83: | ||
'''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoTiefpassFilter/DemoTiefpassFilter.ino SVN: DemoTiefpassFilter.ino] | '''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoTiefpassFilter/DemoTiefpassFilter.ino SVN: DemoTiefpassFilter.ino] | ||
Eine ausführliche Beschreibung finden Sie in [1, S. 11 ff.19]. | Eine ausführliche Beschreibung mit Musterlösung finden Sie in [1, S. 11 ff.19]. | ||
</div> | </div> | ||
Zeile 98: | Zeile 98: | ||
<div class="mw-collapsible mw-collapsed"> | <div class="mw-collapsible mw-collapsed"> | ||
Eine ausführliche Beschreibung | Eine ausführliche Beschreibung mit Musterlösung finden Sie in [1, S. 27 ff.]. | ||
</div> | </div> | ||
Version vom 20. März 2023, 13:04 Uhr
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lehrveranstaltung: Mechatronik, Informatik Praktikum 2, 2. Semester
Aufgabenstatus: In Bearbeitung
Inhalt
- Einarbeitung in MATLAB®
- Statische und dynamische Messung mit dem Ultraschallsensor
- Programmierung und Anwendung eines gleitenden Mittelwertfilters
Lernziele
Nach Durchführung dieser Lektion
- können Sie Debug-Daten speichern und via MATLAB® visualisieren.
- können Sie direkt MATLAB® als seriellen Monitor nutzen.
- können Sie ein Signal differenzieren und kennen die Gefahren dieser Berechnung.
- kennen Sie die Funktion und Kennwerte des Ultraschall-Sensors.
- können Sie Entfernungen mit dem Ultraschall-Sensor messen.
- können Sie Software mit einem PAP planen.
Vorbereitung
Fürhren Sie als Vorbereitung den MATLAB® Onramp Kurs durch.
Arbeitsergebnis in SVN: MATLAB® Kurszertifikat
Versuchsdurchführung
Aufgabe 2.1: Gleitendes Mittelwertfilter
Ein gleitendes Mittlwertfilter bildet einen Mittelwert über k Messwerte mittels FIFO.
- Schreiben Sie die Funktion
GleitendesMittelwertFilter.m
, welches die Eingangswerte zyklisch filtert. Hier bei wird der Mittelwert über die letzten k Messwerte gebildet. - Testen Sie Ihre Funktion mit Ultraschallmesswerten mit statischen Zielen mit Ihrem Framework
zeigeZyklischUltraschallMessung.m
undUltraschallMessung.mat
Aus den Aufgaben 1.3 und 1.4. - Visualisieren Sie Messwerte und Filterergebnis in einem Plot mit Achsenbeschriftung und Legende.
- Testen Sie Ihre Funktion mit Ultraschallmesswerten mit dynamischen Zielen.
- Wählen Sie k anhand der Messwerte und diskutieren Sie Ihre Wahl mit Prof. Schneider.
Arbeitsergebnisse in SVN: testeGleitendesMittelwert.m
Hinweis:
- Nutzen Sie das FIFO aus Aufgabe 6.4.
- Die Formel für das gleitende Mittelwertfilter lautet: für k Messwerte
Eine Einführung zu rekursiven Filtern finden Sie in folgendem Video.
- Gleitendes Mittelwertfilter: 19 m 52 s
- Tiefpassfilter: 29 m
Demo: SVN: DemoGleitenderMittelwert
Eine ausführliche Beschreibung mit Musterlösung finden Sie in [1, S. 11 ff.].
Aufgabe 2.2: Rekursives Tiefpassfilter
Ein rekursives Filter kann Messwerte in Echtzeit während der Laufzeit filtern. Nutzen Sie ein Tiefpassfilter, um die Messwerte zu filtern.
- Schreiben Sie die Funktion
TiefpassFilter.m
, welches die Eingangswerte zyklisch filtert. Hierbei wird der Tiefpass berechnet. - Testen Sie Ihre Funktion mit Ultraschallmesswerten mit statischen Zielen mit Ihrem Framework
zeigeZyklischUltraschallMessung.m
undUltraschallMessung.mat
Aus den Aufgaben 1.3 und 1.4. - Visualisieren Sie Messwerte und Filterergebnis in einem Plot mit Achsenbeschriftung und Legende.
- Testen Sie Ihre Funktion mit Ultraschallmesswerten mit dynamischen Zielen.
- Wählen Sie anhand der Messwerte und diskutieren Sie Ihre Wahl mit Prof. Schneider.
Arbeitsergebnisse in SVN: testeTiefpassFilter.m
Hinweis:
- Die Formel für das Tiefpassfilter lautet: für den aktuellen Messwert .
- ist hierbei ein Filterparameter .
Demo: SVN: DemoTiefpassFilter.ino
Eine ausführliche Beschreibung mit Musterlösung finden Sie in [1, S. 11 ff.19].
Aufgabe 2.3: Filtervergleich
- Vergleichen Sie die Ergebnisse dies Tiefpasses mit denen des gleitenden Mittelwertfilters.
- Zeigen Sie das ungefilterte und die gefilterten Signal in MATLAB® in einem Plot vergleichend an.
- Beschriften Sie die Achsen und nutzen Sie eine Legende.
- Beantworten Sie die nachfolgenden Fragen
- Wurde das Signalrauschen geglättet?
- Ist das gefilterte Signal verzögert?
- Welchen Einfluss haben die Filterparameter?
- Wie verhalten sich die gefilterten Signal bei Ausreißern?
Eine ausführliche Beschreibung mit Musterlösung finden Sie in [1, S. 27 ff.].
Aufgabe 2.4: Nachhaltige Doku
Sichern Sie alle Ergebnisse mit beschreibendem Text (message
) in SVN.
- Halten Sie die Regeln für den Umgang mit SVN ein.
- Halten Sie die Programmierrichtlinie für C und die Programmierrichtlinien für MATLAB® ein.
- Versehen Sie jedes Programm mit einem Header (Header Beispiel für MATLAB, Header Beispiel für C).
- Kommentiere Sie den Quelltext umfangreich.
Arbeitsergebnis in SVN: SVN Log
Tutorials
- Einrichtung von PuTTY
- HSHL-Wiki: Ultraschallsensor HC-SR04
- Funduino: Entfernungen mit einem HC-SR04 Ultraschallsensor am Arduino messen
Demos
- SVN: DemoUltraschallHCSR04
- SVN: DemoDebug2MATLAB
- SVN: DemoGleitenderMittelwert.ino
- SVN: DemoTiefpassFilter.ino
Literatur
- Kim, P.: Kalman-Filter für Einsteiger: mit MATLAB Beispielen. CreateSpace Independent Publishing: 2016. ISBN-13: 978-1502723789
- Schneider, U.: Programmierrichtlinie für für die Erstellung von Software in C. Lippstadt: 1. Auflage 2022. PDF-Dokument (212 kb)
→ zurück zum Hauptartikel: Informatik Praktikum 2