@@ -6327,17 +6327,16 @@ This element has a subset of the common attributes and two custom attributes.
63276327
63286328:el-prefix: `actuator/ ` |- | **dcmotor ** |* |
63296329^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6330- This element creates a DC motor actuator. Note that :el: `dcmotor ` is quite different from the :ref: `general actuation
6331- model<geActuation>`. Unlike the general model where the components of force generation are independent affine functions
6332- mapping from control to force, :el: `dcmotor ` relies on highly coupled physical dynamics. See the `DC motor technical
6333- note <_static/dcmotor.pdf> `__ for complete mathematical formulations and parameter semantics, but we include a few
6334- important notes here:
6335-
6336- - Note that while :ref: `resistance<actuator-dcmotor-resistance> `, :ref: `motorconst<actuator-dcmotor-motorconst> ` and
6337- :ref: `nominal<actuator-dcmotor-nominal> ` are each optional, some combination of them is required.
6330+ This element creates a DC motor actuator. See the `DC motor technical note <_static/dcmotor.pdf >`__ for complete
6331+ mathematical formulations and parameter semantics, but we include a few important notes below. Note that :el: `dcmotor `
6332+ does not conform to the affine gain / bias structure of the :ref: `general actuation model<geActuation> `, except for
6333+ the stateless case.
6334+
6335+ - :ref: `resistance<actuator-dcmotor-resistance> `, :ref: `motorconst<actuator-dcmotor-motorconst> ` and
6336+ :ref: `nominal<actuator-dcmotor-nominal> ` are each optional, but some combination of them is required.
63386337 See Section 2.1 of the `technical note <_static/dcmotor.pdf >`__.
6339- - The control :ref: `input<actuator-dcmotor-input> ` semantic is either the voltage applied to the motor terminals, or a
6340- position or velocity target for a PID :ref: `controller<actuator-dcmotor-controller> `.
6338+ - The control :ref: `input<actuator-dcmotor-input> ` semantic is either the voltage applied to the motor terminals (the
6339+ default), or a position or velocity target for a :ref: `PID controller<actuator-dcmotor-controller> `.
63416340- Optional features include electrical dynamics (:ref: `inductance<actuator-dcmotor-inductance> `),
63426341 :ref: `cogging torque<actuator-dcmotor-cogging> `, :ref: `thermal resistance variation<actuator-dcmotor-thermal> `, and
63436342 :ref: `LuGre<actuator-dcmotor-lugre> ` friction.
@@ -6408,24 +6407,23 @@ This element has the following custom attributes in addition to the common attri
64086407.. _actuator-dcmotor-resistance :
64096408
64106409:at: `resistance `: :at-val: `real, optional `
6411- Terminal resistance :math: `R` in Ohm. (see `tech note <_static/dcmotor.pdf >`__ for details )
6410+ Terminal resistance :math: `R` in Ohm. (see `tech note <_static/dcmotor.pdf >`__, Sections 1.1 and 2.1 )
64126411
64136412.. _actuator-dcmotor-motorconst :
64146413
64156414:at: `motorconst `: :at-val: `real(2), optional `
64166415 Motor constants, defined as :at: `motorconst ` = ":at-val: `Kt ` :at-val: `Ke `" (N·m/A, equivalently V·s/rad).
64176416 :at-val: `Kt ` is the torque constant and :at-val: `Ke ` the back-EMF constant; they can differ when magnetic saturation
64186417 is present. If both are positive, the effective constant is :math: `K = \sqrt {K_t K_e}` (geometric mean). If only one
6419- is positive, :math: `K` equals that value; a single value is interpreted as :math: `K_t = K_e`. If your datasheet gives
6420- the speed constant :math: `K_v` in rad/(V·s), use :math: `K_e = 1 /K_v`. (see `tech note <_static/dcmotor.pdf >`__ for
6421- details)
6418+ is positive, :math: `K` equals that value. If a datasheet specifies the speed constant :math: `K_v` in rad/(V·s), use
6419+ :math: `K_e = 1 /K_v`. (see `tech note <_static/dcmotor.pdf >`__, Sections 1.1 and 2.1)
64226420
64236421.. _actuator-dcmotor-nominal :
64246422
64256423:at: `nominal `: :at-val: `real(3), optional `
64266424 Nominal operating point, defined as :at: `nominal ` = ":at-val: `voltage ` :at-val: `stall_torque `
64276425 :at-val: `no_load_speed `". The compiler derives :math: `K =` :at-val: `voltage ` / :at-val: `no_load_speed ` and :math: `R =
6428- K` · :at-val: `voltage ` / :at-val: `stall_torque `. (see `tech note <_static/dcmotor.pdf >`__ for details )
6426+ K` · :at-val: `voltage ` / :at-val: `stall_torque `. (see `tech note <_static/dcmotor.pdf >`__, Sections 1.1 and 2.1 )
64296427
64306428.. _actuator-dcmotor-inductance :
64316429
@@ -6434,7 +6432,7 @@ This element has the following custom attributes in addition to the common attri
64346432 alternative specifications: :at-val: `L ` is the winding inductance and :at-val: `timeconst ` :math: `= L/R` is the
64356433 electrical time constant. Specify one; if both are given, :at-val: `L ` takes precedence. If both are 0 (the default),
64366434 no electrical dynamics are modeled and the current is computed algebraically. Adds one activation variable for
6437- armature current. (see `tech note <_static/dcmotor.pdf >`__ for details )
6435+ armature current. (see `tech note <_static/dcmotor.pdf >`__, Sections 1.1.1 and 2.2 )
64386436
64396437.. _actuator-dcmotor-thermal :
64406438
@@ -6444,7 +6442,7 @@ This element has the following custom attributes in addition to the common attri
64446442 specify the thermal time constant: :at-val: `timeconst ` = :at-val: `resistance ` :math: `\times ` :at-val: `capacitance `.
64456443 Specify either :at-val: `timeconst ` directly, or :at-val: `resistance ` and :at-val: `capacitance `; if all three are
64466444 given, :at-val: `timeconst ` takes precedence. If all are 0 (the default), thermal modeling is disabled. Adds one
6447- activation variable for winding temperature. (see `tech note <_static/dcmotor.pdf >`__ for details )
6445+ activation variable for winding temperature. (see `tech note <_static/dcmotor.pdf >`__, Sections 1.3 and 2.3 )
64486446
64496447.. _actuator-dcmotor-saturation :
64506448
@@ -6455,15 +6453,15 @@ This element has the following custom attributes in addition to the common attri
64556453 given, :at-val: `torque ` takes precedence. Sets :at: `forcerange ` to [:math: `-\tau _{\max },\, \tau _{\max }`].
64566454 :at-val: `voltage ` sets the maximum voltage :math: `V_{\max }`. :at-val: `current_rate ` sets the maximum rate of change
64576455 of current :math: `(di/dt)_{\max }` (requires :ref: `inductance<actuator-dcmotor-inductance> `). A value of 0 (the
6458- default) for any sub-value disables the respective limit. (see `tech note <_static/dcmotor.pdf >`__ for details )
6456+ default) for any sub-value disables the respective limit. (see `tech note <_static/dcmotor.pdf >`__, Section 2 )
64596457
64606458.. _actuator-dcmotor-cogging :
64616459
64626460:at: `cogging `: :at-val: `real(3), "0 0 0" `
64636461 Cogging torque, defined as :at: `cogging ` = ":at-val: `amplitude ` :at-val: `poles ` :at-val: `phase `" (N·m, integer, rad).
64646462 Adds a position-dependent torque :math: `= \textsf {amplitude} \cdot \sin (\textsf {poles} \cdot \theta +
64656463 \textsf {phase})`. Disabled when :at-val: `amplitude ` = 0 (the default).
6466- (see `tech note <_static/dcmotor.pdf >`__ for details )
6464+ (see `tech note <_static/dcmotor.pdf >`__, Sections 1.2 and 2.1 )
64676465
64686466.. _actuator-dcmotor-lugre :
64696467
@@ -6473,28 +6471,28 @@ This element has the following custom attributes in addition to the common attri
64736471 :at-val: `stiffness ` = 0 (the default). Adds one activation variable for bristle deflection. Note that the
64746472 :at-val: `viscous ` coefficient is mapped directly to the actuator :ref: `damping<actuator-general-damping> ` array
64756473 (specifically the linear term, :at-val: `damping[0] `). If both are specified, their values are summed.
6476- (see `tech note <_static/dcmotor.pdf >`__ for details )
6474+ (see `tech note <_static/dcmotor.pdf >`__, Sections 1.4 and 2.4 )
64776475
64786476.. _actuator-dcmotor-input :
64796477
64806478:at: `input `: :at-val: `[voltage, position, velocity], "voltage" `
64816479 Specifies the input signal semantics. In "voltage" mode, the control directly sets applied motor voltage. In
6482- "position" or "velocity" modes, the PID :ref: `controller<actuator-dcmotor-controller> ` uses the control as a
6483- reference setpoint relative to the joint trajectory. (see `tech note <_static/dcmotor.pdf >`__ for details )
6480+ "position" or "velocity" modes, the :ref: `PID controller<actuator-dcmotor-controller> ` uses the control as a
6481+ reference setpoint relative to the joint trajectory. (see `tech note <_static/dcmotor.pdf >`__, Section 2.5 )
64846482
64856483.. _actuator-dcmotor-controller :
64866484
64876485:at: `controller `: :at-val: `real(5), "0 0 0 0 0" `
64886486 PID controller parameters, defined as :at: `controller ` = ":at-val: `kp ` :at-val: `ki ` :at-val: `kd `
64896487 :at-val: `slewmax ` :at-val: `Imax `". Depending on the :at: `input ` mode, the controller stabilizes either position or
6490- velocity. If the :at: `input ` mode is voltage, the controller is ignored. A value of 0 (the default) disables the
6488+ velocity. If the :at: `input ` mode is voltage, this attribute is ignored. A value of 0 (the default) disables the
64916489 respective feature: :at-val: `slewmax ` = 0 means no slew-rate limiting, :at-val: `Imax ` = 0 means no anti-windup
6492- clamping. (see `tech note <_static/dcmotor.pdf >`__ for details )
6490+ clamping. (see `tech note <_static/dcmotor.pdf >`__, Section 2.5 )
64936491
64946492.. _actuator-plugin :
64956493
64966494:el-prefix: `actuator/ ` |- | **plugin ** |? |
6497- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6495+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64986496
64996497Associate this actuator with an :ref: `engine plugin<exPlugin> `. Either :at: `plugin ` or :at: `instance ` are required.
65006498
0 commit comments