Skip to content
Snippets Groups Projects

Feature/constraint analysis workshop updates

Merged Meric Taneri requested to merge feature/constraint_analysis_workshop_updates into develop
@@ -105,7 +105,9 @@ void EnergyBased::operator()()
break;
}
}
Mattingly::constraint_analysis constraint_analysis_plotting = constraint_analysis_tool;
readMission mission_data(missionCSV);
assess_constraints(W_over_S_data, constraint_analysis_tool, mission_data, engine);
@@ -141,9 +143,30 @@ void EnergyBased::operator()()
/* Plot the complete design chart with constraints, boundaries and design point*/
std::string plotting = this->configuration()->at("module_configuration_file/control_settings/plot_output/enable/value");
if (plotting == "true") {
WS_start = 50;
WS_end = 820;
WS_size = WS_end - WS_start + 1; // Range from 50 to 820, inclusive
std::vector<double> W_over_S_data(WS_size);
for (int i = 0; i < WS_size; ++i) {
W_over_S_data[i] = (WS_start + i) * 9.81;
}
this->constraint_list = {};
this->boundaries = {};
assess_constraints(W_over_S_data, constraint_analysis_plotting, mission_data, engine);
Simple_Analysis min_finder_2 = Simple_Analysis(this->constraint_list, this->aircraft_xml(), this->boundaries);
min_finder_2.find_dominant_curve();
ConstraintAnalysis_Plot ca_plot;
ca_plot.fill_infeasible_area(W_over_S_data, min_finder.dominant_thrust_to_weight, boundaries);
ca_plot.fill_infeasible_area(W_over_S_data, min_finder_2.dominant_thrust_to_weight, boundaries);
for (auto ca_case : this->constraint_list)
{
ca_plot.add_curve(ca_case.wing_loading, ca_case.thrust_to_weight, ca_case.constraint_case);
Loading