blockKinematicPTP2
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Information
The goal is to move as fast as possible from start position q_begin to end position q_end under given kinematical constraints. The positions can be translational or rotational definitions (i.e., q_begin/q_end is given). In robotics such a movement is called PTP (Point-To-Point). This source block generates the position q(t), the speed qd(t) = der(q), and the acceleration qdd = der(qd) as output. The signals are 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 vectors q_begin/q_end have more than 1 element, the output vectors are 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 synchronized 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, e.g., a drive train, or to drive a flange according to a given acceleration.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:] | q_begin | {0} | Start position |
| Real[:] | q_end | {1} | End position |
| Real[:] | qd_max | {1} | Maximum velocities der(q) |
| Real[:] | qdd_max | {1} | Maximum accelerations der(qd) |
| SI.Time | startTime | 0 | Time instant at which movement starts |
| Integer | nout | max([size(q_begin, 1); size(q_end, 1); size(qd_max, 1); size(qdd_max, 1)]) | Number of output signals (= dimension of q, qd, qdd, moving) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealOutput[nout] | q | Reference position of path planning | |
| Modelica.Blocks.Interfaces.RealOutput[nout] | qd | Reference speed of path planning | |
| Modelica.Blocks.Interfaces.RealOutput[nout] | qdd | Reference acceleration of path planning | |
| Modelica.Blocks.Interfaces.BooleanOutput[nout] | moving | = true, if end position not yet reached; = false, if end position reached or axis is completely at rest |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| SI.Time | endTime | Time instant at which movement stops |
Revisions
- March 24, 2007
by Martin Otter:
Non-standard Modelica function "constrain(..)" replaced by standard Modelica implementation (via internal function position()).
New output signal "moving" added. - June 27, 2001
by Bernhard Bachmann.
Bug fixed that element is also correct if startTime is not zero. - Nov. 3, 1999
by Martin Otter:
Vectorized and moved from Rotational to Blocks.Sources. - June 29, 1999
by Martin Otter:
realized.