]> AND Private Git Repository - book_gpu.git/blob - BookGPU/Chapters/chapter16/ef.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
b0967a93f751da1e3af2fad6661bec783b57d0d4
[book_gpu.git] / BookGPU / Chapters / chapter16 / ef.tex
1 \section{The envelope-following method in a nutshell}
2 \label{sec:ef}
3
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}
8 (DAE) of the form
9 \begin{equation}\label{eq:dae}
10    \frac{\ud}{\ud t} q(x(t)) + f(x(t)) = b(t),
11 \end{equation}
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$.
24
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.
34
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.
43
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.
51
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{forward-Euler} style jumping relies only on $x(mT)$ and $x((m-1)T)$,
56 i.e.,
57 \[
58    x((m+k)T)
59    =
60    x(mT) + k\left[ x(mT)-x((m-1)T) \right].
61 \]
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{backward-Euler} jumping,
65 %and the equation becomes
66 \[
67   x((m+k)T)-x(mT) = k\left[x((m+k)T)-x((m+k-1)T)\right],
68 \]
69 allows larger envelope steps.
70 Here $x((m+k-1)T)$ is the unknown variable to be solved
71 by Newton iteration\index{Newton iteration},
72 and $x((m+k)T)$ is dependent on $x((m+k-1)T)$
73 in each iteration.
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}
78 %\begin{split}
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],
82 \end{multline}
83 %\end{split}
84 %\end{equation}
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
90     = (k-1)J-kI.
91 \end{equation}
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)$.
101 % i.e.,
102 % \[
103 %   x((m+k)T) = \Phi(x((m+k-1)T),(m+k-1)T,(m+k)T).
104 % \]
105
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,
111 the sensitivity is
112 \[
113    J = \frac{\ud x_M}{\ud x_0}
114    = \prod_{i=1}^{M}
115      \left( \frac{1}{h_i} C_i + G_i \right)^{-1}
116      \frac{1}{h_i}C_{i-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}
120 \]
121 %is the sensitivity matrix
122 % In the next section, we will formulate the sensitivity in
123 % Gear-2 scheme.
124 % and for trapezoidal integration,
125 % \[
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}.
130 % \]
131
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}.
137 \begin{figure}[!tb]
138 \centering
139 \resizebox{.7\textwidth}{!}{\input{./Chapters/chapter16/figures/ef_flow.pdf_t}}
140 \caption{The flow of envelope-following method.}
141 \label{fig:ef_flow}
142 %\end{center}
143 \end{figure}
144
145
146