pulpy.grad.optim.min_time_gradient

pulpy.grad.optim.min_time_gradient(c: ndarray, g0=0, gfin=None, gmax=4, smax=15, dt=0.004, gamma=4.257)[source]

Given a k-space trajectory c(n), gradient and slew constraints. This function will return a new parametrization that will meet these constraint while getting from one point to the other in minimum time.

Parameters:
  • c (array) – Curve in k-space given in any parametrization [1/cm] Nx3 real array

  • g0 (float) – Initial gradient amplitude (leave empty for g0 = 0)

  • gfin (float) – Gradient value at the end of the trajectory. If not possible, the result would be the largest possible ampltude. (Leave empty if you don’t care to get maximum gradient.)

  • gmax (float) – Maximum gradient [G/cm] (3.9 default)

  • smax (float) – Maximum slew [G/Cm/ms] (14.5 default)

  • dt (float) – Sampling time interval [ms] (4e-3 default)

  • gamma (float) – Gyromagnetic ratio

Returns:

(g, k, s, t) tuple containing

  • g - (array): gradient waveform [G/cm]

  • k - (array): exact k-space corresponding to gradient g.

  • s - (array): slew rate [G/cm/ms]

  • time - (array): sampled time

Return type:

tuple

References

Lustig M, Kim SJ, Pauly JM. A fast method for designing time-optimal gradient waveforms for arbitrary k-space trajectories. IEEE Trans Med Imaging. 2008;27(6):866-873. doi:10.1109/TMI.2008.922699