Skip to content
Snippets Groups Projects
Commit b1d62169 authored by andy's avatar andy
Browse files

BUG: rotor momentum source - trim model corrected force coeff calc for incompressible

parent 53dd1326
Branches
Tags
No related merge requests found
...@@ -662,8 +662,8 @@ bool Foam::rotorDiskSource::read(const dictionary& dict) ...@@ -662,8 +662,8 @@ bool Foam::rotorDiskSource::read(const dictionary& dict)
flapCoeffs.lookup("beta1c") >> flap_.beta1c; flapCoeffs.lookup("beta1c") >> flap_.beta1c;
flapCoeffs.lookup("beta2s") >> flap_.beta2s; flapCoeffs.lookup("beta2s") >> flap_.beta2s;
flap_.beta0 = degToRad(flap_.beta0); flap_.beta0 = degToRad(flap_.beta0);
flap_.beta1 = degToRad(flap_.beta1); flap_.beta1c = degToRad(flap_.beta1c);
flap_.beta2 = degToRad(flap_.beta2); flap_.beta2s = degToRad(flap_.beta2s);
// create co-ordinate system // create co-ordinate system
......
...@@ -88,7 +88,7 @@ Foam::vector Foam::targetCoeffTrim::calcCoeffs ...@@ -88,7 +88,7 @@ Foam::vector Foam::targetCoeffTrim::calcCoeffs
} }
reduce(cf, sumOp<vector>()); reduce(cf, sumOp<vector>());
return cf; return cf;
} }
...@@ -176,6 +176,8 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force) ...@@ -176,6 +176,8 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force)
Info<< type() << ":" << nl Info<< type() << ":" << nl
<< " solving for target trim coefficients" << nl; << " solving for target trim coefficients" << nl;
const scalar rhoRef = rotor_.rhoRef();
// iterate to find new pitch angles to achieve target force // iterate to find new pitch angles to achieve target force
scalar err = GREAT; scalar err = GREAT;
label iter = 0; label iter = 0;
...@@ -210,7 +212,7 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force) ...@@ -210,7 +212,7 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force)
} }
// calculate the change in pitch angle vector // calculate the change in pitch angle vector
vector dt = inv(J) & (target_ - old); vector dt = inv(J) & (target_/rhoRef - old);
// update pitch angles // update pitch angles
vector thetaNew = theta_ + relax_*dt; vector thetaNew = theta_ + relax_*dt;
...@@ -236,9 +238,9 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force) ...@@ -236,9 +238,9 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force)
} }
Info<< " current and target coefficients:" << nl Info<< " current and target coefficients:" << nl
<< " thrust = " << old[0] << ", " << target_[0] << nl << " thrust = " << old[0]*rhoRef << ", " << target_[0] << nl
<< " pitch = " << old[1] << ", " << target_[1] << nl << " pitch = " << old[1]*rhoRef << ", " << target_[1] << nl
<< " roll = " << old[2] << ", " << target_[2] << nl << " roll = " << old[2]*rhoRef << ", " << target_[2] << nl
<< " new pitch angles [deg]:" << nl << " new pitch angles [deg]:" << nl
<< " theta0 = " << radToDeg(theta_[0]) << nl << " theta0 = " << radToDeg(theta_[0]) << nl
<< " theta1c = " << radToDeg(theta_[1]) << nl << " theta1c = " << radToDeg(theta_[1]) << nl
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment