AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Motor Mfpcc Eso

skill-calebzu-pmsm-control-claude-skills-for-matlab-motor-mfpcc-eso · by calebzu

PMSM Model-Free Predictive Current Control + ESO Builder. Build an inner-loop model-free DEADBEAT predictive current controller in the stationary αβ frame — first-order ultralocal model (ẏ = F + α·u) with a linear Extended State Observer estimating the lumped disturbance F — modulated by SVPWM at fixed switching frequency, with an outer speed PI providing iq_ref, for a three-phase voltage-source-…

No reviews yet
0 installs
27 views
0.0% view→install

Install

$ agentstack add skill-calebzu-pmsm-control-claude-skills-for-matlab-motor-mfpcc-eso

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-calebzu-pmsm-control-claude-skills-for-matlab-motor-mfpcc-eso)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Motor Mfpcc Eso? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

motor-mfpcc-eso — PMSM Model-Free Deadbeat Predictive Current Control + ESO Builder

Three-phase 2-level voltage-source inverter + SPMSM. Inner loop = model-free deadbeat predictive current control in the stationary αβ frame: plant abstracted as the first-order ultralocal model di_s/dt = F + α·u_s, a linear ESO estimating current + lumped disturbance F (absorbs resistance, back-EMF, all parameter variation), and a closed-form deadbeat inversion with one-step delay compensation producing a continuous (uα, uβ) command that SVPWM modulates at fixed switching frequency. Outer loop = speed PI providing iq_ref; id_ref = 0. Only 2 tuned parameters: α and ω0 (via pole z12). Distilled from Y. Zhang, J. Jin, L. Huang, IEEE Trans. Ind. Electron. 68(2):993-1002, 2021 (DOI 10.1109/TIE.2020.2970660). Layered on [motor-pmsm-base](../motor-pmsm-base/SKILL.md); all base discipline applies (Visual 4-check, broken-FOC defense).

⚠ Method Identity (PINNED)

Deadbeat PCC + ESO + SVM = CONTINUOUS control set. NOT FCS-MPC. No vector enumeration, no cost function, no switching-state selection — voltage solved algebraically, handed to a modulator. Do NOT layer this on the motor-fcs-mpc family. Full evidence: formulas §D.

Formula Sources (single source of truth)

  • Method formulas: [pmsmformulas.md §G](../../../shared/formulas/pmsmformulas.md) — ultralocal model

(4)/(7), ESO (8)–(17), deadbeat (18)–(21), method identity, parameters. Plant by reference: [pmsmformulas.md §8](../../../shared/formulas/pmsmformulas.md) (αβ complex-vector SPMSM; Ld = Lq = Ls). ESO derivation + tuning rationale: [esoderivation.md](references/esoderivation.md).

Must-Follow Rules

  1. Plan first — numbered plan with parameter table and build-script structure. Get user approval.
  2. One-click reproducibility — all parameters injected via set_param(mdl,'InitFcn',...);

wref/TL profiles as From-Workspace inline expressions. See [buildsop.md](references/buildsop.md).

  1. Model-free boundary + literal params — the MFPCC_ESO chart uses ONLY `alpha, beta01,

beta02, Tsc (embedded as build-time numeric literals == InitFcn, asserted; bare workspace names do NOT resolve in charts). Rs/Ls/psif` inside the chart voids the method. See [chartcontract.md](references/chart_contract.md).

  1. Chart I/O contract is fixedMFPCC_ESO: 6 in `(ialpha, ibeta, thetae, omegae, iq_ref,

idref) → 6 out (ua, ub, iqmeas, idmeas, Fao, Fbo)`. See [chartcontract.md](references/chart_contract.md).

  1. Double-F warning — PMSM mask F = viscous friction B (plant); ESO state F = lumped

disturbance (controller). Same letter, unrelated quantities. Never cross-assign.

  1. Glue: inputs = six ZOH @ Tsc, output = Unit Delay @ Tsc (NOT ZOH) — the ua/ub Unit Delays

realize the 1-step delay that deadbeat eqs (20)/(21) compensate; a ZOH applies u(k) in the same cycle → horizon broken → divergence. Chart stays INHERITED. See [chartcontract.md](references/chartcontract.md) §3.

  1. ESO gains by closed form, asserted in buildomega0 = (1 − z12)/Tsc, beta01 = 2·omega0·Tsc,

beta02 = omega0²·Tsc. Default z12 = 0.15, alpha = 50. See [esoderivation.md](references/esoderivation.md) §3.

  1. All-discrete solver — model FixedStepDiscrete @ Ts + powergui Discrete @ Ts;

SpeedPI chart DISCRETE @ Tsc; re-commit both chart configs after wiring. See [buildsop.md](references/buildsop.md) §5.

  1. SVPWM workspace contract + sector-7 fix — the library SVPWM reads Tpwm and Vdc_val from

workspace; carrier is hardcoded for Tpwm = 1e-4; apply the MultiPortSwitch sector-7 startup fix on the local instance. See [buildsop.md](references/buildsop.md) §4.

  1. id bias grows ∝ ωe² — expected physics, not a bug — do not "fix" it during acceptance; check

it stays inside the documented envelope. See [knownlimitations.md](references/knownlimitations.md) #1.

Build Flow

| Phase | Action | Reference | |---|---|---| | 0 | Validate inputs + sanity grid | base/[prebuildgrid.md](../motor-pmsm-base/references/prebuildgrid.md) | | 1 | Plant layer (powergui Discrete, DC, UB, PMSM, TL inline-FW, BusSelector) + measurement (Clark abc→αβ, Gain_Pn ×2 for θe/ωe) | [buildsop.md](references/buildsop.md) §2-§3 | | 2 | Outer SpeedPI chart (PI + anti-windup clamp ±iqmax) | [chartcontract.md](references/chartcontract.md) §2 | | 3 | MFPCC_ESO chart (two-channel ESO + deadbeat + delay comp) | [chartcontract.md](references/chartcontract.md) §1 | | 4 | Glue: 6 input ZOH @ Tsc + 2 output Unit Delay @ Tsc | [chartcontract.md](references/chartcontract.md) §3 | | 5 | Modulation (SVPWM library + sector-7 fix) → UB gate | [buildsop.md](references/buildsop.md) §4 | | 6 | Loggers (10 To Workspace) + Scope; solver + InitFcn + chart re-commit guard | [buildsop.md](references/buildsop.md) §5-§6 | | 7 | Acceptance (Layer 1 physics + Layer 2 metrics) | [acceptancecriteria.md](references/acceptance_criteria.md) |

Required User Inputs

Ask the user before starting. Validation-case defaults in [buildsop.md](references/buildsop.md) §7.

| Group | Parameters | |---|---| | Machine (7) | Rs, Ls (= Ld = Lq, SPMSM), psi_f, Pn, J, B (→ PMSM mask F), Vdc | | Control (5) | alpha (default 50), z12 (default 0.15), iq_max, Kp_w, Ki_w | | Sampling (3) | Ts (plant, default 1e-6), Tsc = Tpwm (control = switching, default 1e-4) | | Scenario (5) | wref_rpm, ramp_t, TL_val, TL_t, StopTime |

Triggers / Skip

| ✅ Use | ❌ Skip | |---|---| | Build / port / extend MFPCC-ESO (ultralocal + ESO + deadbeat + SVM) in Simulink | FCS-MPC single/dual/three-vector → motor-fcs-mpc family | | Model-free / parameter-free current loop with fixed switching frequency | FOC PI loops, DTC, SMC, sensorless, scalar V/Hz, BLDC | | Generalizing MFPCC-ESO to a new SPMSM parameter set | IPMSM saliency, MTPA, weak-field; IM predictive control; pure theory |

Generalization Across Machine Sub-Types

| Sub-type | Constraint | Verdict | |---|---|---| | SPMSM | Ld = Lq = Ls | ✅ supported; id_ref = 0 | | IPMSM (any saliency) | Ld ≠ Lq | ❌ out of scope — saliency introduces 2θe coupling that breaks the αβ ultralocal premise (pmsm_formulas §8) | | any SPMSM param set | — | topology unchanged (same blocks/wiring/charts); alpha/z12 defaults transfer (parameter-free law) |

Sibling Skills

  • [motor-pmsm-base](../motor-pmsm-base/SKILL.md) — base infrastructure; [motor-smc-pmsm](../motor-smc-pmsm/SKILL.md) — closest architecture (outer + inner loop + SVPWM + UB)
  • [motor-fcs-mpc](../motor-fcs-mpc/SKILL.md) / dualvector / trivector — FCS-MPC family (different identity: finite set); [motor-dtc-pmsm](../motor-dtc-pmsm/SKILL.md) — DTC

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.