Shell Eco Fuelcell controller

Dependencies:   FastPWM mbed

Committer:
HMFK03LST1
Date:
Tue Jan 07 12:02:52 2014 +0000
Revision:
0:adf68d4b873f
work in Progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HMFK03LST1 0:adf68d4b873f 1 #include "mbed.h"
HMFK03LST1 0:adf68d4b873f 2
HMFK03LST1 0:adf68d4b873f 3 typedef struct
HMFK03LST1 0:adf68d4b873f 4 {
HMFK03LST1 0:adf68d4b873f 5 uint16_t voltage_act; // Actual CAP Voltage
HMFK03LST1 0:adf68d4b873f 6 uint16_t voltage_low; // Switch to full current
HMFK03LST1 0:adf68d4b873f 7 uint16_t voltage_mid; // Switch to medium current
HMFK03LST1 0:adf68d4b873f 8 uint16_t voltage_high; // Switch to minimum current
HMFK03LST1 0:adf68d4b873f 9 uint16_t voltage_max; // Stopp loading
HMFK03LST1 0:adf68d4b873f 10 uint16_t voltage_down; // reduce Voltage (CAP down)
HMFK03LST1 0:adf68d4b873f 11 uint16_t current_low; // minimum current
HMFK03LST1 0:adf68d4b873f 12 uint16_t current_mid; // medium current
HMFK03LST1 0:adf68d4b873f 13 uint16_t current_high; // high current
HMFK03LST1 0:adf68d4b873f 14 } struct_cap;
HMFK03LST1 0:adf68d4b873f 15
HMFK03LST1 0:adf68d4b873f 16 typedef struct
HMFK03LST1 0:adf68d4b873f 17 {
HMFK03LST1 0:adf68d4b873f 18 uint16_t air_needed;
HMFK03LST1 0:adf68d4b873f 19 uint16_t current_act;
HMFK03LST1 0:adf68d4b873f 20 uint16_t current_load;
HMFK03LST1 0:adf68d4b873f 21 uint16_t temp_act;
HMFK03LST1 0:adf68d4b873f 22 uint16_t temp_max;
HMFK03LST1 0:adf68d4b873f 23 uint16_t voltage_act;
HMFK03LST1 0:adf68d4b873f 24 uint16_t voltage_max;
HMFK03LST1 0:adf68d4b873f 25 } struct_fuelcell;
HMFK03LST1 0:adf68d4b873f 26
HMFK03LST1 0:adf68d4b873f 27 typedef struct
HMFK03LST1 0:adf68d4b873f 28 {
HMFK03LST1 0:adf68d4b873f 29 bool fan_override;
HMFK03LST1 0:adf68d4b873f 30 uint16_t fan_over_pwm; //name
HMFK03LST1 0:adf68d4b873f 31 uint16_t fan_p;
HMFK03LST1 0:adf68d4b873f 32 uint16_t fan_i;
HMFK03LST1 0:adf68d4b873f 33 uint16_t fan_thr;
HMFK03LST1 0:adf68d4b873f 34 short fan_up; //add
HMFK03LST1 0:adf68d4b873f 35 short fan_up_count; //add
HMFK03LST1 0:adf68d4b873f 36 short fan_pwm;
HMFK03LST1 0:adf68d4b873f 37 uint16_t fan_pwm_act;
HMFK03LST1 0:adf68d4b873f 38 bool pump_override;
HMFK03LST1 0:adf68d4b873f 39 uint16_t pump_over_pwm; //name
HMFK03LST1 0:adf68d4b873f 40 uint16_t pump_min;
HMFK03LST1 0:adf68d4b873f 41 uint16_t pump_p;
HMFK03LST1 0:adf68d4b873f 42 uint16_t pump_i;
HMFK03LST1 0:adf68d4b873f 43 short pump_up; //add
HMFK03LST1 0:adf68d4b873f 44 short pump_up_count; //add
HMFK03LST1 0:adf68d4b873f 45 short pump_pwm;
HMFK03LST1 0:adf68d4b873f 46 uint16_t pump_pwm_act;
HMFK03LST1 0:adf68d4b873f 47 uint16_t temp_out;
HMFK03LST1 0:adf68d4b873f 48 } struct_h2o;
HMFK03LST1 0:adf68d4b873f 49
HMFK03LST1 0:adf68d4b873f 50 typedef struct
HMFK03LST1 0:adf68d4b873f 51 {
HMFK03LST1 0:adf68d4b873f 52 uint16_t current_act;
HMFK03LST1 0:adf68d4b873f 53 uint16_t current_delta;
HMFK03LST1 0:adf68d4b873f 54 uint16_t current_load;
HMFK03LST1 0:adf68d4b873f 55 uint16_t i; // added
HMFK03LST1 0:adf68d4b873f 56 uint16_t pwm;
HMFK03LST1 0:adf68d4b873f 57 uint16_t pwm_act;
HMFK03LST1 0:adf68d4b873f 58 uint16_t temp_act;
HMFK03LST1 0:adf68d4b873f 59 uint16_t temp_max;
HMFK03LST1 0:adf68d4b873f 60 } struct_mosfet;
HMFK03LST1 0:adf68d4b873f 61
HMFK03LST1 0:adf68d4b873f 62 typedef struct
HMFK03LST1 0:adf68d4b873f 63 {
HMFK03LST1 0:adf68d4b873f 64 uint16_t air_current;
HMFK03LST1 0:adf68d4b873f 65 uint16_t air_needed;
HMFK03LST1 0:adf68d4b873f 66 uint16_t water_created; //name
HMFK03LST1 0:adf68d4b873f 67 uint16_t back_lower;
HMFK03LST1 0:adf68d4b873f 68 uint16_t delta_t;
HMFK03LST1 0:adf68d4b873f 69 uint16_t lambda;
HMFK03LST1 0:adf68d4b873f 70 uint16_t lambda_max;
HMFK03LST1 0:adf68d4b873f 71 uint16_t lambda_min;
HMFK03LST1 0:adf68d4b873f 72 short lambda_delta;
HMFK03LST1 0:adf68d4b873f 73 short lambda_delta_sum;
HMFK03LST1 0:adf68d4b873f 74 bool pump_on;
HMFK03LST1 0:adf68d4b873f 75 bool pump_override;
HMFK03LST1 0:adf68d4b873f 76 uint16_t pump_over_load; //name
HMFK03LST1 0:adf68d4b873f 77 uint16_t pump_load; //name
HMFK03LST1 0:adf68d4b873f 78 uint16_t pump_load_act; //name
HMFK03LST1 0:adf68d4b873f 79 short pump_up;
HMFK03LST1 0:adf68d4b873f 80 short pump_up_count;
HMFK03LST1 0:adf68d4b873f 81 uint16_t pump_pwm_1;
HMFK03LST1 0:adf68d4b873f 82 uint16_t pump_pwm_2;
HMFK03LST1 0:adf68d4b873f 83 bool pump_dual; //name
HMFK03LST1 0:adf68d4b873f 84 uint16_t pump_dual_on; //added
HMFK03LST1 0:adf68d4b873f 85 uint16_t pump_dual_off; //added
HMFK03LST1 0:adf68d4b873f 86 uint16_t rh_out_delta
HMFK03LST1 0:adf68d4b873f 87 uint16_t rh_pump_load;
HMFK03LST1 0:adf68d4b873f 88 uint16_t rh_pump_min;
HMFK03LST1 0:adf68d4b873f 89 uint16_t rh_pump_max;
HMFK03LST1 0:adf68d4b873f 90 uint16_t rh_out_min;
HMFK03LST1 0:adf68d4b873f 91 uint16_t rh_out_max;
HMFK03LST1 0:adf68d4b873f 92 uint16_t rh_back_p;
HMFK03LST1 0:adf68d4b873f 93 uint16_t rh_in;
HMFK03LST1 0:adf68d4b873f 94 uint16_t rh_out;
HMFK03LST1 0:adf68d4b873f 95 uint16_t temp_in;
HMFK03LST1 0:adf68d4b873f 96 uint16_t temp_out; // added
HMFK03LST1 0:adf68d4b873f 97 uint16_t temp_calc;
HMFK03LST1 0:adf68d4b873f 98 uint16_t water_extracted;
HMFK03LST1 0:adf68d4b873f 99 uint16_t water_in;
HMFK03LST1 0:adf68d4b873f 100 uint16_t water_out;
HMFK03LST1 0:adf68d4b873f 101
HMFK03LST1 0:adf68d4b873f 102 } struct_o2;
HMFK03LST1 0:adf68d4b873f 103
HMFK03LST1 0:adf68d4b873f 104 typedef struct
HMFK03LST1 0:adf68d4b873f 105 {
HMFK03LST1 0:adf68d4b873f 106 bool capdown;
HMFK03LST1 0:adf68d4b873f 107 bool drive;
HMFK03LST1 0:adf68d4b873f 108 bool master;
HMFK03LST1 0:adf68d4b873f 109 bool safety;
HMFK03LST1 0:adf68d4b873f 110 } struct_switch;
HMFK03LST1 0:adf68d4b873f 111
HMFK03LST1 0:adf68d4b873f 112 typedef struct
HMFK03LST1 0:adf68d4b873f 113 {
HMFK03LST1 0:adf68d4b873f 114 bool cap_down_load;
HMFK03LST1 0:adf68d4b873f 115 bool cap_down_reset;
HMFK03LST1 0:adf68d4b873f 116 bool cap_load;
HMFK03LST1 0:adf68d4b873f 117 bool cap_voltage_reset;
HMFK03LST1 0:adf68d4b873f 118 bool fuelcell;
HMFK03LST1 0:adf68d4b873f 119 bool fc_overtemp;
HMFK03LST1 0:adf68d4b873f 120 bool fc_overvoltage;
HMFK03LST1 0:adf68d4b873f 121 bool load;
HMFK03LST1 0:adf68d4b873f 122 bool load_act;
HMFK03LST1 0:adf68d4b873f 123 bool load_reset;
HMFK03LST1 0:adf68d4b873f 124 bool mosfet;
HMFK03LST1 0:adf68d4b873f 125 bool mos_overtemp;
HMFK03LST1 0:adf68d4b873f 126 bool run;
HMFK03LST1 0:adf68d4b873f 127 bool temp;
HMFK03LST1 0:adf68d4b873f 128 bool voltage;
HMFK03LST1 0:adf68d4b873f 129 uint16_t count;
HMFK03LST1 0:adf68d4b873f 130 uint16_t h2_analog;
HMFK03LST1 0:adf68d4b873f 131 uint16_t safety_V;
HMFK03LST1 0:adf68d4b873f 132 uint16_t current_out;
HMFK03LST1 0:adf68d4b873f 133 } struct_system;
HMFK03LST1 0:adf68d4b873f 134
HMFK03LST1 0:adf68d4b873f 135 typedef struct
HMFK03LST1 0:adf68d4b873f 136 {
HMFK03LST1 0:adf68d4b873f 137 bool o2_in;
HMFK03LST1 0:adf68d4b873f 138 bool o2_out;
HMFK03LST1 0:adf68d4b873f 139 bool mosfet_temp;
HMFK03LST1 0:adf68d4b873f 140 bool fc_voltage;
HMFK03LST1 0:adf68d4b873f 141 bool cap_voltage;
HMFK03LST1 0:adf68d4b873f 142 bool mosfet_cur;
HMFK03LST1 0:adf68d4b873f 143 bool h2o_temp_out;
HMFK03LST1 0:adf68d4b873f 144 bool t_1;
HMFK03LST1 0:adf68d4b873f 145 bool t_2;
HMFK03LST1 0:adf68d4b873f 146 bool t_3;
HMFK03LST1 0:adf68d4b873f 147 bool t_4;
HMFK03LST1 0:adf68d4b873f 148 bool t_5;
HMFK03LST1 0:adf68d4b873f 149 bool t_6;
HMFK03LST1 0:adf68d4b873f 150 bool t_7;
HMFK03LST1 0:adf68d4b873f 151 bool t_8;
HMFK03LST1 0:adf68d4b873f 152 bool o_1;
HMFK03LST1 0:adf68d4b873f 153 bool o_2;
HMFK03LST1 0:adf68d4b873f 154 bool o_3;
HMFK03LST1 0:adf68d4b873f 155 bool o_4;
HMFK03LST1 0:adf68d4b873f 156 bool o_5;
HMFK03LST1 0:adf68d4b873f 157 bool o_6;
HMFK03LST1 0:adf68d4b873f 158 bool o_7;
HMFK03LST1 0:adf68d4b873f 159 }struct_error;
HMFK03LST1 0:adf68d4b873f 160
HMFK03LST1 0:adf68d4b873f 161 /*
HMFK03LST1 0:adf68d4b873f 162 struct_cap cap;
HMFK03LST1 0:adf68d4b873f 163 struct_fuelcell fuelcell;
HMFK03LST1 0:adf68d4b873f 164 struct_h2o h2o;
HMFK03LST1 0:adf68d4b873f 165 struct_mosfet mosfet;
HMFK03LST1 0:adf68d4b873f 166 struct_o2 o2;
HMFK03LST1 0:adf68d4b873f 167 struct_switch switches;
HMFK03LST1 0:adf68d4b873f 168 struct_system sys;
HMFK03LST1 0:adf68d4b873f 169 struct_error error;
HMFK03LST1 0:adf68d4b873f 170 */