1 #define BIORBD_API_EXPORTS
2 #include "Muscles/StateDynamicsBuchanan.h"
7 const biorbd::utils::Scalar& neuralCommand,
8 const biorbd::utils::Scalar& excitation) :
10 m_neuralCommand(std::make_shared<biorbd::utils::Scalar>(neuralCommand)),
11 m_shapeFactor(std::make_shared<biorbd::utils::Scalar>(-3)),
12 m_excitationDot(std::make_shared<biorbd::utils::Scalar>(0))
22 m_neuralCommand(other.m_neuralCommand),
23 m_shapeFactor(other.m_shapeFactor),
24 m_excitationDot(other.m_excitationDot)
51 const biorbd::utils::Scalar& shape_factor)
53 *m_shapeFactor = shape_factor;
61 return *m_shapeFactor;
66 bool alreadyNormalized){
68 biorbd::utils::Scalar activationTp = *m_activation;
69 *m_activation = *m_excitation;
70 biorbd::utils::Scalar excitationTp = *m_excitation;
71 *m_excitation = *m_neuralCommand;
77 *m_excitation = excitationTp;
78 *m_activation = activationTp;
80 return *m_excitationDot;
84 const biorbd::utils::Scalar& val,
94 const biorbd::utils::Scalar& val)
96 *m_neuralCommand = val;
100 const biorbd::utils::Scalar&,
103 biorbd::utils::Scalar expShapeFactor(exp(*m_shapeFactor));
104 *m_activation = ( pow(expShapeFactor, *m_excitation) - 1) / (expShapeFactor - 1) ;
109 *m_stateType = biorbd::muscles::STATE_TYPE::BUCHANAN;