Forum: Analoge Elektronik und Schaltungstechnik Steppermotor Schrittmotor H-Brücke ohne Stepper-Chip


von Profi (Gast)


Lesenswert?

Zur Abwechslung mal wieder eine Frage von meiner Seite:

Hat schonmal jemand gesehen, dass ein Schrittmotor direkt von einem
Controller aus angesteuert wird, also ohne L297 o.ä., sondern nur mit
zwei H-Brücken-Treibern & -Endstufen dazwischen.

D.h. die PWM-Generierung macht der Controller.
Angedacht ist das Messen des Stromes mit zwei schnellen Stromsensoren
(0.01 Ohm und MAX4080, jeweils einer auf der 70V-Seite jeder Brücke,
gleichzeitig als Kurzschlußsicherung).

Die Schaltung soll große Stepper treiben (6-10A) bis 8 kHz
Schrittfrequenz.
µC wird mein allgeliebter DSP56F803 mit 80MHz sein.

Für Asynchronmotoren gibt es ja genug Beispiele, ein Steppermotor ist
nur ein "kleinwenig" anders anzusteuern.

Haltet Ihr das für realisierbar?

von Bernhard S. (bernhard)


Lesenswert?

>Zur Abwechslung mal wieder eine Frage von meiner Seite

...grins.... , das ich soetwas auch noch erleben durfte :)



>Hat schonmal jemand gesehen, dass ein Schrittmotor direkt von einem
>Controller aus angesteuert wird, also ohne L297 o.ä., sondern nur mit
>zwei H-Brücken-Treibern & -Endstufen dazwischen

gesehe habe ich's noch nicht, kann mir aber gut vorstellen, dass es
realisierbar ist

Worin siehst Du Bedenken oder Probleme?

In der Hardware oder in der Software?



>µC wird mein allgeliebter DSP56F803 mit 80MHz sein.

Du machst mich neugierig auf diesen µC.
Könntest Du etwas zum Nachlesen empfehlen?

von Profi (Gast)


Lesenswert?

...grins.... , das ich soetwas auch noch erleben durfte :)
Wie meinst Du das jetzt, mal ehrlich?

Ich denke an Hard- und SW.
Zur HW: 70 V und 2x 10 A sind nicht wenig, es steht ein Prototyp und es
hat schon etliche Siliziumschmelzen gegeben.

Die Frage ist vor allem die Strommessung für das Choppen, die normal
die Stepper-Chips machen. Das ganze soll bei 20 kHz stattfinden.
Wenn der Stepper steht, fließt der Nennstrom (10A) durch beide Spulen.

Bei Slow-Decay muss ich nur ganz kurz nachladen (z.B. mit einem PWM von
5%), um die ohmschen und wirbeligen Verluste auszugleichen. D.h. 20KHz /
0,05 = 1µs lang. Das kann ich ja mit fester Zeit machen.

Aber: wenn der Motor dreht und mechanische Energie abgibt, muss ich
länger nachladen, eben dynamisch solange, bis der Sollstrom erreicht
ist, und dann wieder umschalten auf Slow-Decay.
Die Frage ist, soll ich den Strom bei jedem PWM-Zyklus messen und
regeln,  oder  den Durchschnittsstrom anpassen und das PWM damit
modulieren.
Der µC soll ja nebenbei auch noch was anderes tun außer AD-wandeln und
vergleichen.

Das andere ist, dass ich (mit der momentanen Schaltung) im Decay den
Strom nicht messen kann, da dann nichts auf der 70V-Leitung fließt
(außer ich mache bidirektionale Messung und Fast-Decay  -->großer
CurrentRipple --> große Verluste überall).

Evtl. hilft hier Constant-Off-Time? Wie es z.B. der L6208 macht.
Oder dynamisch die Off-Zeit wählen. Wonach?

Habe auch schon daran gedacht, direkt den Spulenstrom zu messen, z.B.
mit einem Hall-IC oder Magnetsensor (galvanische Trennung). Ist halt
alles recht aufwendig. Das Ding soll auch noch möglichst klein werden.

Ihr seht, noch viele Fragen...
Ich bitte Euch um rege Diskussion.

von Bernhard S. (bernhard)


Lesenswert?

>...grins.... , das ich soetwas auch noch erleben durfte :)
>Wie meinst Du das jetzt, mal ehrlich?

Bis jetzt hast Du, und ich möchte Dich jetzt nicht "Bauch-Pinseln",
immer sehr gute Erklärungen und Ratschläge abgegeben.

---------
PROBLEM HW:

>Zur HW: 70 V und 2x 10 A sind nicht wenig, es steht ein Prototyp und
>es hat schon etliche Siliziumschmelzen gegeben.

Ich würde die HW so gestalten, dass bei jeden möglichen und unmöglichen
Betriebszustand, die "Endstufen" und der Motor keinen Schaden nehmen.

Ich könnte mir gut vorstellen, wenn ein Strom ununterbrochen länger als
eine  10-tel Sekunde fließt (als Bsp), dann wird gnadenlos die
Stromzufuhr gekappt.

Wie hoch ist die Wicklungs-Induktivität?

---------

PROBLEM SW:
Im einfachsten Fall kann der Stepper, so habe ich's gerade gelesen

http://www.forum.electronicwerkstatt.de/phpBB/topic36321_f34_bxtopic_timexDESC_by6_bz150_bs15.html

mit "harten" Stromimpulsen, also ohne PWM gefahren werden, aber da
sind die Bewegungen sehr ruckartig.

Also kommt man nicht um die PWM herum.

Zur Strommessung:

Der Strom ist nicht konstant (Induktionsgesetz) und die Wirbelströme im
Inneren machen das ganze nicht gerade berechnenbar.

Ich denke, man wird sich mit einem Effektiv od. Mittelwert beknügen
müssen.

Gerade stell ich mir die Frage, muss überhaupt eine Strommessung
vorgenommen werden?

Der Motor wird mit einer PWM sanft angefahren,
die Drehzahl ist nach meiner Meinung nicht von der Stromstärke
abhängig, sondern nur sein Drehmoment wird durch die Stromstärke
bestimmt, oder?

Und wenn der Motor seine Drehzahl erreicht hat, dann kann das
PWM-Signal eingefroren werden, ansonsten werden noch ein paar %
draufgelegt.

Wird eigentlich ermittelt, ob sich der Motor dreht?

Was treibt dieser Motor an, sicherlich kein Diskettenlaufwerk?

>µC wird mein allgeliebter DSP56F803 mit 80MHz sein.

Du machst mich neugierig auf diesen µC.
Könntest Du etwas zum Nachlesen empfehlen?

von Rahul (Gast)


Lesenswert?

Wir choppern mit 400kHz (40kHz sind normalerweise Standard). Alles über
FPGA...Zur Hardware kann ich nichts sagen.

von Michael (Gast)


Lesenswert?

Wie wäre es, einen L6506 zwischenzuschalten, den man dann im Betrieb vom
µP anpaßt (timing, Schwellwerte) ?
Auf einen 'Hardware-Copper' würde ich nicht verzichten, da ein
Prozessor Stillstand alles abrauchen lassen könnte.

von Profi (Gast)


Lesenswert?

Sanyo Denki StepSyn 103-H8221-6241
|    Sanyo Denki StepSyn 103-H8220-6340
|    |    Sanyo Denki StepSyn 103-H8223-6540 (103-H8223-6510)
|    |    |    Sanyo Denki StepSyn 103-H89222-6541
|    |    |    |    Sanyo Denki 103-H89223-6641(103-H89223-6611)
|    |    |    |    |
1.8  1.8  1.8  1.8  1.8  (°) BASIC STEP ANGLE
6.0  6.0  9.0  10   12   (Amp) BIPOLAR CURRENT
0.3  0.35 0.2  0.16 0.16 (Ohm) RESISTANCE
1.65 2.7  1.4  1.9  2.0  (mH) INDUCTANCE
300  560  790  1620 2460 (Ncm) BIPOLAR HOLDING TORQUE
145  290  435  1465 2200 (Kgm² x 10E-6) ROTOR INERTIA
206  193  182  111  111  (100rad / sec.²) THEORETICAL ACCELERATION
50   93   88   162  205  (V/Krpm) BACK E.M.F.
1.5  2.5  3.5  7.0  11.0 (Kg) MASS
IP43 IP43 IP43 IP43 IP43 PROTECTION DEGREE
V    V    V    V    V    LEAD CODE

http://www.rta-deutschland.de/sites/images_d/pdfs/H82_d.pdf
http://www.rta-deutschland.de/sites/images_d/pdfs/H89_d.pdf

Bei 72V, 0.2 Ohm und 1,4mH wird klar, dass innerhalb weniger ms 350 A
fließen.

Es ist schon eine flotte elektronische Sicherung eingebaut, die bei
100A innerhalb 400ns abschaltet, das Problem ist nur, dass die FETs das
nur überleben, wenn sie voll durchgeschaltet sind. Aber das sind sie nun
mal nicht immer.

@Michael:
Platzproblem

@Rahul:
bei 400 kHz wären die Schaltverluste zu hoch. 20 kHz ist ausreichend.
Warum choppst du so schnell?

@Bernhard:
"innerhalb einer 10-tel Sekunde "  ist alles verdampft!

Mechanik: Industrie-Antrieb über Getriebe.

Stommessung brauche ich, da die mechanische Last nicht konstant ist.
Also kann ich nicht konstant-PWM machen.

DSP: auf der Freescale-Pages findet man gleich gar nichts mehr.
ich suche was für Dich heraus.

von Bernhard S. (bernhard)


Lesenswert?

...ich habe jetzt auch ein paar Tage über dieses Problem nachdenken
müssen, im Alter dauert manches etwas länger ;)


Ich würde grundsätzlich dafür sorgen, dass dem Steppermotor keinen
längeren Impuls als xx ms/µs zugefüht wird, denn in dieser Zeit ist die
Wicklungsinduktivität noch voll wirksam.

Der Wicklungsstrom steigt linear an, somit kann man schon vorher den
maximalen Stromfluss bestimmen.


>Stommessung brauche ich, da die mechanische Last nicht konstant ist.

Warum?

Selbst wenn Du den Stepper mit 100% laufen lässt, seine Drehzahl ist
nicht von der Stromstärke abhängig. Seit dem es entsteht ein Schlupf
zwischen Drehfeld und Rotor, oder?

Man könnte ihn sanft auf 100% hochfahren und anschließend den Strom
messen und bei Bedarf senken, oder?


Benhard

von Rahul (Gast)


Lesenswert?

Die Drehzahl ist wirklich nicht von der Stromstärke abhängig, aber das
Drehmoment. Und bei wechselnder Last braucht man unterschiedliche
Drehmomente. Bie höherer Belastung ist auch das notwendige Drehmoment
und damit der notwendige Strom höher.
Würde man den Motor immer mit dem höchsten Strom beaufschlagen, auch
wenn die Belastung klein wäre, würde er sich irgendwann in seine
Bestandteile auflösen...

>Man könnte ihn sanft auf 100% hochfahren und anschließend den Strom
messen und bei Bedarf senken, oder?

Das nennt sich "eine Rampen fahren" zumindest bei der Drehzahl. Dabei
wird die Schrittfrequenz nach einer voher bestimmten Funktion stetig
erhöht.
Oder meinst du auf 100% Drehmoment ansteigen lassen? Das wird
schwierig, wenn das Getriebe nicht selbsthemmend ist (Schneckengetriebe
oder dergl.). Andererseits ist das natürlich das, was man mit der
Chopperfrequenz und der Strommessung erreicht: Der Motor hat Drehmoment
(in diesem Fall Haltemoment), und zerstört sich nicht selbst durch
Überhitzung.

@Profi: Kennst du "Das Handbuch für Kleinantriebe"?
Ich weiß gerade nicht von wem das ist, aber das Kapitel über
Schrittmotoren ist ziemlich interessant (bin immer noch nicht ganz
damit durch).
Übrigens weiß ich nicht, wieso wir hier die Motoren mit einer so hohen
Frequenz choppern. Das wurde eingeführt, als ich noch nicht in der
Firma war...

von Bernhard S. (bernhard)


Lesenswert?

@Rahul

>Oder meinst du auf 100% Drehmoment ansteigen lassen?

ja, ich meine 100% Drehmoment

>Das wird schwierig, wenn das Getriebe nicht selbsthemmend ist
>(Schneckengetriebe oder dergl.).

was versteht man unter selbsthemmendes Getriebe?

>Andererseits ist das natürlich das, was man mit der
>Chopperfrequenz und der Strommessung erreicht:
>Der Motor hat Drehmoment(in diesem Fall Haltemoment), und zerstört
>sich nicht selbst durch Überhitzung.

Mit anderen Worten, der Motor würde sich bei permanent
100% Drehmoment zu sehr erhitzen.

Kann ich nachvollziehen.

Und wenn beim beschleunigen des Motors von 0 auf seine SOLL-Drehzahl
für einige ms sanft auf 100% Drehmoment gefahren wird
und anschließend der Strom gemessen und das Drehmoment zurückgefahren
wird ?

Hätte den Vorteil, dass der Strom nicht bei jeder PWM gemessen werden
müsste, man könnte die Strommessung in aller Ruhe durchführen und das
Drehmoment absenken. So schnell wird der Stepper keinen Schaden nehmen,
oder?


 ^ Drehmement / PWM
 |
 |             |<------ Strommessung
 |-- 100%---xxx
 |        x    x         |<------ Strommessung
 |      x       xxxxxxxxxx
 |    x                   x
 |  x                      xxxxxxxxxxxxx
 |x
 |---------------------------------------------> Zeit



Bernhard

von Rahul (Gast)


Lesenswert?

>sanft auf 100% Drehmoment

Was ist an einem Schaltvorgang sanft?

Schrittmotoren werden von einem Schritt zu nächsten geschaltet.
Den sanften Anstieg hast du durch die Spule (sollte IMHO ein Tiefpass
sein). Deswegen ist auch ein Fehler in deinem Schema: Der Strom hat den
Verlauf einer e-Funktion.

von Bernhard S. (bernhard)


Lesenswert?

@Rahul

>Schrittmotoren werden von einem Schritt zu nächsten geschaltet.

Sachlich richtig, aber es gibt zei Arten des Schaltens:

A: Der Stepper bekommt knadenlos einen Impuls und springt in die neue
Position

B: Der Stepper bekommt für einen einzigen Schritt ein PWM-Signal
angeboten, welches anfangs ein sehr niedrigen Tastgrad besitzt und
innerhalb einiger ms/µs wird der Tastgrad vergrößert und anschließend
vielleicht sanft wieder verringert.
Damit läuft der Stepper ruhiger, ansonsten würde er quasi in jede neue
Stellung regelrecht "springen".




>Was ist an einem Schaltvorgang sanft?

Verfahren B würde ich als "sanft-PWM" bezeichnen




>Den sanften Anstieg hast du durch die Spule (sollte IMHO ein Tiefpass
>sein).

Genau, denn der Stromanstieg ist linear zur Zeit (Induktionsgesetz)



>Deswegen ist auch ein Fehler in deinem Schema: Der Strom hat den
>Verlauf einer e-Funktion.

Beinhaltet meiner Menung nach kein gedanklichen Fehler. Ist eine Frage
der Betrachtungsweise.

Der Motor wird durch eine "Sanft-PWM" (variable PWM) bis 100%
Drehmoment gespeist.
D.h. er dreht auf jeden Fall (seit dem er kann aus anderen mechanischen
Gründen nicht).
Man gibt erstmal Vollgas um anschließend das Drehmoment zu drosseln.

Ist nach meiner Meinung die schnellste Variante.

Würde man mit einem niedrigen Drehmoment anfangen, weiss man nicht, ob
der Motor sich überhaupt dreht.


Oder habe ich etwas nicht bedacht?


@Profi

Wie erfolgt eine Messung, wenn überhaupt, ob sich der Motor dreht, bzw.
ob er sein Ziel erreicht hat?

Bernhard

von Rahul (Gast)


Lesenswert?

Ich würde Verfahren B als "Microstepping" bezeichnen.
Bei einem Schrittmotor kann sich der Rotor immer nur schrittweise
bewegen (wie der Name ja schon andeutet). Somit würde eine PWM dazu
führen, dass sich der Rotor zwischen zwei Vollschritten hin- und
herwandert==> mircostep.

>Man gibt erstmal Vollgas um anschließend das Drehmoment zu drosseln.

Richtig!

>Würde man mit einem niedrigen Drehmoment anfangen, weiss man nicht, ob
der Motor sich überhaupt dreht.

... und damit Schritte verliert.

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.