Aktive Schwinungsunterdrückung mit cRIO 9074 - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA) +---- Thema: Aktive Schwinungsunterdrückung mit cRIO 9074 (/Thread-Aktive-Schwinungsunterdrueckung-mit-cRIO-9074) |
Aktive Schwinungsunterdrückung mit cRIO 9074 - Schü - 03.12.2012 10:34 Hallo liege LabViewForum-Mitglieder, ich möchte einen Demonstrator für die aktive Schwingungsunterdrückung bauen. Dafür habe ich schon einiges an Literatur gewälzt und auch mit LabView verschiedene Möglichkeiten ausprobiert. Ich habe mir auch die unterschiedlichen LabView-Beispiele angeschaut, unter anderem das Projekt "Active Noise Control with Feedback Neutralization (cRIO).lvproj" und das Beispiel-VI "Active Noise Control (Simulated)". Mir ging es dabei hauptsächlich darum den Umgang mit dem FXLMS- und Filter-Funktionen zu lernen. Um nun die aktive Geräuschunterdrückung zu realisieren habe ich mich dem oben genannten Beispiel-VI bedient und es so angepasst, dass es auf ein Feedbacksystem anwendbar ist. Dies stellt das RT-VI dar, als FPGA-VI habe ich jediglich zwei Schleifen jeweils zum Einlesen und Ausgeben der Daten. Die beiden VIs sind im Anhang enthalten. Ein Problem besteht darin, dass der RT-Controller so langsam wird, dass bei einem Sinus als Referenzsignal nur ein stufiger Sinus ausgeben wird. Ich denke deshalb, dass die Systemlaufzeit zu groß ist. Beim oben genannten Beispiel-Projekt wird die eigentliche Geräuschunterdrückung ja mit Hilfe von FIFOs und Speichern auf dem FPGA realisiert. Dem RT-Controller kommt nur noch die Bestimmung von Sekundär- und Primastrecke zu. Meine erste Frage ist nun, welche Realisierung richtig/besser ist. Ist es besser die Daten auf den RT-Controller zu schieben und da die Eingangsdaten filtern zulassen, oder ist es schneller, wenn die Lösung wie im Beispiel-Projekt umgesetzt wird? Meine zweite Frage ist, ob es einen Unterschied macht, ob ich das Timen der Leseschleife im FPGA-VI mit Hilfe des Loop-Timers realisiere oder mit dem Eigenschaftsknoten (Mod1-Data Rate)? Edit: Ich glaube ich habe die Antworts schon selbst gefunden. Mit dem Methodenknoten stelle ich die nativen Abtastraten für das Modul ein, während die Loop-Timer-Funktion einfach die vorgegebene Zeit wartet. Deshalb ist es sicherlich sinnvoller bzw. richtig den Methodenknoten zu nutzen, um die Abtastfrequenz einzustellen. In meinem Testprojekt habe ich das auch mit dem Methodenknoten realisiert. Für weitere Anmerkungen und Kritik bin ich jederzeit dankbar. Verschneite Grüße vom Schü P.S.: Die dritte Schleife im FPGA-VI war ein Versuch eine MLS-Folge zu erstellen und auszugeben. [attachment=42466] [attachment=42467] |