Exemplo n.º 1
0
    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;
    }
Exemplo n.º 2
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;
    }
Exemplo n.º 3
0
 public SerialDampingElement(ContractileElement ce)
 {
     d_SEmax = D_SDE * (ce.F_max * ce.A_rel0) / (ce.l_CEopt * ce.B_rel0);
 }
Exemplo n.º 4
0
 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));
 }