ahkab.shooting¶
Periodic steady state analysis based on the shooting method.
-
shooting_analysis
(circ, period, step=None, x0=None, points=None, autonomous=False, matrices=None, outfile=u'stdout', vector_norm=<function <lambda>>, verbose=3)[source]¶ Performs a periodic steady state analysis based on the algorithm described in:
Brambilla, A.; D’Amore, D., “Method for steady-state simulation of strongly nonlinear circuits in the time domain,” Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on, vol.48, no.7, pp.885-889, Jul 2001.
http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=933329&isnumber=20194
The results have been computed again by me, the formulation is not exactly the same, but the idea behind the shooting algorithm is.
This method allows us to have a period with many points without having to invert a huge matrix (and being limited to the maximum matrix size).
A transient analysis is performed to initialize the solver.
We compute the change in the last point, calculating several matrices in the process. From that, with the same matrices we calculate the changes in all points, starting from 0 (which is the same as the last one), then 1, ...
Key points:
- Only non-autonomous circuits are supported.
- The time step is constant.
- Implicit Euler is used as DF.
Parameters:
- circ : Circuit instance
- The circuit description class.
- period : float
- The period of the solution.
- step : float, optional
- The time step between consecutive points.
If not set, it will be computed from
period
andpoints
. - points : int, optional
- The number of points to be used. If not set, it will be computed from
period
andstep
. - autonomous : bool, optional
- This parameter has to be
False
, autonomous circuits are not currently supported. - matrices : dict, optional
- A dictionary that may have as keys ‘MNA’, ‘N’ and ‘D’, with entries set
to the corresponding MNA-formulation matrices, in case they have been
already computed and the user wishes to save time by reusing them.
Defaults to
None
(recompute). - outfile : string, optional
- The output filename. Please use
stdout
(the default) to print to the standard output. - verbose : boolean, optional
- Verbosity switch (0-6). It is set to zero (print errors only)
if
outfile
== ‘stdout’``, as not to corrupt the data.
Notice that
step
andpoints
are mutually exclusive options:- if
step
is specified, the number of points will be automatically determined. - if
points
is set, the step will be automatically determined. - if none of them is set,
options.shooting_default_points
will be used as points.
Returns:
- sol : PSS solution object or
None
- The solution. If the circuit can’t be solve,
None
is returned instead.