Example #1
0
        public void GetLocalRH_wheelForceTest()
        {
            var wheel = new RbWheel(
                n: 10,
                R: 10,
                R_max: 15,
                H_wheel: 1,
                H_zac: 1,
                kR: 77,
                muR: 77,
                kH: 66,
                muH: 66);
            var f1 = wheel.GetLocalRH_wheelForce(new Vector3D(0, 10, 0));

            Assert.AreEqual(0d, f1.GetLength(), 0.0000001);

            var p2 = new Vector3D(0, 1, 1).Norm * 10;
            var f2 = wheel.GetLocalRH_wheelForce(p2);

            Assert.AreEqual(0d, f2.GetLength(), 0.0000001);

            var p3 = new Vector3D(0, 1, 1).Norm * 9;
            var f3 = wheel.GetLocalRH_wheelForce(p3);

            Assert.AreEqual(1 * 77d, f3.GetLength(), 0.0000001);

            var p4 = new Vector3D(0, 1, 1).Norm * 9;

            p4.X = wheel.H_wheel * 0.5 + 1;
            var f4 = wheel.GetLocalRH_wheelForce(p4);

            Assert.AreEqual(1 * 77d, f4.GetLength(), 0.0000001);

            var p5 = new Vector3D(0, 1, 1).Norm * 9;

            p5.X = wheel.H_wheel * 0.5 - 0.5;
            var f5 = wheel.GetLocalRH_wheelForce(p5);

            Assert.AreEqual(1 * 77d, f5.GetLength(), 0.0000001);

            var p6 = new Vector3D(0, 1, 1).Norm * 10;

            p6.X = wheel.H_wheel * 0.5 - 0.1;  //0.4
            var f6 = wheel.GetLocalRH_wheelForce(p6);

            Assert.AreEqual(-0.4 * 66, f6.X, 0.0000001);

            var p7 = new Vector3D(0, 1, 1).Norm * 9;

            p7.X = wheel.H_wheel * 0.5 - 0.1;  //0.4
            var f7 = wheel.GetLocalRH_wheelForce(p7);

            Assert.AreEqual(Pow(0.4 * 66, 2) + Pow(77, 2), f7.GetLengthSquared(), 0.0000001);
        }
Example #2
0
        public void GetlocalTauForceTest()
        {
            var wheel = new RbWheel(
                n: 7,
                R: 10,
                R_max: 15,
                H_wheel: 1,
                H_zac: 1,
                kR: 77,
                muR: 77,
                kH: 66,
                muH: 66);

            wheel.Betta = 30 * PI / 180;
            var f     = wheel.GetlocalTauForce(new Vector3D(0.4, -10, 0));
            var yansw = (0.2673 * 10 / 47.8570) * 66;
            var zansw = -(3.5664 * 10 / 47.8570) * 66;

            Assert.IsTrue(Vector3D.ApproxEqual(f, new Vector3D(0, yansw, zansw), 0.1));
        }
Example #3
0
        public void GetClosestIndTest()
        {
            var wheel = new RbWheel(
                n: 7,
                R: 10,
                R_max: 15,
                H_wheel: 1,
                H_zac: 1,
                kR: 77,
                muR: 77,
                kH: 66,
                muH: 66);

            wheel.Betta = 45 * PI / 180;

            Assert.AreEqual(6, wheel.GetClosestInd(new Vector3D(110, 1, 0)));
            Assert.AreEqual(5, wheel.GetClosestInd(new Vector3D(110, 1, -1)));
            Assert.AreEqual(0, wheel.GetClosestInd(new Vector3D(110, 1, 1)));
            Assert.AreEqual(1, wheel.GetClosestInd(new Vector3D(110, 0, 1)));
            Assert.AreEqual(3, wheel.GetClosestInd(new Vector3D(110, -1, 0)));
            Assert.AreEqual(4, wheel.GetClosestInd(new Vector3D(110, -1, -1.01)));
            Assert.AreEqual(0, wheel.GetClosestInd(new Vector3D(110, 1, 0.7)));
        }