Hallo zusammen,
ich studiere Elektrotechnik und schreibe seit kurzen an meiner
Diplomarbeit. Bei dem Thema geht es darum, mithilfe einer Rogowskispule
einen Stromsensor aufzubauen. Zu dem Thema gibt es bereits analog
aufgebaute Lösungen aber mein Ansatz ist eine digitale Auswertung und
Integration des Signals von der Rogowski Spule. In meiner Freizeit habe
ich mich schon intensiv mit AVR Controllern beschäftigt (in C
programmiert), welche für die jetzigen Anforderungen aber nicht mehr
ausreichen. Ziel ist es, das Signal der Rogowski Spule erst analog zu
verstärken und es dann mit mindestens 1MSPS abzutasten (es sollen Ströme
bis 100kHz gemessen werden können). Die Auflösung sollte mindestens 14
bit betragen und die Messwerte müssen auch noch weiterverarbeitet
(gefiltert und vor allem nach der Zeit integriert werden) und dann an
einen Computer weitergegeben werden, der dann den Stromverlauf anzeigt.
Im Moment ist mein Problem, dass ich von der vielfalt an FPGAs, DSPs und
µControllern den Überblick verloren habe was für eine
Entwicklungsumgebung für diese Anwendung geeignet ist. Nach einiger
Recherche bin ich der Meinung, dass ein TMS320F282xx aus der Fixed point
Serie den Anforderungen genügt und gegenüber den programmierbaren
logiken den Vorteil von Hardware Schnittstellen hat (zur Kommunikation
mit dem ADC und dem PC).
Jetzt zur eigentlichen Frage:
Liege ich mit damit richtig? Würdet ihr mir zu einer anderen Platform
raten? Meint ihr die Abtastrate von 1MSPS ist ausreichend um ein 100kHz
Signal abzutasten?
Bin sehr gespannt auf eure Antworten und bedanke mich schonmal fürs
Lesen!!
Viele Grüße
Christian
Christian schrieb:
> Meint ihr die Abtastrate von 1MSPS ist ausreichend um ein 100kHz> Signal abzutasten?
Wenn das Signal sinusförmig ist, sollte das allemal ausreichen. Bei
perfekter Sinusform sind zwei Samples pro Periode vollkommen
ausreichend, also 200 kHz Abtastrate wären dann genug.
Weiß allerdings nicht was Dein Signal für wilde Formen hat ;)
Ui, das ist jetzt aber gefährlich. Man sollte schon mit der
industrieüblichen zehnfachen Überabtastung arbeiten. Bei 14-16 Bit kann
man wahrscheinlich auch höherfrequente Signalanteile nicht einfach
ignorieren sondern muss einen guten Aliasingfilter vorschalten. Unter
http://focus.ti.com/docs/toolsw/folders/print/antialiasingcalc.html
gibt's eine Exceldatei, die bei der Suche nach der richtigen
Konfiguration von Bandbreite (hier 100kHz), Abtastrate, Filtersteilheit
etc. hilft. (man muss aber beachten dass analoge Filter nur bis ca.
6-8ter Ordnung realisierbar sind).
Insgesamt scheint mit die komplette Aufgabe sehr umfangreich für eine
DA. Ich würde mich auf das analoge Frontend konzentrieren und irgendein
DSP Eval.-Board von TI oder Analog hernehmen. Dann hat man wenigstens
mit dem Digitalteil keinen Ärger und hat eine zuverlässige
Entwicklungsumgebung. Favorit natürlich das neue
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=460-3483-ND
Das analoge Frontend bereitet dann schon genug Überraschungen wie z.B.
Wahl der richtigen OPAMPS, Filterdesign, ADC-Wahl (evtl. ADS8330?),
Layout und Bestückung. Nicht zu vergessen Schaltreglerdesign für die
verschiedenen analogen Spannungen!
Viele Grüße und viel Erfolg!
Wahrscheinlich reichen 1 MSPS aus.
Für 14 bit oder mehr und diese Geschwindigkeit brauchst wahrscheinlich
du einen externen ADC.
Das hängt neben dem Signal (siehe oben) auch von z.B. dem Rauschen ab,
falls du z.B. viel/wenig Oversampling betreiben willst.
Ich weiß nicht wieviel und wie du Filtern und integrieren willst, evtl
wird die Rechenleistung knapp oder sie ist mehr als ausreichend.
Evtl würde auch ein schneller Arm 7 oder so reichen.
Weiteres:
In manchen Fällen ist die Verwendung von Floatingpoint sinnvoll.
Für die "einfache" Anzeige am Computer reicht wahrscheinlich eine
serielle Verbindung.
man sollte so ein 100kHz Signal nicht unterschätzen. Ein Alaisingfilter
gehört sowie standartmässig vor den ADC. Aber man muss sich nicht
wirklich an den Industriestandart richten. Das 2,5 fache für die
Abtastfrequenz liefert auch noch brauchbare Werte für eine digitale
Verarbeitung.
Für die Aufgabe solltest du aber defenetiv entweder ARM9 ab 200MHz oder
DSP wählen. Wobei die Programmierung eines DSPs sich schon von der eines
µC unterscheidet und wenn du pech hast einen spezielle
Programmieradapter(um die 1500€) benötigt.
Auch die 16bit Auflösung ist nicht grade einfach hinzubekommen, da muss
man schon auf einiges achten.
Für die digitale Signalverarbeitung ist noch zu erwähnen : KEINE FLOAT
Berechnungen, da diese einfach zu langsam sind.
MfG
Stefan
Wenn es ein TMS320 werden soll, dann würde ich an deiner Stelle auf
jeden Fall den F28335 nehmen, Floatingpoint Arithmetik kann nie schaden,
wenn man digitale Filter in hoher Genauigkeit rechnen will. Außerdem
gibt es für den 335er ein Evaluationboard mit Onboard-JTAG und privat
nutzbarem Compiler dazu:
TMDSDOCK28335
Ich habe das Board selbst, das spart wirklich eine Menge Arbeit beim
Aufbau von Versuchsschaltungen. Allerdings nutze ich nicht den Compiler,
der dabei ist, sondern eine Vollversion, daher kann ich bzgl. des
beschränkten Compilers nur wenig sagen.
Der 335er hat einen onchip-adc mit 80 ns conversion time und 12 bit
Auflösung, das sollte für erste Versuche genügen.
Grüße,
Peter
Stefan Kunz schrieb:
> (...) Ein Alaisingfilter> gehört sowie standartmässig vor den ADC. Aber man muss sich nicht> wirklich an den Industriestandart richten. Das 2,5 fache für die> Abtastfrequenz liefert auch noch brauchbare Werte für eine digitale> Verarbeitung.
Das ist aber ein sehr steiler Aliasingfilter ;-)
> Für die Aufgabe solltest du aber defenetiv entweder ARM9 ab 200MHz oder> DSP wählen. Wobei die Programmierung eines DSPs sich schon von der eines> µC unterscheidet und wenn du pech hast einen spezielle> Programmieradapter(um die 1500€) benötigt.
ARM9 + Float DSP für $159 im oben genannten Link. Mit Ethernet, Linux
etc. pp, also ideal auch für den Datentransfer auf einen Rechner.
> Auch die 16bit Auflösung ist nicht grade einfach hinzubekommen, da muss> man schon auf einiges achten.
Wird anspruchsvoll, auf jeden Fall!
> Für die digitale Signalverarbeitung ist noch zu erwähnen : KEINE FLOAT> Berechnungen, da diese einfach zu langsam sind.
Mit dem DSP-Core oben gar kein Problem :-D
Ich bin kein Fan von Floatingpoints. Floats gaukeln einem nur eine
Genauigkeit vor die nicht da ist. Außerdem ist ein DSP mit Integerwerten
nochmal schneller.
Aber ich würd defenetiv auf ein Betriebssystem verzichten, die machen
bei sowas mehr Ärger, als das sie nützen.
Gut meine Bachelorarbeit handelte auch über ein Modul mit 500kHz
Abtastrate und ditigaler Signalverarbeitung und mit Betriebssystem ;-)
daher mein Vorschlag das Betriebssystem wegzulassen.
^^ wegemn dem Antiailaisingfilter, die 2,5 beziehen sich auf die
Abtastfreuqnz des ADCs zu dem Abzutastenen Signal. Dabei gilt dann
natürlich das der analoge TP das Signal auch dahin begrenzt
Evtl ist es sinnvoll für diese Aufgabe ein uC mit 64bit Floating Point
FPU zu verwenden. z.B. Arm 9 mit VFP oder SH2A von Renesas.
Bei 32 bit Floats muss man sehr auf die Skalierung aufpassen, sonst kann
es ungenau werden.
Hallo und herzlichen Dank für die vielen und ausführlichen Beiträge!!
Der Lösungsansatz ist auf jeden Fall möglichst viele Evaluationboards
zum Einsatz kommen zu lassen um hier nicht übermäßig viel Aufwand mit
Schaltplanentwurf und Platinenlayout zu produzieren. Es geht lediglich
um den Aufbau eines Demonstrators.... Wie Rasfunk schon geschrieben hat,
bin ich auch der Meinung dass der analog Teil noch genügend
Überraschungen birgt...
Problem bei meinem Stromsignal ist, dass es sich NICHT um einen Sinus
handelt. Es geht darum einen möglichst allgemein anwendbaren Stromsensor
zu bauen der laut Spezifikation (also Zielsetzung der Diplomarbeit)
Ströme mit einem dI/dt von bis zu 10A/ns erfassen soll (sorry dass ich
euch die Information im ersten Beitrag vorenthalten habe, aber daran
habe ich selber nicht gedacht) Das Signal hat zwar im ungünstigsten Fall
nur 100kHz aber wenn es ein Rechtecksignal ist muss die Flankensteilheit
ja mit abgetastet werden? Schließlich muss die induzierte Spannung in
der Rogowski Spule ja wieder integriert werden um auf den Strom im
Leiter schließen zu können!
Auch der integrierte A/D Wandler vom TMS320F28235 oder vergleichbaren
DSP'S wird vermutlich nicht reichen - ich werde einen externen A/D
Wandler mit Eval board suchen... der ADS8330 scheint perfekt zu sein
aber für den hab ich noch kein EVAL board entdeckt...
Was die Controllerwahl anbelangt kann ich jetzt auf ein TMDSDCDC2KIT
zurückgreifen was mir von einem ehemaligen Diplomanden zur Verfügung
steht. Damit hab ich schon einen programmieradapter, ein EVAL Board und
einen Ansprechpartner der damit schon gearbeitet hat. Falls die
Rechenleistung nicht ausreicht, lässt sich das Eval board auch noch mit
einem höher getakteten floatingpoint controller bestücken (da sind DIMM
Sockel drauf womit der Controller schnell getauscht werden kann).
An dieser Stelle nochmal vielen Dank für euren Input es waren wirklich
wertvolle Informationen dabei!
Viele Grüße
Christian
100kHz Rechtecksignal mit 10A/ns Auflösung ... mit 1MHz abgetastet ...
hehe
(Du hast uns noch nicht den Fullscale Bereich genannt.)
Aber so wie Du das schilderst wird dein 1MHz wohl nicht reichen.
Du hast ein dI/dt von 10kA/us, vielleicht eine Eingangsbandbreite von
250kHz und möchtest mit 1us Abtastung arbeiten.
Wenn sich dein Abtastzeitpunkt um 500ns verschiebt, dann hättest Du
einen Fehler von 0.5us x 10kA / 1us = 5kA (mangelnde zeitliche
Auflösung).
Wie groß darf denn dein Stromfehler werden (bei diesem fetten dI/dt)?
Achso - wer integriert eigentlich?
Am Besten nimmst Du einen externen Integrator, sonst hast Du keine
Chance diese Signale zu verarbeiten.
Ich habe für eine ähnliche Applikation einen integrierenden AD-Wandler
(DDC112 von B&B) eingesetzt. Der hat aber nur 3kHz Abtastrate bei 20Bit
Auflösung. Sonst ist dies eine exotische Aufgabe. Vermutlich mußt Du 2
externe Integratorchips nehmen und zyklisch zwischen denen hin und
herschalten und deren Ausgang dann mit AD-Wandler umsetzen.
Michael schrieb:
> Achso - wer integriert eigentlich?
Ich schätze mal, dazu wird er den DSP hernehmen wollen... Bandbegrenzen
und dann IIR TP-Filter 1. Ordnung zum Integrieren. 0dB-Punkt muss dann
empirisch abgeglichen werden.
Noch eine kleine Anmerkung zum Analog-Frontend: die Spannung der
Rogowskispule darf, soweit ich es verstanden habe, nicht belastet
werden. Daher am besten einen Op-Amp mit hochohmigen JFET-Eingängen als
Eingangsstufe verwenden (z.B. OPA132, wird wohl ein TI-only design ;-)
).
Na das Integrieren wird aber mit dem DSP erheblich zu langsam sein.
Der AD-Wandler tastet ja nur ab. Damit ergeben sich riesige Lücken
zwischen zwei Abtastwerten in denen die induzierte Spannung nahezu nicht
berücksichtig wird.
Sollte die Eingangsbandbreite jedoch viel zu hoch sein, dann bekommt der
AD-Wandler während der Messung ein veränderliches Signal zum wandel -
auch nicht gut.
Michael schrieb:
> Na das Integrieren wird aber mit dem DSP erheblich zu langsam sein.
Eigentlich nicht, es ist ein eine stinknormale Faltung im Zeitbereich,
wie jeder andere digitale Filter auch. Bei ca. 300 MHz Takt und 1MSPS
hätte er pro Sample 300 Takte Zeit. Da lässt sich einiges Berechnen,
insbesondere ein einfacher Integrator (Filter 1. Ordnung).
> Der AD-Wandler tastet ja nur ab. Damit ergeben sich riesige Lücken> zwischen zwei Abtastwerten in denen die induzierte Spannung nahezu nicht> berücksichtig wird.
Du schaust zu sehr auf den Zeitbereich. Nach dem Aliasingfilter ist das
Signal bandbegrenzt, ohne Lücken. Spannungsänderungen oberhalb der
Filtergrenzfrequenz sind dann natürlich gedämpft - das muss man bei der
Verwendung des Geräts möglicherweise wissen. Aber messtechnisch kriegt
man keine Probleme.
> Sollte die Eingangsbandbreite jedoch viel zu hoch sein, dann bekommt der> AD-Wandler während der Messung ein veränderliches Signal zum wandel -> auch nicht gut.
Handelsübliche ADCs haben eine Sample & Hold Schaltung integriert ;-)
Integrieren im Zeitsdiskreten kann man auch etwas komplizierter machen
mit einem 2 Zustände Integrator
"Pseudocode"
int1+=messwert
int =(int_1+int_2)/2
Ausgabe von int
int2+=messwert
int ist der integrierte Wert. Der aktuelle Messwert wird immer nur zur
"Hälfte" berücksichtigt. Bei linearem Verlauf des Messwerts ist der
maximale Fehler zwischen 2 "Stützstellen" kleiner als die Hälfte der
Steigung des Messwerts.
Beim "normalen" Integrator ist der maximale Fehler gleich der Steigung..
Ich denke nicht, dass eine Integration zeitdiskret zu langsam ist.
Sowohl das Verfahren von Blubb als auch der Vorschlag von Ras Funk sind
einfache Faltungsoperationen, die auf einem DSP mit 1MSps überhaupt kein
Problem darstellen.
Ein Problem ist aber, dass die meisten Signale wohl viel viel
niederfrequenter sein werden (z.B. 50 Hz).
Bei 14 bit Auflösung (selbst wenn man Maximalstrom fährt) sind die
Änderungen und damit die an der Spule anliegenden Spannungen so klein,
dass sie stark quantisiert werden. Dieser Quantisierungsfehler wird über
die hohe Abtastrate entsprechend schnell aufintegriert. Das könnte ein
Problem sein, dass man zuvor durch Rechnung prüfen sollte.
Grüße,
Peter
Hallo zusammen,
nochmals besten Dank für die ganzen Ideen und Vorschläge die gebracht
wurden!! Es freut mich wirklich sehr dass aus meiner Frage eine
interessante Diskussionsrunde geworden ist!!
Mittlerweile habe ich auch gemerkt, dass die Aufgabe weit aufwändiger
ist wie anfangs gedacht.
Um besser Abschätzen zu können welchen Einfluss Faktoren wie Abtastrate,
Frequenz des zu messenden Stroms, die Stromänderung oder die
Induktivität der Rogowskispule aufeinander haben, bin ich gerade dabei
das Gesamtsystem in Simplorer zu simulieren um dann zu wissen, welche
Strombereiche realistisch gemessen werden können und welche Messfehler
sich nach welchen Integrationsdauern einstellen...
Wenn das gemacht ist, werde ich den Controller möglicherweise nochmal
neu wählen müssen.
@Peter: da hast du ziemlich sicher recht ;-) !!
Es ist in der Tat eine große Herausforderung die induzierte
Spulenspannung mit dem A/D Wandler einlesen zu können!
Einige Beispiele (für eine gängig 1µH Rogowski Spule):
bei einem 50Hz Sinus mit 1A wird in der Spule 314µV induziert
bei einem 100kHz Sinus mit 10A sind es 6.28V
bei einem dI/dt von 10A/ns (was kommerzielle Rogowskispulen basierend
auf Analog Integratoren leicht schaffen Bsp: PEMUK) sind es 10000V
(U_ind=L*dI/dt)
Der jetzige Lösungsansatz sieht daher vor, die Spulenspannung erst auf
einen passiven RC Integrator zu geben der hohe Frequenzen integriert,
dann über einen OPamp ein niederohmiges Signal zu gewinnen, welches
entweder auf einen PGA (zum Beispiel AD8369) geht oder direkt vom A/D
Wandler eingelesen wird.
Soweit zum Konzept - die Simulation wird hoffentlich bald zeigen ob es
was taugt :-)
Viele Grüße!!
Christian
Hallo Christian,
worin besteht der Pfiff Deiner Arbeit? In der Hardware, in der Software
oder in den mit dem Aufbau gemachten Messungen?
Ich würde zunächst zunächst den Analogteil aufbauen und über eine
Meßkarte oder ein Digitaloszilloskop die Meßdaten in den Computer laden.
Wenn Du die Signalverarbeitung dann in Matlab hinbekommen hast, kannst
Du weiter überlegen, wie Du sie in den DSP/FPGA/µC bringst.
Gruß,
Michael
Evtl. wäre auch eine "Frequenzumschaltung" sinnvoll. Niederfrequente
Signale "normal" abtasten, hochfrequente inkl. einigen Oberwellen durch
Unterabtastung in angenehmere Bereiche verschieben. Setzt allerdings
variable oder zumindest umschaltbare Anti-Aliasing-Filter vorraus.
Damit wird die Dynamik herabgesetzt und damit die Auflösung bei der
Quantisierung verbessert.
Hallo allerseits,
mein erster Lösungsansatz war auch ein PC Oszilloskop zu verwenden (Bsp
piccoscope - die sind verhältnismäßig günstig), es geht bei der Arbeit
jedoch darum zu zeigen, ob die Controller, PLD'S oder sonstigen
Bausteine, welche ohnehin schon in jedem Wechselrichter und DC/DC
Wandler drin sind noch in der Lage sind nebenher den Strom zu messen.
(die dort verbauten Controller sind teilweise stark überdimensioniert)
Wenn ich jetzt noch den Zwischenschritt über ein digitaloszi (was
zweifelsohne Sinn machen würde) läuft mir am Ende noch meine ohnehin
schon knapp bemessene Zeit davon... ich habe nur noch 5 Monate
Vollzeit!!
@Thomas - vielen Dank für deinen Hinweis!! Muss mich mit dem Thema
Aliasing und Filterung noch beschäftigen - vielleicht kann ich deine
Idee mit einbauen!!
Schönen Gruß
Christian
PS: Ich habe mittlerweile ein Simulationsmodell erstellt was so ziemlich
den gesamten Aufbau berücksichtigt (von Induktivität der Rogowskispule,
über Eigenkapazität, RC, Glieder, Rauschen auf den Leitungen, A/D
Wandler Rauschen, begrenzte Abtastrate etc...) Nach den ersten
Simulationen zeichnet sich schon ab, dass eine sehr hohe Abtastung der
Signale notwendig ist um einen geringen Integrationsfehler zu erhalten.
Außerdem bietet die Anpassung der Signalpegel nochmal genügend Arbeit
für eine eigene Diplomarbeit ;-)
Die Controller in einem Wechselrichter oder Umrichter bzw. DC-DC messen
die Ströme doch bereits!? Anders wäre eine Regelung überhaupt nicht
möglich. Nur benutzen sie keine so extremen Abtastraten und keine so
hohe Auflösung, weil das zur Lösung der Regelungsaufgabe nicht benötigt
wird.
Abgesehen davon ist ein Rogowski-Stromwandler für die integrierte
Regelung eines Umrichters o.Ä. denkbar ungeeignet, da er keinen
Gleichstrom messen kann.
Üblicherweise werden Hall-Wandler oder Shunts eingesetzt und diese
werden bereits seit Jahren mit den umrichtereigenen CPUs ausgewertet.
Ich kann das Ziel dieser Arbeit also nicht ganz nachvollziehen.
Wozu benötigt man denn während dem normalen Betrieb diese
hochauflösenden Daten? Alle Schutzeinrichtungen, die benötigt werden,
lassen sich jetzt auch schon realisieren und die Regelgenauigkeit
übertrifft bei weitem das, was die Hardware überhaupt erreichen kann.
Ich kenne Rogowski-Stromwandler eher als Werkzeug für den Entwickler,
wenn beispielsweise der Gate-Steuerstrom von einem FET gemessen werden
soll ohne die Schaltung zu verändern (weil die Wandlerkabel einfach um
den Pin gelegt werden können). Das ist jedoch nicht über die integrierte
CPU notwendig.
Gibt es irgendeinen Grund, den ich vergessen habe, warum man soetwas
braucht? Ist das für eine sensorlose Positionsmessung des Rotors bei
Umrichterantrieben vorteilhaft? Oder ist es einfach nur interessant, wie
und ob es überhaupt geht?
Viele Grüße,
Peter
Hallo Peter,
ich schreibe die Arbeit extern in einer kleinen Firma welche unter
anderem leistunselektronische Systeme entwickeln (Schaltnetzteile, DC/DC
Wandler, Wechselrichter - www.finepower.com) Die Firma setzt je nach
Anwendungsfall in Ihren Entwicklungen, wie du sagtest, entweder shunts,
Strommesstrafos oder die von dir angesprochenen Hall Sensoren ein.
Hauptproblem der Rogowskistrommessung ist, dass keine DC Ströme gemessen
werden können. Theoretisch ist es aber möglich wenn der Integrator nicht
so fehlerbehaftet wäre. Unser Lösungsansatz ist daher einen digitalen
Integrator zu verwenden, mit dem man einen Drift des Stromsignals bei DC
Messung vielleicht länger unter Kontrolle behalten kann.
Es ist mehr eine Art Machbarkeitsstudie die zeigen soll ob es mit
digitalen Mitteln möglich ist, mit einer Rogowski Spule DC Ströme zu
messen.
Auf analoger Basis gibt es von PEMUK bereits eine Stromzange, die bis
5sek lang auch DC Ströme messen kann:
http://www.pemuk.com/dccurrent.html
Hat das deine Frage beantwortet?
Viele Grüße
Christian
Ja, das beantwortet meine Frage.
Vielleicht könntest du ja die Messung der Rogowski-Spule mit der eines
niederfrequenten Hallsensors kombinieren, so dass du von dem Hallsensor
den DC-Anteil bekommst und von der Regowski-Spule die hochfrequenten
Anteile.
Grüße,
Peter
Hallo Peter,
vielen Dank für deine Idee - die Kombination von Hall Sensor und
Rogowski Spule wurde bereits an der EEK in Zürich untersucht (siehe
Veröffentlichung in der Anlage). Meiner Meinung nach ein sehr guter
Lösungsansatz (aber leider nicht Ziel meiner Arbeit)!!
Viele Grüße und Danke nochmal für die interessante Diskussion!
Christian