mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Komplexen Leitwert mit AVR bestimmen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Karl K. (karl2go)


Bewertung
0 lesenswert
nicht lesenswert
Ich möchte einen komplexen Leitwert / Widerstand einer Probe zwischen 
zwei Elektroden bestimmen. Der Widerstand wurde anhand des 
Komponententesters auf dem Oszi zu etwa 10k in Reihe mit 1µF grob 
abgeschätzt.

Im Praktikum haben wir den Wert mit einer Wien-Brücke bei 500Hz 
bestimmt, indem wir durch Zuschalten von R und C mit Widerstands- und 
Kondensatordekade die Phase und die Spannung an der Brücke sukzessive 
auf Null gebracht haben.

Das läßt sich nun schlecht automatisiert umsetzen, deswegen suche ich 
eine möglichst praktikable Methode, diese Werte mit einem AVR zu 
ermitteln.

Bedingungen wären:

- An den Elektroden darf nur Wechselspannung anliegen.
- Vorzugsweise Zweileitermessung, Vierleitermessung wäre aber möglich.
- Gemessen werden soll diskontinuierlich.
- Messfrequenz bei etwa 200 bis 500Hz.
- Widerstand zwischen 1kohm und 100kohm, kapazitiver Anteil bis 10µF.
- Genauigkeit - ja, gute Frage. Das wird sich erst im Verlauf 
herausstellen, welche Genauigkeit sinnvoll erreichbar ist.

Leider lassen sich aufgrund des hohen Widerstands, der doch geringen 
Kapazität und der Anforderung an reine Wechselspannungsmessung die 
üblichen Verfahren zu ESR-Bestimmung hier nicht anwenden.

Wie könnte man da vorgehen?

von Fanta-Steht-Am-Tisch (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> die Phase und die Spannung an der Brücke sukzessive auf Null gebracht
> haben.
>
> Das läßt sich nun schlecht automatisiert umsetzen,

Jein. Erst die Amplitude mit rein R (C für die Verhältnisse auf 
Unendlich) angleichen, dann die Phase mit kleineren R und kleiner 
werdenden C nachstellen, und zwar so, dass
|R+1/jC| = const
bleibt. Also schön den Thaleskreiw abfahren. Widerstands- und 
Kapazitätsdekade lassen sich vielleicht automatisieren? Dazu wäre es 
Sinnvoll, die Dekade als "Binäre" zu haben, damit von Digitalseite aus 
besser gesteuert werden kann.
Dazu muss man das Dings-under-test aber auch halbwegs charakterisiert 
haben. Hast du ja auch:
Karl K. schrieb:
> Widerstand zwischen 1kohm und 100kohm, kapazitiver Anteil bis 10µF.

Vor dem Thaleskreis-nachstellen würde eine Erregerspannungsnachstellung 
auch noch Sinn ergeben, um möglichst im besten Dynamikbereich der 
Messeschaltung zu bleiben.

Komplett anderer Ansatz: Digitaler Lock-In-Amplifier, heterodyner 
Prozess und I-Q-Direktmessung. Daraus dann R+1/jC berechnen.
Auch hier ergibt Erregeramplituden-Nachregwlung
Sinn. Automatische Open, Leerlauf, Definierte Referenzmessung (en) ließe 
sich mit ein wenig Relaisgwklapper einfach dazu bauen. Sozusagen als 
Selbstkalibrierung.

mfg mf

von Karl K. (karl2go)


Bewertung
-1 lesenswert
nicht lesenswert
Fanta-Steht-Am-Tisch schrieb:
> Dazu wäre es
> Sinnvoll, die Dekade als "Binäre" zu haben

Widerstand kann man vielleicht mit einem digitalen Poti machen, aber 
Kapazitätsdekade wird schon aufwendig.

Fanta-Steht-Am-Tisch schrieb:
> Digitaler Lock-In-Amplifier, heterodyner
> Prozess und I-Q-Direktmessung. Daraus dann R+1/jC berechnen.

Das hatte ich auch schon auf dem Schirm:

1. Sinusspannung mit PWM erzeugen, etwa 500Hz, filtern.
2. Über Vorwiderstand auf Elektroden geben.
3. Spannung und Strom abtasten.
4. Effektivwerte und Phasenschiebung berechnen, daraus R und C.

Ist das auf einem ATmega328 oder ATtiny realisierbar? Da 
diskontinuierliche Messung, wäre für Sampeln und nachträglich Berechnen 
genug Zeit.

Da ich den Sinus per Interrupt und PWM erzeuge, wäre Lock-In-Synchro 
schonmal gegeben. Dann summiere ich über mehrere Zyklen für Urms und 
Irms und bestimmt daraus R. Dann schaue ich nach dem delta-T zwischen 
den Nulldurchgängen und berechne daraus C. Ist das soweit richtig?

von max123 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vorschlag:
1. Sinus erzeugen und durch das RC-Glied schicken.
2. Strom messen  und in ein Array schreiben.
3. Array * sin und davon die Summe ist der Realteil des Stroms.
4. Array * cos und davon die Summe ist der Imaginärteil des Stroms.
5. Daraus Z berechnen.

zu 1)
verwende deinen Prozessor mit DA Wandler. Dadurch kann die
Filterung einer PWM vermieden werden. z.B  Ardoinu DUE.
Ein Lock- in würde das alles auch können.

zu 3 und 4)
Die Summe ist wie ein Integral im Analogen. Nulldurchgänge zu
suchen ist zwar richtig, jedoch geringes Rauschen wirkt schon
störend.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> Das läßt sich nun schlecht automatisiert umsetzen, deswegen suche ich
> eine möglichst praktikable Methode, diese Werte mit einem AVR zu
> ermitteln.

Dann mach es wie der AVR Komponententester
https://www.mikrocontroller.net/articles/AVR_Transistortester

von Christian L. (cyan)


Bewertung
0 lesenswert
nicht lesenswert
Auch, wenn er übertrieben ist für die Aufgabe, würde ich zur 
Vollständigkeit noch den AD5934 erwähnen.

von 1000V Dc (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wie hoch ist den der ec wert der lösung?

von Karl K. (karl2go)


Bewertung
-1 lesenswert
nicht lesenswert
1000V Dc schrieb:
> Wie hoch ist den der ec wert der lösung?

Da es keine Lösung ist: Keine Ahnung.

Ich brauche erstmal ein brauchbares Verfahren R und C zu messen ohne 
ständig mit Dekaden und Messbrücke rumfummeln zu müssen. Dann kann ich 
damit verschiedene Proben messen, eventuell die Elektroden optimieren 
(Abstand, Form), den Meßbereich anpassen, Temperaturgang aufnehmen.

Christian L. schrieb:
> Auch, wenn er übertrieben ist für die Aufgabe, würde ich zur
> Vollständigkeit noch den AD5934 erwähnen.

Der macht ziemlich das, was ich brauche, nur: Geht der auch unter die 
angegebenen 1kHz, wenn ich den Takt an MCLK runtersetze?

Und leider ist er halt gaaaanz schön teuer und anscheinend schwer 
beschaffbar. Aber der Sweep über den Frequenzbereich - das hat schon 
was.

Wolfgang schrieb:
> Dann mach es wie der AVR Komponententester

Denn kenne ich natürlich, aber: Sorry, ich sehe jetzt nicht, wie ich da 
gleichstromfrei messen kann.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Du programmierst dir einen Timer so, dass er alle 1msec einen Interrupt 
ausloest. In diesem Interrupt liest du ein Sample vom ADC. Weiterhin 
gibst du  in dem Interrupt auf GPO_0 jeweils ein Bit dieses Bitmusters 
aus: [1 1 0 0 1 1 0 0 ...], auf GPO_1 ein Bit von diesem: [0 0 1 1 0 0 1 
1 ...].
Die gelesenen Samples teilst du auf: Jedes 2. Sample wird ein I Wert, 
die Samples dazwischen Q.
Und jetzt fress' ich doch einen Besen, wenn man's nicht schaffen sollte, 
aus den eingelesenen I- und Q-Werten Rueckschluesse auf Rx und Cx ziehen 
zu koennen, wenn Zref einen halbwegs vernuenftigen, konstanten, 
bekannten Wert aufweist.
Im Interrupt haste 1msec Zeit, also kann da sogar ein AVR ein bisschen 
was rechnen. Messfrequenz waeren dann 250Hz.
Dadurch, dass GPO_[01] immer entgegengesetzten Pegel haben, sollte die 
Messung auch DC-frei sein...
.               Rx    Cx         Zref
GPO_0 o---(--/\/\/\/--||--)--+--/\/\/\--o GPO_1
                             |
                             |
                            ADC

Gruss
WK

von Joggel E. (jetztnicht)


Bewertung
-1 lesenswert
nicht lesenswert
Fuer einen Lock-in wuerde ich zB einen ADA2200 empfehlen.
https://www.analog.com/en/products/ada2200.html

Alternativ, mit einem Stanford Lock-in spart man sich viel Arbeit. 
Kostet um die 4000Euro

Zurich Instruments hat auch welche.

: Bearbeitet durch User
von Detlef _. (detlef_a)


Bewertung
0 lesenswert
nicht lesenswert
Einen komplexen Spannungsteiler aufbauen und mit einem D/A Wandler über 
einen DC-Blocker ( grosses C) speisen. Spannungsteiler 
Uaus=Uein*(Zx/(Zx+Zref)). Uein und Uaus mit A/D messen, daraus Zx 
berechnen. Zref muss in der Grössenordnung von Zx liegen, wenn man mehr 
als einen D/A und A/D hat verschiedene Zref über den Messbereich 
verteilen.

So macht das so manches Messgerät für komplexe Impedanzen.

Cheers
Detlef

von pontifex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
...
>
> Im Praktikum haben wir den Wert mit einer Wien-Brücke bei 500Hz
> bestimmt, indem wir durch Zuschalten von R und C mit Widerstands- und
> Kondensatordekade die Phase und die Spannung an der Brücke sukzessive
> auf Null gebracht haben.
>
> Das läßt sich nun schlecht automatisiert umsetzen,

Wie kommst du denn auf diese Idee?

Sind dir selbstabgleichende Brücken noch nie untergekommen? Lies doch 
mal Fachliteratur zum Thema Elektronik.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> Denn kenne ich natürlich, aber: Sorry, ich sehe jetzt nicht, wie ich da
> gleichstromfrei messen kann.

Wenn bei dir Widerstand und Kondensator, wie im Eröffnungspost genannt, 
in Reihe liegen, sollte die Gleichstromfreiheit doch alleine schon durch 
die Kapazität sicher gestellt sein.
Wenn du deinen Angaben nicht traust, schalte noch einen dicken 
Kondensator in Serie.

von Karl K. (karl2go)


Bewertung
-1 lesenswert
nicht lesenswert
pontifex schrieb:
> Sind dir selbstabgleichende Brücken noch nie untergekommen?

Ich suche nun leider eine möglichst einfache und nicht eine möglichst 
aufwendige und teure Lösung.

Dergute W. schrieb:
> Du programmierst dir einen Timer so, dass er alle 1msec einen Interrupt
> ausloest. In diesem Interrupt liest du ein Sample vom ADC. Weiterhin
> gibst du  in dem Interrupt auf GPO_0 jeweils ein Bit dieses Bitmusters
> aus: [1 1 0 0 1 1 0 0 ...], auf GPO_1 ein Bit von diesem: [0 0 1 1 0 0 1
> 1 ...].

Welchen Vorteil bringt das Rechteck hier gegenüber einem Sinus?

Ich muss nicht so oft abtasten, und nicht rms bilden. Habe aber 
Oberschwingungen durch den Rechteck.

Muss ich mal drüber nachdenken. Aber offenbar war mein Ansatz mit Strom, 
Spannung und Phase ermitteln schon die richtige Richtung, ein 
grundlegend anderes Verfahren ist hier nicht aufgepoppt.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Karl K. schrieb:
> Welchen Vorteil bringt das Rechteck hier gegenüber einem Sinus?

> ...eine möglichst einfache ...
> Lösung.

Du sparst dir die Sinuserzeugung ein. Das sind halt eine Handvoll 
Bauteile und hier mindestens 3 Seiten Thread ueber die noetige 
Genauigkeit und das zu bevorzugende Erzeugungsverfahren ;-)
Klar, wenns ganz bloed laufen sollte, dann koennten die Oberwellen 
irgendwelche unangenehmen Faxen beim Messen machen, aber ich wuerd's 
erstmal ausprobieren.

Gruss
WK

von Karl K. (karl2go)


Bewertung
-1 lesenswert
nicht lesenswert
Dergute W. schrieb:
> Du sparst dir die Sinuserzeugung ein.

Die läuft bereits, das ist bei 200Hz nicht das Problem. Eher kritisch 
ist das Abtasten, ich denke 10 Punkte pro Vollwelle sollten es schon 
sein, und das mal 3 Werte, müsste aber gehen.

Dergute W. schrieb:
> hier mindestens 3 Seiten Thread ueber die noetige
> Genauigkeit und das zu bevorzugende Erzeugungsverfahren ;-)

Mir ging es darum, ob das prinzipiell das Verfahren der Wahl ist oder ob 
es noch andere Messverfahren gibt, welche ich übersehen habe. Scheint 
nicht der Fall zu sein.

von Dergute W. (derguteweka)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Karl K. schrieb:
> Die läuft bereits, das ist bei 200Hz nicht das Problem. Eher kritisch
> ist das Abtasten, ich denke 10 Punkte pro Vollwelle sollten es schon
> sein, und das mal 3 Werte, müsste aber gehen.

Naja, wenn du deine Sinuserzeugung so im Griff hast, dass deren 
Amplitudenstabilitaet vs. Uref des ADC passt, und die Abtastung immer 
exakt alle 90° erfolgt - dann ist das mit dem Sinus wahrscheinlich eine 
bessere Sache als mit meiner vorgeschlagenen Rechteckerzeugung.
Wenn du einen Sinusgenerator hast, der halt mit irgendeiner Amplitude 
auf irgendwelchen 200...500Hz schwingt und du irgendwie dazu 
unkorreliert abtastest, dann koennt's aufwendiger/ungenauer sein, die 
Phase+Amplitude des gesampleten Signals sicher zu erfassen...

Gruss
WK

von 1000V Dc (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich würde ja mal in den Applikation Notes vom ad5943 luchsen. Wie schon 
angedeutet brauchst du unbedingt dc - freie Messung ansonsten gibt's 
Elektrolyse an den Elektroden und dein Messwert driftet...

von pontifex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> Ich suche nun leider eine möglichst einfache
> und nicht eine möglichst aufwendige und teure Lösung.

Tja, andere haben selbstabgleichende Brücken schon sehr oft 
kostengünstig und sehr einfach - auch mit mc - realisiert. Das ist in 
sehr vielen Anwendungsbereichen Stand der Technik und gängige Praxis.

Aber nachdem er die gängigen Lösungen auf dem Gebiet der Elektronik 
nicht kennt und das Unbekannte als vermeintlich aufwændig abtut, ist ihm 
wohl nicht zu helfen. Manche Anfänger müssen anscheinend mangels 
Fachwissen viel Zeit damit verbringen das Rad neu zu erfinden. Vor 
allem, die, denen der Erwerb von Fachwissen zu "aufwändig" ist, scheinen 
dazu verdammt zu sein.

Ich bin da aus der Diskussion raus.

von Karl K. (karl2go)


Bewertung
-1 lesenswert
nicht lesenswert
pontifex schrieb:
> Ich bin da aus der Diskussion raus.

Na hoffentlich, dein dummes Geschwafel kostet nur unnötig Strom.

Ich hab nunmal keine Varicap die ich um 1uF abstimmen kann, und die 
dürfte auch sehr groß werden. Und ich hab auch keine Lust, zig 
Kondensatoren mit Analogschaltern umzuschalten, wenn es eine deutlich 
einfachere Lösung gibt.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Mit einem MC läßt sich das sehr einfach lösen.
Man legt 5V an und mißt sofort den Strom. Am Kondensator fallen im 
Einschaltmoment 0V ab, d.h. man hat den Widerstand:
R = 5V / I
Dann mißt man die Zeit, wann der Strom auf 63% abgesunken ist. Mit 
dieser Zeit rechnet man nun den Kondensator aus:
C = t / R

von Karl K. (karl2go)


Bewertung
-1 lesenswert
nicht lesenswert
Peter D. schrieb:
> Man legt 5V an und mißt sofort den Strom...

Wenn die Leute doch mal lesen würden, bevor sie Selbstverständlichkeiten 
von sich geben.

Karl K. schrieb:
> - An den Elektroden darf nur Wechselspannung anliegen.
...
> - Messfrequenz bei etwa 200 bis 500Hz.

von Pontifex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> Na hoffentlich, dein dummes Geschwafel kostet nur unnötig Strom.

Wie schön ist es, so etwas von ausserhalb zu lesen. :)

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> Wenn die Leute doch mal lesen würden, bevor sie Selbstverständlichkeiten
> von sich geben.

Anstatt zu meckern, wäre es schlauer, mal zu erklären, woher die 
komischen Anforderungen kommen und was für ein komischens Meßobjekt das 
ist.
Dann ließe sich vielleicht auch die nötige Genauigkeit abschätzen.

Je mehr Geheimniskrämerei, umso ungenauer sind die Antworten.

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Karl K. schrieb:
> Widerstand kann man vielleicht mit einem digitalen Poti machen, aber
> Kapazitätsdekade wird schon aufwendig.

Du musst ja nicht unbedingt die Kapazität ändern, es geht auch mit zwei
Digitalpotis (s. Anhang). Um mehrere Größenordnungen von Z abzudecken,
sollten auch R3 und C2 in wenigen, groben Stufen einstellbar sein, um
die Auflösung der Digitalpotis optimal nutzen zu können. Das ist in etwa
vergleichbar mit der Einstellung des Messbereichs in einem Multimeter
und kann entweder automatisch über Relais/Analogschalter oder manuell
erfolgen.

Bei abgeglichener Brücke ist R1=R2·R3/R4 und C1=C2·R3/R4.

: Bearbeitet durch Moderator

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.