| generate.2order {doremi} | R Documentation | 
Generation of the second order differential equation solution with deSolve
Description
generate.2order returns a data frame containing the time (supplied as input) and a simulated signal generated as a solution to a second order
differential equation with constant coefficients that are provided as inputs:
\frac{d^2y}{dt} + 2\xi\omega_{n}\frac{dy}{dt} + \omega_{n}^2 y = \omega_{n}^2 k*u(t)
Where:
y(t) is the signal, \frac{dy}{dt} its derivative and \frac{d^2y}{dt} its second derivative
-  \omega_{n} = \frac{2\pi}{T}-where T is the period of the oscillation- is the system's natural frequency, the frequency with which the system would vibrate if there were no damping. The term\omega_{n}^2represents thus the ratio between the attraction to the equilibrium and the inertia. If we considered the example of a mass attached to a spring, this term would represent the ratio of the spring constant and the object's mass.
-  \xiis the damping ratio. It represents the friction that damps the oscillation of the system (slows the rate of change of the variable). The term2\xi\omega_nthus represents the respective contribution of the inertia, the friction and the attraction to the equilibrium. The value of\xidetermines the shape of the system time response, which can be:\xi<0Unstable, oscillations of increasing magnitude\xi=0Undamped, oscillating0<\xi<1Underdamped or simply "damped": the oscillations are damped by an exponential of damping rate\xi\omega_{n}\xi=1Critically damped\xi>1Over-damped, no oscillations in the return to equilibrium
- k is the gain 
- u(t) is an external excitation perturbing the dynamics 
The excitation is also provided as input and it can be null (then the solution will be a damped linear oscillator when the initial condition is different from 0)
Usage
generate.2order(
  time = 0:100,
  excitation = NULL,
  y0 = 0,
  v0 = 0,
  t0 = NULL,
  xi = 0.1,
  period = 10,
  k = 1,
  yeq = 0
)
Arguments
| time | is a vector containing the time values corresponding to the excitation signal. | 
| excitation | Is a vector containing the values of the excitation signal. | 
| y0 | is the initial condition for the variable y(t=t0), (0, by default), it is a scalar. | 
| v0 | is the initial condition for the derivative dy(t=t0), (0, by default), it is a scalar. | 
| t0 | is the time corresponding to the initial condition y0 and v0. Default is the minimum value of the time vector. | 
| xi | is the damping factor. A negative value will produce divergence from equilibrium. | 
| period | is the period T of the oscillation,  | 
| k | Default is 1. It represents the proportionality between the stationary increase of signal and the excitation increase that caused it. Only relevant if the excitation is non null. | 
| yeq | is the signal equilibrium value, i.e. the stationary value reached when the excitation term is 0. | 
Value
Returns a data.table containing four elements:
- t is a vector containing the corresponding time values 
- y is a vector containing the values calculated with deSolve so that y is a solution to a second order differential equation with constant coefficients (provided as input) evaluated at the time points given by t 
- dy is a vector containing the values of the derivative calculated at the same time points 
- exc is the excitation vector 
Examples
generate.2order(time=0:249,excitation=c(rep(0,10),rep(1,240)),period=10)
generate.2order(y0=10)