hebiros_temperature_model.cpp
Go to the documentation of this file.
2 
3 namespace hebiros {
4 namespace sim {
5 
7  double r_be = 8.0; // (found experimentally from steady-state experiments)
8  return TemperatureModel(
9  2.57 * 1.8, // r_wh (datasheet)
10  1.0, // r_hb (Open air from data sheet divided by empirical factor)
11  r_be,
12  0.943 / 2.57, // c_w (winding, datasheet; tc_winding / rth_winding)
13  390.0 / 23.5, // c_h (housing, datasheet) (TC / R)
14  10000.0 / r_be // c_b actuator body; from experimentally measured time constant
15  );
16 }
17 
19  double r_be = 4.0; // (found experimentally from steady-state experiments)
20  return TemperatureModel(
21  1.41 * 1.6, // r_wh (datasheet)
22  1.0, // r_hb (Open air from data sheet divided by empirical factor)
23  r_be,
24  0.9 / 1.41, // c_w (winding, datasheet; tc_winding / rth_winding)
25  427.0 / 17.7, // c_h (housing, datasheet) (TC / R)
26  10000.0 / r_be // c_b actuator body; from experimentally measured time constant
27  );
28 }
29 
30 // Perform an update of all of the stages of the model,
31 // based on the estimated power going into the system
32 void TemperatureModel::update(double power_in, double dt) {
33  // The heat flux between each stage; we calculate
34  // these all _before_ updating the temperatures
35  double q_wh = (t_w_ - t_h_) / r_wh_;
36  double q_hb = (t_h_ - t_b_) / r_hb_;
37  double q_be = (t_b_ - t_e_) / r_be_;
38 
39  // Update the temperature of each phase
40  t_w_ += (power_in - q_wh) * dt / c_w_;
41  t_h_ += (q_wh - q_hb) * dt / c_h_;
42  t_b_ += (q_hb - q_be) * dt / c_b_;
43 }
44 
46  double r_wh, double r_hb, double r_be,
47  double c_w, double c_h, double c_b)
48  : r_wh_(r_wh), r_hb_(r_hb), r_be_(r_be),
49  c_w_(c_w), c_h_(c_h), c_b_(c_b) {
50 }
51 
52 }
53 }
void update(double power_in, double dt)
TemperatureModel(double r_wh, double r_hb, double r_be, double c_w, double c_h, double c_b)


hebiros_gazebo_plugin
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:13:55