Steady-State Analysis

Many specifications of a power electronic system are often given in terms of steady-state characteristics. A straight-forward way to obtain the steady-state operating point of a system is to simulate over a sufficiently long time-span until all transients have faded out. The drawback of this brute-force approach is that it can be very time consuming. Usually a system has time constants that are much longer than the switching period. This applies in particular to electro-thermal models.

Algorithm

The steady-state analysis of a periodic system is based on a quasi-Newton method with Broyden’s update. In this approach the problem is formulated as finding the roots of the function

\[\mathbf{f}(\mathbf{x}) = \mathbf{x} - \mathbf{F}_T(\mathbf{x})\]

where \(\mathbf{x}\) is an initial vector of state variables and \(\mathbf{F}_T(\mathbf{x})\) is the final vector of state variables one period \(T\) later.

Evaluating \(\mathbf{f}(\mathbf{x})\) or \(\mathbf{F}_T(\mathbf{x})\) therefore involves running a simulation from \(t_{\mathrm{start}}\) to \(t_{\mathrm{start}}+T\). The period, \(T\), must be the least common multiple of the periods of all sources (signal or electrical) in the model.

The above problem can be solved iteratively using

\[\mathbf{x}_{k+1} = \mathbf{x}_k - \mathbf{J}_k^{-1} \cdot \mathbf{f}(\mathbf{x}_k) \quad\quad , \quad\quad \mathbf{J}_k = \left.\frac{\partial\mathbf{f}(\mathbf{x})}{\partial\mathbf{x}}\right|_{\mathbf{x}_k}\]

The Jacobian \(\mathbf{J}\) is calculated numerically using finite differences. If \(n\) is the number of state variables, calculating the Jacobian requires \(n+1\) simulation runs where each state variable in turn is slightly perturbed and the difference between the perturbed and unperturbed solution is computed to obtain one column of \(\mathbf{J}\):

\[\mathbf{j}_i = \frac{\mathbf{f}(\mathbf{x}+\mathbf{\Delta x}_i) - \mathbf{f}(\mathbf{x})}{|\mathbf{\Delta x}_i|} \quad\quad , \quad\quad i = 1 \ldots n\]

Because this is computationally expensive, only the first Jacobian is actually computed this way. In subsequent iterations, the Jacobian is updated using Broyden’s method, which does not require any additional simulations.

The convergence criterion of the iterations is based on the requirement that both the maximum relative error in the state variables and the maximum relative change from one iteration to the next are smaller than a certain limit \(rtol\):

\[\left|\frac{\mathbf{x}_{k+1}-\mathbf{x}_k}{\mathbf{x}_k}\right| < \mathit{rtol} \quad\quad\textrm{and}\quad\quad \frac{|f_i(\mathbf{x})|}{\max|x_i(\tau)|} < \mathit{rtol} \quad\textrm{for all\ }i = 1,\ldots,n\]

A Steady-State Analysis comprises the following steps:

  1. Simulate until the final switch positions after one cycle are equal to the initial switch positions. This is called a circular topology.

  2. Calculate the Jacobian matrix \(\mathbf{J}_0\) for the initial state.

  3. Iterate until the convergence criterion is satisfied. If during the iterations the final switch positions after one cycle differ from the initial switch positions, go back to step 1.

Fast Jacobian Calculation for Thermal States

To reduce the number of simulation runs and thus save computation time, PLECS can calculate the Jacobian matrix entries pertaining to thermal states directly from the state-space matrices rather than using finite differences.

There is a certain error involved with this method since it neglects the feedback from the thermal states to the electrical states (or Simulink states). While this will not affect the accuracy of the final result of the steady-state analysis it may slow down convergence. Normally, however, the overall performance will be much higher than calculating the full Jacobian matrix.

The calculation method is controlled by the parameter Jacobian calculation (see Steady-State Analysis).

Non-Periodic Case

If the operating point of the system is defined as non-periodic (DC), a variant of the algorithm described above is performed. As in the periodic case, Newton iterations are executed to find the steady-state. Here, the algorithm searches for the roots of the function

\[\mathbf{f}(\mathbf{x}) = \dot{\mathbf{x}}\]

i.e. the time derivative of the vector of state variables \(\mathbf{x}\). Since no simulation has to be performed to compute \(\mathbf{f}\), the full Jacobian \(\mathbf{J}\) is calculated in each iteration. The convergence criterion remains the same as for the periodic case.

Limitations

Hidden state variables

In PLECS Blockset, the steady-state analysis depends on the fact that a model can be completely initialized with the InitialState parameter of the sim command. However, certain Simulink blocks that clearly have an internal memory do not store this memory in the state vector and therefore cannot be initialized. Among these blocks are the Memory block, the Relay block, the Transport Delay block and the Variable Transport Delay block. If a model contains any block with hidden states, the algorithm may be unable to find a solution.

State variable windup

If the effect of a state variable on the system is limited in some way but the state variable itself is not limited, it might wind up towards infinity. In this case the algorithm may fail to converge or return a false solution. In order to avoid this problem you should limit the state variable itself, e.g. by enabling the Limit output checkbox of an Integrator block.

Reference

  • D. Maksimović, “Automated steady-state analysis of switching power converters using a general-purpose simulation tool”, Proc. IEEE Power Electronics Specialists Conference, June 1997, pp. 1352-1358.