Welcome! Log In Create A New Profile

Advanced

Bremsrampen in Reprap Host

Posted by Stoffel15 
Bremsrampen in Reprap Host
January 15, 2010 01:32AM
Hallo zusammen,

kann mir vielleicht jemand das mit den Anfahr und Bremsrampen erklären ?
Ich kenne das nur so, das man eine gewisse anzahl an Schritten für die Rampen angibt die beim Anfahren und Bremsen verwendet werden sollen. Vielleicht auch noch einen Winkel unter dem die Rampen unterdrückt werden.

Jetzt hab ich in der Firmware 2 Stellen gesehen, wo man eine Maximal-Minimalgeschwindigkeit für die Rampen angeben kann. Außerdem in der Reprap Host einen irrwitzigen Wert von 1200000, der mir einfach nix sagt. Ich hab schon mal versucht damit zu experimentieren, komme aber nicht auf brauchbare Ergebnisse. Weis jemand wie sich das berechnet, oder wie ich eine Rampe von 1-2 mm zustande bekomme ?

mfg
Wolfgang
VDX
Re: Bremsrampen in Reprap Host
January 15, 2010 03:43AM
Hi Wolfgang,

... normal hast du für deine Achsen eine Start-Stop-Frequenz, mit der die Stepper sauber anlaufen bzw. stoppen ... und eine Maximalfrequenz, die du nicht überschreiten darfst, sonst blockieren die Achsen.

Die Beschleunigung ist die Rate. mit der du die Frequenz von der Start-Frequenz bis Max. erhöhen oder von Max. bis Stop verringern kannst, ohne daß die Mechanik durch Überschwinger blockiert.

Das wird meist dadurch gelöst, daß die Pause zwischen den einzelnen Takt-Pulsen um den 'Beschleunigungswert' eniedrigt (=Beschleunigung) oder erhöht (=Abbremsung) wird ... eine 'Abrundung' der Rampenkurve ist normal nicht erforderlich.

Mit diesen Infos kannst du die Schrittanzahl für die B- und A-Rampen berechnen und weißt, daß eine Linie mit mehr Schritten als B+A die Rampen komplett ausfährt und den Mittelteil mit Max. fährt, während du bei einer Linie mit weniger Steps bis zur Hälfte beschleunigst und ab dann abbremst ...

Viktor
Re: Bremsrampen in Reprap Host
January 15, 2010 04:13AM
Hallo Viktor,

schön hast du das erklärt thumbs up

Aber das wuste ich schon... mir geht es um diese komischen Werte die in der Einstellung von dem Programm stehen.

Da steht ein Wert von"MaxXYAcceleration(mm/mininute/minute) 1200000". Hmm... was ist das ? Da steht echt "mininute" eye popping smiley

Ich kenne das mit den Rampen so, die Achse fährt langsam bis maximum, und am Ende bremst sie langsam wieder ab. Damit sie beim anfahren nicht einfach "durchdreht" oder Schritte verliert...

In ner anderen Software konnte man zum Beispiel 100 Schritte angeben innerhalb die Maximalgeschwindigleit erreicht wurde. Aber wie geht das bei dem Reprap Host ? das können doch keine 1200000 schritte sein ? vor allem die Einheit... was ist das ? Soll das heißen mm/min^2 ? das sagt mir nix,

jetzt bist du drann

Wolfgang
VDX
Re: Bremsrampen in Reprap Host
January 15, 2010 05:10AM
Hi Wolfgang,

... dann müßte ich mir mal anschauen, wie der Beschleunigungs-Berechnungsalgorhythmus ausschaut - k.A., ob ich das demnächst angehen kann ... hab' noch ein paar andere 'brennende' Problemchen in der Pipe und Abends kaum noch Zeit über eye rolling smiley

Ciao, Viktor
Re: Bremsrampen in Reprap Host
January 15, 2010 05:41AM
jaja, wie immer...alles klar.
VDX
Re: Bremsrampen in Reprap Host
January 15, 2010 06:13AM
Hi Wolfgang,

... hier ist der Beschleunigungs-Berechnungscode in der Source:

* an acceleration to maxSpeed at s1 from the start, movement at that velocity to s2, then deceleration to
* the end (in which case flat will be 2).
* @author Adrian
*
*/

public class VelocityProfile
{
private double v, s1, s2;
private int flat;

public VelocityProfile(double s, double vStart, double maxSpeed, double vEnd, double acceleration)
{
if(maxSpeed <= vStart && maxSpeed <= vEnd)
{
flat = 0;
return;
}

s1 = (2*acceleration*s - vStart*vStart + vEnd*vEnd)/(4*acceleration);
v = Math.sqrt(2*acceleration*s1 + vStart*vStart);
double f = s1/s;
if(f < 0 || f > 1)
{
Debug.d("VelocityProfile - sm/s: " + f);
s1 = Math.max(Math.min(s, s1), 0);
}
if(v <= maxSpeed)
flat = 1;
else
{
s2 = s - 0.5*(maxSpeed*maxSpeed - vEnd*vEnd)/acceleration;
f = s2/s;
if(f < 0 || f > 1)
{
Debug.d("VelocityProfile - s2/s: " + f);
s2 = Math.max(Math.min(s, s2), 0);
}
s1 = 0.5*(maxSpeed*maxSpeed - vStart*vStart)/acceleration;
f = s1/s;
if(f < 0 || f > 1)
{
Debug.d("VelocityProfile - s1/s: " + f);
s1 = Math.max(Math.min(s, s1), 0);
}
flat = 2;
}
}

public double v() { return v; }
public double s1() { return s1; }
public double s2() { return s2; }
public int flat() { return flat; }
}

Da ich das Host-Pragramm hier nicht laufen habe, kann ich dir nichts zu den Übergabeparametern sagen, die hohen Werte könnten aber z.B. Mikrosekunden sein ... vor allem, wenn's in "/min" oder "/min^2" angegeben wird confused smiley

Schau mal, ob du aus dem Code schlau wirst ... bin grad auf Arbeit eye rolling smiley

Ciao, Viktor
Re: Bremsrampen in Reprap Host
January 15, 2010 07:56AM
Hallo Viktor,

ja, gibs mir...... ich hol gleich die Keule :-P
Ich bin leider kein Mathematiker... außerdem was steckt hinter dem "s" ne, das ist mir zu hoch...gehts nicht einfacher ? confused smiley

Da experimentiere ich lieber noch was rum... jedenfalls bin ich schon mal soweit, das ich in der Firmware den Wert angeben muß, bei dem er sich nicht verläuft wenn ich die Rampe abschalte . Hier :

#define ACCELERATION_ON
#define SLOW_XY_FEEDRATE 210.0 // Speed from which to start accelerating
#define SLOW_Z_FEEDRATE 150

Dann kann ich in der Reprap Host den Wert um einiges erhöhen ohne das er sich verläuft... nur welchen Einfluss hat diese 1200000 ?

Da muß ich noch was rumprobieren. Ich dachte ja nur das wüste zufällig jemand (ohne gleich mit Quellcode und schlauen Sprüchen um sich zu werfen). eye rolling smiley

Trotzdem danke für die Mühe.

gruß aus Köln
Wolfgang
Sorry, you do not have permission to post/reply in this forum.