1
0
mirror of https://gitlab.com/lander-team/lander-cpp.git synced 2025-06-16 07:06:51 +00:00

Resolve "More verbose simulation results"

This commit is contained in:
Anson Biggs 2021-10-14 18:14:13 +00:00
parent 11b7b41469
commit b30154a62d
3 changed files with 32 additions and 24 deletions

View File

@ -1,6 +1,7 @@
{
"recommendations": [
"ms-vscode.cpptools",
"wayou.vscode-todo-highlight"
"wayou.vscode-todo-highlight",
"usernamehw.errorlens"
]
}

View File

@ -1,6 +1,8 @@
#include "Vehicle.h"
#include "outVector.h"
#include <iostream>
void burnStartTimeCalc(struct Vehicle &);
void thrustSelection(struct Vehicle &, int t);
void lqrCalc(struct Vehicle &);
@ -38,19 +40,33 @@ bool sim(struct Vehicle &State, struct Vehicle &PrevState) {
write2CSV(stateVector, State);
bool returnValue;
bool pass = 1;
if (abs(State.vz) < 5) {
if ((abs(State.yaw) < 5) && (abs(State.pitch) < 5)) {
returnValue = 1;
} else {
returnValue = 0;
}
double landing_angle =
pow(State.yaw * State.yaw + State.pitch * State.pitch, .5);
double landing_velocity =
pow(State.vx * State.vx + State.vy * State.vy + State.vz * State.vz, .5);
if (landing_angle < 5.0) {
std::cout << " Landing Angle < 5° | PASS | ";
} else {
returnValue = 0;
std::cout << " Landing Angle < 5° | FAIL | ";
pass = pass * 0;
}
std::cout << "Final Angles: [" << State.yaw << ", " << State.pitch << "]"
<< std::endl;
return returnValue;
if (landing_velocity < 5.0) {
std::cout << "Landing Velocity < 5 m/s | PASS | ";
} else {
std::cout << "Landing Velocity < 5 m/s | FAIL | ";
pass = pass * 0;
}
std::cout << "Final Velocity: [" << State.vx << ", " << State.vy << ", "
<< State.vz << "]" << std::endl;
return pass;
}
void burnStartTimeCalc(Vehicle &State) {
@ -344,8 +360,6 @@ void write2CSV(outVector &stateVector, Vehicle &State) {
"pitchdot, rolldot, Servo1, Servo2, thrustFiring"
<< std::endl;
std::cout << "Writing to csv...\n";
// writing to output file
for (int t = 0; t < State.simTime; t++) {
outfile << t << ", ";
@ -377,6 +391,7 @@ void write2CSV(outVector &stateVector, Vehicle &State) {
}
outfile.close();
std::cout << "simOut.csv created successfully.\n" << std::endl;
}
double derivative(double current, double previous, double step) {

View File

@ -52,16 +52,8 @@ int main() {
bool outcome = sim(State, PrevState);
std::cout << "Finished"
<< "\n";
if (outcome == 1) {
std::cout << "Sim Result = Success!";
return 0;
} else if (outcome == 0) {
std::cout << "Sim Result = Failed!";
// return 1; Until I figure out how to make CI/CD continue even when run
// fails.
return 0;
}
std::cout << std::endl << "Simulation Complete 🚀" << std::endl;
// ^^^
// 50% chance this makes Mattys linux crash
return 0;
}