[fix] Fixed aerodynamic unittests

-changed FinSetCalc to output per-instance CNa
This commit is contained in:
Daniel_M_Williams 2017-12-25 15:26:44 -05:00
parent 1fac8818b5
commit 6289aef0ef
2 changed files with 5 additions and 11 deletions

View File

@ -5,9 +5,6 @@ import static net.sf.openrocket.util.MathUtil.pow2;
import java.util.Arrays; import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.sf.openrocket.aerodynamics.AerodynamicForces; import net.sf.openrocket.aerodynamics.AerodynamicForces;
import net.sf.openrocket.aerodynamics.FlightConditions; import net.sf.openrocket.aerodynamics.FlightConditions;
import net.sf.openrocket.aerodynamics.Warning; import net.sf.openrocket.aerodynamics.Warning;
@ -23,9 +20,6 @@ import net.sf.openrocket.util.PolyInterpolator;
public class FinSetCalc extends RocketComponentCalc { public class FinSetCalc extends RocketComponentCalc {
/** logger for debugging*/
private final static Logger logger = LoggerFactory.getLogger(FinSetCalc.class);
/** considers the stall angle as 20 degrees*/ /** considers the stall angle as 20 degrees*/
private static final double STALL_ANGLE = (20 * Math.PI / 180); private static final double STALL_ANGLE = (20 * Math.PI / 180);
@ -83,8 +77,8 @@ public class FinSetCalc extends RocketComponentCalc {
} }
/* /*
* Calculates the non-axial forces produced by the fins (normal and side forces, * Calculates the non-axial forces produced by *one* *instance* of the fins.
* pitch, yaw and roll moments, CP position, CNa). * (normal and side forces, pitch, yaw and roll moments, CP position, CNa).
*/ */
@Override @Override
public void calculateNonaxialForces(FlightConditions conditions, public void calculateNonaxialForces(FlightConditions conditions,
@ -130,7 +124,7 @@ public class FinSetCalc extends RocketComponentCalc {
cna = cna1 * mul; cna = cna1 * mul;
} else { } else {
// Basic CNa assuming full efficiency // Basic CNa assuming full efficiency
cna = cna1 * finCount / 2.0; cna = cna1 / 2.0;
} }
// logger.debug("Component cna = {}", cna); // logger.debug("Component cna = {}", cna);

View File

@ -63,7 +63,7 @@ public class FinSetCalcTest {
double exp_cna_fins = 24.146933; double exp_cna_fins = 24.146933;
double exp_cpx_fins = 0.0193484; double exp_cpx_fins = 0.0193484;
assertEquals(" FinSetCalc produces bad CNa: ", exp_cna_fins, forces.getCNa(), EPSILON); assertEquals(" FinSetCalc produces bad CNa: ", exp_cna_fins, forces.getCNa()*fins.getInstanceCount(), EPSILON);
assertEquals(" FinSetCalc produces bad C_p.x: ", exp_cpx_fins, forces.getCP().x, EPSILON); assertEquals(" FinSetCalc produces bad C_p.x: ", exp_cpx_fins, forces.getCP().x, EPSILON);
assertEquals(" FinSetCalc produces bad CN: ", 0.0, forces.getCN(), EPSILON); assertEquals(" FinSetCalc produces bad CN: ", 0.0, forces.getCN(), EPSILON);
assertEquals(" FinSetCalc produces bad C_m: ", 0.0, forces.getCm(), EPSILON); assertEquals(" FinSetCalc produces bad C_m: ", 0.0, forces.getCm(), EPSILON);
@ -97,7 +97,7 @@ public class FinSetCalcTest {
double exp_cna_fins = 32.195911; double exp_cna_fins = 32.195911;
double exp_cpx_fins = 0.0193484; double exp_cpx_fins = 0.0193484;
assertEquals(" FinSetCalc produces bad CNa: ", exp_cna_fins, forces.getCNa(), EPSILON); assertEquals(" FinSetCalc produces bad CNa: ", exp_cna_fins, forces.getCNa()*fins.getFinCount(), EPSILON);
assertEquals(" FinSetCalc produces bad C_p.x: ", exp_cpx_fins, forces.getCP().x, EPSILON); assertEquals(" FinSetCalc produces bad C_p.x: ", exp_cpx_fins, forces.getCP().x, EPSILON);
assertEquals(" FinSetCalc produces bad CN: ", 0.0, forces.getCN(), EPSILON); assertEquals(" FinSetCalc produces bad CN: ", 0.0, forces.getCN(), EPSILON);
assertEquals(" FinSetCalc produces bad C_m: ", 0.0, forces.getCm(), EPSILON); assertEquals(" FinSetCalc produces bad C_m: ", 0.0, forces.getCm(), EPSILON);