WEST ICRH Antenna RF Model

WEST ICRH Antenna RF Model

WestIcrhAntenna([frequency, Cs, front_face])

WEST ICRH Antenna circuit model.

class west_ic_antenna.antenna.WestIcrhAntenna(frequency: Frequency | None = None, Cs: Number | Sequence[Number] | ndarray = [50, 50, 50, 50], front_face: str | PathLike | Network | None = None)[source]

WEST ICRH Antenna circuit model.

Parameters:
  • frequency (scikit-rf skrf.frequency.Frequency or None, optional) – frequency object to build the circuit with. The default is None: frequency band is the one from antenna elements.

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is [50,50,50,50] [pF]

  • front_face (str or :class: pathlib.Path or skrf.network.Network, optional) – path to the Touchstone file of the antenna front face. Default is None (Vacuum case). If the frequency band of the front_face Network is a unique point, as typically for TOPICA results for example, the s-parameters of the front_face Network is duplicated for all the frequencies defined by frequency.

Note

front face ports are defined as (view from behind, ie from torus hall):

port1  port2
port3  port4

Capacitor names are defined as (view from behind the antenna):

C1  C3
C2  C4

Voltages are defined the same way:

V1 V3
V2 V4

Examples

Building a WEST ICRH antenna model for a given frequency band:

>>> freq = rf.Frequency(50, 60, 101, unit='MHz')
>>> Cs = [50, 40, 60, 70]
>>> west_antenna = WestIcrhAntenna(freq, Cs)  # Vacuum loading case

Building a WEST ICRH antenna model for a given front-face configuration:

>>> # Here the s-param of the front_face are duplicated for all freq
>>> WestIcrhAntenna(front_face='./data/Sparameters/front_faces/TOPICA/S_TSproto12_55MHz_Profile1.s4p')
property Cs: List

Antenna capacitance array [C1, C2, C3, C4] in [pF].

Pr(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Reflected power at antenna input.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

Pr – Reflected power [W] of both sides vs freq

Return type:

complex array (nb_f, 2)

Rc(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Coupling Resistances of both sides of the antenna.

\[R_c = 2 P_t / I_s^2\]

where:

  • Pt is the transmitted (coupled) power

  • Is is the current average \(I_s^2 = |I_{top}|^2 + |I_{bot}|^2\)

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

Rc – Coupling resistances [Ohm] of both sides vs freq

Return type:

array (nb_f, 2)

Rc_WEST(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Coupling Resistances of both sides of the antenna - WEST Approximation.

\[R_c = 2 P_t / I_s^2\]

where:

  • Pt is the transmitted (coupled) power

  • Is is the current average \(I_s^2 = |I_{top}|^2 + |I_{bot}|^2\)

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) –

    antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs):

    [C1] [C3]
    [C2] [C4]
    (view from the rear of the antenna)
    

Returns:

Rc – Coupling resistances [Ohm] of both sides vs freq

Return type:

array (nb_f, 2)

Z_T(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Impedances Z_T at the T-junction.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

Z_T – Impedance at the T-junction [Z_T_left, Z_T_right]

Return type:

complex array (nb_f, 2)

Examples

>>> Z_T = west_antenna.Z_T([1, 1], [0, pi])
b(a: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Reflected power-wave from a given input power-wave, defined by b=S x a.

Parameters:
  • a (array) – input power-wave array

  • Cs (list or array or None) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

b – output power-wave array

Return type:

array

capa(C: float, R: float = 0.01, L: float = 29.9, R1: float = 0.01, C1: float = 25.7, L1: float = 2.4, z0_bridge: float | None = None, z0_antenna: float | None = None, name: str = 'capa') Network[source]

Equivalent lumped Network model of a WEST ICRH antenna capacitor.

The electrical circuit of an equivalent lumped model is:

port1 (bridge side)                        port2 (antenna side)

    o-- R1 -- L1 --- R -- L -- C --- L1 -- R1 --o
                  |               |
                  C1             C1
                  |               |
                  gnd            gnd

The default values for R1, L1, C1, R and L have been adjusted to fit the full-wave modelling of the capacitors [1]

Parameters:
  • C (float) – Capacitance in [pF]

  • R (float, optional) – series resitance in [Ohm]. The default is 1e-2.

  • L (float, optional) – series inductance in [nH]. The default is 29.9.

  • R1 (float, optional) – input/output serie resistance in [Ohm]. The default is 1e-2.

  • C1 (float, optional) – shunt capacitance in [pF]. The default is 25.7.

  • L1 (float, optional) – input/output series inductance in [nH]. The default is 2.4.

  • z0_bridge (float, optional) – Bridge side characteristic impedance in [Ohm]. The default is bridge z0.

  • z0_antenna (float, optional) – Antenna side characteristic impedance in [Ohm]. The default is the antenna z0

  • name (str, optional) – capacitor Network name. Default is ‘capa’.

Returns:

capa – Equivalent lumped WEST capacitor model Network

Return type:

scikit-rf Network

References

capacitor_predictor(power: list, phase: list, Cs: list, z_T_target: complex = 2.89 - 0.17j, solution_number: int = 1, K: float = 0.7)[source]

Return a capacitance set toward matching.

The predictor does not return the final optimum values but only a set which goes toward the solution. Hence, this function should be re-itered until its converges (if so).

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

  • z_T_target (complex, optional) – Desired target (Set Point) for the input impedance at T-junction. The default is 2.89-0.17j.

  • solution_number (int) – Desired solution. 1 for C_top > C_bot and 2 for the opposite.

  • K (float, optional) – Gain. Default value: 0.7. Smaller value leads to higher number of iterations.

Returns:

  • C_left (np.array (nb_f, 2)) – Left side capacitances (top, bottom)

  • C_right (np.array (nb_f, 2)) – Right side capacitances (top, bottom)

  • epsilons (np.array (nb_f, 2)) – Error signal (left, right)

capacitor_velocities(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None, z_T_target: complex = 2.89 - 0.17j, K: float = 1) Tuple[Number | Sequence[Number] | ndarray, Number | Sequence[Number] | ndarray][source]

Velocity requests toward matching point.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

  • z_T_target (complex, optional) – Desired target (Set Point) for the input impedance at T-junction. Default is 2.89-0.17j.

  • K (float, optional) – Gain. Default is 1.

Returns:

  • v_left (np.array (nb_f, 2)) – Left side velocities (v_top, v_bot)

  • v_right (np.array (nb_f, 2)) – Right side velocities (v_top, v_bot)

circuit(Cs: List | None = None) Circuit[source]

Build the antenna circuit for a given set of capacitance.

Parameters:

Cs (list or array or None) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs).

Returns:

circuit – Antenna Circuit

Return type:

skrf.circuit.Circuit

currents(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Currents at the antenna front face ports (after capacitors).

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

Is – Currents at antenna front face ports [I1, I2, I3, I4]

Return type:

complex array (nb_f,4)

Examples

>>> Is = west_antenna.currents([1, 1], [0, pi])
currents_WEST(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Currents at the capacitors as calculated in WEST.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

Is – Currents at capacitors [I1, I2, I3, I4]

Return type:

complex array (nb_f,4)

error_signals(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None, z_T_target: complex = 2.89 - 0.17j) Number | Sequence[Number] | ndarray[source]

Normalized Error Signals for left and right sides.

Normalized Error signals is defined by:

epsilon = (z_T_target - z_T)/z_T

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

  • z_T_target (complex, optional) – Desired target (Set Point) for the input impedance at T-junction. The default is 2.89-0.17j.

Returns:

epsilons – Error signals for left and right sides

Return type:

complex array (nb_f, 2)

property f

Antenna Frequency band values.

Returns:

f – Antenna Frequency band values in [Hz]

Return type:

array

property f_scaled

Antenna Frequency band scaled to the Frequency unit.

Returns:

f_scaled – Antenna frequency band values in the Frequency unit

Return type:

array (nb_f,)

property frequency

Antenna Frequency band.

Returns:

frequency – Antenna Frequency band

Return type:

scikit-rf Frequency

front_face_Rc(Is: Number | Sequence[Number] | ndarray = [1, -1, -1, 1])[source]

(Ideal) front-face coupling resistances.

Coupling resistance is defined as :

\[R_c = 2 P_t / I_s^2\]

where:

  • Pt is the transmitted (coupled) power

  • Is is the current average \(I_s^2 = |I_{top}|^2 + |I_{bot}|^2\)

Warning

Pay attention to the port indexing! Is is assumed with the following order:

[1] [2]
[3] [4]

which is the one used in HFSS or in TOPICA models,

However, the indexing order of voltages probes and capacitors is:

[1] [3]
[2] [4]

(both view from the rear of the antenna)

Parameters:

Is (list or array (complex)) – Current excitation at antenna front-face ports. Default is [+1,-1,-1,+1] (dipole)

front_face_current_waves(power: Number | Sequence[Number] | ndarray = [1, 1], phase: Number | Sequence[Number] | ndarray = [0, 3.141592653589793], Cs: None | list = None) Number | Sequence[Number] | ndarray[source]

Calculate the forward and reflected current waves I+ and I-.

The front face port indexes are defined as (view from behind, ie from torus hall):

port1 port2 port3 port4

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

  • I_fwd (complex array (nb_f, 4)) – Forward current wave in A.

  • I_ref (complex array (nb_f, 4)) – Reflected current wave in A.

front_face_powers_phases(power: Number | Sequence[Number] | ndarray = [1, 1], phase: Number | Sequence[Number] | ndarray = [0, 3.141592653589793], Cs: None | list = None) Number | Sequence[Number] | ndarray[source]

Calculate the forward powers and phases at the input of the 4-port front-face.

The front face port indexes are defined as (view from behind, ie from torus hall):

port1 port2 port3 port4

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

  • power_fwd (real array (nb_f, 4)) – forward power magnitude in W.

  • phase_fwd (real array (nb_f, 4)) – forward power phase in degree.

front_face_voltage_waves(power: Number | Sequence[Number] | ndarray = [1, 1], phase: Number | Sequence[Number] | ndarray = [0, 3.141592653589793], Cs: None | list = None) Number | Sequence[Number] | ndarray[source]

Calculate the forward and reflected voltages waves.

The front face port indexes are defined as (view from behind, ie from torus hall):

port1 port2 port3 port4

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

  • V_fwd (complex array (nb_f, 4)) – Forward voltage wave in V.

  • V_ref (complex array (nb_f, 4)) – Reflected voltage wave in V.

classmethod interpolate_front_face(Rc: float, source: str = 'TOPICA-L-mode') Network[source]

Return a TOPICA front-face rf.Network interpolated from the L or H mode data.

Parameters:
  • Rc (float) – Desired interpolated coupling resistance value. Rc must be within the interval of possible values, which depends of the front-face type:

  • source (str, optional) – ‘TOPICA-L-mode’: L-mode plasmas from TOPICA. Rc in [1, 2.91] (default) ‘TOPICA-H-mode’: H-mode plasmas from TOPICA. Rc in [0.39, 1.71]

Returns:

interpolated_front_face – Network of the TOPICA front-face

Return type:

rf.Network

Examples

>>> plasma = WestIcrhAntenna.interpolate_front_face(Rc=1, mode='TOPICA-L-mode')
load(Rc: float, Xs: float | None = None)[source]

Load the antenna model with an ideal plasma load (no poloidal and toroidal cross coupling).

Parameters:
  • Rc (float) – Coupling Resistance [Ohm]

  • Xs (float, optional) – Strap reactance. The default is None (uses frequency best fit).

Return type:

None.

match_both_sides(f_match: float = 55000000.0, power: Number | Sequence[Number] | ndarray = [1, 1], phase: Number | Sequence[Number] | ndarray = [0, 3.141592653589793], solution_number: int = 1, z_match: Number | Sequence[Number] | ndarray = [29.89 + 0j, 29.89 + 0j], decimals: int | None = None, verbose: bool = True, method: str = 'SLSQP', C0: None | list = None, delta_C: float = 5, maxiter: int = 500) Number | Sequence[Number] | ndarray[source]

Match both sides at the same time for a given frequency target.

Optimization is made for active Z parameters, that is taking into account the antenna excitation.

Parameters:
  • f_match (float, optional) – match frequency in [Hz]. Default is 55 MHz.

  • power (list or array) – Input power at external ports in Watts [W]. Default is [1, 1] W.

  • phase (list or array) – Input phase at external ports in radian [rad]. Default is dipole [0, pi] rad.

  • solution_number (int, optional) – 1 or 2: 1 for C_top > C_lower or 2 for C_top < C_lower

  • z_match (array of complex, optional) – antenna feeder characteristic impedance to match on. Default is 30 ohm

  • decimals (int, optional) – Round the capacitances to the given number of decimals. Default is None (no rounding)

  • verbose (bool) – Display search information. Default is True.

  • method (str, optional) – Scipy Optimization method. ‘SLSQP’ (default) or ‘COBYLA’

  • C0 (list or None, optional) – Initial guess of the matching point. If None, the initial guess is obtained from matching both sides separately. Default is None.

  • delta_C (float, optional) – Maximum capacitance shift to look for a solution. Default is 5.

  • maxiter (int) – Maximum number of optimization function evaluations.

Returns:

Cs_match – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

Return type:

list or array

match_both_sides_iterative(f_match: float = 55000000.0, power: Number | Sequence[Number] | ndarray = [1, 1], phase: Number | Sequence[Number] | ndarray = [0, 3.141592653589793], C0: None | list = None, solution_number: int = 1, z_T_target: float = 2.89 - 0.17j, K: float = 0.7, verbose: bool = True, Cs: None | list = None) Number | Sequence[Number] | ndarray[source]

Match both sides using the automatic matching alg. (iterative).

Parameters:
  • f_match (float, optional) – Matching frequency in Hz. The default is 55e6.

  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • C0 (list or array, optional) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

  • z_T_target (complex, optional) – Desired target (Set Point) for the input impedance at T-junction. The default is 2.89-0.17j.

  • solution_number (int) – Desired solution. 1 for C_top > C_bot and 2 for the opposite.

  • K (float, optional) – Gain. Default value: 0.7. Smaller value leads to higher number of iterations.

  • verbose (bool, optional) – Display search information. Default is True.

  • Cs (list or array, optional) – Alias for C0, for backward compatibility. Default is None.

Returns:

Cs_match – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

Return type:

list or array

match_both_sides_separately(f_match: float = 55000000.0, solution_number: int = 1, z_match: Number | Sequence[Number] | ndarray = [29.89 + 0j, 29.87 + 0j], decimals: int | None = None, verbose: bool = True) Number | Sequence[Number] | ndarray[source]

Match both sides separately and returns capacitance values for each sides.

Match the left side with right side unmatched, then match the right side with the left side unmatched. Combine the results

Parameters:
  • f_match (float, optional) – match frequency in [Hz]. Default is 55 MHz.

  • solution_number (int, optional) – 1 or 2: 1 for C_top > C_lower or 2 for C_top < C_lower

  • z_match (complex, optional) – antenna feeder characteristic impedance to match on. Default is 30 ohm

  • decimals (int, optional) – Round the capacitances to the given number of decimals. Default is None (no rounding)

  • verbose (bool) – Display search information. Default is True.

Returns:

Cs_match – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

Return type:

list or array

match_one_side(f_match: float = 55000000.0, solution_number: int = 1, side: str = 'left', z_match: complex = 29.89 + 0j, decimals: int | None = None, verbose: bool = True) Number | Sequence[Number] | ndarray[source]

Search for the best capacitance to match the specified side of the antenna.

The capacitances of the non-matched side are set to 120 [pF].

Parameters:
  • f_match (float, optional) – match frequency in [Hz]. Default is 55 MHz.

  • solution_number (int, optional) – 1 or 2: 1 for C_top > C_lower or 2 for C_top < C_lower

  • side (str, optional) – antenna side to match: ‘left’ or ‘right’

  • z_match (complex, optional) – antenna feeder characteristic impedance to match on. Default is 30 ohm

  • decimals (int or None, optional) – Round the capacitances to the given number of decimals. Default is None (no rounding)

  • verbose (bool) – Display search information. Default is True.

Returns:

Cs_match – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

Return type:

list or array

optimize(fun, C0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None) list[float][source]

Optimize the capacitors for a given objective function.

Parameters:
  • fun (callable) –

    The objection function to be minimized:

    fun(x, *args) -> float
    

  • (n (where x is a 1-D array with shape)

  • args (tuple, optional)

  • completely (is a tuple of the fixed parameters needed to)

  • scipy.optimize (specify the function. This function is passed to)

  • C0 (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

  • args – Extra arguments passed to the objective function and its derivatives (fun, jac and hess functions).

  • scipy.minimize (All other parameters are the same as in)

  • https (//docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimize)

Returns:

Cs – antenna 4 capacitances [C1, C2, C3, C4] in [pF].

Return type:

list or array

optimum_frequency(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Optimum frequency with respect to active S-parameters for a given excitation.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

f_opt – optimum frequencies for each sides of the antenna

Return type:

array (2x1)

optimum_frequency_index(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Array indexes of the optimum frequency with respect to active S-parameters for a given excitation.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

f_opt_idx – array indexes of the optimum frequencies for each sides of the antenna

Return type:

array (2x1)

s_act(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Active S-parameters for a given excitation.

Active s-parameters are defined by :

\[\begin{split}\mathrm{active}(s)_{mn} = \sum_i s_{mi} \\frac{a_i}{a_n}\end{split}\]
Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

s_act – Active S-parameters

Return type:

complex array (nb_f, 2)

s_act_db(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Active S-parameters magnitude in dB for a given excitation.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

s_act_db – Active S-parameters magnitude in dB

Return type:

real array (nb_f, 2)

swit_abcd() Number | Sequence[Number] | ndarray[source]

ABCD matrix of service Stub, Window and Impedance Transformer (aka “SWIT”).

Returns:

a – ABCD matrix of the SWIT

Return type:

np.array (nb_f,2,2)

voltages(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Voltages at the antenna front face ports (after capacitors).

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

Vs – Voltages at antenna front face ports [V1, V2, V3, V4]

Return type:

complex array (nb_f, 4)

Example

>>> Vs = west_antenna.voltages([1, 1], [0, pi])
vswr_act(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Active VSWR for a given excitation.

The active VSWR is defined by :

\[\begin{split}\mathrm{active}(vswr)_{m} = \\frac{1 + |\mathrm{active}(s)_m|}{1 - |\mathrm{active}(s)_m|}\end{split}\]

where \(\mathrm{active}(s)_m\) the active S-parameter of port \(m\).

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

vswr_act – Active VSWR-parameters

Return type:

complex array (nb_f, 2)

z_T(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Input impedance at the T-junction (input of the bridge) for a given excitation.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

z_T – Input impedances (left and right sides) at the T-junction for a given excitation.

Return type:

np.array (nb_f, 2)

z_act(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Active Z-parameters for a given excitation.

The active Z-parameters are defined by:

\[\begin{split}\mathrm{active}(z)_{m} = z_{0,m} \\frac{1 + \mathrm{active}(s)_m}{1 - \mathrm{active}(s)_m}\end{split}\]

where \(z_{0,m}\) is the characteristic impedance and \(\mathrm{active}(s)_m\) the active S-parameter of port \(m\).

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

z_act – Active Z-parameters

Return type:

complex array (nb_f, 2)

z_coupler(power: Number | Sequence[Number] | ndarray, phase: Number | Sequence[Number] | ndarray, Cs: Number | Sequence[Number] | ndarray | None = None) Number | Sequence[Number] | ndarray[source]

Input impedance at the bidirective coupler for a given excitation.

Assume that the bidirective coupler is located just behind the RF window. In reality, there is a piece of transmission line from the window to the couplern which depends of each sides of each antenna in WEST.

Parameters:
  • power (list or array) – Input power at external ports in Watts [W]

  • phase (list or array) – Input phase at external ports in radian [rad]

  • Cs (list or array) – antenna 4 capacitances [C1, C2, C3, C4] in [pF]. Default is None (use internal Cs)

Returns:

z_coupler – Input impedance (left and right side) at the bidirective coupler for a given excitation.

Return type:

np.array (nb_f, 2)