1 \section{The envelope-following method in a nutshell}
4 In transient analysis\index{transient analysis},
5 a nonlinear circuit's behavior can be represented
6 by a coupled set of nonlinear first-order
7 differential algebraic equations\index{differential algebraic equations}
9 \begin{equation}\label{eq:dae}
10 \frac{\ud}{\ud t} q(x(t)) + f(x(t)) = b(t),
12 where $x(t)\in \mathbb{R}^N$ is the vector of circuit variables,
13 usually comprising node voltages and possibly branch currents,
14 $f(\cdot)$ is a nonlinear function that maps $x(t)$ to a vector
15 of $N$ entries most of
16 which are sums of resistive currents at a node,
17 $q(\cdot)$ %is also a nonlinear function that
18 maps $x(t)$ to a vector of $N$ entries of
19 capacitor charges or inductor fluxes,
20 and $b(t)$ contains the input source values.
21 For many power electronics circuits, the input
22 switching signal is known %as a circuit parameter
23 and is periodic with clock period $T$.
25 Assume the time inside one period $T$ has been discretised
26 into $M$ time steps, $0=t_0 < t_1 < t_2 < \cdots < t_M=T$, and the
27 $i$-th step length is $h_i = t_i-t_{i-1}$.
28 In practice, the discretisation is nonuniform to
29 control truncation error\index{truncation error} and convergence.
30 Then, given an initial condition $x(0)$ at $t=0$,
31 numerical integration is applied to find the time domain solution of
32 circuit state $x(t)$ at each time step till $t=T$.
33 %, in a consequent time series.
35 For those circuits whose carrier waveforms\index{carrier waveforms}
36 vary slowly in a large number of periods,
37 the envelope-following\index{envelope-following} method only integrates the
38 DAE in several selected periods and then jumps over to a new time point.
39 By repeating this ``simulate and skip'' action,
40 envelope-following method attains its efficiency
41 compared to conventional transient analysis, but still can accurately
42 obtain the slow varying envelope.
44 For example, if the clock period is $T$, and the suitable jump
45 interval for the envelope is $k$ periods, then the envelope step is
46 $kT$. Suppose the state at time $t=mT$ is known as $x(mT)$, and the
47 envelope-following wants to obtain the state at the next envelope
48 step, $x((m+k)T)$. If the envelope step is much larger than the clock
49 period ($k$ is much bigger than one), envelope-following will lead to
50 significant savings in simulation time.
52 % One simple way to estimate $x((m+k)T)$ is to use the information at
53 % $mT$ and $(m-1)T$, which leads to the forward-Euler method as
54 To estimate $x((m+k)T)$,
55 a forward Euler\index{Euler!forward Euler} style jumping relies only on $x(mT)$ and $x((m-1)T)$,
60 x(mT) + k\left[ x(mT)-x((m-1)T) \right].
62 However, this approach is inefficient due to its restriction on
63 envelope step $k$, since larger $k$ usually causes instability.
64 Instead, backward Euler\index{Euler!backward Euler} jumping,
65 %and the equation becomes
67 x((m+k)T)-x(mT) = k\left[x((m+k)T)-x((m+k-1)T)\right],
69 allows larger envelope steps.
70 Here $x((m+k-1)T)$ is the unknown variable to be solved
71 by Newton iteration\index{iterative method!Newton iteration},
72 and $x((m+k)T)$ is dependent on $x((m+k-1)T)$
74 % Forward-Euler may be used to generate the initial guess.
75 The Newton update equation in each iteration is thus expressed as
76 % x^{j+1}((m+k-1)T) = x^{j}((m+k-1)T) - A^{-1} \left[(k-1)x^j((m+k)T) - kx^j((m+k-1)T)+ x(mT)\right],
77 %\begin{equation} \label{eq:Newton}
79 \begin{multline} \label{eq:Newton}
80 \Delta x((m+k-1)T)= A^{-1} \left[(k-1)x^j((m+k)T) \right. \\
81 \left. - kx^j((m+k-1)T)+ x(mT)\right],
85 where the Jacobian matrix\index{Jacobian matrix} $A$ is computed as
86 a combination of circuit sensitivity matrix\index{sensitivity matrix}
87 and identity matrix, as
88 \begin{equation} \label{eq:A}
89 A = (k-1)\frac{\ud x((m+k)T)}{\ud x((m+k-1)T)} -kI
92 In each Newton iteration,
93 $x((m+k-1)T)$ is used as initial condition to calculate
94 $x((m+k)T)$ by integrating the DAE in one clock period.
95 Meanwhile, %circuit matrices, for example,
96 the conductance matrix $G_i=\ud f(x(t_i))/\ud x(t_i)$
97 and the capacitance matrix $C_i=\ud q(x(t_i))/\ud x(t_i)$
98 at each time step %in this period,
99 are used to derive the %circuit
100 sensitivity matrix $J= \ud x((m+k)T) / \ud x((m+k-1)T)$.
103 % x((m+k)T) = \Phi(x((m+k-1)T),(m+k-1)T,(m+k)T).
106 Different integration rules can be applied to
107 the computation of sensitivity matrix.
108 It can be easily derived that,
109 %for one signal period with $M$ time steps,
110 if the DAE is integrated with backward Euler rule,
113 J = \frac{\ud x_M}{\ud x_0}
115 \left( \frac{1}{h_i} C_i + G_i \right)^{-1}
117 % \frac{\ud x_n}{\ud x_0}
118 % = \left(\frac{1}{h_n} C_n + G_n\right)^{-1}
119 % \frac{1}{h_n}C_{n-1} \frac{\ud x_{n-1}}{\ud x_0}
121 %is the sensitivity matrix
122 % In the next section, we will formulate the sensitivity in
124 % and for trapezoidal integration,
126 % \frac{\ud x_n}{\ud x_0}
127 % = \left(\frac{1}{h_n} C_n + \frac{1}{2} G_n\right)^{-1}
128 % \left(\frac{1}{h_n} C_{n-1} - \frac{1}{2} G_{n-1}\right)
129 % \frac{\ud x_{n-1}}{\ud x_0}.
132 In summary, the envelope-following method is fundamentally
133 a boosted version of traditional transient analysis,
134 with certain skips over several periods and a Newton iteration
135 to update or correct the errors brought by the skips,
136 as is exhibited by Fig.~\ref{fig:ef_flow}.
139 \resizebox{.7\textwidth}{!}{\input{./Chapters/chapter16/figures/ef_flow.pdf_t}}
140 \caption{The flow of envelope-following method.}