1
0
mirror of https://gitlab.com/lander-team/lander-cpp.git synced 2025-08-17 02:24:50 +00:00

Fixed differences between native and teensy, added getThrust() function to clean up thrustInfo()

This commit is contained in:
bpmcgeeney
2021-11-11 21:58:57 -07:00
parent f0577a8fce
commit 0058af9667
6 changed files with 61 additions and 65 deletions

View File

@@ -35,7 +35,6 @@ void initFile() {
Serial.println("Card initialized.");
int i = 1;
Serial.print("simOut_" + String(i) + ".csv");
const char *fileName;
if (SD.exists("simOut.csv")) {
@@ -84,38 +83,22 @@ void thrustInfo(Vehicle &State) {
Serial.println("WARNING: thrustInfo not implemented for TEENSY");
}
if (State.burnElapsed != 2000) {
// determine where in the thrust curve we're at based on elapsed burn time
// as well as current mass
if ((abs(State.burnVelocity + State.vz) < 1.03) &&
(State.thrustFiring == 0)) {
// Start burn
State.burnStart = State.time;
State.burnElapsed = 0.0;
State.thrustFiring = 1;
getThrust(State);
} else if (State.thrustFiring == 1) {
State.burnElapsed = (State.time - State.burnStart) / 1000.0;
State.mass = State.massInitial - (State.mdot * State.burnElapsed);
} else if (abs(State.burnVelocity + State.vz) < 0.01) {
// Start burn
State.burnStart = State.time;
State.burnElapsed = 0;
getThrust(State);
} else {
State.burnElapsed = 2000; // arbitrary number to ensure we don't burn
}
// Serial.println(abs(State.burnVelocity + State.vz));
if ((State.burnElapsed > 0.147) && (State.burnElapsed < 0.420)) {
State.thrustFiring = true;
State.thrust = 65.165 * State.burnElapsed - 2.3921;
} else if ((State.burnElapsed > 0.419) && (State.burnElapsed < 3.383))
State.thrust = 0.8932 * pow(State.burnElapsed, 6) -
11.609 * pow(State.burnElapsed, 5) +
60.739 * pow(State.burnElapsed, 4) -
162.99 * pow(State.burnElapsed, 3) +
235.6 * pow(State.burnElapsed, 2) -
174.43 * State.burnElapsed + 67.17;
else if ((State.burnElapsed > 3.382) && (State.burnElapsed < 3.46))
State.thrust = -195.78 * State.burnElapsed - 675.11;
if (State.burnElapsed > 3.45) {
State.thrustFiring = false;
State.thrust = 0.0;
}
}