public Muscle(double q) { CE = new ContractileElement(); PEE = new ParallelElasticElement(CE); SDE = new SerialDampingElement(CE); SEE = new SerialElasticElement(); double l_MTC_init = 0.092 + 0.172; // [m] initial MTC length double q_CE_init = q; // [] initial muscle activity 0...1 double l_CE_init = getl_CE_init(q_CE_init); l_MTC = l_MTC_init; l_CE = l_CE_init; v_MTC = 0.0; v_CE = 0.0; }
public Muscle2(double q) { CE = new ContractileElement(); PEE = new ParallelElasticElement(CE); SDE = new SerialDampingElement(CE); SEE = new SerialElasticElement(); //This length may vary for different muscles double l_MTC_init = 0.92 + 0.172; // [m] initial MTC length double q_CE_init = q; // [] initial muscle activity 0...1 //The initial muslce length is based on the activation value q double l_CE_init = getl_CE_init(q_CE_init); l_MTC = l_MTC_init; l_CE = l_CE_init; v_MTC = 0.0; v_CE = 0.0; }
public SerialDampingElement(ContractileElement ce) { d_SEmax = D_SDE * (ce.F_max * ce.A_rel0) / (ce.l_CEopt * ce.B_rel0); }
public ParallelElasticElement(ContractileElement ce) { l_PEE0 = L_PEE0 * ce.l_CEopt; K_PEE = F_PEE * (ce.F_max / Mathf.Pow((float)(ce.l_CEopt * (ce.DeltaW_limb_des + 1 - L_PEE0)), (float)v_PEE)); }