Over the last week I have been busy with finishing the wiring and assembly.  I ordered, hopefully, the last of the parts I will need including the sprockets, chain, bushings and key stock for hooking the two motors together, along with a diode and resistor for the contactor. This ended up being time consuming because none of the industrial supply companies will ship via USPS and it also took a long time to make sure that the components would work with the metric shafts of the two motors I have (19mm for the Agni and 17mm for the eAssist). I also received the 14-pin Ampseal connector for the Semikron power stage, the 12 pin MX-150 connector for the eAssist motor, and the Analog Devices AD2S1205 EVAL board resolver to encoder converter. I wired the plug for the eAssist motor and connected the motor resolver to the EVAL board. The EVAL board comes with software that allows you to output the rotor position and velocity signals graphically to a custom LabView environment via a USB cable. I hooked everything up and it seems to be working perfectly on the first try, which was almost unbelievably easy. Below are pictures of the EVAL board and the motor connector.


            My friend James finished fabricating the motor mounts after we made a trip to the hardware store on Saturday night to buy some more welding rod.  He did a really good job on them and it will be perfect for testing the motors. Finally I received the 2 burner stovetop which will provide adjustable resistance for the DC Agni motor.  Pictures of the whole setup are below.



             I was expecting the JTAG programmer for the TI DSP to come last week, and that has been the real holdup on me starting to get some solid programming done. The project is due in 3 weeks from today, so I am definitely at the critical crunch time.


On eAssist vehicles, GM uses a special rubber cable connector and 3-phase terminals that go down vertically into the motor. Since I don’t have a way to buy this connector, I needed to make my own. One option would be to just grind away the back of the motor cover to allow horizontal terminals into the back. My friend James Moes had a great idea to instead to take M6 threaded rod vertically into the motor, connect the 3-phase ring terminals to the rod, and then use wood to insulate everything from the motor cover.



My plan is to add a rugged paint or liquid plastic/electrical tape on the MDF in order to keep it dry and prevent it from turning into a conductor.

While James and I were at the hardware store getting the MDF and threaded rod for the motor connectors we also bought some steel angle iron and flat bar. James is going to help fabricate the mounts for the two motors so they are held securely in place and aligned properly. Thanks James for your help!

It’s been a while since I’ve posted and a lot has happened on the project!

Unfortunately an engineer from Semikron emailed me back and there is no way to modify this SKAI circuit board to make it work. Despite the D-sub 25 connector, it is a completely separate circuit board compared to the board without the DSP. Semikron would also not provide me with circuit board schematics except for the DSP pinout, despite the SKAI manual saying that they do provide them. They suggested that I buy a new SKAI, but we are looking at $3500 for a model that would work on a motorcycle and a 12 week lead time. So that is not going to work.

The way ahead is either to use the DSP or to tap into the current sensing circuit, feed it to Tumanako board, and then have the Tumanako board feed the DSP with the gate signal. The 2nd option seems like it would be difficult due to the limited inputs on the SKAI board and the SPI speed constraints.

The negatives of using this DSP (TMS320LF2407A) is it is only 16-bit with no floating point. It also has little support from TI and limited libraries to make programming easier. It also only work with TI’s old Code Composer Studio v3 (v5 is the current version based on eclipse), and requires a CCS license to use it. I have emailed TI’s university program to see if they can provide a copy, the paid version is almost $500. Also it requires a special JTAG to program it, so I ordered a XDS510PP programmer off of ebay that should arrive by the end of the week.Since the SKAI (and Tumanako board) have inputs for an encoder I am planning on using a AD2S1205 R/D Converter on the development board that Analog Devices sells to convert the resolver signal from the eAssist motor to a 1024 line encoder signal. So I ordered the EVAL-AD2S1205SDZ and EVAL-SDP-CB1Z boards from Digikey.com. I will be hooking up the resolver to the eval board, and then outputting the A, B, and NM signals to my controller. This is a relatively expensive option, but I think it should work well and the eval boards will allow me to test out the chip for possibly a future custom board with it.

It took me way too much internet searching, but I found the female half of the plug that connects to the case of the motor and outputs the resolver signals:
Molex MX150 12 pin Female Plug 33472-1201
Molex MX150 18-20AWG Female Connectors for the Female Plug 33012-2002
Molex MX150 Cavity Plugs for the unused connector pins 34345-0001
Both Mouser.com and Digikey.com sell the connectors

I have also received almost of the wiring parts for the project and I have started wiring all of the batteries, fuses, disconnect, and contactor together. Below is a picture of the batteries wired together showing the 86V. I am using UPS batteries that were available for free to provide the voltage needed to test the project.


Speaking of testing, I have also been working on the setup I will use to load down the motor for testing. I already have an Agni 95-R DC motor that I am going to couple to the eAssist motor using sprockets and chain. To provide load on the Agni, and I going to get a two burner electric range that will allow for adjustable electric load using the normal heat adjustment knobs. The electric range is just made up of resistive elements and the temperature is controlled by an infinite switch. The switch disconnects with increased temperature, with a bi-metallic strip to break conductive connection across the terminals.

On Friday, 15APR13, my third report was due. This is the last report due before the final report. New in this report is Simulink schematics in Appendix A, and initial results from the testing in Simulink. If you are interested you can view a copy here.

Over the last week I’ve been busy ordering components that I will need to hook up everything later.  Since the motor and power stage are water cooled, I bought automotive grade coolant hoses and connectors in the 1/2″, 5/8″, and 3/4″ sizes that I need for the different components. I also bought a Swiftech MCP655-B 12V Water Pump, which is popular for water cooled computer applications.  Finally to cool it all, I bought a small aluminum radiator for a CRF450.  In order to start programming the microcontroller, I bought 12V and 24V DC power supplies, a USB to RS232 converter, and a RS232 null modem cable.

Eventually I will use the Tumanako FET based contactor circuit, but right now I want to focus on programming the algorithm, if if if so I ordered components to create a simple and safe time that all Malik side stuff in mime troupe rural life FFwiring setup.  For the contactor I bought a Tyco Kilovac LEV200 which is rated at 500A+ 19-900VDC, which will be turned on by a 12V switch.  The positive side of the battery will be hooked to a class T 200A fuse, while the negative side of the battery will be connected to an Albright ED252b emergency disconnects switch which can break 1500A at 96V. Across the contactor I will use a 1/2W 330 ohm resistor to pre-charge the 1mF DC link capacitors, in about 3 seconds.  Between the battery and the power model I will use 8 AWG stranded cable and between the power module and motor I will use of 4 AWG cable. When I eventually hook this up on my motorcycle I will need to use larger cables, but this should be more than sufficient for testing the motor unloaded.  Below is a schematic of my planned power wiring for the project.


I also emailed Semikron to see if they can give me any information about swapping to the D-sub 25 connector and bypassing the DSP.  I already emailed the Tumanako mailing list to see if some one could take pictures of the main circuit board but I have not gotten a response yet.

It has been a busy week and a half and I have only gotten limited work done on the project. Last Thursday my second report was due. This took what I had before with newly added a assumptions and methodology sections. You can take a look at it here, it explains some of the theory behind the control algorithm I am using.

My advisor also provided some much appreciated feedback on stator flux reference value. At low speeds this value is determined by the magnetic saturation of the machine iron and looks like a table top shape. I will most likely need to do further work to determine the table-top value by estimating it from the rated voltage and speed of the machine. Then at lower than maximum torques I will need to determine the flux linkage that optimizes the efficiency based on simulation or maybe even some experimental results.

I did some research last week and started looking at the pin-out of the SKAI power module. While doing this I realized that the module that I bought only has the pinout for the onboard DSP, and no input for external gate circuitry. I want to avoid using the TI DSP because the development environment is quite expensive to obtain from TI, and there is no open source development tools for it. Yesterday I actually received the SKAI module and I will try to open it up in the next couple of days and figure out if I can manually bypass or remove the DSP and then rewire the plug. The module is 17.6 x 8 x 4 inches (448 x 223 x 101 mm) and weighs in at 18 lbs (8 kg) dry.

Expect work to pickup on the project in the next couple of weeks. I need to start programming on the STM microcontroller and order the other components I still need.

Over the last week I have continued to plug away at the Simulink model. Although the DTC-SVM portion is finished, the second large challenge is estimating the stator flux. I implemented the adaptive low pass filter in Simulink that I discussed in my last post. The filter’s cutoff frequency is a multiple of the motor speed, and correction for phase and magnitude is applied to make it closer to an ideal integrator. This take advantage of the voltage source model for stator flux estimation.

A lot of research has been done on flux estimation, with a wide range of methods tested with everything from neural networks to Extended Kalman Filters. My goal is to keep the implementation as simple as possible while minimizing motor parameter dependence. The end goal is to use this algorithm on a wide range of different motors with little tuning and measurement needed.

Using the current model has much better performance at low speeds, but it also depends on motor inductance linkage values. Right now it looks like the model performs well at low speeds with rotor speed feedback, but I may need to add in additional complexity later since performance down to zero speed is vital for an EV.

The graphs below show currently the difference between conventional DTC with a voltage integrator to estimate stator flux, and the new DTC-SVM algorithm with variable amplitude and phase and the adaptive low pass filter.



The graphs show the improved steady-state ripple of the new algorithm.

Finally I also looked into more how eAssist Induction Motor detects rotor position. As you can see in the picture below, the opposite side to the pulley has what looks like an 8 pole resolver built in. A resolver was probably used due to the higher durability in an automotive application as compared to an encoder. The KiwiAC board that I received this week is designed for an open collector encoder, so I will need to figure out my own resolver hookup. Most likely the output of the resolver can go into the board’s ADCs and then I can resolve the rotor speed in software.


Next up: figure out how to calculate the optimal stator flux reference value. 

The last few days I worked on the DTC-SVM with variable amplitude and angle vectors model that I talked about my last post.  I took the SVM module that my advisor provided, created a new length and angle calculation module, and finally created a new pulse width modulation module that ties it all together.  After a lot of work and some frustration I got the new model to properly simulate.  The initial performance is very encouraging. Right now it is showing good dynamic performance and very low steady state ripple.  The flux and torque constants may need some further tweaking.  The next step will be to improve the flux estimator.  My initial design will be an adaptive low pass filter, but I may need to incorporate two different estimators, one for high speed and one for low speed. Below is a picture of the improved DTC-SVM model.Image