]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/YASim/Rotor.cpp
When we are asked to produce no force on a Surface (e.g. a weight that
[flightgear.git] / src / FDM / YASim / Rotor.cpp
index 0d811d2f89d4855d7de9343b769bf6483e203377..142ff75eb942ec404e5d4539eacc6d8a24ab5a08 100644 (file)
@@ -5,16 +5,21 @@
 #include "Rotorpart.hpp"
 #include "Rotorblade.hpp"
 #include "Rotor.hpp"
-#include <iostream>
-#include <iomanip>
+
+#include STL_IOSTREAM
+#include STL_IOMANIP
 
 SG_USING_STD(setprecision);
 
 //#include <string.h>
+#include <stdio.h>
+
 namespace yasim {
 
 const float pi=3.14159;
 
+static inline float sqr(float a) { return a * a; }
+
 Rotor::Rotor()
 {
     _alpha0=-.05;
@@ -87,7 +92,7 @@ void Rotor::inititeration(float dt)
 {
    if ((_engineon)&&(_omegarel>=1)) return;
    if ((!_engineon)&&(_omegarel<=0)) return;
-   _omegarel+=dt*1/5.*(_engineon?1:-1); //hier 30
+   _omegarel+=dt*1/30.*(_engineon?1:-1);
    _omegarel=Math::clamp(_omegarel,0,1);
    _omega=_omegan*_omegarel;
    int i;
@@ -215,8 +220,8 @@ int Rotor::getValueforFGSet(int j,char *text,float *f)
        rk=l-p;
        rl=1-rk;
        /*
-       rl=Math::sqr(Math::sin(rl*pi/2));
-       rk=Math::sqr(Math::sin(rk*pi/2));
+       rl=sqr(Math::sin(rl*pi/2));
+       rk=sqr(Math::sin(rk*pi/2));
        */
        if(w==2) {k+=2;l+=2;}
        else
@@ -562,7 +567,7 @@ void Rotor::compile()
 
     float phi=Math::atan2(2*omega*_delta,omega0*omega0-omega*omega);
     //float relamp=omega*omega/(2*_delta*Math::sqrt(omega0*omega0-_delta*_delta));
-    float relamp=omega*omega/(2*_delta*Math::sqrt(Math::sqr(omega0*omega0-omega*omega)+4*_delta*_delta*omega*omega));
+    float relamp=omega*omega/(2*_delta*Math::sqrt(sqr(omega0*omega0-omega*omega)+4*_delta*_delta*omega*omega));
     if (!_no_torque)
     {
        torque0=_power_at_pitch_0/4*1000/omega;
@@ -660,8 +665,8 @@ void Rotor::compile()
     //_delta=omega*_delta;
     _delta*=maxpitchforce/(_max_pitch*omega*lentocenter*2*_weight_per_blade*.453);
     float phi=Math::atan2(2*omega*_delta,omega0*omega0-omega*omega);
-    float phi2=Math::abs(omega0-omega)<.000000001?pi/2:Math::atan(2*omega*_delta/(omega0*omega0-omega*omega));
-    float relamp=omega*omega/(2*_delta*Math::sqrt(Math::sqr(omega0*omega0-omega*omega)+4*_delta*_delta*omega*omega));
+    // float phi2=Math::abs(omega0-omega)<.000000001?pi/2:Math::atan(2*omega*_delta/(omega0*omega0-omega*omega));
+    float relamp=omega*omega/(2*_delta*Math::sqrt(sqr(omega0*omega0-omega*omega)+4*_delta*_delta*omega*omega));
     if (!_no_torque)
     {
        torque0=_power_at_pitch_0/_number_of_blades*1000/omega;
@@ -694,7 +699,8 @@ void Rotor::compile()
            << " relamp: " << relamp
            << " delta: " <<_delta);
 
-    float lspeed[3],dirzentforce[3];
+    // float lspeed[3];
+    float dirzentforce[3];
 
     float f=(!_ccw)?1:-1;
     //Math::mul3(f*speed,directions[1],lspeed);