Monday, July 30, 2012

d3 gauge

Recently I implemented a "gauge" style chart for displaying live power output of a PV installation. d3 is a fantastic JavaScript visualization framework, and is great for animating live data feeds.

See a "live" example at bl.ocks.org/3202712.

This component and many others are being rolled out to enhance a number of distributed generation and monitoring solutions throughout New Zealand and the Pacific.

Greenstage Commercial Solutions

At Greenstage we continue to innovate and enhance the Open Source capabilities of the SolarNetwork while also delivering high quality commercial solutions to the world.

If you need commercial solutions or SolarNetwork support, please don't hesitate to contact us.  If you are an Open Source developer interested in distributed energy solutions, please join us on SourceForge!

Friday, July 6, 2012

KiwiAC driving Switch EV Induction motor … Part 2: Motor Control

Following on from our bench testing earlier in June, Switch EV have installed their motor into their test vehicle and undergone some driveway testing. Sorry no video or photos this time, just output logs turned into pretty graphs (go LibreOffice!)
At the most basic level we are controlling motor current. Our serial output is not fast enough to report every current measurement (two performed every 12kHz), but we can see if the current is behaving within the region we expect. First we can compare the requested current output magnitude, vs raw, directly sampled phase currents. The vertical axis is a signed internal scale, where 32700 is approximately 1000 Amps.
Here you can see that every reported current is within the magnitude requested. Because of stroboscopic effects, (sampling windows and AC sinusoidal waveforms etc) it is expected that we would see values less than requested current.

Delving into the Motor Model at the heart of Field Oriented Control, we can check that the two current vectors, (magnetic flux producing Id and torque producing Iq) are controlling:  

Here, the error between requested Id and Iq are plotted as DId and Diq. The error is around 1%, which equates to a output Torque error of about 0.01% (output Torque is proportional to motor flux times torque current).
At the moment, we are controlling Flux and Torque to equal throttle position (thick grey line). Flux (the green line) should always be positive however, (as two negative numbers would multiply to a positive torque). We have set the throttle zero position to produce regen torque, to approximate engine braking, but only while moving. You can see at 175 seconds when the vehicle was stopped that the torque and flux trending to zero, no longer following the throttle position. A small acceleration occurs from 184-193 seconds, and a much greater one at 205 seconds.

This final graph shows power in the controllers DC bus, versus the calculated mechanical motor power (estimated torque times motor speed) and an estimation of the inverter and motor AC conduction losses. At the time the car was traversing undulating terrain, so change in speed does not correspond that well to delivered power.
Finally, a big thanks to Lachlan for putting together the data extraction scripts that made these graphs possible and to Switch EV for building such a great EV!
Stay tuned, driving videos coming soon...