Fits an experimentally obtained frequency response by model for either a receptance model:
or an accelerance model:
.
Internally, the code uses a Levenberg-Marquardt solver to determine the parameters. The initial guess for the solver is determined by a peak finding algorithm used to locate the resonant modes in frequency. from this result, estimates for both the amplitude and natural frequency values are obtained. The damping parameters are assumed to be equal for all modes and set to a default value of 0.1.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | mt |
The excitation method. The options are as follows.
|
||
| integer(kind=int32), | intent(in) | :: | n |
The model order (# of resonant modes). |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | freq |
An M-element array containing the excitation frequency values in units of rad/s. |
|
| complex(kind=real64), | intent(in), | dimension(:) | :: | rsp |
An M-element array containing the frequency response to fit. |
|
| real(kind=real64), | intent(in), | optional, | dimension(:) | :: | maxp |
An optional 3*N-element array that can be used as upper limits on the parameter values. If no upper limit is requested for a particular parameter, utilize a very large value. The internal default is to utilize huge() as a value. |
| real(kind=real64), | intent(in), | optional, | dimension(:) | :: | minp |
An optional 3*N-element array that can be used as lower limits on the parameter values. If no lower limit is requested for a particalar parameter, utilize a very large magnitude, but negative, value. The internal default is to utilize -huge() as a value. |
| real(kind=real64), | intent(in), | optional, | dimension(:) | :: | init |
An optional 3N-element array that, if supplied, provides an initial guess for each of the 3N model parameters for the iterative solver. If supplied, this array replaces the peak finding algorithm for estimating an initial guess. |
| type(regression_statistics), | intent(out), | optional, | dimension(:) | :: | stats |
An optional 3*N-element array that, if supplied, will be used to return statistics about the fit for each model parameter. |
| real(kind=real64), | intent(in), | optional | :: | alpha |
The significance level at which to evaluate the confidence intervals. The default value is 0.05 such that a 95% confidence interval is calculated. |
|
| type(iteration_controls), | intent(in), | optional | :: | controls |
An optional input providing custom iteration controls. |
|
| type(lm_solver_options), | intent(in), | optional | :: | settings |
An optional input providing custom settings for the solver. |
|
| type(convergence_info), | intent(out), | optional | :: | info |
An optional output that can be used to gain information about the iterative solution and the nature of the convergence. |
|
| class(errors), | intent(inout), | optional, | target | :: | err |
An optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
|
An array containing the model parameters stored as .