Move as fast as possible along a distance within given kinematic constraints
The goal is to move as fast as possible along a distance deltaq under given kinematical constraints. The distance can be a positional or angular range. In robotics such a movement is called PTP (Point-To-Point). This source block generates the acceleration qdd of this signal as output:
After integrating the output two times, the position q is obtained. The signal is constructed in such a way that it is not possible to move faster, given the maximally allowed velocity qd_max and the maximally allowed acceleration qdd_max.
If several distances are given (vector deltaq has more than 1 element), an acceleration output vector is constructed such that all signals are in the same periods in the acceleration, constant velocity and deceleration phase. This means that only one of the signals is at its limits whereas the others are sychnronized in such a way that the end point is reached at the same time instant.
This element is useful to generate a reference signal for a controller which controls a drive train or in combination with model Modelica.Mechanics.Rotational.Accelerate to drive a flange according to a given acceleration.
|y||RealOutput[nout]||Connector of Real output signals|
|nout||Integer||max([size(deltaq, 1);size(qd_max, 1);size(qdd_max, 1)])||Number of outputs|
|deltaq||Real||Distance to move|
|qd_max||Real||Maximum velocities der(q)|
|qdd_max||Real||Maximum accelerations der(qd)|
|startTime||Time||0||Time instant at which movement starts|
|p_deltaq||Real[nout]||if size(deltaq, 1) == 1 then ones(nout)*deltaq else deltaq|
|p_qd_max||Real[nout]||if size(qd_max, 1) == 1 then ones(nout)*qd_max else qd_max|
|p_qdd_max||Real[nout]||if size(qdd_max, 1) == 1 then ones(nout)*qdd_max else qdd_max|
|Modelica.Blocks.Examples.PID_ControllerDemonstrates the usage of a Continuous.LimPID controller|