PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe Frequenzmessung



hivelive
02.10.2010, 19:47
Guten Abend Forum

Das im Anhang befindliche Bild zeigt die Motorspannung eines DC Motors. Der Motor wird Periodisch belastet wie ihr seht.

Ich möchte nun die Huppel auf dem Gleichspannungsanteil Zählen. Ich suche nun ein Geeignetes verfahren um die Huppel zu Zählen.

Bisherige versuche:

- Elektronisch:
Bandpassfilter dieser zerstörte mir aber das Signal der ersten Huppel

- Software:
Ermittlung über die Steigung. 5 werte aufgenommen über den Median den Ausreißer weggeworfen. Nach 3 Pos Steigungswerten und anschließend 3 Negativen habe ich einen Huppel erkannt. Die Anzahl hängt natürlich mit der Abtastfrequenz zusammen.

Allerdings gelingt es mir einfach nicht die Huppel zuverlässig zu detektieren.

Vielleicht hat jemand eine Ahnung wie man das Signal Elektronisch aufbereiten kann(Gleichanteil heraus filtern) was die Detektion erleichtert. Ich wäre auch dankbar für links oder Softwaretechnische Ansätze oder Stichworte.

Ich bin echt verzweifelt.

Wer es sich nicht herrunterladen möche die Spannung sieht etwa so aus




---------------------/\/\/\/\/\
5V-------------- /\/----------\
-----------------/-------------I
----------------/--------------I
---------------/----------------\
--------------/------------------I
------------- I-------------------\
0V ----------I--------------------\-----------
oder nutzt den Link
http://www.bilder-hosting.de/show/TES84.html

Gerdchen
02.10.2010, 20:06
Eventuell ein schneller Komparator und dessen Ausgangsimpulse einfach mit nem AVR zählen.

hivelive
02.10.2010, 20:10
Das Problem ist der erste Huppel. Außerdem habe ich vergessen zu erwähnen das der Spitzewert +-2V Variieren kann.

markusj
02.10.2010, 20:12
Diese "Huppel" kennt man in Fachkreisen eher als Ripple(-spannung).
Softwaretechnischer Ansatz: Eine vernünftige Flankenerkennung
Du pufferst einen Wert zwischen der das aktuelle Extremum speichert, d.h. bei einer fallenden Flanke wird der Puffer so lange aktualisiert wie die neuen Werte kleiner sind als der bisher gespeicherte. Überschreiten eingehende Werte den gepufferten Wert um eine bestimmte Schwelle, wird dies als steigende Flanke erkannt. Dann läuft die gleiche Logik in umgekehrter Form (Maximumssuche) ab.

Das funktioniert genau so lange wie dein Gleichspannungsanteil stabil bleibt - Wenn sich dieser aber innerhalb einer halben Periodendauer stärker ändert als der Schwellenwert, würde dies fälschlicherweise als Flanke erkannt werden.

mfG
Markus

PS: Dieses Verfahren verwende ich um die Odometrie-Sensoren meines ASURO auszuwerten, sieh Mal in die Funktion EncoderPoll() (https://libtinyasuro.svn.sourceforge.net/svnroot/libtinyasuro/trunk/asuro/src/encoder.c). Interessant ist für dich eigentlich nur die große Fallunterscheidung "if(last_state_buf ...", die Schleife außenrum führt den Code nur für beide Seiten aus.

Nachtrag: Andere Möglichkeit: Bilde die Differenz zwischen den aufeinanderfolgenden Werten (-> Steigung). Dann reagierst du anstelle auf Veränderungen der Werte selbst auf eine schnelle Veränderung der Steigung.

Allerdings solltest du für solche Algorithmen unbedingt größere Mengen Messwerte aufzeichnen und dann die Algorithmen testweise auf diesen ausführen um die Wirkung beobachten zu können.

hivelive
02.10.2010, 20:17
Ich glaube das ist ein guter Ansatz. Ich werde das Morgen früh mal ausprobieren und das Ergebnis hier Posten. Allerdings glaube ich das ich auf diese weise den ersten verkümmerten Rippel nicht mitdetektieren werde

Danke markusj für die Arbeit die du dir gemacht hast

Ceos
03.10.2010, 11:28
in der hardware würde ich jetzt einen ansatz mit ner delayline und nem xor gate oder es mit auskoppelung versuchen "(Gleichanteil heraus filtern)" (obwohl die auskoppellung bei 2V sich im rauschen verlieren wird denk ich)

Richard
03.10.2010, 12:48
Du könntest versuchen mittels OP den Wechselspannungs Anteil zu verstärken und den Gleichspannungs Anteil heraus zu filtern.

Gruß Richard

hivelive
03.10.2010, 13:57
Guten Morgen

So ich habe den Ansatz von Markusj mal umgesetzt. Funktioniert auch ganz gut.

Ceas:
Inderessanter Ansatz

Richert:
Welche OP-Schaltung meinst du. Ich bin bei OPs nicht ganz fitt. Wenn du Gleichspannung herausfiltern willst kann man da einen Miller integrator(integriert mein Signal)(ev auch P-I ansatz) nehmen und den Ausgang auf den - eines Spannungsfolgers und den + mit dem Signal verbinden? Oder wie macht man das.

Denkbar wäre doch auch ein Koppelkondensator oder?

Richard
03.10.2010, 14:28
So ganz fit bin ich bei OP's auch nicht, wier mussten so etwas noch zu Fuss aufbauen. :-( Ich kann mich dunkel an eine Schaltung erinnern wo solche Ripples eleminiert werden sollten.
Da wurde der Wechslspannungs Anteil mittels kondensator auf den investierenden Eingang gegeben, die Gleichspannung auf den nicht invertierenden. Bei Dir müssten halt die Eingänge getauscht werden. Genaueres kann ich aber auch nicht mehr sagen,da alles liegt schon fast 30 Jahre zurück.

Gruß Richard

hivelive
04.10.2010, 14:36
Hallo

Ich möchte nur kurz schreiben wie das Problem gelöst wurde.
Zunächst Störspannungen des Motors herausfiltern (tp filter 1. ord.).
Dann mit einen einfachen Differenzierer.

Das Ergebnis sind Spannungsspitzen die ich einfach zähle.

Ich möchte mich noch einmal bei euch bedanken.