Node KinematicMotorNode#

Defined in mime.nodes.actuation._chain.KinematicMotorNode.

Algorithm MIME-NODE-105.

A kinematic motor: a rotor turned by a prescribed angle, or at a prescribed speed integrated over each step, about an axis of the frame it mounts on.

Governing equations#

\[ \phi_{n+1} = a \quad \text{(an angle prescribed)}, \qquad \phi_{n+1} = \phi_{n} + \omega \, \mathrm{d}t \quad \text{(a speed prescribed)}; \quad \mathbf{P}_{s} = \mathbf{M}_{j} \circ \mathbf{O}, \quad \mathbf{P}_{r} = \mathbf{P}_{s} \circ \mathrm{Rot}(\mathbf{e}, \phi_{n+1}); \quad \boldsymbol{\Omega}_{s} = \boldsymbol{\omega}_{j}, \quad \boldsymbol{\Omega}_{r} = \boldsymbol{\omega}_{j} + \dot{\phi} \, R(\mathbf{P}_{s}) \mathbf{e} \]

Discretisation#

A prescribed speed is integrated by the rectangle rule over the step, exact for a speed held through it.

Assumptions#

  • An ideal source of the prescribed motion: no cogging, imbalance or thermal terms (MIME-ANO-102)

  • Its motion is prescribed: it takes no load, and its reaction is not applied

Limitations#

none declared

Declared regimes (not evidenced here)#

none declared

References#

[@Sola2017]

Symbols#

Symbol

Kind

Name

Units

Implemented by

\(\phi\)

state

angle

1 (units declared, not checked)

mime.nodes.actuation._chain.KinematicMotorNode.advance

\(a\)

input

angle

1

mime.nodes.actuation._chain.KinematicMotorNode.advance

\(\omega\)

input

velocity

Hz

mime.nodes.actuation._chain.KinematicMotorNode.advance

\(\mathbf{P}\)

state

frame_poses

m; 1

mime.nodes.actuation._chain.KinematicMotorNode.advance

\(\boldsymbol{\Omega}\)

state

frame_angular_velocities

rad/s

mime.nodes.actuation._chain.KinematicMotorNode.rates

\(\boldsymbol{\omega}\)

input

mount_rates

rad/s

mime.nodes.actuation._chain.MountedNode.base_rate

\(\mathbf{M}\)

input

mount_poses

m; 1

mime.nodes.actuation._chain.MountedNode.base

\(\mathbf{O}\)

parameter

placement

m; 1

mime.nodes.actuation._chain.MountedNode.base

\(\mathbf{e}\)

parameter

axis

1

mime.nodes.actuation._chain.KinematicMotorNode.poses

A row marked units declared, not checked has the units its author wrote: the code declares none there, so the node walk cannot compare them with anything.

Built by#

  • motor 0.2.0, rung kinematic