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
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.