INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

09.07.2020, 02:01
Beitrag #1

helloitsme Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2019

2014
2019
EN



Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Hallo zusammen,

ich arbeite an einem Projekt, bei dem ich das Geschwindigkeitssignal eines Servomotors von Bosch verwende um die Bewegungsrichtung des Motors zu erkennen.
Hierbei nutze ich nur das Vorzeichen dieses analogen Signals.
Leider ist dieses sehr rauschbehaftet, und somit wechselt das Vorzeichen bei Niedrigen Geschwindigkeiten oft.

Abhilfe hat bisher geschafft, das abgeleitete Positionssignal zu verwenden, jedoch gibt es hier immernoch starke Schwankungen in manchen Bereichen.

Ich habe ein wenig vom Kalman Filter gelesen und davon, dass dieser Modellbasiert die Signale filtert. Das scheint mir hier sehr vielversprechend.
Ab LabVIEW 2018 gibt es diesen wohl auch in einer fertigen SubVI.
Hat jemand ein Beispiel zur Anwendung des Filters um einen Motor zu steuern bzw ein Geschwindigkeits- / Positionssignal zu filtern?

Ich bin auch offen gegenüber anderen Möglichen Vorschlägen zur Umsetzung.
Falls es jemanden interessiert, werde ich meine Fortschritte hier teilen.

Vielen Dank im vorraus.
Mit freundlichen Grüßen
helloitsme Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2020, 08:09
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Hallo TomJericho,

bitte immer selbst auf CrossPosts hinweisen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2020, 08:18
Beitrag #3

MScz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: May 2020

2019,2020
2014
DE_EN



RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Hallo TomJericho,

wenn du einen Servomotor hast, hast du doch auch sicher einen Servoregler. Was spricht dagegen dir das Signal von dem Servoregler ausgeben zu lassen?

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.07.2020, 15:28
Beitrag #4

helloitsme Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2019

2014
2019
EN



RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Die Labview Beispiele, besonders das erste fand ich sehr hilfreich, um die grundlegenden Konzepte des Kalman-Filters zu verstehen.
(1D-Kalmanfilter-Endoder und -Accelerometer.vi)

In diesem Beispiel und in allen Beispielen, die ich online finde, wird der Filter verwendet , um eine Position zu schätzen.
In meinem Fall habe ich eine sehr zuverlässige Positionsmessung, die fast kein Rauschen hat.

Wie kann ich die Anwendung zum Schätzen der Geschwindigkeit basierend auf der Positionsmessung anpassen? Oder ist dies überhaupt möglich?

Entschuldigung für den CrossPost, ich dachte, wenn mehr Leute den Post sehen würden, wären die Chancen für eine Lösung höher.
Hier ist der Link zum englischen Forum: https://forums.ni.com/t5/LabVIEW/Filteri...8#M1167885

@MScz Ich meinte das Signal von dem Servoregler.

Grüsse
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.07.2020, 18:44
Beitrag #5

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters

Akzeptierte Lösung

Hallo Tom,

Zitat:In meinem Fall habe ich eine sehr zuverlässige Positionsmessung, die fast kein Rauschen hat.
Wie kann ich die Anwendung zum Schätzen der Geschwindigkeit basierend auf der Positionsmessung anpassen? Oder ist dies überhaupt möglich?
Wozu benötigst du dann eine Schätzung?
Du kannst doch bei deinem Signal mit "fast kein Rauschen" einfach die Differenz zur vorigen Position bestimmen und durch die vergangene Zeit dividieren, um die Geschwindigkeit zu berechnen. Ist mit einem oder zwei Schieberegistern erledigt…

Zitat:Entschuldigung für den CrossPost, ich dachte, wenn mehr Leute den Post sehen würden, wären die Chancen für eine Lösung höher.
Es ist ok, in beiden Foren zu posten. (Es gibt ja auch noch LAVA.)
Aber bitte darauf hinweisen: es ist ärgerlich, wenn man sich die Mühe macht, eine Antwort zu schreiben und dann hinterher feststellt, dass die womöglich gleiche Antwort im anderen Forum schon gegeben wurde…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2020, 06:19
Beitrag #6

MScz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: May 2020

2019,2020
2014
DE_EN



RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Kurze zwischen Frage nochmal:

Warum ziehst du dir deine benötigten Werte nicht direkt aus dem Regler bzw. was spricht dagegen?
Welchen Regler setzt du ein? Steuerst du den Regler an? Gff. sogar über LabVIEW?

Weil so Werte wie ungefilterte Position/Geschwindigkeit bieten dir die meisten Servoregler, welche ich kenne, direkt an. Diese Funktionen sind auch schon vom Hersteller getestet und du progammierst dir nichts zuammen, was ggf. falsche Werte ausspruckt.

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2020, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2020 14:12 von helloitsme.)
Beitrag #7

helloitsme Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2019

2014
2019
EN



RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Danke für den Tipp mit den Schieberegistern. Habe es jetzt so umgesetzt und es funktioniert schon ganz gut.
Meine VI läuft nur auf meinem Computer und nicht auf irgendeiner RealTime Ebene. Aktuell ist die Frequenz mit der Messwerte aufgenommen werden noch recht gering. (89ms per loop --> 12,5Hz)
Ich glaube, ich brauche eine viel höhere Frequenz (ca. 100Hz). Ist das überhaupt möglich ohne viel Geld für RealTime Equipment auszugeben?

Aktuell ist mein Servoregler über ein Lankabel am PC angeschlossen. Ist die Steuerung eines solchen Ethernet Gerätes auch mit einem CRio möglich?

@Max
Ich verwende einen Servoregler von Bosch Indradrive Cs und greife über die Bosch VIs aus dem Addon-Package eal4LabVIEW darauf zu.

Gruß
Tom Jericho
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2020, 15:31
Beitrag #8

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Hallo itsme,

Zitat:Meine VI läuft nur auf meinem Computer und nicht auf irgendeiner RealTime Ebene. Aktuell ist die Frequenz mit der Messwerte aufgenommen werden noch recht gering. (89ms per loop --> 12,5Hz) Ich glaube, ich brauche eine viel höhere Frequenz (ca. 100Hz). Ist das überhaupt möglich ohne viel Geld für RealTime Equipment auszugeben?
Aktuell ist mein Servoregler über ein Lankabel am PC angeschlossen. Ist die Steuerung eines solchen Ethernet Gerätes auch mit einem CRio möglich?
Wenn man jetzt noch wüsste, wie dein VI aussieht, dann könnte man die 89ms auch bewerten…

Wenn dein Gerät einfach so langsam antwortet, dann hilft der Wechsel auf ein cRIO auch nicht. Wenn dein VI allerdings einfach zu "langsam" programmiert wurde, dann könnte auch eine "schnellere" Programmierung helfen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2020, 23:23
Beitrag #9

helloitsme Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2019

2014
2019
EN



RE: Filtern eines Analogen Geschwindigkeitssignals mithilfe eines Kalman-Filters
Ich habe das ganze jetzt aufgeteilt in 2 loops, sodass der Read/ Write Loop nur noch 20-30ms braucht.
Das ist schon ganz gut.
Schneller geht es wohl nicht Smile

Ich kann gerne morgen mal einen Screenshot davon hochladen Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Music FGEN Erzeugung eines Signalverlaufs anhand einer Mathematischen Funktion DavidStefan 11 7.452 29.05.2021 07:03
Letzter Beitrag: GerdW
  Taktung eines Ausgangssignals Bubble68 5 4.023 28.03.2021 18:28
Letzter Beitrag: GerdW
  Asynchroner Aufruf eines VIs klappt nicht in der EXE Msengxxl 4 3.762 09.03.2021 16:09
Letzter Beitrag: Msengxxl
  Probleme mit Kommunikation eines alten Gerätes Friedolin 7 4.197 25.02.2021 15:44
Letzter Beitrag: Friedolin
  Datentyp eines Elements herausfinden Mrindfleisch 15 10.653 12.02.2021 08:26
Letzter Beitrag: Mrindfleisch
  Suche Ideen für den Aufbau eines neuen Programms TpunktN 4 3.774 17.12.2020 11:23
Letzter Beitrag: MScz

Gehe zu: