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

Revert "Resolved #7 - added inputs.csv for initial conditions"

This reverts commit ee67077664c5f25c4b0b4b0f31f0dbb5f98a1d52
This commit is contained in:
Anson Biggs 2021-09-20 22:03:04 +00:00
parent 7080188063
commit acf37e4b65
2 changed files with 37 additions and 57 deletions

View File

@ -48,7 +48,7 @@ title('Altitude vs Time')
xlabel('Time (s)') xlabel('Time (s)')
ylabel('Altitude (m)') ylabel('Altitude (m)')
ylim([0 z(1)+5]) ylim([0 z(1)+5])
%saveas(gcf,'outputs/Accel-Vel-Alt vs Time.png') saveas(gcf,'outputs/Accel-Vel-Alt vs Time.png')
figure(2) figure(2)
@ -72,7 +72,7 @@ plot(t, rolldot)
title('Angular Velocity vs Time') title('Angular Velocity vs Time')
xlabel('Time (ms)') xlabel('Time (ms)')
ylabel('Angular Velocity (deg/s)') ylabel('Angular Velocity (deg/s)')
%saveas(gcf,'outputs/Euler Angles vs Time.png') saveas(gcf,'outputs/Euler Angles vs Time.png')
legend("yawdot", "pitchdot", "rolldot") legend("yawdot", "pitchdot", "rolldot")
figure(3) figure(3)
@ -90,4 +90,4 @@ plot(t, Servo2)
title('Servo 2 Position vs Time') title('Servo 2 Position vs Time')
xlabel('Time (ms)') xlabel('Time (ms)')
ylabel('Servo 2 Position (rad)') ylabel('Servo 2 Position (rad)')
%saveas(gcf,'outputs/Servo Position vs Time.png') saveas(gcf,'outputs/Servo Position vs Time.png')

View File

@ -3,10 +3,7 @@
#include <cmath> #include <cmath>
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <string>
#include <stdexcept> // std::runtime_error
#include <stdio.h> #include <stdio.h>
#include <vector>
#include "Vehicle.h" #include "Vehicle.h"
#include "sim.h" #include "sim.h"
@ -17,67 +14,50 @@ int main() {
Vehicle State; Vehicle State;
Vehicle PrevState; Vehicle PrevState;
// Create an input filestream
std::ifstream inFile("input.csv");
// Make sure the file is open
if (!inFile.is_open())
throw std::runtime_error("Could not open file");
std::vector<double> varValueVec = std::vector<double>(17, 0.0);
std::string varName, varValue, varUnits;
for (int i; i < 17; i++) {
std::getline(inFile, varName, ',');
std::getline(inFile, varValue, ',');
varValueVec[i] = stod(varValue);
std::getline(inFile, varUnits);
}
// Initial Velocity // Initial Velocity
State.vx = varValueVec[0]; // [m/s] State.vx = 0; // [m/s]
State.vy = varValueVec[1]; // [m/s] State.vy = 0; // [m/s]
State.vz = varValueVec[2]; // [m/s] State.vz = 0; // [m/s]
// Initial YPR // Initial YPR
State.yaw = varValueVec[3] * M_PI / 180; // [rad] State.yaw = 10 * M_PI / 180; // [rad]
State.pitch = varValueVec[4] * M_PI / 180; // [rad] State.pitch = 5 * M_PI / 180; // [rad]
State.roll = varValueVec[5] * M_PI / 180; // [rad] State.roll = 0 * M_PI / 180; // [rad]
// Initial YPRdot // Initial YPRdot
State.yawdot = varValueVec[6] * M_PI / 180; // [rad/s] State.yawdot = 1 * M_PI / 180; // [rad/s]
State.pitchdot = varValueVec[7] * M_PI / 180; // [rad/s] State.pitchdot = -1 * M_PI / 180; // [rad/s]
State.rolldot = varValueVec[8] * M_PI / 180; // [rad/s] State.rolldot = 0 * M_PI / 180; // [rad/s]
// Servo Limitation // Servo Limitation
State.maxServo = varValueVec[9]; // [degs] State.maxServo = 15; // [degs]
// Vehicle Properties // Vehicle Properties
State.massInitial = varValueVec[10]; // [kg] State.massInitial = 1.2; // [kg]
State.vehicleHeight = varValueVec[13]; // [m] State.vehicleHeight = 0.5318; // [m]
State.vehicleRadius = varValueVec[14]; // [m] State.vehicleRadius = 0.05105; // [m]
State.momentArm = varValueVec[15]; // [m] State.momentArm = 0.145; // [m]
// Sim Step Size // Sim Step Size
State.stepSize = varValueVec[16]; // [ms] State.stepSize = 1; // [ms]
// Other Properties // Other Properties
State.burntime = varValueVec[12]; // [s] State.massPropellant = 0.06; // [kg]
State.massPropellant = varValueVec[11]; // [kg] State.massBurnout = State.massInitial - State.massPropellant; // [kg]
State.massBurnout = State.massInitial - State.massPropellant; // [kg] State.burntime = 3.45 - 0.148; // [s]
State.mdot = State.massPropellant / State.burntime; // [kg/s] State.mdot = State.massPropellant / State.burntime; // [kg/s]
State.mass = State.massInitial; // [kg] State.mass = State.massInitial; // [kg]
State.burnElapsed = 2000; // [s] State.burnElapsed = 2000; // [s]
PrevState.thrust = 0; // [N] PrevState.thrust = 0; // [N]
bool outcome = sim(State, PrevState); bool outcome = sim(State, PrevState);
std::cout << "Finished" std::cout << "Finished"
<< "\n"; << "\n";
if (outcome == 1) { if (outcome == 1) {
std::cout << "Sim Result = Success!"; std::cout << "Sim Result = Success!";
return 0; return 0;
} else if (outcome == 0) { } else if (outcome == 0) {
std::cout << "Sim Result = Failed!"; std::cout << "Sim Result = Failed!";
// return 1; Until I figure out how to make CI/CD continue even when run // return 1; Until I figure out how to make CI/CD continue even when run