Krylov-Bogoliubov Averaging Method
The Krylov-Bogoliubov averaging method is an alternative high-frequency expansion technique used to analyze dynamical systems. Unlike the Harmonic Balance method, which is detailed in the background section, the Krylov-Bogoliubov method excels in computing higher orders in
Purpose and Advantages
The primary advantage of the Krylov-Bogoliubov method lies in its ability to delve deeper into high-frequency components, allowing a more comprehensive understanding of fast dynamical behaviors. By leveraging this technique, one can obtain higher-order approximations that shed light on intricate system dynamics.
However, it's essential to note a limitation: this method cannot handle multiple harmonics within a single variable, unlike some other high-frequency expansion methods.
Usage
To compute the Krylov-Bogoliubov averaging method within your system, utilize the function get_krylov_equations
. This function is designed specifically to implement the methodology and derive the equations necessary to analyze the system dynamics using this technique.
Function Reference
HarmonicBalance.KrylovBogoliubov.get_krylov_equations Function
get_krylov_equations(
diff_eom::DifferentialEquation;
order,
fast_time,
slow_time
)
Apply the Krylov-Bogoliubov averaging method to a specific order
to obtain a set of ODEs (the slow-flow equations) governing the harmonics of diff_eom
.
The harmonics evolve in slow_time
, the oscillating terms themselves in fast_time
. If no input is used, a variable T is defined for slow_time
and fast_time
is taken as the independent variable of diff_eom
.
Krylov-Bogoliubov averaging method can be applied up to order = 2
.
Example
julia> @variables t, x(t), ω0, ω, F;
# enter the simple harmonic oscillator
julia> diff_eom = DifferentialEquation( d(x,t,2) + ω0^2 * x ~ F *cos(ω*t), x);
# expand x in the harmonic ω
julia> add_harmonic!(diff_eom, x, ω);
# get equations for the harmonics evolving in the slow time T to first order
julia> harmonic_eom = get_krylov_equations(diff_eom, order = 1)
A set of 2 harmonic equations
Variables: u1(T), v1(T)
Parameters: ω, F, ω0
Harmonic ansatz:
xˍt(t) =
x(t) = u1(T)*cos(ωt) + v1(T)*sin(ωt)
Harmonic equations:
((1//2)*(ω^2)*v1(T) - (1//2)*(ω0^2)*v1(T)) / ω ~ Differential(T)(u1(T))
((1//2)*(ω0^2)*u1(T) - (1//2)*F - (1//2)*(ω^2)*u1(T)) / ω ~ Differential(T)(v1(T))
For further information and a detailed understanding of this method, refer to Krylov-Bogoliubov averaging method on Wikipedia.