<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744</link>
    <title>MATLAB Central Newsreader - trapezoidal triangular motion calcs</title>
    <description>Feed for thread: trapezoidal triangular motion calcs</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2008 by The MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>The MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Wed, 06 Feb 2008 01:29:02 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#413164</link>
      <author>Mark </author>
      <description>"Roger &lt;br&gt;
Stafford" &amp;lt;ellieandrogerxyzzy@mindspring.com.invalid&amp;gt; wrote &lt;br&gt;
in message &amp;lt;fo3e2e$gea$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; "Mark " &amp;lt;medwar19.nospam@hotmail.com&amp;gt; wrote in message &lt;br&gt;
&amp;lt;fo35m9$d5p&lt;br&gt;
&amp;gt; $1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; Hello,&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Thanks for your time and method of dealing with &lt;br&gt;
&amp;gt; &amp;gt; acceleration. I'm interested in writing a script that &lt;br&gt;
will &lt;br&gt;
&amp;gt; &amp;gt; allow me to put any path and calculate a bunch of &lt;br&gt;
motion &lt;br&gt;
&amp;gt; &amp;gt; parameters including the minimum velocity, accleration &lt;br&gt;
and &lt;br&gt;
&amp;gt; &amp;gt; jerk that can be used to get round the path in a &lt;br&gt;
specific &lt;br&gt;
&amp;gt; &amp;gt; time.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; This is a common robotics problem that has proven &lt;br&gt;
harder to &lt;br&gt;
&amp;gt; &amp;gt; solve that I expected.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Once again, I appreciate your time and insight.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Regards,&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Mark.&lt;br&gt;
&amp;gt; -----------&lt;br&gt;
&amp;gt;   For any pair of successive points in your path, I am &lt;br&gt;
assuming you have three &lt;br&gt;
&amp;gt; given quantities in advance: 1) D, the distance between &lt;br&gt;
the points, 2) T, the &lt;br&gt;
&amp;gt; allowed time for making the trip, and 3) A, the maximum &lt;br&gt;
permissible &lt;br&gt;
&amp;gt; acceleration and deceleration to be used along the way.  &lt;br&gt;
As I have previously &lt;br&gt;
&amp;gt; indicated, the least possible maximum velocity is &lt;br&gt;
achieved by first &lt;br&gt;
&amp;gt; accelerating at the maximum amount, A, for some as yet &lt;br&gt;
unknown time t and &lt;br&gt;
&amp;gt; reaching maximum velocity v, then coasting at that &lt;br&gt;
constant velocity for time &lt;br&gt;
&amp;gt; T-2*t, and finally decelerating at maximum -A for time t &lt;br&gt;
so as to come to a &lt;br&gt;
&amp;gt; stop, with t being chosen so as to have traveled a total &lt;br&gt;
of D distance.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;   Expressing this as an equation with t as the unknown, &lt;br&gt;
we get&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  D = 1/2*A*t^2 + A*t*(T-2*t) + 1/2*A*t^2 = A*t*(T-t)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  A*t^2 - A*T*t + D = 0&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  t = (A*T-sqrt(A^2*T^2-4*A*D)/(2*A) = T/2 - sqrt((T/2)^2-&lt;br&gt;
D/A)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; With a plus sign in front of the square root, t would &lt;br&gt;
exceed T/2 which is &lt;br&gt;
&amp;gt; impossible, so we have rejected that solution to the &lt;br&gt;
above quadratic.  If (T/2)&lt;br&gt;
&amp;gt; ^2-D/A is negative, A is too small to allow a real &lt;br&gt;
solution and you have an &lt;br&gt;
&amp;gt; impossible problem.  Otherwise, the maximum velocity &lt;br&gt;
would be&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  v = A*t = D / (T/2 + sqrt((T/2)^2-D/A))&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; where we have multiplied numerator and denominator by&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  T/2 + sqrt((T/2)^2-D/A)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; to rationalize the numberator.  Notice that if the &lt;br&gt;
permissible A is very large, &lt;br&gt;
&amp;gt; then v approaches D/T and t approaches 0.  If A is at the &lt;br&gt;
minimum possible &lt;br&gt;
&amp;gt; value with (T/2)^2-D/A = 0, then v = 2*D/T and t = T/2 &lt;br&gt;
which gives the &lt;br&gt;
&amp;gt; triangular velocity profile.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;   When I originally described this problem, I asserted &lt;br&gt;
that it would lead to a &lt;br&gt;
&amp;gt; linear equation, which as you see was incorrect.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;   This may not fully answer the question you posed above, &lt;br&gt;
but I will confine &lt;br&gt;
&amp;gt; my contribution to what I have written here.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Roger Stafford&lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
Hi Roger,&lt;br&gt;
&lt;br&gt;
Thanks for showing your workings. I started this way &lt;br&gt;
expressing the velocity and displacment equations for each &lt;br&gt;
move that I was interested in acheiving. My next step was &lt;br&gt;
to incorporate 2D and 3D moves rectilinear moves. The final &lt;br&gt;
stage was in use splines to smooth the robot passage around &lt;br&gt;
the transitions between the linear motions.&lt;br&gt;
&lt;br&gt;
It turns out that National Instruments beat me to my goal &lt;br&gt;
with NI Motion Assistant but at least I understand the &lt;br&gt;
principles now.&lt;br&gt;
&lt;br&gt;
Best regards,&lt;br&gt;
&lt;br&gt;
Mark.&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Sun, 03 Feb 2008 03:57:02 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412653</link>
      <author>Roger Stafford</author>
      <description>"Mark " &amp;lt;medwar19.nospam@hotmail.com&amp;gt; wrote in message &amp;lt;fo35m9$d5p&lt;br&gt;
$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Hello,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Thanks for your time and method of dealing with &lt;br&gt;
&amp;gt; acceleration. I'm interested in writing a script that will &lt;br&gt;
&amp;gt; allow me to put any path and calculate a bunch of motion &lt;br&gt;
&amp;gt; parameters including the minimum velocity, accleration and &lt;br&gt;
&amp;gt; jerk that can be used to get round the path in a specific &lt;br&gt;
&amp;gt; time.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; This is a common robotics problem that has proven harder to &lt;br&gt;
&amp;gt; solve that I expected.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Once again, I appreciate your time and insight.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Regards,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Mark.&lt;br&gt;
-----------&lt;br&gt;
&amp;nbsp;&amp;nbsp;For any pair of successive points in your path, I am assuming you have three &lt;br&gt;
given quantities in advance: 1) D, the distance between the points, 2) T, the &lt;br&gt;
allowed time for making the trip, and 3) A, the maximum permissible &lt;br&gt;
acceleration and deceleration to be used along the way.  As I have previously &lt;br&gt;
indicated, the least possible maximum velocity is achieved by first &lt;br&gt;
accelerating at the maximum amount, A, for some as yet unknown time t and &lt;br&gt;
reaching maximum velocity v, then coasting at that constant velocity for time &lt;br&gt;
T-2*t, and finally decelerating at maximum -A for time t so as to come to a &lt;br&gt;
stop, with t being chosen so as to have traveled a total of D distance.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;Expressing this as an equation with t as the unknown, we get&lt;br&gt;
&lt;br&gt;
&amp;nbsp;D = 1/2*A*t^2 + A*t*(T-2*t) + 1/2*A*t^2 = A*t*(T-t)&lt;br&gt;
&lt;br&gt;
&amp;nbsp;A*t^2 - A*T*t + D = 0&lt;br&gt;
&lt;br&gt;
&amp;nbsp;t = (A*T-sqrt(A^2*T^2-4*A*D)/(2*A) = T/2 - sqrt((T/2)^2-D/A)&lt;br&gt;
&lt;br&gt;
With a plus sign in front of the square root, t would exceed T/2 which is &lt;br&gt;
impossible, so we have rejected that solution to the above quadratic.  If (T/2)&lt;br&gt;
^2-D/A is negative, A is too small to allow a real solution and you have an &lt;br&gt;
impossible problem.  Otherwise, the maximum velocity would be&lt;br&gt;
&lt;br&gt;
&amp;nbsp;v = A*t = D / (T/2 + sqrt((T/2)^2-D/A))&lt;br&gt;
&lt;br&gt;
where we have multiplied numerator and denominator by&lt;br&gt;
&lt;br&gt;
&amp;nbsp;T/2 + sqrt((T/2)^2-D/A)&lt;br&gt;
&lt;br&gt;
to rationalize the numberator.  Notice that if the permissible A is very large, &lt;br&gt;
then v approaches D/T and t approaches 0.  If A is at the minimum possible &lt;br&gt;
value with (T/2)^2-D/A = 0, then v = 2*D/T and t = T/2 which gives the &lt;br&gt;
triangular velocity profile.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;When I originally described this problem, I asserted that it would lead to a &lt;br&gt;
linear equation, which as you see was incorrect.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;This may not fully answer the question you posed above, but I will confine &lt;br&gt;
my contribution to what I have written here.&lt;br&gt;
&lt;br&gt;
Roger Stafford&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Sun, 03 Feb 2008 01:34:01 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412647</link>
      <author>Mark </author>
      <description>"Roger &lt;br&gt;
Stafford" &amp;lt;ellieandrogerxyzzy@mindspring.com.invalid&amp;gt; wrote &lt;br&gt;
in message &amp;lt;fnu80l$5vl$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson) wrote in &lt;br&gt;
message &amp;lt;fnu1ue&lt;br&gt;
&amp;gt; $6ul$1@canopus.cc.umanitoba.ca&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; In article &amp;lt;fnu13k$5ur$1@canopus.cc.umanitoba.ca&amp;gt;,&lt;br&gt;
&amp;gt; &amp;gt; Walter Roberson &amp;lt;roberson@ibd.nrc-cnrc.gc.ca&amp;gt; wrote:&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;d[total] = d[acceleration] + d[deceleration] + &lt;br&gt;
d[flat] =&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  1/2 * a * t1^2 + 1/2 * a &amp; t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  a * t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;  a * t1 * (t1 + t2)&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;But for lowest acceleration that gets you there in the &lt;br&gt;
available time tL,&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;then t1 + t2 = tL, and d[total] = D, so&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Oh, an error! tL is not t1 + t2: tL is 2*t1 + t2 and &lt;br&gt;
thus t2 is tL-2*t1&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;d[total] = a * t1 * tL&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; That should be,&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; d[total] = a * t1 * (t1 + tL - 2*t1) = a * t1 * (tL - &lt;br&gt;
t1)&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; &amp;gt;D = a * t1 * tL&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; That should be&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; D = a * t1 * (tL - t1)&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; a = D / (t1 * (tL - t1))&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; The denominator is maximized at t1 = tL/2, so 'a' is &lt;br&gt;
minimized at&lt;br&gt;
&amp;gt; &amp;gt; t1 = tL/2, and a = D / (tL^2/4) so a = 4 * D / tL^2&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; The rest of the conclusion is the same as before: &lt;br&gt;
accelerate half way&lt;br&gt;
&amp;gt; &amp;gt; then decelerate. No lower acceleration will get you &lt;br&gt;
there on time,&lt;br&gt;
&amp;gt; &amp;gt; and no higher acceleration is needed.&lt;br&gt;
&amp;gt; ---------&lt;br&gt;
&amp;gt;   Mark's aim in both his articles is that of minimizing &lt;br&gt;
the maximum velocity, &lt;br&gt;
&amp;gt; not the acceleration.  To minimize the acceleration in &lt;br&gt;
this case produces a &lt;br&gt;
&amp;gt; maximum velocity of 2*d/t which is greater than that &lt;br&gt;
possible using greater &lt;br&gt;
&amp;gt; acceleration (unless the maximum allowed acceleration is &lt;br&gt;
only just sufficient &lt;br&gt;
&amp;gt; to get there in time.)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;   I quote him: "The question is knowing the basic &lt;br&gt;
equations for motion how &lt;br&gt;
&amp;gt; do I calculate the minimum velocities needed to achieve &lt;br&gt;
my timing?" and "I'm &lt;br&gt;
&amp;gt; looking to minimise the maximum velocity of the mech &lt;br&gt;
whilst making the &lt;br&gt;
&amp;gt; distance in time."&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Roger Stafford&lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
Hello,&lt;br&gt;
&lt;br&gt;
Thanks for your time and method of dealing with &lt;br&gt;
acceleration. I'm interested in writing a script that will &lt;br&gt;
allow me to put any path and calculate a bunch of motion &lt;br&gt;
parameters including the minimum velocity, accleration and &lt;br&gt;
jerk that can be used to get round the path in a specific &lt;br&gt;
time.&lt;br&gt;
&lt;br&gt;
This is a common robotics problem that has proven harder to &lt;br&gt;
solve that I expected.&lt;br&gt;
&lt;br&gt;
Once again, I appreciate your time and insight.&lt;br&gt;
&lt;br&gt;
Regards,&lt;br&gt;
&lt;br&gt;
Mark.&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 01 Feb 2008 04:43:01 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412376</link>
      <author>Roger Stafford</author>
      <description>roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson) wrote in message &amp;lt;fnu1ue&lt;br&gt;
$6ul$1@canopus.cc.umanitoba.ca&amp;gt;...&lt;br&gt;
&amp;gt; In article &amp;lt;fnu13k$5ur$1@canopus.cc.umanitoba.ca&amp;gt;,&lt;br&gt;
&amp;gt; Walter Roberson &amp;lt;roberson@ibd.nrc-cnrc.gc.ca&amp;gt; wrote:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;d[total] = d[acceleration] + d[deceleration] + d[flat] =&lt;br&gt;
&amp;gt; &amp;gt;  1/2 * a * t1^2 + 1/2 * a &amp; t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;gt; &amp;gt;  a * t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;gt; &amp;gt;  a * t1 * (t1 + t2)&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt;But for lowest acceleration that gets you there in the available time tL,&lt;br&gt;
&amp;gt; &amp;gt;then t1 + t2 = tL, and d[total] = D, so&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Oh, an error! tL is not t1 + t2: tL is 2*t1 + t2 and thus t2 is tL-2*t1&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;d[total] = a * t1 * tL&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; That should be,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; d[total] = a * t1 * (t1 + tL - 2*t1) = a * t1 * (tL - t1)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;D = a * t1 * tL&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; That should be&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; D = a * t1 * (tL - t1)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; a = D / (t1 * (tL - t1))&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The denominator is maximized at t1 = tL/2, so 'a' is minimized at&lt;br&gt;
&amp;gt; t1 = tL/2, and a = D / (tL^2/4) so a = 4 * D / tL^2&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The rest of the conclusion is the same as before: accelerate half way&lt;br&gt;
&amp;gt; then decelerate. No lower acceleration will get you there on time,&lt;br&gt;
&amp;gt; and no higher acceleration is needed.&lt;br&gt;
---------&lt;br&gt;
&amp;nbsp;&amp;nbsp;Mark's aim in both his articles is that of minimizing the maximum velocity, &lt;br&gt;
not the acceleration.  To minimize the acceleration in this case produces a &lt;br&gt;
maximum velocity of 2*d/t which is greater than that possible using greater &lt;br&gt;
acceleration (unless the maximum allowed acceleration is only just sufficient &lt;br&gt;
to get there in time.)&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;I quote him: "The question is knowing the basic equations for motion how &lt;br&gt;
do I calculate the minimum velocities needed to achieve my timing?" and "I'm &lt;br&gt;
looking to minimise the maximum velocity of the mech whilst making the &lt;br&gt;
distance in time."&lt;br&gt;
&lt;br&gt;
Roger Stafford&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 01 Feb 2008 02:59:26 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412367</link>
      <author>roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson)</author>
      <description>In article &amp;lt;fnu13k$5ur$1@canopus.cc.umanitoba.ca&amp;gt;,&lt;br&gt;
Walter Roberson &amp;lt;roberson@ibd.nrc-cnrc.gc.ca&amp;gt; wrote:&lt;br&gt;
&lt;br&gt;
&amp;gt;d[total] = d[acceleration] + d[deceleration] + d[flat] =&lt;br&gt;
&amp;gt;  1/2 * a * t1^2 + 1/2 * a &amp; t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;gt;  a * t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;gt;  a * t1 * (t1 + t2)&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;But for lowest acceleration that gets you there in the available time tL,&lt;br&gt;
&amp;gt;then t1 + t2 = tL, and d[total] = D, so&lt;br&gt;
&lt;br&gt;
Oh, an error! tL is not t1 + t2: tL is 2*t1 + t2 and thus t2 is tL-2*t1&lt;br&gt;
&lt;br&gt;
&amp;gt;d[total] = a * t1 * tL&lt;br&gt;
&lt;br&gt;
That should be,&lt;br&gt;
&lt;br&gt;
d[total] = a * t1 * (t1 + tL - 2*t1) = a * t1 * (tL - t1)&lt;br&gt;
&lt;br&gt;
&amp;gt;D = a * t1 * tL&lt;br&gt;
&lt;br&gt;
That should be&lt;br&gt;
&lt;br&gt;
D = a * t1 * (tL - t1)&lt;br&gt;
&lt;br&gt;
a = D / (t1 * (tL - t1))&lt;br&gt;
&lt;br&gt;
The denominator is maximized at t1 = tL/2, so 'a' is minimized at&lt;br&gt;
t1 = tL/2, and a = D / (tL^2/4) so a = 4 * D / tL^2&lt;br&gt;
&lt;br&gt;
The rest of the conclusion is the same as before: accelerate half way&lt;br&gt;
then decelerate. No lower acceleration will get you there on time,&lt;br&gt;
and no higher acceleration is needed.&lt;br&gt;
-- &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;"I was very young in those days, but I was also rather dim."&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;-- Christopher Priest&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 01 Feb 2008 02:45:08 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412366</link>
      <author>roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson)</author>
      <description>In article &amp;lt;fntmc9$2ir$1@fred.mathworks.com&amp;gt;,&lt;br&gt;
Mark  &amp;lt;medwar19.nospam@hotmail.com&amp;gt; wrote:&lt;br&gt;
&lt;br&gt;
&amp;gt;Your assumption was right about the problem. It is simple &lt;br&gt;
&amp;gt;motion between 2 points. However no mech really achieves &lt;br&gt;
&amp;gt;infinite acceleration and this is the main question. &lt;br&gt;
&lt;br&gt;
&amp;gt;The mech will accelerate with limited acceleration, then a &lt;br&gt;
&amp;gt;triangular velocity or trapizodal (if maximum velocity can &lt;br&gt;
&amp;gt;be reached in time) before limited deceleration. The mech &lt;br&gt;
&amp;gt;will be stationary at the start and end.&lt;br&gt;
&lt;br&gt;
&amp;gt;I'm looking to minimise the maximum velocity of the mech &lt;br&gt;
&amp;gt;whilst making the distance in time.&lt;br&gt;
&lt;br&gt;
&amp;gt;I read that acceleration should be 1/3 the maximum speed?&lt;br&gt;
&lt;br&gt;
Let the mech accelerate for t1 and travel at constant velocity&lt;br&gt;
for t2, with a time limit of tL, and a required distance of D.&lt;br&gt;
&lt;br&gt;
d[acceleration] = 1/2 * a * t1^2&lt;br&gt;
d[deceleration] = d[acceleration] = 1/2 * a * t1^2&lt;br&gt;
d[flat] = (a*t1) * t2   %after t1 seconds acceleration velocity is a*t1&lt;br&gt;
d[total] = d[acceleration] + d[deceleration] + d[flat] =&lt;br&gt;
&amp;nbsp;&amp;nbsp;1/2 * a * t1^2 + 1/2 * a &amp; t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;nbsp;&amp;nbsp;a * t1^2 + a * t1 * t2 =&lt;br&gt;
&amp;nbsp;&amp;nbsp;a * t1 * (t1 + t2)&lt;br&gt;
&lt;br&gt;
But for lowest acceleration that gets you there in the available time tL,&lt;br&gt;
then t1 + t2 = tL, and d[total] = D, so&lt;br&gt;
d[total] = a * t1 * tL&lt;br&gt;
D = a * t1 * tL&lt;br&gt;
and&lt;br&gt;
a * t1 = D/tL&lt;br&gt;
&lt;br&gt;
Hence, for lowest acceleration that satisfies the requirement, t1&lt;br&gt;
should be maximized, so t1 should be tL/2 (accelerate halfway&lt;br&gt;
then decelerate) and&lt;br&gt;
a * tL/2 = D/tL&lt;br&gt;
a = 2 * D / tL^2&lt;br&gt;
&lt;br&gt;
Any lower of an acceleration will not get you there in time,&lt;br&gt;
and any higher of an acceleration is not needed to get you there in time,&lt;br&gt;
so if a = 2 * D / tL^2 is less than your limiting acceleration you&lt;br&gt;
use it, and if it is higher than your limiting acceleration you cannot&lt;br&gt;
reach the goal.&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
This is a Usenet signature block. Please do not quote it when replying&lt;br&gt;
to one of my postings.&lt;br&gt;
&lt;a href="http://en.wikipedia.org/wiki/Signature_block"&gt;http://en.wikipedia.org/wiki/Signature_block&lt;/a&gt;&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 01 Feb 2008 02:40:19 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412365</link>
      <author>Roger Stafford</author>
      <description>"Mark " &amp;lt;medwar19.nospam@hotmail.com&amp;gt; wrote in message &amp;lt;fntmc9$2ir&lt;br&gt;
$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Hi Roger,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Your assumption was right about the problem. It is simple &lt;br&gt;
&amp;gt; motion between 2 points. However no mech really achieves &lt;br&gt;
&amp;gt; infinite acceleration and this is the main question. &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The mech will accelerate with limited acceleration, then a &lt;br&gt;
&amp;gt; triangular velocity or trapizodal (if maximum velocity can &lt;br&gt;
&amp;gt; be reached in time) before limited deceleration. The mech &lt;br&gt;
&amp;gt; will be stationary at the start and end.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I'm looking to minimise the maximum velocity of the mech &lt;br&gt;
&amp;gt; whilst making the distance in time.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;Well, then you should accelerate at the maximum amount allowed until &lt;br&gt;
reaching a certain maximum velocity, coast at that maximum velocity for a &lt;br&gt;
period of time, then decelerate at the maximum amount permissible, all in &lt;br&gt;
such a way as to come back to zero velocity after total time t has elapsed.  &lt;br&gt;
The maximum velocity should be chosen so that the integral under the &lt;br&gt;
velocity versus time curve is equal to d, the given distance.  In other words, &lt;br&gt;
the total area under the line v = d/t should equal the total area above it.  &lt;br&gt;
Since the "curve" is actually of trapezoidal shape, choosing this maximum &lt;br&gt;
velocity is a matter of solving a simple linear equation obtained from the &lt;br&gt;
triangles and rectangles involved in these areas.  This will minimize your &lt;br&gt;
maximum velocity attained.&lt;br&gt;
&lt;br&gt;
&amp;gt; I read that acceleration should be 1/3 the maximum speed?&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;It is a bit arbitrary comparing acceleration with speed.  They are measured &lt;br&gt;
in different kinds of units and their relative numerical values therefore &lt;br&gt;
depend on the particular system of units used.&lt;br&gt;
&lt;br&gt;
Roger Stafford&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 31 Jan 2008 23:42:01 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#412340</link>
      <author>Mark </author>
      <description>"Roger &lt;br&gt;
Stafford" &amp;lt;ellieandrogerxyzzy@mindspring.com.invalid&amp;gt; wrote &lt;br&gt;
in message &amp;lt;fnlaup$imv$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; "Mark " &amp;lt;medwar19@yahoo.com&amp;gt; wrote in message &amp;lt;fnkquv$sge&lt;br&gt;
&amp;gt; $1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; Hi all,&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; I'm working on a 3-axis cartesian robot project for &lt;br&gt;
school &lt;br&gt;
&amp;gt; &amp;gt; and need some help understanding selection concepts.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; I created an array of points in 3D space that I want &lt;br&gt;
the &lt;br&gt;
&amp;gt; &amp;gt; robot end effector to service so I know the distance &lt;br&gt;
and &lt;br&gt;
&amp;gt; &amp;gt; time available for travel for each axis.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; The question is knowing the basic equations for motion &lt;br&gt;
how &lt;br&gt;
&amp;gt; &amp;gt; do I calculate the minimum velocities needed to achieve &lt;br&gt;
my &lt;br&gt;
&amp;gt; &amp;gt; timing?&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; I know that I can accelerate the robot using &lt;br&gt;
trapezoidal or &lt;br&gt;
&amp;gt; &amp;gt; triangular velocity profiles but how do I go about &lt;br&gt;
&amp;gt; &amp;gt; calculating what these should be?&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Thanks for any help or pointers to information.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Mark.&lt;br&gt;
&amp;gt; ----------&lt;br&gt;
&amp;gt;   There is much you haven't made clear in the explanation &lt;br&gt;
of your project, &lt;br&gt;
&amp;gt; Mark.  Do you know the sequential order you wish the &lt;br&gt;
robot to travel between &lt;br&gt;
&amp;gt; successive "points" in your array?  Does the robot start &lt;br&gt;
and stop with zero &lt;br&gt;
&amp;gt; velocity at each successive point?  You spoke of "the &lt;br&gt;
distance and time &lt;br&gt;
&amp;gt; available for travel for each axis."  Do you mean by this &lt;br&gt;
simply that you know &lt;br&gt;
&amp;gt; the three-dimensional distance between successive points &lt;br&gt;
and the time &lt;br&gt;
&amp;gt; available for travel between them?  If all the answers to &lt;br&gt;
these questions are &lt;br&gt;
&amp;gt; "yes", then you appear to be asking a rather trivial &lt;br&gt;
question.  How to travel &lt;br&gt;
&amp;gt; distance, d, between points A and B with minimum velocity &lt;br&gt;
accumulated and &lt;br&gt;
&amp;gt; taking no more than a given amount of time, t.  The &lt;br&gt;
answer would be to start &lt;br&gt;
&amp;gt; at rest at point A, use infinite acceleration until &lt;br&gt;
reaching velocity d/t, then &lt;br&gt;
&amp;gt; coast with constant velocity until reaching point B, and &lt;br&gt;
finally use infinite &lt;br&gt;
&amp;gt; deceleration to come to rest there.  These are &lt;br&gt;
"trapezoidal" velocity segment &lt;br&gt;
&amp;gt; profiles in a sense, but I have the feeling you mean &lt;br&gt;
something very different &lt;br&gt;
&amp;gt; from this, though I am unable to guess what that might be.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Roger Stafford&lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
Hi Roger,&lt;br&gt;
&lt;br&gt;
Your assumption was right about the problem. It is simple &lt;br&gt;
motion between 2 points. However no mech really achieves &lt;br&gt;
infinite acceleration and this is the main question. &lt;br&gt;
&lt;br&gt;
The mech will accelerate with limited acceleration, then a &lt;br&gt;
triangular velocity or trapizodal (if maximum velocity can &lt;br&gt;
be reached in time) before limited deceleration. The mech &lt;br&gt;
will be stationary at the start and end.&lt;br&gt;
&lt;br&gt;
I'm looking to minimise the maximum velocity of the mech &lt;br&gt;
whilst making the distance in time.&lt;br&gt;
&lt;br&gt;
I read that acceleration should be 1/3 the maximum speed?&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 28 Jan 2008 19:38:01 -0500</pubDate>
      <title>Re: trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#411655</link>
      <author>Roger Stafford</author>
      <description>"Mark " &amp;lt;medwar19@yahoo.com&amp;gt; wrote in message &amp;lt;fnkquv$sge&lt;br&gt;
$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Hi all,&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I'm working on a 3-axis cartesian robot project for school &lt;br&gt;
&amp;gt; and need some help understanding selection concepts.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I created an array of points in 3D space that I want the &lt;br&gt;
&amp;gt; robot end effector to service so I know the distance and &lt;br&gt;
&amp;gt; time available for travel for each axis.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The question is knowing the basic equations for motion how &lt;br&gt;
&amp;gt; do I calculate the minimum velocities needed to achieve my &lt;br&gt;
&amp;gt; timing?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I know that I can accelerate the robot using trapezoidal or &lt;br&gt;
&amp;gt; triangular velocity profiles but how do I go about &lt;br&gt;
&amp;gt; calculating what these should be?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Thanks for any help or pointers to information.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Mark.&lt;br&gt;
----------&lt;br&gt;
&amp;nbsp;&amp;nbsp;There is much you haven't made clear in the explanation of your project, &lt;br&gt;
Mark.  Do you know the sequential order you wish the robot to travel between &lt;br&gt;
successive "points" in your array?  Does the robot start and stop with zero &lt;br&gt;
velocity at each successive point?  You spoke of "the distance and time &lt;br&gt;
available for travel for each axis."  Do you mean by this simply that you know &lt;br&gt;
the three-dimensional distance between successive points and the time &lt;br&gt;
available for travel between them?  If all the answers to these questions are &lt;br&gt;
"yes", then you appear to be asking a rather trivial question.  How to travel &lt;br&gt;
distance, d, between points A and B with minimum velocity accumulated and &lt;br&gt;
taking no more than a given amount of time, t.  The answer would be to start &lt;br&gt;
at rest at point A, use infinite acceleration until reaching velocity d/t, then &lt;br&gt;
coast with constant velocity until reaching point B, and finally use infinite &lt;br&gt;
deceleration to come to rest there.  These are "trapezoidal" velocity segment &lt;br&gt;
profiles in a sense, but I have the feeling you mean something very different &lt;br&gt;
from this, though I am unable to guess what that might be.&lt;br&gt;
&lt;br&gt;
Roger Stafford&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 28 Jan 2008 15:05:03 -0500</pubDate>
      <title>trapezoidal triangular motion calcs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/162744#411602</link>
      <author>Mark </author>
      <description>Hi all,&lt;br&gt;
&lt;br&gt;
I'm working on a 3-axis cartesian robot project for school &lt;br&gt;
and need some help understanding selection concepts.&lt;br&gt;
&lt;br&gt;
I created an array of points in 3D space that I want the &lt;br&gt;
robot end effector to service so I know the distance and &lt;br&gt;
time available for travel for each axis.&lt;br&gt;
&lt;br&gt;
The question is knowing the basic equations for motion how &lt;br&gt;
do I calculate the minimum velocities needed to achieve my &lt;br&gt;
timing?&lt;br&gt;
&lt;br&gt;
I know that I can accelerate the robot using trapezoidal or &lt;br&gt;
triangular velocity profiles but how do I go about &lt;br&gt;
calculating what these should be?&lt;br&gt;
&lt;br&gt;
Thanks for any help or pointers to information.&lt;br&gt;
&lt;br&gt;
Mark.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
</description>
    </item>
  </channel>
</rss>
