motor-dtc-pmsmlisted
Install: claude install-skill calebzu/pmsm-control-claude-skills-for-matlab
# motor-dtc-pmsm — PMSM Direct Torque Control Builder
Three-phase 2-level voltage-source inverter + PMSM (SPMSM / IPMSM via parameterization). Outer-loop = Speed PI providing `Te_ref`. Inner-loop = **Direct Torque Control** in αβ stationary frame: stator flux integrator + magnitude/angle/sector + 2-level hysteresis on (T, ψ) + Sutikno 6-state switching table → V_k → gate.
Layered on [motor-pmsm-base](../motor-pmsm-base/SKILL.md). All base discipline applies.
## Must-Follow Rules
1. **Plan first** — Numbered plan with 21 input table, design-decision choices ([design_decisions.md](references/design_decisions.md)), build-script structure. Get user approval.
2. **One-click reproducibility** — All parameters injected via `set_param(mdl, 'InitFcn', ...)`. Model must Run from `.slx` double-click in fresh MATLAB session. See [crit_conditions.md §E-CRIT](references/crit_conditions.md).
3. **Default 6-state switching table for PMSM** — `switching_table_mode='6state'` (Sutikno 2011 Table 2). Never default to 8-state Takahashi for PMSM — V0/V7 zero vectors cause flux to decay. See [switching_table.md](references/switching_table.md) and [crit_conditions.md §A-CRIT](references/crit_conditions.md).
4. **`ψ_ref ≠ ψ_f` by default** — Take `psi_ref` from reference if supplied; else compute the id=0 load-point stator flux `|ψ_s|_load = sqrt(ψ_f² + (Lq·iq_max)²)` (not true MTPA, which needs id<0). Never default `ψ_ref = ψ_f` for IPMSM. See [crit_conditions.md §B-CRIT](references/crit_conditi