Linear and angular velocity components of base and follower body coordinate systems

Constraints & Drivers

The Velocity Driver block drives a linear combination of the projected translational and angular velocities of two Bodies. The velocities are projected by inner products on to constant vectors you specify.

The subscripts B and F refer to base and follower bodies, respectively. Let

*v*_{B},*v*_{F}be the two body velocity vectors, measured in World.ω

_{B}, ω_{F}be the two body angular velocity vectors, measured in World.*c*_{B},*c*_{F},*d*_{B},*d*_{F}be constant vectors.

The Velocity Driver block specifies the linear combination Ω:

$$\Omega ={c}_{B}\cdot {v}_{B}+\text{}{d}_{B}\cdot {\text{\omega}}_{B}-\text{}{c}_{F}\cdot {v}_{F}-\text{}{d}_{F}\cdot {\text{\omega}}_{F}\text{}=\text{}\Omega (t=0)\text{}+\text{}f(t)$$

as a function of time *f(t)*. You specify the
vectors *c*_{B}, *c*_{F}, *d*_{B}, *d*_{F}. You also connect
a Driver Actuator block
to the Velocity Driver.

The Simulink^{®} input signal into the Driver Actuator specifies
the time-dependent driving function *f(t)* and its
first two derivatives, as well as their units. If you do not actuate
Velocity Driver, this block acts as a time-independent constraint that freezes the constraint linear
combination at its initial value Ω(*t*=0) during
the simulation.

Drivers restrict relative degrees of freedom (DoFs) between a pair of bodies as specified functions of time. Locally in a machine, they replace a Joint as the expression of the DoFs. Globally, Driver blocks must occur topologically in closed loop. Like Bodies connected to a Joint, the two Bodies connected to a Drivers are ordered as base and follower, fixing the direction of relative motion.

You can also connect a Constraint & Driver Sensor to any Driver block and measure the reaction forces/torques between the driven bodies.

The dialog has two active areas, **Connection
parameters** and **Parameters**.

The base (B)-follower (F) Body sequence determines the sense of positive motion. Positive translation is the follower moving in the direction of the translation axis. Positive rotation is the follower rotating in the right-handed sense about the rotation axis.

**Current base**When you connect the base (B) connector port on the Velocity Driver block to a Body CS Port on a Body, this parameter is automatically reset to the name of this Body CS. See the following figure, Velocity Driver Base and Follower Body Connector Ports.

**Current follower**When you connect the follower (F) connector port on the Velocity Driver block to a Body CS Port on a Body, this parameter is automatically reset to the name of this Body CS. See the following figure, Velocity Driver Base and Follower Body Connector Ports.

**Number of sensor/actuator ports**Using this spinner menu, you can set the number of extra connector ports needed for connecting Driver Actuator and Constraint & Driver Sensor blocks to this Driver. The default is

`0`

.To activate the Driver, connect a Driver Actuator.

**Velocity Driver Base and Follower Body Connector
Ports**

The **Parameters** fields are grouped
into three sets, **Units**, **Base velocity
coefficients**, and **Follower velocity coefficients**.

The vectors *c*_{B}, *c*_{F}, *d*_{B}, *d*_{F} carry the implicit
units conversion to convert all velocities to the common linear velocity
units of *f(t)* that you set in the Driver Actuator
connected to the Velocity Driver block.

**Angular velocity**From the pull-down menu, choose the common units for all angular velocities. The default is

`rad/s`

(radians/second).The vectors

*d*_{B}and*d*_{F}implicitly carry the units conversion of length/angle. The driving function*f(t)*has the linear velocity units that you set in the Driver Actuator block that you connect to Velocity Driver. If the*f(t)*units differ from the units set in**Linear velocity units**in this dialog, the vectors*d*_{B}and*d*_{F}implicitly carry the additional units conversion.**Linear velocity**From the pull-down menu, choose the common units for all linear velocities. The default is

`m/s`

(meters/second).The driving function

*f(t)*has the linear velocity units that you set in the Driver Actuator block that you connect to the Velocity Driver. If the*f(t)*units differ from the units set here, the vectors*c*_{B}and*c*_{F}implicitly carry the units conversion.

**Angular velocity**Under

**[x y z]**, enter the**Angular velocity**coefficient vectors for the base Body. These are the components of*d*_{B}. The default is`[1 0 0]`

.In the

**Fixed in CS**pull-down menu, choose which set of coordinates axes,`World`

or`Base`

, define these vector coefficients. The default is`World`

.**Linear Velocity**Under

**[x y z]**, enter the**Linear velocity**coefficient vectors for the base Body. These are the components of*c*_{B}. The default is`[1 0 0]`

.In the

**Fixed in CS**pull-down menu, choose which set of coordinates axes,`World`

or`Base`

, define these vector coefficients. The default is`World`

.

**Angular velocity**Under

**[x y z]**, enter the**Angular velocity**coefficient vector for the follower Body. These are the components of*d*_{F}. The default is`[1 0 0]`

.In the

**Fixed in CS**pull-down menu, choose which set of coordinates axes,`World`

or`Follower`

, define these vector coefficients. The default is`World`

.**Linear Velocity**Under

**[x y z]**, enter the**Linear velocity**coefficient vector for the base Body. These are the components of*c*_{F}. The default is`[1 0 0]`

.In the

**Fixed in CS**pull-down menu, choose which set of coordinates axes,`World`

or`Follower`

, define these vector coefficients. The default is`World`

.

Angle Driver, Constraint & Driver Sensor, Driver Actuator, Parallel Constraint

See Constraining and Driving Degrees of Freedom for more on restricting DoFs with Drivers.

See Checking Model Topology and How SimMechanics Software Works for more on using drivers in closed loops.

Was this topic helpful?