sdynpy.modal.sdynpy_modeshape.generate_kernel_complex
- generate_kernel_complex(omegas, poles, participation_factors, lower_residuals=False, upper_residuals=False, displacement_derivative=0)[source]
- Parameters
omegas (np.ndarray) – The angular frequencies (in radians/s) at which the kernel matrix will be computed. This should be a 1D array with length num_freqs.
poles (np.ndarray) – An array of poles corresponding to the modes of the structure. This should be a 1D array with length num_modes.
participation_factors (np.ndarray) – A 2D array of participation factors corresponding to the reference degrees of freedom. This should have shape (num_modes, num_inputs).
lower_residuals (bool, optional) – If True, construct the kernel matrix such that lower residuals will be computed in the least-squares operation. The default is False.
upper_residuals (bool, optional) – If True, construct the kernel matrix such that upper residuals will be computed in the least-squares operation. The default is False.
displacement_derivative (int, optional) – The derivative of displacement used to construct the frequency response functions. Should be 0 for a receptance (displacement/force) frf, 1 for a mobility (velocity/force) frf, or 2 for an accelerance (acceleration/force) frf.
- Returns
kernel_matrix – A 3D matrix that represents the kernel that can be inverted to solve for mode shapes. The size of the output array will be num_inputs x num_freq*2 x num_modes*2. The top partition of the num_freq dimension corresponds to the real part of the frf, and the bottom portion corresponds to the imaginary part of the frf. The top partition of the num_modes dimension corresponds to the real part of the mode shape matrix, and the bottom partition corresponds to the imaginary part. If residuals are included, there will be an extra two entries along the num_modes dimension corresponding to real and imaginary parts of the residual matrix for each of the residuals included.
- Return type
np.ndarray