1275 /* |
1275 /* |
1276 * A postive value means heating, a negative value cooling. |
1276 * A postive value means heating, a negative value cooling. |
1277 */ |
1277 */ |
1278 Out = (10.0*P_err) + (0.1*unit->PID_I_err) + (5*D_err); |
1278 Out = (10.0*P_err) + (0.1*unit->PID_I_err) + (5*D_err); |
1279 // Kp 0.1 Ki 0.3 Kd 0.02 |
1279 // Kp 0.1 Ki 0.3 Kd 0.02 |
1280 if (debug) |
1280 if (err != 0.0) { |
1281 fprintf(stdout, "sp=%.2f pv=%.2f err_old=%.2f err=%.2f P_err=%.2f I_err=%.2f D_err=%.2f Out=%.2f\n", |
1281 if (debug) |
1282 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out); |
1282 fprintf(stdout, "sp=%.2f pv=%.2f err_old=%.2f err=%.2f P_err=%.2f I_err=%.2f D_err=%.2f Out=%.2f\n", |
1283 syslog(LOG_NOTICE, "sp=%.2f pv=%.2f err_old=%.2f err=%.2f P_err=%.2f I_err=%.2f D_err=%.2f Out=%.2f", |
|
1284 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out); |
1283 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out); |
|
1284 syslog(LOG_NOTICE, "sp=%.2f pv=%.2f err_old=%.2f err=%.2f P_err=%.2f I_err=%.2f D_err=%.2f Out=%.2f", |
|
1285 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out); |
|
1286 } |
1285 if (unit->heater_address) { |
1287 if (unit->heater_address) { |
1286 if (Out >= 2) { |
1288 if (Out >= 2) { |
1287 if (! unit->heater_state) |
1289 if (! unit->heater_state) |
1288 syslog(LOG_NOTICE, "Heater Off => On"); |
1290 syslog(LOG_NOTICE, "Heater Off => On"); |
1289 unit->heater_state = 100; |
1291 unit->heater_state = 100; |