Forum: Mikrocontroller und Digitale Elektronik Drehzahl messen im MC


von Joachim (Gast)


Lesenswert?

Hallo,

ich hätte eine prinzipielle Frage über Drehzahlmessung.

Geht man davon aus, man bekommt in Abhängigkeit der Drehzahl Impulse, 
die auf die Versorgungsspannung angepasst über einen PIN im MC 
eingelesen werden.

Wie sieht dann am besten der Programmcode aus, um die Drehzahl zu 
bestimmen. Ich hätte mir gedacht, ich lasse einfach einen Timer laufen, 
und addiere die Impulse auf.

In C-Code könnte das z.b so aussehen

if(bit_is_set (PORTD,PIND1))
i++;

Bei z.B. 10 Impulsen teilt man dann durch die Zeit und normiert auf 
U/min.

Was anderes fällt mir im Moment nicht ein.

von N. K. (bennjo)


Lesenswert?

Kommt auf die Drehzahl an...und die Anzahl der Impulse/Umdrehung ... 
zunächst ist es sinvoller die "Periodendauermessung", also die Messung 
der Zeit zwischen 2 Impulsen zu verwenden, erst bei höheren Drehzahlen 
geht man zur "Frequenzzählung", wie von dir beschrieben, über.

Gruß,
Nikias

von Joachim (Gast)


Lesenswert?

Also mein Drehzahlmesser macht einen Impuls pro Umdrehung.

Die Periodendauer bei 3000U/min wäre T=0,02s.

Ich würde dann einen Impuls die Messung starten, der Timer läust los und 
stoppt bei dem nächsten Impuls. Den erreichten Zählerstand (bei einem 
10Bit Timer mit 4/256 MHZ wären das dann 312 Schritte) dann auswerten 
und auf U/min normieren ?

t=312*256/(4*10^6) in sec

n=1/t * 60 in  U/min

Während der Berechnung sollte wahrscheinlich der Timer angehalten werden 
?

von N. K. (bennjo)


Lesenswert?

1/Umdrehung? Also dann auf jedenfall Periodendauermessung!
Du kannst im Interrupt den Timer als aller erstes auslesen und sofort 
wieder zurücksetzten. Der kann dann gleich wieder losrennen.

Allerdings würde ich den Timer wesentlich schneller laufen lassen. Das 
gibt sonst nur ne Schätzung :-)

Ich hab mich grad im Rahmen meiner Studienarbeit intensiv mit dem Thema 
beschäftigt! Da hatte ich allerding 1024 bzw. 2048 Impulse pro Umdrehung 
... das ist dann nochmal was anderes.

Die Formel für den maßgeblichen Quantisierungfehler ist übrigends:

Fr = ( Z / f0 ) * f

mit f0 als Zählerfrequenz (bei dir 4MHz/256), Z als Anzahl der Impulse 
pro Umdrehung (bei dir 1), und f als Drehfrequenz (Bei dir 2000/60).

Gruß,
Nikias

von Matthias (Gast)


Lesenswert?

Wie wäre es mit ICP???

von Joachim (Gast)


Lesenswert?

Hi Nikias,

danke für die Info.

Nur aus Interesse:
Worüber schreibst du deine Studienarbeit ?
Ich versuche ich eine drehmomentgereglete GNM zu entwerfen.
Die Spannungsversorgung ist fertig, nur eine möglichst genaue Drehzahl 
muss ich zurückgeben um in Abhängigkeit davon und dem gemessenen Strom 
die speisende Spannung zu regeln.

von N. K. (bennjo)


Lesenswert?

Das Thema lautete:
"Implementierung einer
Drehzahlregelung für umrichtergespeiste
Asynchronmaschinen mit
einem Mikrocontroller"

Das Ganze läuft auf nem 16er Pic ... mit IGBT's und richtig Dampf (27kW 
Maschine).

Ich hab sie heute binden lassen :-) Morgen ist Abgabe :-))))

Wenn du interesse hast, schreib mir ne Mail an nikias (ät) stnd (dot) de
Dann schick ich se dir als PDF...da ist ein ganzes Kapitel über die 
Drehzahlerfassung drinn.

Gruß,
Nikias

von N. K. (bennjo)


Lesenswert?

Mail ist unterwegs...

von Svente (Gast)


Lesenswert?

Hi Nikias,

ich beschäftige mich auch mit diesem Thema. Allerdings habe ich ich eine 
24V ASM mit 1,1kW und 1400U/min Nenndrehzahl.

Habe bis einen Winkelgeber IC (MLX90316) implementiert um für die 
Regelung Rotorlage und Drehzahl zu bekommen. Ca. alle 2ms liefert er den 
aktuellen Rotorwinkel (0...360°) per SPI in den MC (M16C). Nun brauche 
ich halt auch die Drehzal und komme da nicht weiter.

Ich habe ja nicht wirklich definierte Pulse die ich Zählen kann... Hast 
du vielleicht eine Idee wie man das lösen könnte?

Da ich mit Regelung bis jetzt auch nicht viel zu tun hatte, wäre es nett 
wenn du mir ein paar tips geben könntest was Regelzeiten angeht.

Wie oft und von welcher Dauer sind Regelzyklen bei der Regelung einer 
ASM?

Vielleicht kannst du mir auch eine Kopie oder einen Auszug deiner Arbeit 
zukommen lassen... das wäre toll!

Ich bedanke mich

von N. K. (bennjo)


Lesenswert?

Hallo,
ich weiß nicht ob dir meine Arbeit da weiterhilft...aber Schreib mir 
einfach ne mail.

Allerdings, Rotorlage das hört sich nach Feld-Orientierter Regelung an. 
Richtig?

Ich hab mich für die U/f Kennlinie entschieden, weil es mit 
unterschiedlichsten Motoren und der ziemlich begrenzten Rechenzeit des 
PIC machbar sein sollte.

24V? Arbeitest du mit MOSFet's?

Meine Drehzahlregelung läuft mit läppischen 40Hz (ja wirklich nur 40Hz) 
... dafür aber ziemlich gut.


Gruß,
Nikias

von Svente (Gast)


Lesenswert?

Also erstmal meine mail adresse: p_tornado@gmx.de

Ja, ist korrekt. Der Umrichter läuft über eine B6- Brücke mit MOSFet´s. 
Im Moment wird der Motor auch über U/F gesteuert. Da ein Fahrzeug damit 
betrieben werden soll, muss ich da ne Regelung implementieren. Das soll 
feldorientiert mit Sensoren laufen...

Wäre super, wenn du mir die Arbeit rüberschickst. Da kann ich sicher 
viel draus lernen...

Danke dir

von N. K. (bennjo)


Lesenswert?

Ist raus...
bin übrigends durchaus an Kritik an meiner Arbeit interessiert :-)

Gruß,
Nikias

von Svente (Gast)


Lesenswert?

Hey, vielen Dank!

Werde mir das jetzt mal reinziehen...

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
Noch kein Account? Hier anmelden.