Install
$ agentstack add skill-calebzu-pmsm-control-claude-skills-for-matlab-motor-pmsm-base ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
motor-pmsm-base — PMSM Simulation Modeling Base
Reusable plant + frame conventions + building blocks + sanity-check templates + broken-FOC defense + visual review standards for three-phase voltage-source-inverter-driven PMSM (SPMSM / IPMSM via parameterization). Method-specific control laws (FOC / FCS-MPC / DTC / SMC / sensorless / observer / MTPA / weak-field) layer on top of this base.
Must-Follow Rules
- Use
shared/*assets, do not duplicate.shared/formulas/pmsm_formulas.mdhas signed-off plant equations and control law derivations.shared/building_blocks/provides verified atomic blocks. Reference them by path; do not re-derive or copy content. - Run pre-build sanity grid before any build. See [references/prebuildgrid.md](references/prebuildgrid.md). Fail-fast when Vdc/BEMF tight, Goto TagVisibility default-local, FF dimensional incorrect, or sector=7 startup unhandled.
- Visual 4-check before trusting numerical metrics: motor rotates / iq tracks reference / abc AC sinusoidal / Te energy balance. If any check fails, fix the implementation before computing 5-metric scores.
- Layout gate after build (MANDATORY, not advisory — prevents silent skip):
block_overlaps==0is a HARD self-test (T7; build fails otherwise) + a mandatory human screenshot sign-off (same human-in-loop model as the Visual 4-check). Line-line crossings and line-through-block hits are SOFT (reported, NEVER numeric-gated): non-planar signal graphs (K3,3/K5) cannot reach zero crossings on a 2-D plane (Kuratowski), so reach zero only by restructuring (Subsystem encapsulation / Goto/From), never by hard-gating a count. See [references/measurementlogger.md](references/measurementlogger.md). - One-click reproducibility: model must Run from
.slxdouble-click without prior script execution. Inject all parameters viaset_param(mdl, 'InitFcn', ...). - Don't guess conventions. dq is amplitude-invariant (factor 2/3); AntiPark's internal
From "The"requiresGoto_The TagVisibility='global'. See [references/plantmodeling.md](references/plantmodeling.md) and [references/buildingblocks.md](references/building_blocks.md). - PMSM block
RefAnglemust be'Aligned with phase A axis (original Park)'. R2024bsps_libdefault is'90 degrees behind phase A axis (modified Park)', which rotates the plant dq frame 90° relative to the chart Park convention — a silent failure mode (motor drifts to wrong operating point, abc non-clean sinusoidal,idlarge drift,iqcannot trackiq_ref). Either copy PMSM fromshared/building_blocks/pmsm_blocks.slx(pre-set), orset_param([mdl '/PMSM'], 'RefAngle', 'Aligned with phase A axis (original Park)'). DTC αβ-frame methods exempt. See [references/brokenfocdiagnostics.md](references/brokenfocdiagnostics.md) F-CRIT 6.
Build Flow
| Phase | Action | Reference | |---|---|---| | 0 | Validate params + sanity grid | [prebuildgrid.md](references/prebuildgrid.md) | | 1 | Theory anchor (sign or AI-self-audit formulas) | [theoryanchor.md](references/theoryanchor.md) | | 2 | PMSM plant + InitFcn injection | [plantmodeling.md](references/plantmodeling.md) | | 3 | Building blocks (Park / Clarke / AntiPark / SVPWM) | [buildingblocks.md](references/buildingblocks.md) | | 4 | Control loop | method-specific skill | | 5 | Modulation (FOC-based methods only; DTC skips) | [buildingblocks.md](references/buildingblocks.md) | | 6 | Measurement + Logger | [measurementlogger.md](references/measurementlogger.md) | | 7 | Sanity check + Visual 4-check | [sanityvisual.md](references/sanityvisual.md) | | 8 | Solver + layout gate (T7 zero-overlap + screenshot sign-off) + save | [measurementlogger.md](references/measurementlogger.md) | | 9 | Idempotent self-tests | [measurementlogger.md](references/measurement_logger.md) |
If broken-FOC symptoms appear (motor stuck, abc DC-locked, iq permanently bang-bang), jump to [brokenfocdiagnostics.md](references/brokenfocdiagnostics.md).
When to Use
| ✅ Use this skill | ❌ Skip | |---|---| | Starting a new PMSM control method study (sensorless, DTC-SVM, MP-DTC, deadbeat, MTPA, weak-field) | Non-PMSM motors (induction / BLDC trapezoidal / SRM / DC) | | Designing your build script (conventionally named build_template.m) for a PMSM method | Pure theory questions (dq frame, Park transform math) | | Broken-FOC debugging (motor stalled, abc DC-locked, iq saturated) | Method already covered by motor-fcs-mpc / motor-dtc-pmsm / motor-smc-pmsm (use the specific skill) | | Need Phase 1.5 theory-anchor or Phase 4.5 sanity-check templates | MATLAB performance tuning (use matlab-performance-optimizer) or unit tests (use matlab-test-creator) |
Known Limitations
- PMSM only (SPMSM / IPMSM). Induction motor / BLDC trapezoidal / SRM / DC are different plants.
- dq amplitude-invariant convention. Power-invariant requires extension.
- Three-phase 2-level VSI. Multilevel inverter / matrix converter out of scope.
- Nominal parameters. No robust / adaptive / online parameter ID.
- Ideal sensors. No encoder quantization or current sampling delay.
- No fault tolerance, no multi-motor coordination.
Method-specific Skills (Layered on This Base)
| Skill | Method | |---|---| | [motor-fcs-mpc](../motor-fcs-mpc/SKILL.md) | Single-vector finite-control-set MPC current control | | [motor-dtc-pmsm](../motor-dtc-pmsm/SKILL.md) | Direct Torque Control with hysteresis switching table (Takahashi / Sutikno 6-state) | | [motor-smc-pmsm](../motor-smc-pmsm/SKILL.md) | Sliding Mode Control speed-loop (PD-type sliding + super-twisting) |
External References
- Krause, Wasynczuk, Sudhoff (2013). Analysis of Electric Machinery and Drive Systems — PMSM dq modeling reference.
- Bose (2002). Modern Power Electronics and AC Drives — VSI + SVPWM reference.
- Slotine, Li (1991). Applied Nonlinear Control — Lyapunov-based design reference.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: calebzu
- Source: calebzu/pmsm-control-claude-skills-for-matlab
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.