modelDynamicKinematicPTP

Move as fast as possible along a distance within given kinematic constraints

Extends from Modelica.Blocks.Interfaces.MO (Multiple Output continuous control block).

Information

The goal is to move as fast as possible to the request position, u_r, from the measured position, u_m, 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:

KinematicPTP.png

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 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 a drive train or in combination with model Modelica.Mechanics.Rotational.Accelerate to drive a flange according to a given acceleration.

Parameters

TypeNameDefaultDescription
Real[nout]qd_maxones(nout)Maximum velocities der(q)
Real[nout]qdd_maxones(nout)Maximum accelerations der(qd)
Modelica.SIunits.TimestartTime0Time instant at which movement starts
Modelica.SIunits.TimewaitTime0Time to wait after movement before starting another
Realq_min1e-3Smallest distance to try and move
Integernout (from MO)1Number of outputs

Connectors

TypeNameDefaultDescription
RealOutput[nout]y (from MO)Connector of Real output signals
Modelica.Blocks.Interfaces.RealInput[nout]u_rRequested position
Modelica.Blocks.Interfaces.RealInput[nout]u_mMeasured position
Modelica.Blocks.Interfaces.BooleanOutputdone

Components

TypeNameDefaultDescription
Real[nout]deltaqDistance to move
Realsd_max
Realsdd_max
Realsdd
Real[nout]aux1
Real[nout]aux2
Modelica.SIunits.TimeTa1
Modelica.SIunits.TimeTa2
Modelica.SIunits.TimeTv
Modelica.SIunits.TimeTe
BooleannoWphase
Modelica.SIunits.TimelastStartTime
Booleanready

Revisions

Release Notes:

  • 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.