Prius IPM controller

Dependencies:   mbed

Fork of analoghalls5_5 by N K

Committer:
bwang
Date:
Mon Mar 16 15:40:07 2015 +0000
Revision:
35:83cf9564bd0c
Parent:
33:e7b132029bae
Set for 3A Iq, 0A Id, Ki = 1e-3, Kp = Kd = 0, loop still oscillates but is passable

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nki 33:e7b132029bae 1 #include "includes.h"
nki 33:e7b132029bae 2 #include "sensors.h"
nki 33:e7b132029bae 3
nki 33:e7b132029bae 4 AnalogCurrentSensor::AnalogCurrentSensor(PinName pin, float volts_per_amp) {
nki 33:e7b132029bae 5 _in = new AnalogIn(pin);
nki 33:e7b132029bae 6 _volts_per_amp = volts_per_amp;
nki 33:e7b132029bae 7 wait_us(100000);
nki 33:e7b132029bae 8 Zero();
nki 33:e7b132029bae 9 }
nki 33:e7b132029bae 10
nki 33:e7b132029bae 11 void AnalogCurrentSensor::Zero() {
nki 33:e7b132029bae 12 float mean = 0;
nki 33:e7b132029bae 13 for(int i = 0; i < 1000; i++){
nki 33:e7b132029bae 14 mean += (float) *_in;
nki 33:e7b132029bae 15 }
nki 33:e7b132029bae 16 _zero_level = mean / 1000;
nki 33:e7b132029bae 17 }
nki 33:e7b132029bae 18
nki 33:e7b132029bae 19 float AnalogCurrentSensor::GetCurrent() {
nki 33:e7b132029bae 20 return ((float) *_in - _zero_level) * 3.3f / _volts_per_amp;
nki 33:e7b132029bae 21 }