motor-mfpcc-eso — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited motor-mfpcc-eso (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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; all base discipline applies (Visual 4-check, broken-FOC defense).
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.
(4)/(7), ESO (8)–(17), deadbeat (18)–(21), method identity, parameters. Plant by reference: pmsm_formulas.md §8 (αβ complex-vector SPMSM; Ld = Lq = Ls). ESO derivation + tuning rationale: eso_derivation.md.
set_param(mdl,'InitFcn',...);wref/TL profiles as From-Workspace inline expressions. See build_sop.md.
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/psi_f` inside the chart voids the method. See chart_contract.md.
MFPCC_ESO: 6 in `(ialpha, ibeta, theta_e, omega_e, iq_ref,id_ref) → 6 out (ua, ub, iq_meas, id_meas, Fa_o, Fb_o)`. See chart_contract.md.
F = viscous friction B (plant); ESO state F = lumpeddisturbance (controller). Same letter, unrelated quantities. Never cross-assign.
ua/ub Unit Delaysrealize 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 chart_contract.md §3.
omega0 = (1 − z12)/Tsc, beta01 = 2·omega0·Tsc,beta02 = omega0²·Tsc. Default z12 = 0.15, alpha = 50. See eso_derivation.md §3.
FixedStepDiscrete @ Ts + powergui Discrete @ Ts;SpeedPI chart DISCRETE @ Tsc; re-commit both chart configs after wiring. See build_sop.md §5.
Tpwm and Vdc_val fromworkspace; carrier is hardcoded for Tpwm = 1e-4; apply the MultiPortSwitch sector-7 startup fix on the local instance. See build_sop.md §4.
it stays inside the documented envelope. See known_limitations.md #1.
| Phase | Action | Reference |
|---|---|---|
| 0 | Validate inputs + sanity grid | base/pre_build_grid.md |
| 1 | Plant layer (powergui Discrete, DC, UB, PMSM, TL inline-FW, BusSelector) + measurement (Clark abc→αβ, Gain_Pn ×2 for θe/ωe) | build_sop.md §2-§3 |
| 2 | Outer SpeedPI chart (PI + anti-windup clamp ±iq_max) | chart_contract.md §2 |
| 3 | MFPCC_ESO chart (two-channel ESO + deadbeat + delay comp) | chart_contract.md §1 |
| 4 | Glue: 6 input ZOH @ Tsc + 2 output Unit Delay @ Tsc | chart_contract.md §3 |
| 5 | Modulation (SVPWM library + sector-7 fix) → UB gate | build_sop.md §4 |
| 6 | Loggers (10 To Workspace) + Scope; solver + InitFcn + chart re-commit guard | build_sop.md §5-§6 |
| 7 | Acceptance (Layer 1 physics + Layer 2 metrics) | acceptance_criteria.md |
Ask the user before starting. Validation-case defaults in build_sop.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 |
| ✅ 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 |
| 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) |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.