Beispiel #1
0
        public virtual float SendTorque(float torque, float inertiaSum, float dt)
        {
            if (_outputAIsNull)
            {
                return(torque);
            }

            float T = outputA.SendTorque(torque, inertiaSum + inertia, dt);

            return(T);
        }
Beispiel #2
0
        public override float SendTorque(float torque, float inertiaSum, float dt)
        {
            if (_outputAIsNull || _outputBIsNull)
            {
                return(torque);
            }

            float Wa = outputA.QueryAngularVelocity(angularVelocity, dt);
            float Wb = outputB.QueryAngularVelocity(angularVelocity, dt);

            float Ia = outputA.QueryInertia();
            float Ib = outputB.QueryInertia();

            splitTorqueDelegate.Invoke(torque, Wa, Wb, Ia, Ib, dt, biasAB, preload, stiffness, powerRamp,
                                       coastRamp, slipTorque, out float Ta, out float Tb);
            return(outputA.SendTorque(Ta, inertiaSum + Ia, dt) + outputB.SendTorque(Tb, inertiaSum + Ib, dt));
        }