bluemira.equilibria.num_control
Numerical vertical stability control - still not quite there!
Classes
Dummy control object to enable calculations to take place with no numerical |
|
Represents a pair of virtual coils for the numerical vertical control of |
Module Contents
- class bluemira.equilibria.num_control.DummyController(psi: numpy.typing.NDArray[numpy.float64])
Dummy control object to enable calculations to take place with no numerical vertical control scheme.
psi() returns np.zeros(eq.psi.shape)
- Parameters:
psi (numpy.typing.NDArray[numpy.float64])
- _shape
- stabilise(*args)
Dummy method to retain procedures with no effect on the equilibria.
- psi() numpy.typing.NDArray[numpy.float64]
Dummy method to retain procedures with no effect on the equilibria.
- Return type:
numpy.typing.NDArray[numpy.float64]
- static Bx(x: numpy.typing.ArrayLike, z: numpy.typing.ArrayLike) float | numpy.typing.NDArray[numpy.float64]
Dummy method to retain procedures with no effect on the equilibria.
- Parameters:
x (numpy.typing.ArrayLike)
z (numpy.typing.ArrayLike)
- Return type:
float | numpy.typing.NDArray[numpy.float64]
- static Bz(x: numpy.typing.ArrayLike, z: numpy.typing.ArrayLike) float | numpy.typing.NDArray[numpy.float64]
Dummy method to retain procedures with no effect on the equilibria.
- Parameters:
x (numpy.typing.ArrayLike)
z (numpy.typing.ArrayLike)
- Return type:
float | numpy.typing.NDArray[numpy.float64]
- class bluemira.equilibria.num_control.VirtualController(eq: bluemira.equilibria.equilibrium.Equilibrium, gz: float = 1.5)
Bases:
bluemira.equilibria.coils.CoilGroupRepresents a pair of virtual coils for the numerical vertical control of the plasma, as described in Jeon, 2015
It does work to some extent (perhaps I’ve implemented it incorrectly). It seems to fall over for large numerical instabilities.
- Parameters:
gz (float)
- eq
- coilset
- Xc
- Zc
- gz = 1.5
- _pgreen
- feedback_current() numpy.typing.NDArray[numpy.float64]
Calculate feedback currents to compensate for a radial field at the centre of the plasma. (Vertical stability)
\(I_{feedback}=-g_{z}\dfrac{B_{X,vac}}{B_{X,feedback}}\) \(\Bigr|_{\substack{X_{cur}, Z_{cur}}}\)
- Return type:
numpy.typing.NDArray[numpy.float64]
- adjust_currents(d_current: float)
Adjust the currents in the virtual control coils.
- Parameters:
d_current (float)
- stabilise()
Stabilise the equilibrium, calculating the feedback currents and applying them to the control coils.
- psi() numpy.typing.NDArray[numpy.float64]
Get the psi array of the VirtualController
- Return type:
numpy.typing.NDArray[numpy.float64]