I should have mentioned my requirements for the RPM estimation, since they are more demanding than some might expect. We can't just count rotations and report the counter value a minute later. We have to get an accurate estimate by measuring the timing of one or a few pulses. Although we don't have to be nearly as precise as knowing the exact angle of the motor shaft as when driving A/C motor phases.
We want to
- Detect motor load by comparing acceleration (change in motor RPM) vs current. Initially this will be just to detect neutral revving and missed shifts, but if the numbers are clean it will adjust the PI control parameters for hills.
- Report speed over CAN. The 01-0c PID reports RPMs up to 16,383.75 in 0.25 RPM steps. While we don't need to reach full precision, it is a goal.
- Fake a tachometer output. We plan to report motor current on the analog tach in a future revision, but having an option to actually report RPM would be a SMOP (simple matter of programming)
- Detect which gear is being used by comparing with the wheel speed pulses. Those arrive on another digital input on portD, and are sampled/counted/filtered at the same as RPM.
- Implement cruise control!
- Rev-match on gear shifts. This is a next-revision goal, but we want to prepare for it. When we know the gear we are in and the load (high or low), we can use clutch and neutral switch inputs to trigger a gear change rev-match for the anticipated next gear. We have a clutch-less motor coupler, so this might be important.
Last edited by DJBecker; 12-04-2010 at 10:00 AM..
|