Super-Twisting Gain Design: How L Was Estimated and the Procedure Gains Computed

A worked design note. This is an aside for the design board. It presents the gain condition as a sufficient bound (Option A); this note records how the procedure-derived gains were obtained, in case the design is revisited.

Why this is an aside. The procedure below produces gains roughly one to two orders of magnitude larger than the working gains \((\beta=1.5\times10^{10},\ \alpha=5.5\times10^5)\). That gap is expected: the condition is sufficient, not necessary, so smaller gains can still converge. The paper keeps the working gains and frames the condition as a conservative safe envelope. This note simply shows the arithmetic behind the larger numbers.

1. What L actually is

In the super-twisting analysis the perturbation entering the sliding-variable dynamics is \(\delta_i(\mathbf{x},t)\), the residual left after the equivalent control cancels the nominal drift. The theorem does not bound \(\delta\) itself; it bounds its rate of change,

$$ |\dot{\delta}_i(\mathbf{x},t)| \;\le\; L_i . $$

So \(L\) is the Lipschitz constant of the perturbation — a ceiling on how fast the mismatch can move. The integral gain \(\beta\) must be large enough for the STA integrator to track a disturbance changing at rate up to \(L\). This is why the gain condition depends on \(L\) and not on the size of \(\delta\).

2. Identifying \(\delta\) for the inverter

In the parameter-mistune scenario the controller believes \(R_f\) is 50% too large. The resistance enters the drift vector \(a(\mathbf{x})\) through the term \(\tfrac{1}{L_fC_f}(-R_f\,i)\). With a wrong belief \(R_{f,\mathrm{bel}}=1.5\,R_f\), the equivalent control fails to cancel a residual

$$ \delta \;\approx\; \frac{1}{L_fC_f}\,\big(R_{f,\mathrm{bel}}-R_f\big)\,i \;=\; \frac{\Delta R_f}{L_fC_f}\,i,\qquad \Delta R_f = 0.5\,R_f . $$

The mismatch is therefore proportional to the axis current \(i(t)\). Everything else in \(a(\mathbf{x})\) is cancelled correctly, so this resistance term is the dominant residual.

3. The estimation procedure, step by step

Step 1 — form \(\delta(t)\)

Take the realized current \(i(t)\) from an actual simulation run and build the residual time series using the coefficient above:

dRf   = 0.5 * Rf
delta_d = (1/(Lf*Cf)) * dRf * id(t)
delta_q = (1/(Lf*Cf)) * dRf * iq(t)
Step 2 — differentiate

\(L\) bounds \(\dot\delta\), so take the numerical time derivative of the residual:

ddelta_d = gradient(delta_d, t)
ddelta_q = gradient(delta_q, t)
Step 3 — bound it

\(L\) is the maximum absolute rate over the regime of interest:

L = max( |ddelta_d| , |ddelta_q| )   over the chosen window
The catch that drives everything. The answer depends entirely on which window you maximize over. At the step instant the current jumps, so \(\dot\delta\) spikes. Once the operating point is fixed, \(\delta\) becomes a bounded constant and \(\dot\delta\to 0\). These two regimes differ by about two orders of magnitude, which is the whole reason the procedure gains and the working gains disagree.

4. The two values of L

RegimeWhat it captures\(L\) (1/s scale)
Steady-state (post-transient)Fixed operating point; \(\delta\) nearly constant6.5 × 105
Transient (at the step)Worst-case rate at the disturbance instant5.8 × 107

Your own STA section argues that at a fixed operating point the inverter mismatch is a bounded constant — that is the steady-state row, the \(L\to 0\) favorable case where any positive gains formally suffice. The transient row is the conservative worst case.

5. Running the procedure

The design procedure, with the typical constants from the paper \((c_\sigma=1.5,\ c_\beta=2.4,\ c_\alpha=4.5)\):

$$ \sigma = c_\sigma L,\qquad \beta = c_\beta\,c_\sigma^{2}L^{2},\qquad \alpha = c_\alpha\sqrt{\beta}. $$

Using steady-state \(L = 6.5\times10^5\)

GainProcedureWorkingRatio
\(\beta\)2.3 × 10121.5 × 1010≈ 150×
\(\alpha\)6.8 × 1065.5 × 105≈ 12×

Using transient \(L = 5.8\times10^7\)

GainProcedureWorkingRatio
\(\beta\)1.8 × 10161.5 × 1010≈ 106×
\(\alpha\)6.1 × 1085.5 × 105≈ 103×
Both procedure outputs satisfy \(\alpha>4\sqrt{\beta}\), so they are internally valid STA gains. They are simply far more conservative than necessary — the price of a sufficient condition.

6. If you ever go the procedure way (Option B)

To make the gains literally come from the procedure, you would:

1. Commit to one \(L\). The defensible choice is the steady-state operating-point value, consistent with the bounded-constant argument already in the paper.

2. Accept the larger gains the procedure returns from that \(L\).

3. Re-run the full simulation with those gains and verify behavior — larger STA gains raise control effort and can increase steady ripple, so the chattering and peak-control results would need re-checking.

4. Report the chosen \(c_\sigma, c_\beta, c_\alpha\) and the resulting \((\alpha,\beta)\) as the designed pair.

Recommendation on the shelf. Option A remains preferable: keep the working gains, present the condition as a sufficient design-oriented bound, show this \(L\)-estimation method so a reader can size their own plant, and note that the working gains lie within the sufficient region. That framing survives a reviewer who understands the sufficient-versus-necessary gap — and it costs no re-run.

Worked design note. Numbers reproduced from the Python port of the inverter simulation. Aside only — not part of the manuscript.