UI Parameters (ObCD)

This section contains all of the parameters and keys that PyFresco uses to synthesize controllers for the ObCD package. These parameters are UI inputs that should be stored as class attributes. The regulation rate is used to determine some of the UI parameter limits; the regulation rate is defined as:

(8)\[F_s =(\text{FGC.ITER_PERIOD} \times \text{REG.I/B.PERIOD_ITERS[x]})^{-1}\]

See FGC.ITER_PERIOD , REG.I.PERIOD_ITERS and REG.B.PERIOD_ITERS for more information on these properties.

ObCD Keys

Control Mode:

keyword

control_mode

Desired control loop to regulate.

V: Design controller for damping and voltage loop.

I: Design RST and ILC controllers for current loop.

B: Design RST and ILC controllers for field loop.

Type

str

Default

Not applicable.

Recommended

Not applicable.

Feasible values

[I, B, V]

Current/Field Keys

Test Select:

keyword

test_select

Property value to set if the user wants to enable RST test parameters. False disables the test parameters; True enables the test parameters.

Type

bool

Default

False

Recommended

Not applicable.

Feasible values

[True, False]


Debug:

keyword

debug

Property value to set if the user wants to show the ObCD parameters on the console. False disables the parameter output; True enables the parameter output.

Type

bool

Default

False

Recommended

Not applicable.

Feasible values

[True, False]


Bandwidth:

keyword

des_bw

Desired closed-loop bandwidth \(f_{ib}\) [Hz].

Type

float

Default

\(F_s/15\)

Recommended

\(F_s/25 \leq f_{ib} \leq F_s/8\)

Note that that closed-loop bandwidth is limited by the amount of delay in the open-loop system.

Feasible values

\((0,10^6]\)


Damping:

keyword

des_z

Desired closed-loop damping \(\zeta_{ib}\) [-].

Type

float

Default

\(0.8\)

Recommended

\(0.8\)

Feasible values

\((0,1)\)


Modulus Margin:

keyword

des_mm

Desired modulus margin \(\Delta M_{ib}\) [-].

Type

float

Default

\(0.5\)

Recommended*

\(0.5\)

A higher value will increase the system robustness to uncertainties, but will degrade the tracking performance. Conversly, a lower value will decrease the system robustness to uncertainties, but will enhance the tracking performance.

Feasible values

\((0,1)\)


Reference Delay:

keyword

ref_delay

Value of delay \(d_r\) [s] to add on the desired second-order system.

Type

float

Default

\(0\)

Recommended

In general, \(d_r=0\) is sufficient for the desired performance. For high performance systems, set \(d_r\) equal to the open-loop delay.

Feasible values

\([0,10]\)


Integrators:

keyword

n_integrators

Desired number of integrators \(n_I\) in the \(S(z)\) polynomial.

Type

int

Default

\(2\)

Recommended

\(2\)

For systems with large open-loop delays, \(n_I=1\) may be prefered.

Feasible values

\([1,3]\)


Optimization Method:

keyword

opt_method

Desired optimization method. The string Hinf refers to \(\mathcal{H}_\infty\) control, H2 refers to \(\mathcal{H}_2\) control, and H1 refers to \(\mathcal{H}_1\) control.

Type

str

Default

Hinf

Recommended

Depends on the type of desired performance. See Current/Field Control for more information.

Feasible values

[Hinf, H2, H1]


Num. Coefficients (R):

keyword

n_r

Desired number of coefficients \(n_r\) in the \(R(z)\) polynomial.

Type

int

Default

\(6\)

Recommended

\(6\)

A larger value can be used for high performance systems.

Feasible values

\([4,16]\)


Num. Coefficients (S):

keyword

n_s

Desired number of coefficients \(n_s\) in the \(S(z)\) polynomial.

Type

int

Default

\(6\)

Recommended

\(6\)

A larger value can be used for high performance systems.

Feasible values

\([4,16]\)


Num. Coefficients (T):

keyword

n_t

Desired number of coefficients \(n_t\) in the \(T(z)\) polynomial.

Type

int

Default

\(6\)

Recommended

\(6\)

A larger value can be used for high performance systems. If opt_method is set to \(H_1\), set this parameter greater than n_r and n_s.

Feasible values

\([4,16]\)


Noise Rejection:

keyword

noise_rej

A list of lists that contains the desired frequencies and attenuation values for rejecting noise for the sensitivity function \(|\mathcal{S}_{d_v y}|\) (where \(y\) can be the current or field.) The format of the list is as follows: \([[f_1, A_1], [f_2, A_2],\ldots]\) where \(f_i\) [Hz] refers to the frequency to apply the desired attenuation \(A_i\) [dB]. For example, \([[100, -20]]\) signifies that the user desires an attenuation of -20 dB at 100 Hz.

Type

list of lists

Default

[ ]

Recommended

Application dependent. Usually, enabeling noise attenuation will degrade performance and/or can require a higher order RST controller.

Feasible values

\((0, F_s / 2]\)


L-Filter Order

keyword

n_ilc

Order \(n_{ilc}\) of the L-filter used for the ILC algorithm.

Type

int

Default

\(5\)

Recommended

Application dependent. In general, a value \(n_{ilc}>4\) is sufficient.

Feasible values

\([1,12]\)


Q-Filter Order:

keyword

n_q

Order \(n_{q}\) of the Q-filter (non-causal FIR) used for the ILC algorithm.

Type

int

Default

\(5\)

Recommended

Application dependent. In general, a value \(n_{q}>4\) is sufficient.

Feasible values

\([1,12]\)


Q-Filter Bandwidth:

keyword

q_bw

Desired bandwidth \(f_q\) [Hz] of the ILC Q-filter.

Type

float

Default

\(0\)

Recommended

Application dependent. A value \(f_q>0\) will enable the Q-filter optimization. A value of \(f_q = 0\) will set the Q-filter equal to \(1\) (i.e., disable the Q-filter).

Feasible values

\((0,10^6)\)


ILC Only Flag:

keyword

ilc_only

Flag which enables the design of an ILC filter without the RST optimization. A False boolean will enable both an RST and ILC synthesis. A True boolean will synthesize the ILC filters only. Note that if this flag is enabled, the RST values will be read from the property REG.I.EXTERNAL.OP or REG.B.EXTERNAL.OP . Additionally, ensure that the external RST is working correctly prior to the synthesis by running the converter with REG.I.EXTERNAL_ALG or REG.B.EXTERNAL_ALG set to ENABLED.

Type

bool

Default

False

Recommended

N/A

Feasible values

[True, False]


Voltage Keys

Damping-loop Bandwidth:

keyword

damp_bw

Desired closed-loop bandwidth \(f_d\) [Hz] for the damping loop.

Note that that closed-loop bandwidth is limited by the amount of delay in the open-loop system.

Type

float

Default

\(1.5 f_{bw}^d\), where \(f_{bw}^d\) is the open-loop bandwidth. This is calculated from the FGC properties.

Recommended

Application dependent.

Feasible values

\((0,10^6)\)


Damping-loop Damping:

keyword

damp_z

Desired closed-loop damping \(\zeta_d\) [-] for the damping loop.

Type

float

Default

\(0.8\)

Recommended

\(0.8\)

Feasible values

\((0,1)\)


Voltage-loop Bandwidth:

keyword

volt_bw

Desired closed-loop bandwidth \(f_v\) [Hz] for the voltage loop.

Note that that closed-loop bandwidth is limited by the amount of delay in the open-loop system.

Type

float

Default

\(f_{bw}^d\), where \(f_{bw}^d\) is the open-loop bandwidth. This is calculated from the FGC properties.

Recommended

Application dependent.

Feasible values

\((0,10^6)\)


Voltage-loop Damping:

keyword

volt_z

Desired closed-loop damping \(\zeta_v\) [-] for the voltage loop.

Type

float

Default

\(0.8\)

Recommended

\(0.8\)

Feasible values

\((0,1)\)


Damping Modulus Margin:

keyword

damp_mm

Desired modulus margin \(\Delta M_d\) [-] for the damping loop.

Type

float

Default

\(0.4\)

Recommended

\(0.4\)

A higher value will increase the system robustness to uncertainties, but will degrade the tracking performance. Conversely, a lower value will decrease the system robustness to uncertainties, but will enhance the tracking performance.

Feasible values

\((0,1)\)


Voltage Modulus Margin:

keyword

volt_mm

Desired modulus margin \(\Delta M_v\) [-] for the voltage loop.

Type

float

Default

\(0.5\)

Recommended

\(0.5\)

A higher value will increase the system robustness to uncertainties, but will degrade the tracking performance. Conversely, a lower value will decrease the system robustness to uncertainties, but will enhance the tracking performance.

Feasible values

\((0,1)\)


Reference Delay:

keyword

ref_delay

Value of delay \(d_r\) [s] to add on the desired second-order system.

Type

float

Default

\(0\)

Recommended

In general, \(d_r=0\) is sufficient for the desired performance. For high performance systems, set \(d_r\) equal to the open-loop delay.

Feasible values

\([0,10]\)


Optimization Method:

keyword

opt_method

Desired optimization method. The string Hinf refers to \(\mathcal{H}_\infty\) control, and H2 refers to \(\mathcal{H}_2\) control.

Type

str

Default

Hinf

Recommended

Depends on the type of desired performance. See Voltage Control for more information

Feasible values

[Hinf, H2]


Positive Coefficients:

keyword

positive_coeff

A constraint to enable all voltage loop and damping loop parameters to be positive. True will enable the constraint; False will disable the constraint.

Type

bool

Default

False

Recommended

For optimal performance, this constraint should be disabled.

Feasible values

[True, False]


Remove Kd:

keyword

kd_0

A constraint to set the damping loop parameter \(k_d=0\). True will enable the constraint; False will disable the constraint.

Type

bool

Default

False

Recommended

For optimal performance, this constraint should be disabled.

Feasible values

[True, False]