7#include <janus/janus.hpp>
34template <
typename Scalar>
35Scalar oscillator_acceleration(
const Scalar &x,
const Scalar &x_dot,
36 const Scalar &omega_n,
const Scalar &zeta,
37 const Scalar &force,
const Scalar &mass) {
39 return force / mass - Scalar(2) * zeta * omega_n * x_dot -
40 omega_n * omega_n * x;
56template <
typename Scalar>
57Scalar spring_damper_acceleration(
const Scalar &x,
const Scalar &x_dot,
58 const Scalar &stiffness,
59 const Scalar &damping,
const Scalar &force,
62 return (force - damping * x_dot - stiffness * x) / mass;
74template <
typename Scalar>
75Scalar spring_to_omega(
const Scalar &stiffness,
const Scalar &mass) {
76 return janus::sqrt(stiffness / mass);
85template <
typename Scalar>
86Scalar spring_to_zeta(
const Scalar &stiffness,
const Scalar &damping,
88 return damping / (Scalar(2) * janus::sqrt(stiffness * mass));
95template <
typename Scalar> Scalar oscillator_period(
const Scalar &omega_n) {
96 return Scalar(2) * Scalar(M_PI) / omega_n;
110template <
typename Scalar>
111Scalar oscillator_energy(
const Scalar &x,
const Scalar &x_dot,
112 const Scalar &omega_n,
const Scalar &mass) {
114 return Scalar(0.5) * mass * (x_dot * x_dot + omega_n * omega_n * x * x);
122template <
typename Scalar>
123Scalar oscillator_kinetic_energy(
const Scalar &x_dot,
const Scalar &mass) {
124 return Scalar(0.5) * mass * x_dot * x_dot;
133template <
typename Scalar>
134Scalar oscillator_potential_energy(
const Scalar &x,
const Scalar &omega_n,
135 const Scalar &mass) {
137 return Scalar(0.5) * mass * omega_n * omega_n * x * x;
Definition Guided5Dof.hpp:13