WaBis

walter.bislins.ch

Saitenwickler Jun

Eigenschaften des Systems

Ich gehe von folgenden Eigenschaften des Systems aus:

  1. Die Geschwindigkeit des Schrittmotors wird als Frequenz f eingestellt.
  2. Der Umrechnungsfaktor von Frequenz nach Geschwindigkeit sei u = v / f, d.h. Geschwindigkeit pro Frequenz → v = u · f.
  3. Die zurückgelegte Strecke s bei konstanter Geschwindigkeit errechnet sich aus der Frequenz f und der Zeitdauer t, während der diese Frequenz angelegt ist, nach s = u · f · t.
  4. Der Motor wird in N diskreten Schritten konstant beschleunigt mit der Beschleunigung a = u · af, wobei af die Frequenzänderung bei jedem Schritt der Dauer Δt ist.
  5. Aus der konstanten Beschleunigung resultiert eine lineare Zunahme der Frequenz f und damit nach v = u · f der Geschwindigkeit.
  6. Das Abbremsen geschieht ebenfalls mit N Schritten mit derselben, aber negativen Beschleunigung wie das Anfahren.

Vorgaben

fmin minimale Frequenz für den Schrittmotor
fmax maximale Frequenz für den Schrittmotor
fsoll Ziel Frequenz = Ziel-Geschwindigkeit
af maximale Frequenzänderung pro Zeiteinheit die der Motor ermöglicht, entspricht maximaler Beschleunigung a = u · af
Δfmin Minimal mögliche Schrittweite für die Frequenz
Δtmin Minimal mögliches Zeitintervall (z.B. Millisekunden)
smax Weg, der maxmimal zurückgelegt werden kann
ssoll Totaler Weg, der zurückgelegt werden soll
u = v/f Umrechnungsfaktor von Frequenz nach Geschwindigkeit v = u · f

Die Zeitintervalle müssen ein ganzzahliges Vielfaches von Δtmin betragen.

Die Weglänge ssollsmax darf nicht überschritten werden. Das heisst, wenn ssoll krüzer ist als der benötigte Weg für die Beschleunigung und Abbremsung auf/von fsoll, so muss fsoll und die Zeit ta für die Beschleunigung/Abbremsung entsprechend verkürzt werden und die Abbremsphase folgt unmittelbar auf die Beschleunigungsphase.

Die Anzahl Schritte N ergibt sich aus allen obigen Anforderungen. N kann allenfalls beeinflusst werden, indem einige der obigen Werte entsprechend verändert werden.

Anfahr-Phase

Jun-Machine Schritte

Mit folgender Formel kann die Frequenz für jeden diskreten Schritt der Dauer Δt beim Anfahren berechnet werden, sodass die konstante Beschleunigung a resultiert:

(1)
mit
und
wobei'
' =' 'Frequenz beim n-ten Schritt
' =' '1..N = Schritt-Nummer. Nach Schritt n = N muss fsoll angelegt werden
' =' 'a / u = Steigung der Frequenz-Rampe
' =' 'Gewünschte Beschleunigung in m/s2
' =' 'v / f = Umrechnungsfaktor von Frequenz nach Geschwindigkeit
' =' 'minimale Frequenz → minimale Geschwindigkeit
' =' 'maximale Frequenz → maximale Geschwindigkeit
' =' 'ta / N = Zeitdauer eines Schrittes
' =' 'Dauer der Beschleunigung
' =' 'Anzahl Beschleunigungs-Schritte

Beim Schritt n = 1 wird die minimale Frequenz fmin beim Motor angelegt. Nach ablauf der Zeit von Schritt n = N muss die maximale Frequenz fsoll angelegt werden.

Die Beschleunigung a = u · af ist abhängig von der Leistung des Systems, d.h. wie schnell die Frequenz f des Schrittmotors innerhalb der Zeitspanne Δt erhöht werden kann:

(2)

Die Beschleunigungszeit ta ergibt sich dann aus:

(3)

Bei vorgegebenem Δt kann die benötigte Anzahl Schritte N berechnet werden:

(4)

Da N so in der Regel keine ganze Zahl ist, kann N einfach auf eine ganze Zahl aufgerundet werden. Um die Zeit ta einzuhalten, kann wenn möglich Δt angepasst werden zu Δt = ta / N. Oder noch besser, es kann die Beschleunigung af korrigiert werden:

(5)

Dadurch Stimmt dann die Wegberechnung wieder exakt.

Brems-Phase

Mit folgender Formel kann die Frequenz für jeden diskreten Schritt der Dauer Δt beim Abbremsen berechnet werden, sodass die konstante Verzögerung a resultiert:

(6)
wobei'
' =' '1..N = Schritt-Nummer. Nach n = N muss f = 0 angelegt werden.

Bei Schritt n = N ist die Frequenz = fmin angelegt. Nach Ablauf der Zeit Δt für Schritt n = N muss daher der Motor gestoppt werden, indem f = 0 angelegt wird.

Programm

Es resultiert also folgendes Vorgehen bei der Berechnung:

  1. Vorgabe für die maximale Beschleunigung af nach Formel (2) berechnen
  2. Beschleunigungszeit ta nach Formel (3) berechnen
  3. Anzahl Schritte N nach Formel (4) berechnen und auf nächste ganze Zahl aufrunden
  4. Vorgabe für die Beschleunigung af nach Formel (5) korrigieren

Mit den nun bekannten Daten af, Δt und N kann das Programm für die Beschleunigungsphase erstellt werden (hier als JavaScript):

// Konstanten
var delta_t = 100; // Millisekunden
var a_f_max = ...  // maximal mögliche Frequenzänderung pro delta_t
var u = ...        // Umrechnungsfaktor Frequenz in Geschwindigkeit (v / f)

// Vorgabe
var f_soll = ... // Sollgeschwindigkeit als Frequenz für Schrittmotor
var f_min  = ... // Startgeschwindigkeit (z.B. auch 0)

// globale Variablen
var a_f; // aktueller Beschleunigungwert
var t_a; // Beschleunigungszeit
var N;   // Anzahl Schritte
var n;   // aktueller Schritt

// zusätzlich berechnete Werte
var a;   // Beschleunigung in m/s^2
var v;   // Endgeschwindigkeit in m/s
var s_a; // Weg für Beschleunigungs bzw. Bremsphase

function Init() {
  a_f = a_f_max;
  t_a = (f_soll - f_min) / a_f;
  N   = Math.floor( t_a / delta_t ) + 1;
  // Korrektur von a_f für gleichmässige Schrittweite von f für N Schritte a delta_t
  a_f = (f_soll - f_min) / (N * delta_t);

  // zusätzliche Berechnungen
  a   = u * a_f;
  v   = u * f_soll;
  s_a = u * a_f * ((N - 1) / (2 * N)) * (t_a * t_a) + u * f_min * t_a;
}

function Start() {
  Init();
  n = 0;
  NextStepUp();
}

function NextStepUp() {
  n = n + 1;
  if (n > N) {
    SetStepMotorToFrequence( f_soll );
    return;
  }
  setTimeout( NextStepUp, delta_t );
  var f = a_f * (n-1) * delta_t + f_min;
  SetStepMotorToFrequence( Math.round(f) );
}

Die Bremsphase ist analog:

function Stop() {
  n = 0;
  NextStepDown();
}

function NextStepDown() {
  n = n + 1;
  if (n > N) {
    SetStepMotorToFrequence( 0 );
    return;
  }
  setTimeout( NextStepDown, delta_t );
  var f = -a_f * n * delta_t + f_soll;
  SetStepMotorToFrequence( Math.round(f) );
}

setTimeout() ist eine Funktion des Betriebssytem, welche eine Funktion (erster Parameter) nach Ablauf der einer bestimmten Zeit in Millisekunden (zweiter Parameter) aufruft.

Anfahr/Brems-Weg

Die Zeiten ta für das Anfahren und Stoppen sind identisch. Die Strecke s, die in den einzelnen Beschleunigungs-Phasen zurückgelegt wird, errechnet sich wiefolgt:

(7)
wobei'
' =' 'in der Zeit ta zurückgelegte Strecke während der Anfahr- oder Abbrems-Phase in m
' =' 'v / f = Umrechnungsfaktor von Frequenz nach Geschwindigkeit
' =' 'a / u = Steigung der Frequenz-Rampe = Frequenzdifferenz pro Schritt
' =' 'Gewünschte Beschleunigung in m/s2
' =' 'Dauer der Anfahr/Abbrems-Phase
' =' 'Anzahl Beschleunigungs-Schritte

Der Anfahr- und Bremsweg steigt also quadratisch mit der gewählten Zeit ta für diese Phasen.

Check der Formel für Weg

Wenn man N in (7) gegen unendlich gehen lässt, d.h. wenn kontinuierlich statt diskret beschleunigt wird, geht gegen 1/2. Dann erhalten wir die bekannte Formel für die Abhängigkeit von Weg und konstanter Beschleunigung:

(8)

Der Term vmin · ta verschwindet, wenn man die minimale Frequenz auf Null setzt. Die diskrete Formel (7) ist also korrekt.

Berechnung der Beschleunigungszeit

Im Normalfall ist die Zeit ta für die Beschleunigungs- und Bremsphasen definiert durch die gewählte Beschleunigung a = u · af des Systems und die Endgeschwindigkeit (Frequenz) v = u · fsoll. Die zureckgelegte Strecke s in diesen Phasen ist ebenfalls durch diese Werte gegeben.

Wenn nun der zur Verfügung stehende Weg kürzer als 2 · s ist, kann man nicht auf die volle Geschwindigkeit fahren, sondern muss mitten in der Beschleunigungsphase in die Bremsphase über gehen, damit der Gesamtweg nicht überschritten wird.

Dazu müssen wir die limitierte Zeit ta für beide Phasen aus der zur Verfügung stehenden Strecke s berechnen.

(9)
wobei'
' =' 'Zeitspanne, die für Beschleunigung- und Bremsphase zur Verfügung steht, abhängig vom zur Verfügung stehenden Weg ssoll einer Phase
' =' 'stot / 2 = Zur Verfügung stehender Weg einer Phase
' =' 'a / u = Steigung der Frequenz-Rampe
' =' 'Gewünschte Beschleunigung in m/s2
' =' 'v / f = Umrechnungsfaktor von Frequenz nach Geschwindigkeit
' =' 'minimale Frequenz → minimale Geschwindigkeit

Die so erreichte maximale Geschwindigkeit ist dann:

(10)
More Page Infos / Sitemap
Created Dienstag, 6. Juni 2017
Scroll to Top of Page
Changed Freitag, 9. Juni 2017