Skip to content
Snippets Groups Projects
Commit 385212f2 authored by Matthias Grob's avatar Matthias Grob Committed by ChristophTobler
Browse files

Simulator: virtual battery drain stops by default at 50% to avoid failing...

Simulator: virtual battery drain stops by default at 50% to avoid failing preflight checks to take off again
also added comments and removed throttle compensation because there is no real battery emulation with load drop
parent 8c998c13
No related branches found
No related tags found
No related merge requests found
......@@ -368,14 +368,16 @@ void Simulator::handle_message(mavlink_message_t *msg, bool publish)
batt_sim_start = now;
}
float ibatt = -1.0f;
float ibatt = -1.0f; // no current sensor in simulation
const float minimum_percentage = 0.5f; // change this value if you want to simulate low battery reaction
const float battery_time = (now - batt_sim_start) / discharge_interval_us;
float vbatt = math::gradual(battery_time, 0.f, 1.f, _battery.full_cell_voltage(), _battery.empty_cell_voltage());
/* Simulate the voltage of a linearly draining battery but stop at the minimum percentage */
float battery_percentage = (now - batt_sim_start) / discharge_interval_us;
battery_percentage = math::min(battery_percentage, minimum_percentage);
float vbatt = math::gradual(battery_percentage, 0.f, 1.f, _battery.full_cell_voltage(), _battery.empty_cell_voltage());
vbatt *= _battery.cell_count();
// TODO: don't hard-code throttle.
const float throttle = 0.5f;
const float throttle = 0.0f; // simulate no throttle compensation to make the estimate predictable
_battery.updateBatteryStatus(now, vbatt, ibatt, true, true, 0, throttle, armed, &_battery_status);
// publish the battery voltage
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment