Tutorial

PyFresco includes two packages that each perform different functions: the Optimization-based Controller Design (ObCD) package and the Frequency Response Measurement (FRM) package.

ObCD

The purpose of this tool is to synthesize controllers for the voltage, current, and/or field loops in the power converter control system. The algorithms use advanced convex optimization methods to synthesize these controllers by using the frequency response of a given open-loop system. The ObCD package uses the Python convex optimization library CVXPY to synthesize the controllers for all the control loops. This library contains several free solvers that can be used for obtaining an optimal solution. PyFresco uses the ECOS and CVXOPT solvers, as these solvers are needed for the types of problems used by PyFresco (i.e., semi-definite programming (SDP) problems).The desired performance is obtained by minimizing a weighted norm of the appropriate sensitivity function; the user will be able to select what kind of performance is desired in the advanced properties of the tool. In synthesizing these controllers, the user can provide a model (by setting the correct FGC properties) or by measuring the appropriate frequency response function (i.e., the open-loop dynamics).

FRM

This tool enables a user to obtain the frequency response between two desired signals; this frequency response can be used for general analysis purposes (i.e., confirming the behavior of a load or the performance of a controller) or to design a regulator. This measurement tool is important in applications where the load dynamics are uncertain (i.e., uncertain magnet parameters or delay) or for applications where the effects of Eddy currents are significant. There are two methods that are implemented in the FGC for measuring these dynamics:

  • A sine-fit algorithm which calculates the magnitude and phase of a system at user-defined frequency points.

  • A method which injects a pseudorandom binary sequence (PRBS), which is a signal similar to white noise and excites all frequencies.

Each of these methods both have advantages and disadvantages (which will be discussed in this document). The measured frequency response of the open-loop system can also be used to design a regulator. With the frequency response data of a system, the data-driven methods in the ObCD package can be used to ensure the desired performance and robustness of a closed-loop power converter control system. If the user is interested in designing controllers for the voltage, current, and/or field loops, then the following frequency responses should be obtained (with either PRBS or sine-fit):

The measured frequency response represents the ratio of the Fourier transforms of the input and output signals (i.e., \(G(j\omega) = \mathcal{F}\{\text{Output} \} / \mathcal{F}\{\text{Input} \}\), where \(\mathcal{F}\{\cdot \}\) signifies the Fourier transform of the argument).

Remark:

When using the sine-fit or PRBS method, a stabilizing RST controller must be loaded into the FGC for both open-loop and closed-loop experiments. This is due to the fact that the measurement algorithm is initialized in closed-loop mode in order to obtain a proper DC gain measurement and reduce drift. If a stabilizing controller is not available and the current or field loops are unstable, one can set the values below in the following properties:

\[\begin{split}\begin{aligned} &\text{REG.I/B.EXTERNAL.OP.R }& \alpha \text{ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} \\ &\text{REG.I/B.EXTERNAL.OP.S }& \text{1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} \\ &\text{REG.I/B.EXTERNAL.OP.T }& \alpha \text{ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} \\ &\text{REG.I/B.EXTERNAL_ALG[x] }& \text{ENABLED} \\ \end{aligned}\end{split}\]

where \(x\) is selected using the property LOAD.SELECT, which can have a value between 0 and 3, and \(\alpha\) is an arbitrarily small (positive) constant. Since the open-loop system is stable for any load (assuming that the voltage source is stable), there will always exist an arbitrarily small \(\alpha\) that will stabilize the closed-loop system.