LabVIEWForum.de - Problem bei Langzeitmessung von Batterien

LabVIEWForum.de

Normale Version: Problem bei Langzeitmessung von Batterien
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=3594]<div align="left">

Hallo,

beschäftige mich erst seit 4 Wochen mit LabVIEW und habe mit Hilfe eines Kollegen ein Programm zur Messung von Spannungsabfällen von Batterien erstellt. Dazu verwende ich das DAQPad-6015.

Zur Funktionsweise:

Ich habe min. 5 Spannungssignale von mit Widerständen belasteten Batterien an die differentiellen Eingänge angeschlossen. Die Batterien haben unter Belastung eine Startspannung von ca. 1,25 Volt.
Beim starten der Messung wird über eine Casestruktur und dem Firstcall die Anfangsspannung für jeden Kanal in die entsprechende txt. Datei geschrieben.
Durch die und/oder Verknüpfungen vor der ersten Casestruktur wird erreicht, dass nur dann Werte geschrieben werden, wenn der Spannungswert kleiner als ein vorher festgelegter oberer Grenzwert ist (Einstellung im Frontpanel) und größer als ein Minimalwert Umin ist (1,08 V). In der folgenden Casestruktur wird dann bei jedem Durchlaufen der Schleife der obere Grenzwert um 0,02 V verringert, bis der untere Grenzwert Umin erreicht ist.
Bsp.: Startspannung sei 1,25 Volt / Ugrenz =1,26 Volt / Umin =1,08 Volt / Ureduziert = 0,02 Volt
Jetzt wird die Startspannunbg von 1,25 Volt durch den Firstcall geschrieben und der Grenzwert um 0,02 auf 1,24 Volt herabgesetzt. Wenn dieser unterschritten wird, wird wieder geschrieben und um 0,02 Volt reduziert bis zum unteren Grenzwert.

Soweit so gut. Es gibt jedoch noch folgende Probleme:

1. Bei der Datenausgabe im jeweiligen File in txt.-Form wird bei jeder Messung die Uhrzeit angegeben, so dass ich nachher die Differenzen errechnen muss, was sehr umständlich ist. Wie kann ich das Programm ändern, damit ich nur bei der ersten Abfrage die Startzeit oder eine 0 stehen habe und bei jedem weiteren Schreiben die vergangene Zeit in Stunden oder Minuten stehen habe?

2. Der Grenzwert der Spannung Ugrenz wird manchmal schon aufgrund von Spannungsschwankungen herabgesetzt, was unerwünscht ist. Wie kann ich das verhindern? Vielleicht über ein zusätzliches UND-Glied, wo das Signal nur dann weitergegeben wird, wenn es eine bestimmte Zeit lang anliegt?


Bin für jede Hilfe dankbar.

MfG

zottel2000

Vi ist im Anhang</div>
Habe es mir dein VI mal angesehen, abgesehen von Deinen Frage könnte man folgendes verbessern:

Datenerfassung: Das Bedienelement Samles pro Kanal macht gar keinen Sinn, denn es hat in Wirklichkeit bei kontinuierlicher Datenerfassung die Bedeutung "Puffergröße" --> nichts anschließen

Datenlesen: Number of Samples einen Wert anschließen (10) , dann brauchst Du keine Uhr in der while Schleife. Das vi wartet, bis 10 Werte erfasst worden sind.

Datenerfassung: Es dürften doch 1 Datenpunkt pro sec ausreichend sein. Deshalb gleich nach DAQmx read den Mittelwert anschliesen. Damit hast Du 1 Wert pro sekunde als Mittelwert von 10 Werten innerhalb der letzten Sekun
Wertebereich prüfen: Dafür gibt es eine Funktion

Grenzwert updaten: Besser mit lokaler Variable

Die Vereinfachungen (und etwas mehr) habe ich für 1 Kanal gemacht.

Für 8 Kanäle lohnte sich die Verwendung von Vektoren und For-Schleifen, das Blocksiagramm wird dann nur wenig größer als für diesen einzelnen Kanal.


Zu Deinen Fragen:

1. File-Ausgabe:
Was Du verlangst ist etwas Exotisches, und diese Verlangen wird damit bestraft, daß Du das manuell machen mußt. z.B so:
- In Textfile schreiben (vorher fällt da Fomatierungsarbeit an)
- Datum als 1. Zeile schreiben, das machen bevor Du überhaup in die While-Schleife hineingehst.
- In der Schleife an die bereits erstellte Datei anhängen, und zwar je eine Zeile mit 2 Werten: 1. Wert: Seit Programmstart verstrichene Zeit 2. Wert: Messwert.
Eigentlich brauchtest Du nur die verstrichenen Zeiten aufzuzeichnen, denn Du weißt ja, daß die Spannungen pro Messwert immer die konstante Differenz von 0.02V haben. Also: Kofparameter: Aktuelle Urzeit, erster Spannungswert und aktuelles dU. Dann folgen nur noch die verstrichene Zeiten
Tip: Es gibt ein Express-vi "verstrichene Zeit"

2. Spannungsschwankungen:
Da läßt sich natürlich etwas machen, aber eine Pauschalmethode gibt es da nicht, da sind detailierte Kenntnise über den Charakter der Schwankungen erforderlich. Wie lange dauern diese Einbrüche maximal? Oder sind es nur Einzelwerte? wie groß sind sie? Wie sieht so ein gestörter Spannungsverleuf aus?


Was ích igendwie schrullig finde: Da wir ein Messystem für automatische Messung eingerichtet, die anfallenden Ergebnisse werden aber dann nicht grafisch präsentiert und ausgewertet, sondern? Ja, auf irgendeine vorsintfultliche Art gesichtet.
' schrieb:Habe es mir dein VI mal angesehen, abgesehen von Deinen Frage könnte man folgendes verbessern:

Datenerfassung: Das Bedienelement Samles pro Kanal macht gar keinen Sinn, denn es hat in Wirklichkeit bei kontinuierlicher Datenerfassung die Bedeutung "Puffergröße" --> nichts anschließen

Datenlesen: Number of Samples einen Wert anschließen (10) , dann brauchst Du keine Uhr in der while Schleife. Das vi wartet, bis 10 Werte erfasst worden sind.

Datenerfassung: Es dürften doch 1 Datenpunkt pro sec ausreichend sein. Deshalb gleich nach DAQmx read den Mittelwert anschliesen. Damit hast Du 1 Wert pro sekunde als Mittelwert von 10 Werten innerhalb der letzten Sekun
Wertebereich prüfen: Dafür gibt es eine Funktion

Grenzwert updaten: Besser mit lokaler Variable

Die Vereinfachungen (und etwas mehr) habe ich für 1 Kanal gemacht.

Für 8 Kanäle lohnte sich die Verwendung von Vektoren und For-Schleifen, das Blocksiagramm wird dann nur wenig größer als für diesen einzelnen Kanal.
Zu Deinen Fragen:

1. File-Ausgabe:
Was Du verlangst ist etwas Exotisches, und diese Verlangen wird damit bestraft, daß Du das manuell machen mußt. z.B so:
- In Textfile schreiben (vorher fällt da Fomatierungsarbeit an)
- Datum als 1. Zeile schreiben, das machen bevor Du überhaup in die While-Schleife hineingehst.
- In der Schleife an die bereits erstellte Datei anhängen, und zwar je eine Zeile mit 2 Werten: 1. Wert: Seit Programmstart verstrichene Zeit 2. Wert: Messwert.
Eigentlich brauchtest Du nur die verstrichenen Zeiten aufzuzeichnen, denn Du weißt ja, daß die Spannungen pro Messwert immer die konstante Differenz von 0.02V haben. Also: Kofparameter: Aktuelle Urzeit, erster Spannungswert und aktuelles dU. Dann folgen nur noch die verstrichene Zeiten
Tip: Es gibt ein Express-vi "verstrichene Zeit"

2. Spannungsschwankungen:
Da läßt sich natürlich etwas machen, aber eine Pauschalmethode gibt es da nicht, da sind detailierte Kenntnise über den Charakter der Schwankungen erforderlich. Wie lange dauern diese Einbrüche maximal? Oder sind es nur Einzelwerte? wie groß sind sie? Wie sieht so ein gestörter Spannungsverleuf aus?
Was ích igendwie schrullig finde: Da wir ein Messystem für automatische Messung eingerichtet, die anfallenden Ergebnisse werden aber dann nicht grafisch präsentiert und ausgewertet, sondern? Ja, auf irgendeine vorsintfultliche Art gesichtet.


Vielen Dank für Deine ausführliche Antwort.

Die Spannungsschwankungen (im Bereich von 0,05-0,15V) treten übrigens nur im ms-Bereich auf und dürften Messbedingt sein (Erdungsproblem oder Einfluss von anderen Geräten?).

Ausgewertet wird die ganze Geschichte natürlich auch, ich übertrage die Messdaten in Excel und werte sie dort grafisch aus.

Nochmals danke für deine Hilfe Lucki

MfG

zottel2000
Referenz-URLs