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!
13.12.2011, 14:12 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2011 14:32 von jg.)
Nach Rücksprache mit dem NI-Service sind einige Fragen geklärt:
(1) Die "Property Node" kann man auch weglassen, wenn man das Signal an dem Default-Anschluss anlegt. Man benötigt sie nur, wenn das Signal an einen anderen Anschluss angelegt wird.
(2) Nun zu der Samplingfrequenz. Sich bei dieser Art der Frequenzmessung auf das Nyquisttheorem zu beziehen ist nicht richtig! Dass es also eine schlechte Idee ist mit f_sampling<f_Signal "abzutasten" ist Quatsch. Hier die Erklärung dazu von NI aus den USA:
"On every rising edge of the sample clock the counter task will latch an encoder reading. We use the same sample clock as the DAQ AI task in order to ensure that there is exactly one sample of AI data and one encoder measurement taken at the same time. (...) If another sample clock pulse comes before the signal of interest has completed then next full period, the Frequency task does not have a value to give. Thefore if the AI task is set to acquire 10 samples, it will have send 10 sample clock pulses and read 10 samples. However the Frequency task may only have been able to acquire 8 samples in that time because the signal of interest is slow. In this case the DAQmx read for the Frequency task is waiting for 2 additonal samples (since it is configured to read 10 samples as well), but those 2 additional samples will never come. Therefore the task times out."
In diesem Fall muss die Samplingfrequenz also unter der Signalfrequenz liegen. Ansonsten gibt es einen Timeout-Fehler.
Ich habe das Beispiel nochmal etwas geändert (s. Freq+Spannung.vi). Die Ergebnisse sehen aber immer noch sehr seltsam aus (Plot_TTL-Frequenz.png).
Was habe ich hier gemacht: Ich habe den Motor mit zwei verschiedenen Spannungen vermessen. Einmal 3V und einmal 6V. Die Frequenzwerte habe ich mir in Blöcken von 5000 in eine Textdatei gespeichert. Für beide Spannungen habe ich die Messung jeweils zehn Mal wiederholt. Nun habe ich also 50000 Samples (Frequenzwerte) für die Messung mit 3V und die selbe Anzahl für die Messung mit 6V. Die beiden Spannungen haben mich hier nicht interessiert. Wenn ich die 50000 Werte dann plotte, erhalte ich die angefügte Grafik. Nun meine Frage: Wieso verändert sich die Genauigkeit der Messungen so sprunghaft?
Da diese Genauigkeitssprünge fast immer beim Beginn einer neuen Messung auftreten, gehe ich davon aus, dass der Fehler in der Programmierung liegt. Was ebenfalls für ein Softwareproblem spricht, ist die Tatsache, dass sich diese Messergebnisse mit einem anderen Motor in ähnlicher Weise reproduzieren lassen.
Das war jetzt ziemlich viel Text. Ich hoffe es ist verständlich und jemand hat die Muße sich das alles durchzulesen und es zu verstehen. An dieser Stelle möchte ich auch nochmal allen danken, die sich bis jetzt ernsthafte Gedanken gemacht haben!