//! Compute energy consumed by a payload entity //! @param[in] label name of the payload //! @param[in] duration amount of time active //! @return energy consumed in Wh float computePayloadEnergy(const std::string& label, float duration) const { if (!m_payloads.size()) return 0.0; std::map<std::string, float>::const_iterator itr; itr = m_payloads.find(label); if (itr == m_payloads.end()) return 0.0; return toWh(itr->second, duration); }
//! Compute energy consumed by motor for some RPM value //! @param[in] rpm value of rpms to convert from //! @param[in] duration amount of time rotating at rpm //! @return energy consumed in Wh float computeMotionEnergy(float rpm, float duration) const { if (rpm <= 0.0f || duration <= 0.0f) return 0.0; float power; if (m_conv_watt.size() == 1) power = rpm * m_conv_watt[0] / m_conv_rpm[0]; else power = Math::piecewiseLI(m_conv_watt , m_conv_rpm, rpm); return toWh(power, duration); }
//! Compute energy consumed by IMU //! @param[in] duration amount of time in seconds //! @return energy consumed in Wh float computeIMUEnergy(float duration) const { return toWh(m_imu_power, duration); }
//! Compute energy consumed by minimal resources //! @param[in] duration amount of time in seconds //! @return energy consumed in Wh float computeHotelEnergy(float duration) const { return toWh(m_hotel_load, duration); }
float Model::computeIMUEnergy(float duration) const { return toWh(m_power_imu, duration); }
float Model::computeHotelEnergy(float duration) const { return toWh(m_power_hotel, duration); }