D-axis excitation
This subsystem enables d-axis current control for other-than flux weakening purposes. Specifically, MTPA (Maximum Torque Per Ampere) is implemented.
- The following variables are located in the
/driver/dacfolder. - This page is related to the VECTOR algorithm only.
The MTPA, using the motor parameters, is trying to find the best value of the D-axis current to maximize the shaft torque for the given total stator current. This algorithm is suited usually for the IPM motors. The algorithm has to work with many constraints depicted below:

The optimal d-axis current depends on the difference between the d- and q-axis inductances. In a real motor this difference is not constant: it shrinks as the stator current rises (magnetic saturation), and the magnet flux also changes slightly with temperature. The controller computes the MTPA from the identified psi, Ld and Lq, and dxc bounds it at the rated current, where saturation moves the optimum the most - so set dxc to the motor's MTPA d-axis current at rated current. mtk sets how quickly the current follows. The saturation parameters Da and Dc do not shift the MTPA; they refine the estimates. Where the computed trajectory does not match the motor - typically a strongly saturating one - the MTPA can be taken from a table (mtt, optional).
For the practical procedure of using these parameters to smooth a torque step around the high-speed transition on a real IPM motor, see the Driving an IPM motor guide.
The saturation (derating) model has been reworked:
- Identified
Da/Dccan be used as-is. On older drivers the identified values derated too strongly, and a common workaround was to keep them at 0. This workaround is no longer needed. Dcis significant on motors whose d- and q-axis flux share iron: surface-magnet (SPM) and synchronous reluctance (SynRM) motors. Interior-magnet motors (IPM) identifyDc≈ 0, which is correct for these machines. Always identifyDcrather than hand-tune it.
The result is more accurate torque estimates and torque-mode scales when Da/Dc are set - with an identified Dc also under load: the torque per ampere droops at high current, and field weakening raises the q-axis inductance. The MTPA does not depend on them. Configurations with Da = Dc = 0 (the previous common practice) behave exactly as before.
Parameters
dxc [.iref]
This parameter limits the maximum d-axis current for the other-than flux weakening purposes <0:disable>
Previously, this parameter was named
mtpa.
dxc is now the d-axis current limit, and the full MTPA trajectory is applied within that limit. If your PMSM was tuned with dxc < 1 on an older driver, expect a behavior change - re-verify the tuning. Set dxc to the motor's MTPA d-axis current at rated current, as a fraction of iref (negative on a SynRM, whose MTPA magnetizes): it bounds the MTPA at high load, where saturation moves the optimum, and it sets the rated point of the torque modes, unlocking their full low-speed torque. A generous dxc can make the MTPA inject more d-axis current than optimal at high load on strongly saturating motors.
mtk [-]
The MTPA feedback gain. The higher the value, the faster is the MTPA algorithm convergence. The lower the value, the smoother the response and lower the risks of oscillations. <0:direct map>
It sets how quickly the d-axis current follows the MTPA value - computed from psi, Ld and Lq, or taken from the MTPA table.
Special value: 0 - disables the MTPA algorithm (the MTPA table is not used either) and forces
dxc*irefcurrent as the D-axis current reference.
(ESCx 5.0 and above) A negative mtk selects a faster-reacting MTPA variant. It works only in the current control modes and may be problematic within saturation. Please contact siliXcon for further advice.
On an ACIM (negative psi) the d-axis current is the excitation, so mtk selects the excitation strategy:
mtk= 0: constant excitationdxc*iref, the standard choice. Full torque is available at once and the slip law is exact.mtk≠ 0: the excitation follows the load current, the classic loss-minimising strategy for drives that run long hours at partial load (pumps, fans, compressors, conveyors, cruising traction). Losses drop noticeably at light load; the price is a torque response after idling delayed by the rotor time constant, and a reduced torque margin at high speed. Use it only where efficiency at light load matters more than response. See the ACIM guide.
mtt [.iref]
Optional - present only in firmware that includes the MTPA table. Ask siliXcon for such a firmware.
The MTPA table: the d-axis current, as a fraction of iref, at eleven evenly spaced q-axis currents from zero to iref (0, 0.1 × iref, … iref). When the table is present, the MTPA takes its d-axis current from it instead of computing it from psi, Ld and Lq. Between the points the value is interpolated; above iref the last segment is extended.
The table sets the MTPA trajectory itself, for motors where the computed one falls short. Neither way depends on the saturation parameters Da, Dc (and Dq): they only affect the estimates - the torque estimate torquef, the torque-mode scale, the speed ceilings and the voltage-mode field weakening. A more accurate model improves the estimates, but does not move the operating point.
- Fill it from the motor manufacturer's MTPA points or from a dyno sweep - for each q-axis current, the d-axis current that gives the most torque.
- Negative values demagnetize (PMSM, IPM), positive values magnetize (SynRM). The first entry is the d-axis current at no load: 0 for a plain MTPA, or a standing excitation.
dxcstill limits the magnitude andmtkstill sets the response.- The table is tied to
iref: re-generate it after changingiref. - An all-zero table injects no MTPA current.
| Motor | MTPA source |
|---|---|
| SPM | Usually not needed. Where identlin reports Lq clearly above Ld (saturated teeth), the computed MTPA adds torque at high load - set dxc as for an IPM. |
| IPM | The computed MTPA, with dxc at the rated MTPA d-fraction, is close to the optimum on most motors. Use the table on strongly saturating motors, or to follow the manufacturer's MTPA exactly. |
| SynRM | The table is the way to set its MTPA - the computed MTPA does not reach the optimum of a motor without a magnet. |
| ACIM | Not used: the d-axis current is the excitation (see the induction machines note above). |
States (only esc5)
idref_dx [A]
The calculated d-axis excitation current reference.
torquef [Nm] (driver 6+)
Filtered estimate of the actual shaft torque, continuously maintained by the driver. Its accuracy depends on the motor parameters (Da, Dc, Dq), also when the MTPA table is used.