der_Teuler_by_w

Calculates the matrix

\[\frac{\partial}{\partial\Theta}\left.\left(T^{GA}(\mathbf{\Theta}) \mathbf{\omega}^A\right)\right|_{\Theta_0,\omega^A_0}\]

from the linearised euler propagation equations

\[\delta\mathbf{\dot{\Theta}} = \frac{\partial}{\partial\Theta}\left.\left(T^{GA}(\mathbf{\Theta}) \mathbf{\omega}^A\right)\right|_{\Theta_0,\omega^A_0}\delta\mathbf{\Theta} + T^{GA}(\mathbf{\Theta_0}) \delta\mathbf{\omega}^A\]

where \(T^{GA}\) is the nonlinear relation between the euler angle rates and the rotational velocities and is provided by deuler_dt().

The concerned matrix is calculated as follows:

\[\begin{split}\frac{\partial}{\partial\Theta}\left.\left(T^{GA}(\mathbf{\Theta}) \mathbf{\omega}^A\right)\right|_{\Theta_0,\omega^A_0} = \\ \begin{bmatrix} q\cos\phi\tan\theta-r\sin\phi\tan\theta & q\sin\phi\sec^2\theta + r\cos\phi\sec^2\theta & 0 \\ -q\sin\phi - r\cos\phi & 0 & 0 \\ q\frac{\cos\phi}{\cos\theta}-r\frac{\sin\phi}{\cos\theta} & q\sin\phi\tan\theta\sec\theta + r\cos\phi\tan\theta\sec\theta & 0 \end{bmatrix}_{\Theta_0, \omega^A_0}\end{split}\]

Note

This function is defined in a North East Down frame which is not the typically used one in SHARPy.

param euler:

Euler angles at the linearisation point \(\mathbf{\Theta}_0 = [\phi,\theta,\psi]\) or roll, pitch and yaw angles, respectively.

type euler:

np.ndarray

param w:

Rotational velocities at the linearisation point in A frame \(\omega^A_0\).

type w:

np.ndarray

returns:

Computed \(\frac{\partial}{\partial\Theta}\left.\left(T^{GA}(\mathbf{\Theta})\mathbf{\omega}^A\right)\right|_{\Theta_0,\omega^A_0}\)

rtype:

np.ndarray