Moin,
ich muss den Strom eines BDC-Motors messen,
dabei brauche ich nur den Mittelwert.
Das Problem:
PWM-Signal ist über 50kHz, der vorhandene AVR kann nur gut 10kHz,
also unterabgetastet.
Meine Idee ist jetzt, nicht in festen Zeitabständen zu messen, sondern
die Abstände per Zufall variert. Geht das oder gibts da ein
prinzipielles Problem?
die aufwändige Analogschaltung,
ich habe halt hier eine fertige Schaltung und wenn es mit der geht
möchte ich sie verwenden.
Ein integrierender Verstärker ist ja nicht unbedingt trivial
Ist doch PWM, also nur zwei Spannungspegel. Der AVR wird doch bestimmt
mit mehr als 100 kHz getaktet.
Dann misst du in einer Assemblerschleife die Länge des High- und
Low-Anteile und kannst dir so den Tastgrad berechnen.
Und zum Thema integrierender Verstärker: Ein RC-Glied vor dem
Analogeingang des AVRs bildet dir auch den Mittelwert, da braucht man
keinen Verstärker.
Dennis S. schrieb:> Ist doch PWM, also nur zwei Spannungspegel.
nicht ganz, ich messe ja den Strom der durch eine Spule fließt,
der hat nicht nur zwei Pegel
Dennis S. schrieb:> Dann bleibt dir immer noch das RC-Glied, falls sich dir der Mittelwert> dann nicht zu langsam anpasst.
RC geht noch, das lässt sich noch fliegend ergänzen,
den Mittelwert brauche ich auch nur ca. 2x pro Sekunde,
das würde also wohl gehen.
Aber was ist mit der Digitallösung aus meinem ersten Post, was sagt da
die Systemtheorie dazu?
Mal vom konkreten Sinn und dem Verhältnis zwischen Aufwand und Nutzen
abgesehen:
Wenn Walter wirklich Random Sampling betreibt und den Mittelwert der
Messwerte bildet, sollte es klappen. Jedoch wird er sehr viele Messwerte
benötigen (in der Größenordnung 2^{Auflösung in Bits} weil sein Signal
so komisch ist?), um einen passenden Mittelwert zu erhalten.
… mal so aus dem Bauch heraus.
Walter schrieb:> ich muss den Strom eines BDC-Motors messen,> dabei brauche ich nur den Mittelwert.> Das Problem:> PWM-Signal ist über 50kHz, der vorhandene AVR kann nur gut 10kHz,> also unterabgetastet.
Das einfachste ist es, den AVR zeitsynchron zur PWM messen zu lassen.
Lege also einen Pin (Interruptpin) direkt an die PWM-Quelle des BLDC und
lass dann damit den ADC des AVR samplen und den Strom über dem Shunt
messen. Gegebenenfalls kann man mit programmierbarer Messverzögerung den
realen Stromwert messen.
holger schrieb:>>Aber was ist mit der Digitallösung aus meinem ersten Post, was sagt da>>die Systemtheorie dazu?>> Das dein Vorhaben Quatsch ist.
habe ich noch in keinem Fachbuch gelesen, da steht immer nur drin warum
etwas funktioniert bzw. nicht
Knut Ballhause schrieb:> Das einfachste ist es, den AVR zeitsynchron zur PWM messen zu lassen.
dann fehlt mir aber zum einen das Tastverhältnis und zum anderen
variiert der Strom doch während der Ein-phase
(und ich kann das Gehäuse des Motors/Controllers nicht öffnen, komme
also nicht an die PWM Quelle)
Walter schrieb:> Aber was ist mit der Digitallösung aus meinem ersten Post, was sagt da> die Systemtheorie dazu?
Wenn du die PWM-Frequenz kennst oder durch den uC messen läßt, kannst du
Aliasing ausnutzen, indem du dich mit deine Abtastfrequenz dicht daneben
legst. Dann siehst der uC die PWM-Pulse quasi in Zeitlupe.
Verwende den Timereingang und messe die PWM Frequenz , falls variabel,
und das Tastverhältnis.
Dazu die Versorgungsspannung des Motors.
Der Rest ist dann nur noch Mathematik.
Ralph schrieb:> Verwende den Timereingang und messe die PWM Frequenz , falls variabel,> und das Tastverhältnis.> Dazu die Versorgungsspannung des Motors.> Der Rest ist dann nur noch Mathematik.
vielleicht habe ich mich da etwas unklar ausgedrückt:
ich möchte den Strom messen (über einen Shunt),
aber der ist während der Einphase doch nicht konstant,
also komme ich mit dem Tastverhältnis allein nicht weiter.
Ich bastel jetzt Mal eine Simulation mit der zufälligen Abtastung und
melde mich dann mit dem Ergebnis ...
Mit dem Kennwerten des Motors, der Versorgungsspannung und der
resultierenden Drehzahl lässt sich der Stromverlauf über den Motor
berechnen.
Und das mit nahezu beliebiger Auflösung, abhängig der vorhandenen
Rechenzeit und Eingangssignalauflösung.
Beim Messen solch dynamischer Signalverläufe wie es mit Induktivitäten
bei gepulsten Spannung entstehen wirst du immer Probleme haben.
Im Prinzip hast du 2 Möglichkeiten zum direkten Messen.
1. ein Oversampling mit einem vielfachen der PWM Frequenz um den
Stromverlauf auch nur annähernd Abtasten zu können.
2. Einen Tiefpassfilter ( RC) mit einer Grenzfrequenz deutlich unter
der PWM Frequenz und du kannst einen Mittelwert messen.
Zu deiner ursprünglichen Frage.
Es gibt in einem µC keinen wirklichen Zufallsgenerator.
Damit fehlt schon mal die Basis für eine zufällige Abtastung.
Da die generierte Zufallszahl, die die Abtastung triggert, einem
Algorithmus folgt wirst du in Relation zur PWM eine Schwebung /
Modulation erhalten.
Jetzt müsste mal ein Statistiker sagen unter welchen Voraussetzungen,
sprich Anzahl der Messungen, Verteilung,..... daraus ein brauchbarer
Mittelwert berechnet werden kann.
Ich denke nicht das dabei etwas sinnvolles raus kommt.