![]() |
ros2_control - humble
|
Generates a sine sweep for frequency analysis of a joint. More...
#include <sine_sweep.hpp>
Public Member Functions | |
| SineSweep () | |
| Constructor. | |
| double | update (rclcpp::Duration dt) |
| Update the SineSweep loop with nonuniform time step size. | |
| bool | init (double start_freq, double end_freq, double duration, double amplitude) |
| Initializes everything and calculates the constants for the sweep. | |
Generates a sine sweep for frequency analysis of a joint.
This class basically calculates the output for a sine sweep. Where the signal is a sine wave, whose frequency is exponentially increased from \(\omega_1\) to \(\omega_2\) over \(T\) seconds.
\(s(n) = A \sin [ K(e^{\delta t/L} - 1) ]\)
where:
\(K = \frac{\omega_1T}{\ln \frac{\omega_2}{\omega_1} }\)
\(L = \frac{T}{\ln \frac{\omega_2}{\omega_1} }\).
| bool control_toolbox::SineSweep::init | ( | double | start_freq, |
| double | end_freq, | ||
| double | duration, | ||
| double | amplitude | ||
| ) |
Initializes everything and calculates the constants for the sweep.
| start_freq | Start frequency of the sweep, \(\omega_1\) . |
| end_freq | End frequency of the sweep, \(\omega_2\). |
| duration | The duration of the sweep, \(T\). |
| amplitude | The amplitude of the sweep, \(A\). |
| double control_toolbox::SineSweep::update | ( | rclcpp::Duration | dt | ) |
Update the SineSweep loop with nonuniform time step size.
| dt | Change in time since last call |