Exemplo n.º 1
0
        public void TestAirfoil()
        {
            Airfoil airfoil = Airfoil.Get("NACA0012");

            Assert.AreEqual(0.755, airfoil.CL(-165), 0.01);
            Assert.AreEqual(0.256, airfoil.CD(-165), 0.01);
            Assert.AreEqual(0.326, airfoil.CM(-165), 0.01);
        }
Exemplo n.º 2
0
        public override void Update(double dt)
        {
            var normalizedVelocity = Velocity.Normalize(2);
            var alpha = Math.Atan2(normalizedVelocity.z(), normalizedVelocity.x());

            var CL = airfoil.CL(alpha * 180.0 / Math.PI);
            var CD = airfoil.CD(alpha * 180.0 / Math.PI);
            var CM = airfoil.CM(alpha * 180.0 / Math.PI);

            var V2 = Velocity.Norm(2);
            var L  = 0.5 * Density * V2 * span * CL;
            var D  = 0.5 * Density * V2 * span * CD;
            var M  = 0.5 * Density * V2 * span * chord * CM;

            Force = Vector <double> .Build.DenseOfArray(new double[] {
                -D *Math.Cos(alpha) + L *Math.Sin(alpha),
                0,
                -L *Math.Cos(alpha) - D *Math.Sin(alpha)
            });

            Torque = Vector <double> .Build.DenseOfArray(new double[] { 0, M, 0 });
        }