LabVIEWForum.de - Drehzahlsignal numerisch ableiten

LabVIEWForum.de

Normale Version: Drehzahlsignal numerisch ableiten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute

Ich bin Maschinenbauer und relativ neu bei Labview. Wir arbeiten an einem Prüfstand für ein Solarauto und wollen diesen mittels Labview auswerten.

Hierzu verwenden wir einen Inkremental Drehgeber den wir über eine Labview-Karte einlesen (PCI 6221)
Der Inkrementalgeber gibt uns ein Rechtecksignal mit 500 Impulsen pro Umdrehung, den wir über den Countereingang der Karte einlesen (Frequenzmessung). Damit können wir die Drehzal messen, was auch super funktioniert.

Da wir aber an der Leistung interessiert sind, ist für uns vor allem die Winkelbeschleunigung und nicht die Winkelgeschwindigkeit interessent. Ich müsste das Signal also ableiten. Und hier scheitern wir. Aus dem Ableiten Baustein kommt nur ein undefiniertes Rauschen. Wie macht man das am besten?

Mit freundlichen Grüßen
Solarr
Hallo Maschbauer,

numerisches Ableiten heißt die Berechnung von dx/dt = (x(t1)-x(t0))/(t1-t0) = (x(t1)-x(t0) / dt (Vereinfachung für feste Intervalle).

- dt sollte ihr aus eurer DAQ-Routine wissen
- die Differenz zweier Messwerte x ist auch recht einfach zu berechnen: älteren Messwert vom neueren abziehen...

Ansonsten gilt Luckis Kommentar hier...
Danke für deine rasche Antwort.

Ich habe schonmal gemerkt, das ein Problem war dass der Abstand meine Messpunkte nicht von der Zeit sondern der Drehzahl abhängig war. Ich habe also jetzt eine Schleife gemacht mit einer bestimmten Zeit wo immer nur ein Messpunkt genommen wird. Die Punkte habe ich dann gesammelt und differenziert. ALlerdings bekomm ich immer noch kein schönes Signal.

Wenn ich das ableiten selber mache in einer funktion...wie mach ich das, dass ich einfach eine Zahl aus dem DAQ bekomme? Ich kenne mich leider mit den Datentypen und den Arrays und so nicht wirklich aus.

Mein Programm zur Zeit:
DAQ hab ich auf ein Sample on demand eingestellt und die Verstreichende Zeit pro Schleife ist 0,01s
Hallo Solarr,

1) Was soll der Blödsinn mit den lokalen Variablen? Pack die Terminals in die Schleife und verdrahte direkt!
(Wenn ich sowas sehe, reagiere ich allergisch! Aber es ist wirklich besser für dich, wenn du dir solche Konstrukte gar nicht erst angewöhnst...)

Zitat:DAQ hab ich auf ein Sample on demand eingestellt und die Verstreichende Zeit pro Schleife ist 0,01s
2) ExpressVIs mögen schnell zu nutzen sein, schön sind sie aber nicht. Wenn du eh nur 1 Sample pro Abfrage bekommst, solltest du mit "von DDT wandeln" das in einen DBL-Wert umwandeln. Dann hast du deinen Einzelwert...
3) Wo steht das mit den 10ms pro Iteration? Wo legst du die fest?

4) Es gibt einen Aufräumknopf...

5) Gerade bei ExpressVIs kann man durch Anschauen des BD kaum auf die vorgenommenen Einstellungen schließen. Entweder darauf verzichten (und dadurch besser programmieren Big Grin) oder gleich dein VI anhängen...
1.) Wie gesagt, ich bin absolut neu zu Labview, dachte es würde nur so gehn

3.)Ich habe 10ms verstreichende Zeit bei der Schleife eingestellt, damit müsste ich alle 10ms einen Wert bekommen

4.) Wo? Big Grin

5.)
Hallo Solarr,

Zu 1) + 3) + 4): Hast du schon mal die Einsteigerkurse bei NI.com belegt? Scheint nötig zu sein! Big Grin (s. Link in meiner Signatur)

3) Die Funktion wartet nicht, sondern gibt nur die verstrichene Zeit aus...

4) Bei den anderen Tools in der Menüleiste. Wall

5) Trotz meiner Ermahnung bzgl. lokaler Variablen stellt du eine alte Version ein, ohne dir erkennbare Mühe zu geben. Was soll man davon halten?

Guck mal in den Anhang (es könnte sein, dass der DAQ-Assi defekt ist. Ich habe auf diesem Rechner kein DAQmx installiert...)
Vielen Danke für das VI Smile So funktioniert es. Den Schieberegister hab ich gesucht.
Referenz-URLs