Hallo zusammen, habe 6 Sensoren (Spulen) die ich auswerten muss, alle 6 Sensoren (Spulen) sollen von der gleichen Stromschleife einen Wert messen, der abhängig von der Position entweder pos / neg gelagert und in der Amplitude sich unterscheidet ... Um die werte mit einem AD einlesen zu können muss ich diese zwischenspeichert, ein Peak Detector wäre denkbar, speichert aber immer nur eine hälfte einer Amplitude, da ich aber pos / neg Peaks habe, bin ich ein-wenig ratlos wie man das lösen könnte ... Bin für konstruktive Vorschläge dankbar ...
:
Bearbeitet durch User
Ralf G. schrieb: > Bin für konstruktive Vorschläge dankbar ... Deiner zu messenden Spannung einen (analogen) Offset verpassen sodass dein Spannungsbereich in den (d)eines ADC passen.
> Deiner zu messenden Spannung einen (analogen) Offset verpassen
dann habe ich aber das Problem, das speichern der negativen Peaks
funktioniert so nicht, wegen der Null-Linie U/2
:
Bearbeitet durch User
Ralf G. schrieb: > dann habe ich aber das Problem, das speichern der negativen Peaks > funktioniert so nicht, wegen der Null-Linie U/2 Was hindert dich daran den Offset nach dem A/D Wandeln rechnerisch wieder abzuziehen?
Eine Möglichkeit wäre zwei mal einen Peak Detector je für den POS und NEG Anteil aufzubauen und mit einen Komparator dahinter, das höhere Signal über einen Umschalter dem AD bereitstellen ... gibt es sowas nicht schon fertig in einem IC ?
> Was hindert dich daran den Offset nach dem A/D Wandeln rechnerisch wieder
abzuziehen?
Offset rausrechnen kein Problem, es geht um das speichern von 6 dieser
sehr kurzen Signale die dann selektiv eingelesen werden müssen, mit
einem Peak Detector kann man nur Spitzenwerte von eine Amplituden-Seite
speichern !?
:
Bearbeitet durch User
> Erst gleichrichten?
ein Peak Detector beinhaltet einen Gleichrichter ?!
Du benötigst in jedem Fall 2 Peakdetektoren für min. und max. Dann auf einen Differenzverstärker. Danach dann den Offset für den ADC addieren. Für den Offset den min. Wert (mit entsprechender Verstärkung/Abschwächung) nehmen. Welche Spannung hat denn der Peak maximal (+/-), und welchen Eingangsbereich hat dein ADC?
:
Bearbeitet durch User
@Joe F. Danke für die Antwort, damit habe ich schon gerechnet, das ich beide Peaks zwischenspeichern muss ... > Welche Spannung hat denn der Peak maximal (+/-), und welchen von einigen 100 mV bis weit über 10V ... da muss ich entweder den Schleifen-Generator in seiner Leistung (Schleifen-Strom) steuern oder den Eingangs-Bereich über ein dig. gesteuertes Poti anpassen ... > Eingangsbereich hat dein ADC? angepeilt ist 0-5V durch den Dif-Verstärker ja kein Problem entsprechend anzupassen ... Projekt dazu siehe hier: http://www.roboternetz.de/community/threads/69425-Projekt-M%C3%A4hroboter
Hö? Wenn das Signal sowieso in einen Microcontroller wandern soll, würde ich das Signal mit Offset und entsprechend gedämpft direkt an den ADC hängen und mit ausreichender Geschwindigkeit (>20kHz) samplen. Den Rest macht der µC praktisch nebenher. Gruß Jobst
Ralf G. schrieb: > Signal_Spule.JPG Was soll hier eigentlich die Angabe eines Leitwertes auf der Abszisse? ;-) https://de.wikipedia.org/wiki/Siemens_(Einheit) Ralf G. schrieb: > Messdaten_2.jpg Warum muss eigentlich die Peakhöhe bestimmt werden. Die Daten sehen so aus, als, als ob es sich um eine stark gedämpfte Schwingung handelt, d.h. die Peakfläche liefert genauso die Aussage über die Pulsenergie. Zusammen mit dem Vorschlag von Jobst, dürfte das genauer sein.
Ralf G. schrieb: > Um die werte mit einem AD einlesen zu können muss ich diese > zwischenspeichert Warum zwischenspeichern? Ich würde da einfach einen hinreichend schnellen AD-Wandler nehmen und mit z.B. 100kHz wandeln? Das Signal an sich ist ja schnarchlangsam... > Bin für konstruktive Vorschläge dankbar ... Wie genau brauchst du den Spitzenwert? Wieviele Bits löst dein ADC auf? BTW: du solltest in der Eletrotechnik unbedingt zwischen "mS" und "ms" unterscheiden!
Eine andere Möglichkeit wäre das Signal über ca. 5ms zu integrieren, und dann den Offset drauf. Geht natürlich nur, wenn die Signalform in den 5ms einigermaßen "ähnlich" aussieht, sich also nur in der Amplitude unterscheidet.
> Was soll hier eigentlich die Angabe eines Leitwertes auf der Abszisse? es ist die Millisekunde (ms) gemeint ... also nicht mS > Wie genau brauchst du den Spitzenwert? Wieviele Bits löst dein ADC auf? möchte die 6 Detektoren(Spulen) miteinander vergleichen, bin da noch offen in der Umsetzung, das Problem ist der große Bereich von einigen mV bis einigen zig V ... > Warum zwischenspeichern? weil es sechs kurze Signale sind die exakt zur gleichen Zeit auftreten und eingelesen werden müssen ...
old_School_Offline schrieb: > das Problem ist der große Bereich von einigen mV > bis einigen zig V Definiere den Bereich mal genauer. Vorher waren es 100mV-10V, jetzt <100mV... Kommen denn Peaks von sagen wir mal 100mV und 10V in einer Messreihe vor, oder ist das der Messbereich, mit dem die Schaltung insgesamt umgehen können soll. Also, bei der einen Installation kommen Signale von 100mV bis 2V vor, in der anderen 500mV bis 10V, und man würde die Empfindlichkeit des Einganges dann einmalig z.B. mit einem Potentiometer einstellen. PS: +/-10V in 10mV Schritten aufzulösen ist auch nicht wirklich ein großes Problem. Das wären 11 bit, mit einem 12 oder besser 16-bit ADC ist das locker machbar.
:
Bearbeitet durch User
> Definiere den Bereich mal genauer.
je nach dem wo sich der Bot innerhalb der Stromschleife befindet bzw
über der Schleife befindet, kann sich der Werte-Bereich eben von einigen
zig. mV bis einigen zig. V bewegen ... die sechs Sensoren (spulen)
werden aber je nach Lage ungefähr im gleichen Bereich sich befinden,
Der Bot kann über eine Funk-Strecke auf die Sende-Leistung des
Schleifen-Generator (Basis-Station) Einfluss nehmen, bzw. kann das Modul
für die Sensoren im Bot die Eingangsempfindlichkeit selbiger über z.B.
Digitale Potis einstellt.
Warum das ganze ...
Ich baue derzeit einen BOT in Modul-Bauweise auf, Main-CPU,
I2C-Bus-System und Antriebs-Modul sind soweit fertig. Jetzt ist die
Schleifen Erkennung und deren Sensoren-Auswertung dran ...
"Sensor-Modul", in jedem Module sitzt ein "Arduino nano" mit seinen
Möglichkeiten ...
Aber bitte jetzt nicht das Projekt auseinander nehmen ...
Das hier wäre so meine Idee. Der uC müsste folgendes tun: In regelmäßigen Abständen ADC Werte einlesen, sagen wir mal alle 10ms (100Hz). Wenn der ADC Wert vom Nullwert (ca. halber Wertebereich +/- Rauschabstand) abweicht, ca. 6ms warten, und dann die eigentliche Messung machen. In dieser 6ms sollte das Signal dann vollständig integriert sein. Nach der Messung das Signal CLR für ca. 1-2ms auf high setzen, um den Integrator zu resetten. Dann wieder von vorne beginnen.
@Joe F. (easylife) Besten Dank für Ausführung, muss ich mir mal in Ruhe anschauen ...
old_School_Offline schrieb: > @Joe F. (easylife) > > Besten Dank für Ausführung, muss ich mir mal in Ruhe anschauen ... Eine solche Lösung hat natürlich den Vorteil, dass deine ADC Samplerate drastisch reduziert ist. Der Nachteil ist: du musst die Schaltung auf dein Signal anpassen, und bei 6 Kanälen ist es dann doch einiges an Bauteilen... U2 braucht man natürlich nur ein mal für alle 6 Kanäle. Wenn es irgendwie möglich ist, würde ich auch die Lösung mit einer entsprechend hohen Samplerate (10-20KHz) vorziehen, und die Peak-Erkennung in der Firmware machen. Signal von +/-10V mit einem Opamp auf 0..5V bringen, Clipping-Dioden rein, und fertig.
:
Bearbeitet durch User
@Joe F. (easylife) hat es einen Grund warum du genau den LT1638 genommen hast, habe noch TL084CN massenhaft liegen. Die Schaltung um U3, sieht recht genial aus, speichert sowohl positive als auch negative Impulse, mir ist aber noch nicht ganz klar, warum entlädt sich der Kondensator C3 nicht über den Ausgang vom U1, wenn dieser die längste Zeit auf U/2 liegt wie sieht denn das Ausgangs-Signal bei einem kleinerem Eingags-Signal am U1 aus ... ( z.B. Peak 2V )
old_School_Offline schrieb: > @Joe F. (easylife) > > hat es einen Grund warum du genau den LT1638 genommen hast, > habe noch TL084CN massenhaft liegen. Weil LT-Spice für den LT1638 ein Simulationsmodell hat... ;-) > > Die Schaltung um U3, sieht recht genial aus, speichert sowohl positive > als auch negative Impulse, mir ist aber noch nicht ganz klar, > warum entlädt sich der Kondensator C3 nicht über den Ausgang vom U1, > wenn dieser die längste Zeit auf U/2 liegt Der Ausgang von U1 liegt die längste Zeit auf 0V. Das Eingangssignal ist auf 0V bezogen. Der Kondensator kann sich nur über R6 oder die Entlade-MosFETs entladen. > wie sieht denn das Ausgangs-Signal bei einem kleinerem Eingags-Signal am > U1 aus ... ( z.B. Peak 2V ) Bei 2V dürfte es noch gehen, das Ganze hat aber tatsächlich unangenehme Grenzen nach unten. Ich würde sagen, mit Eingangssignalen unter 0.5V wird es dann schon recht ungenau. Und das hängt mit leichtem Drift zusammen, den ich selbst in der Simulation nicht wegbekomme. Ich habe die Schaltung noch etwas verbessert (R15 zur Entladestrombegrenzung, und C5 um DC-Offset zu eliminieren). Wenn man dann mal mit den 100ms zwischen den Peaks simuliert, driftet der Augang ca. 20mV in 100ms weg... Man kann noch etwas tricksen, indem man die CLR Phase so lange wie möglich macht (z.B. 70ms). Dann hat der Drift weniger Zeit... Aber viel genauer wird es nicht werden, ausser jemand anderes hat noch die zündende Idee... Es spricht vieles dafür, das Signal hochauflösend mit dem ADC abzutasten...
Joe F. schrieb: > Es spricht vieles dafür, das Signal hochauflösend mit > dem ADC abzutasten... Ja. Wir haben zeitweise Peak-Detektoren in Messelektronik (Ultraschall) verbaut, und es ist ein Furunkel am Arsch. Wenn möglich, immer direktabtasten. Notfall mehrkanalig mit unterschiedlichen (analogen) Tiefpässen im Eingang.
Ich hänge dir mal das LT-Spice File an. Dann kannst du dir selbst angucken, wie unangenehm sich das Ding bei kleinen Eingangssignalen verhält. Den Pegel des Eingangs-Peaks kannst du einfach über den parameter peak_voltage verändern.
Ab und zu hilft es dann doch mal die Herren Tietze und Schenk zu konsultieren. Es macht natürlich total Sinn, den Strom am positiven Eingang von U3 mit dem negativen Eingang gleich zu machen -> tataaa, weniger Drift.
:
Bearbeitet durch User
Ich sage erst mal besten Danke, weis jetzt auf jeden Fall in welche Richtung ich probieren muss. Bei der Auswertung geht es jetzt nicht um Messtechnisch hoch-genaue Werte, eher ein vergleich der Sensoren zueinander, um heraus zu finden, ob der BOT sich dem Schleifen-Draht mit welcher Seite nähert und um dann das Tempo zurück zunehmen, damit man einen abruckten Stop beim überfahren vermeiden kann ... Für das Fahren auf dem Draht wird es bestimmt funktionieren, da dort das Signal dann am stärksten ist ...
Die schon geposteten Integrator-Schaltungen sind natürlich schon gut, ein Peak-Gleichrichter lässt sich in ähnlicher Form auch aufbauen. Bei sechs Kanälen würde ich aber eher an soetwas wie einen AD9272 denken, in Kombination mit einem kleinen FPGA. Da hat man eindeutig weniger Komponenten und auch mehr Flexibelität. Vielleicht erscheint es erst einmal ziemlich weit weg, aber mit der Verfügbarkeit von günstigen FPGA-Experimentierkits auf eBay und Konsorten (und auch kompletten Boards mit dem AD9272 - o.Ä.) ist es näher als es vielleicht anfangs ausschaut. Es ist eine Überlegung wert...
> Es ist eine Überlegung wert... Ich denke das ist ein wenig overkill ... da komme ich nie zum Ziel, solch ein komplexer Schaltkreis, dann noch FPGA dazu. Das Projekt hat noch so viele andere Baustellen, da scheitere ich und mein Projekt, bevor es richtig begonnen hat ... Deswegen arbeite ich auch mit Modulen, die ich später auch noch nachbessern und zu Not austauschen kann, Material, Zeit und Effizienz beim Aufbau spiet da eher eine Nebenrolle, es muss für mich ohne großen Aufwand umsetzbar bleiben ...
Arno Nyhm schrieb: > Bei sechs Kanälen würde ich aber eher an soetwas wie einen AD9272 denken Ein "Analog-to-digital converter (ADC) 12 bits at 10 MSPS to 80 MSPS" für ein paar Signale im 1kHz-Bereich? > in Kombination mit einem kleinen FPGA. Die Frequenz hier im beschreibenen Fall ist doch schnarchlangsam, da braucht man kein FPGA, sondern nur einen µC und ein wenig Mitdenken/Nachdenken. Ich bin mir sicher, dass man 50kHz Abtastung mit Peaksuche auf 6 Kanälen auch mit einem 4€ µC locker hinbekommt...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.