|
|
Back to UF - User Diary Index
|
Hmm. That's strange. | by Longfist | 2014-12-31 07:35:09 |
| PROJECT STATUS UPDATE! (Final for 2015) |
by LongFist |
2015-04-06 14:06:48 |
As always, the project languished until the last minute. I pulled the components together and soon learned that the Arduino Uno's PWM output pins are *not* synchronized. This meant that the PWM started and stopped at different times, not all at the same time, meaning that the "hot" and "ground" segments were 'active' for a shorter amount of time than the PWM called for - which threw a lot of things out of the window. I responded with a set of 15 1,000V diodes (I went for 1N4001's, and got the upgrade for free - they felt bad that they only had [2] 1N4001's there...) and paired them off each PWM pin on the Arduino.
*BREAK*
The Arduino Uno boasts 6 PWM* pins, and they are already internally managed. You assign a pin to go "PWM" and tell it (from 0-255) what the pulse frequency should be, and it handles the rest. Unfortunately, at least on this little bugger, the pins are not synchronized, so I couldn't assign one "hot" stage and another "ground" stage and have them pulse at the same time - they were always a little off from each other's start/end times, meaning that while the pins themselves were PWM-ing at the correct frequency, the MOSFET "driver" stage wasn't completing the circuits in time, resulting in less-than optimal performance at the motor.
A 3-phase motor actually has 6 phases: 3 "forward" magnetic phases and 3 "reversed" magnetic phases, such that the wheel's movement is "push-pull-push"-ed around and around; a fairly efficient system I must admit. So effectively we would program for 6 phases, depending on where the motor is in its cycle of rotation.
So: six phases, six PWM pins. I put this down to kismet - and that's where those diodes come in: I created a "hot" and "ground" path from each of the 6 PWM pins, depending on which of the 6 MOSFETs needed to be active at which time(s), then diode-isolated those "legs" to keep them from short-circuiting the other stages. In short, each PWM pin was responsible for one stage of the rotation cycle, forward- or reverse-bias, and all I had to remember was to DE-ENERGIZE the current PWM pin *BEFORE* energizing the next one! (To avoid creating a short circuit or two. Blew a 30A fuse in less time than it took to think about it...)
The result was a success. We suffered a setback with noise coming in through the 36V-to-12V conversion, so it was decided to break the controller off to a pack of 8 AA batteries on its own (12V) pulled down to 9V by a 7809 (for the Arduino) and 5V by a 7805 to drive the hall effect accelerator and motor sensors. (They only wanted 5V. Go figure...) So everything is ready to go, and Easter Sunday arrives.
Brief History: during the last competition (last year) the motor was run full-out for the duration, at which time it overheated. A lot! That fact that we were able to get it going again counts alot for the durability of this hub motor, but alas, its final day arrived this Sunday. The hall effect sensors (which tell the controller where the wheel is on it's circumferential journey, allowing us to know which coils to energize and at which polarity) gave up the ghost and started sending bunk; pure hysteresis. Not even proper logic voltage levels, so the Arduino basically lost its mind. In circumstances like these I told the little monster to shut down and flash the LED (included on the Arduino Uno's board on pin 13) spastically at about 5 flashes per second. It did this with aplomb. I just never figured I'd get to see it, is all. But there it was.
The EV is pretty much out of the race; they can't make it go if the motor itself is bad. They're planning to take it with them anyway, see if they can get something out of it during their travels (8 kids on an entire bus; I begin to see why they need the space). I suspect the teachers are going to acquire a new motor and have it drop-shipped to their destination in Detroit, where they will marry it all up together and go run their laps.
As for me (and ya'll) we've completed this task admirably. Special thanks to wwill for getting us the MAXIM voltage regulator chip that made it possible to drive the machine on the single 36V (actually, closer to 40V) battery. I seriously couldn't have completed this task without you all.
Funny thing, though. As I curtail my visits to the High School (no real need; the competition runs this weekend) our company has mandated 50-hour work weeks! [SAP sucks beyond all imagination!] Glad I finished this task in time; I would not have the time elsewise to volunteer to the school, what with my adjusted time of arrival something on the order of 2000 instead of 1800. The AVT people were always headed home at that time, 2000. And we're at 50+ hours per week for the next 120 days or so! Yippee! Still, it beats unemployment all hollow, so we work the long days...
Again: Thank you all! You made a lot of really great things happen for some really deserving High-Schoolers! I simply cannot thank you enough!
* PWM stands for Pulse Width Modulation - a method of driving a component at varying speed or operational quality (like brightness, in the case of an LED) by pulsing the full (required) voltage in a regular frequency below 100%. |
|
[ Reply ] |
|
Your diode solution, simple yet brilliant. | by wwill | 2015-04-07 11:23:09 |
|
Groovy! I can't thank you enough! Gonna' try to | by LongFist | 2015-04-08 11:37:53 |
|
|
[Todays Cartoon Discussion]
[News Index]
|
|