Rickys High Power Flexable motor controller

Hi all,
I've been busy and haven't made as much progress as I had wanted :( . Always the way with home projects.
Since I took the week off after easter I have finally found a bit of time to get some of the annoying tasks that have been hanging around looked at. My brother was down over easter but now he has gone back home I'm working to cleanup / complete a lot of the important infrastructure code. I really want to finalise the parameter changing from the PC app before next week. (its pretty close now) and possible get a bootloader sorted.

I have been writing a couple of scripts to be used in the build process to scrape information from the source files.
I was going to use perl but I was introduced to the Ruby scripting language by a work mate.
Ruby is easy to learn and seems a bit nicer than perl. I think the fact that it is written as an object orientated scripting language from the start helps with that. I seem to be getting quicker at learning new programming languages.

still lets you write cryptic stuff like
Code:
rx_name_comment = /^\s*?(.*?)(\s*?=\s*?(\d+?)\s*?,|,)\s*?\/\/\/\<\s*?(.*?)$/
I will of course comment that well.
 
Ricky_nz said:
...
still lets you write cryptic stuff like
Code:
rx_name_comment = /^\s*?(.*?)(\s*?=\s*?(\d+?)\s*?,|,)\s*?\/\/\/\<\s*?(.*?)$/
I will of course comment that well.

That looks like a RegExp to me :)

Thank the gods I didn't have to learn Python on my last gig; Google dropped a .NET version of their API within days of starting and it saved my bacon. Though I know what you mean about language affinity.

Rootin' for you, KF
 
Kingfish said:
That looks like a RegExp to me :)

Thank the gods I didn't have to learn Python on my last gig; Google dropped a .NET version of their API within days of starting and it saved my bacon. Though I know what you mean about language affinity.

Rootin' for you, KF
Got it in one.
Ruby happens to use the same regexp as perl and I think python is pretty similar.
For a long time I looked at regexps and thought yuck! but now I have played with them They do have their places :D

It took more code to generate a few functions of C code from the data than it took to do the regexp to extract the data from the source files into data structures in memory.

Its pretty fast scanning 39 .h header files in 0.07 seconds and thats on my old 2.2G Athlon X2 939 (DDR 400) :shock:.

I've made a bit more progress and it generates a couple of c++ files that compile correctly :D. Now I need to generate a simple XML file and then I can move on the the next thing on the TODO list. Finishing the GUI parameter access from the PC which shouldn't take too long.


back to coding...
 
Hi Alan,
Alan B said:
I am working on my six TO247 controller and I was wondering what your final capacitor arrangement was, and what you would recommend for a 6 FET similar board? I'm trying to pack it on a fairly small board so it would be nice to avoid having a lot more than needed.
Still working on the software. usual story too many things to do and not enough time :lol: .

My capacitor arrangement used:
680uF 100V 105degC Panasonic EEUFC2A681
1uF SMD AVX 18121C105KAT2A Digikey 478-1642-1-ND
1uF leaded EPCOS B32521C1105J000 Digikey 495-1167-ND

The 1uF SMD caps are rather expensive but seem to work nicely. A mate suggested there is an alternative part that will perform similar for less cost but I don't know the number. These caps can handle the high frequencies fine and really removed the need for any other smaller value caps.

I used one of the 1uF SMD caps across each highside/lowside FET pair as close as possible
I also used a 1uF leaded in parallel with that
I added 2 additional 1uF SMD caps across each electro although 1 seemed enough.
I mounted 2 680uF electros at each end of the board. for 4 total. Under these electros I fitted a pair of 1uF SMD caps although on the first board I used 1 per electro and it ran fine ( still experimenting to fitted the extra for comparison on board 2).

I have probably gone overboard with the caps.
I had left a 1206 SMD pad in parallel with the larger SMD caps but it was not necessary.

With my setup I have had it up to 100ARMS/Phase circulating so the motor was not fully loaded but I was controlling 100A in the motor phases.

It should scale down to a 6 Fet quite nicely.
The value of the electors was limited by physical size. I plan to use additional ones externally if a problem occurs.

Heres a few pics to show where they went:
This shows one of the leaded 1uF caps fitted and the footprints in the center of the board for the rest. A wider footprint would give a bigger range of possible caps at 100V. You can see the 4 circles representing the 680uF capacitors. For small size and low total ESR these could be replaced with a group of smaller capacitors to achieve a similar ESR as the caps I used are quite tall.

100_3167_crop_small.JPG

This one shows the bottom (poorly) sorry about the photo quality. You can just see the 1uF SMD capacitors. This is on the second board I'm building up and I decided to fit a few more 1uF SMD caps but from the first board they are probably unnecessary.
100_3162_crop_small.JPG


An interesting note is the caps in the internal cyclone controllers look very similar to the 1uF ceramic SMD caps I used.

My board ran fine without the leaded 1uF caps. I do think they have a benefit in lowering the overall esr but you can probably avoid them if space is a major issue. I had room and footprints so I fitted them. The 1uF leaded caps I used are probably a good compromise of size and performance.


Edit:
For a 6 FET board I would put the same per FET pair components as I used and then decide what electros you want to use. If you want low profile use a lot of smaller ones in parallel, those 680uF 100V caps are quite chunky. I have a larger design growing in my head but that will need to use multiple smaller electros to get the form factor I want.

ie put a 1uF MLC SMD cap as above and maybe a 1uF leaded cap across the bus at each FET pair and then just add bulk capacitance to bus with maybe a few more 1uF caps in parallel. This combination seems to keep the voltage across the FETs under control as far as my 100MHz scope can tell.

As I sad before I did not fit the leaded 1uF caps initially and the board still behaved ok but I think the additional 1uF leaded caps did reduce heating of the main electros when I purposely ran off a sagging supply with long leads. (My software actively prevent operation in this area now :) ).

I'm also interested in others comments on my capacitor choices as this is the highest powered device I have designed and build myself.
 
Hope its of use, I'll be interested to hear how you get on with your 6 FET.
Note I edited the post above as you posted.
 
Hi All,

Finally found some time to get back into it :).

My Ruby script is now working well and I have a nice XML file of all parameters both internal and external.
Now I need to tweak my GUI config tool slightly as I have changed the XML slightly but that shouldn't take too long.

This is definitely going to make debugging easier.
Originally I had split each parameter out into a set of elements but to make the file more compact/quicker to scan through I changed to making everything attributes.

While typing this message I discovered I'm missing the name attribute from a few groups but I know where that is in the script and I'll fix it shortly before getting the GUI app modified.
Here is a snapshot of part of the generated XML file to give you an idea of what I'm doing. There is a lot more parameters than this.
Code:
          <pv_object_group friendly='vector control 1'>
                <comment/>
                <pv_object_group name='param'>
                    <comment/>
                    <internal_param name='pQ13_SW_PHASE_I_LIMIT' module='1' type='raw' index='1' access='rw' comment='CUrrent limit to apply in software.'/>
                    <internal_param name='pQ13_TEST_FREQ' module='1' type='raw' index='2' access='rw' comment='Test mode frequency (open loop)'/>
                    <internal_param name='pQ13_I_U' module='1' type='raw' index='3' access='rw' comment='U current as sensed'/>
                    <internal_param name='pQ13_I_V' module='1' type='raw' index='4' access='rw' comment='V current as sensed'/>
                    <internal_param name='pQ13_U_DC_BUS' module='1' type='raw' index='5' access='rw' comment='DC Bus voltage as sensed'/>
                    <internal_param name='pQ13_OUT_D' module='1' type='raw' index='6' access='rw' comment='test input D'/>
                    <internal_param name='pQ13_OUT_Q' module='1' type='raw' index='7' access='rw' comment='test input Q'/>
                    <internal_param name='pQ13_PI_KP' module='1' type='raw' index='8' access='rw' comment='dd'/>
                    <internal_param name='pQ13_PI_KI' module='1' type='raw' index='9' access='rw' comment='dd'/>
                    <internal_param name='pQ13_PI_REF_D' module='1' type='raw' index='10' access='rw' comment='dd'/>
                    <internal_param name='pQ13_PI_REF_Q' module='1' type='raw' index='11' access='rw' comment='dd'/>
                    <internal_param name='pQ13_RIPPLE_HP_FILT_A0' module='1' type='raw' index='12' access='rw' comment='dd'/>
                    <internal_param name='pQ13_RIPPLE_LP_FILT_A0' module='1' type='raw' index='13' access='rw' comment='dd'/>
                </pv_object_group>
                <pv_object_group name='var'>
                    <comment/>
                    <internal_param name='vQ13_TEST_ANGLE' module='1' type='raw' index='0' access='r' comment='test angle per unit TS. Must be updated if calc rate changes, eg PWM Frequency'/>
                    <internal_param name='vQ13_I_W' module='1' type='raw' index='1' access='r' comment='W current calculated from measured U and V currents'/>
                    <internal_param name='v_THETA' module='1' type='raw' index='2' access='r'/>
                    <internal_param name='vQ13_SIN' module='1' type='raw' index='3' access='r'/>
                    <internal_param name='vQ13_COS' module='1' type='raw' index='4' access='r'/>
                    <internal_param name='vQ13_OUT_A' module='1' type='raw' index='5' access='r'/>
                    <internal_param name='vQ13_OUT_B' module='1' type='raw' index='6' access='r'/>
                    <internal_param name='vQ13_OUT_0' module='1' type='raw' index='7' access='r'/>
                    <internal_param name='vQ13_OUT_U' module='1' type='raw' index='8' access='r'/>
                    <internal_param name='vQ13_OUT_V' module='1' type='raw' index='9' access='r'/>
                    <internal_param name='vQ13_OUT_W' module='1' type='raw' index='10' access='r'/>
                    <internal_param name='vQ13_I_A' module='1' type='raw' index='11' access='r' comment='Motor currents measured Alpha'/>
                    <internal_param name='vQ13_I_B' module='1' type='raw' index='12' access='r' comment='Motor currents measured Beta'/>
                    <internal_param name='vQ13_I_0' module='1' type='raw' index='13' access='r' comment='Motor currents measured zero'/>
                    <internal_param name='vQ13_TEST_D' module='1' type='raw' index='14' access='r'/>
                    <internal_param name='vQ13_TEST_Q' module='1' type='raw' index='15' access='r'/>
                    <internal_param name='vQ13_RIPPLE' module='1' type='raw' index='16' access='r'/>
                    <internal_param name='vQ13_RIPPLE_ABS' module='1' type='raw' index='17' access='r'/>
                    <internal_param name='vQ13_RIPPLE_LEVEL' module='1' type='raw' index='18' access='r'/>
                </pv_object_group>
            </pv_object_group>
 
Things are starting to work :D . only minor hacking of the PC app and I have the following screen shot.
This was obtained by some hacked up code setup to test the scraper and config app by generating nested groups of parameters and two objects with the same parameters.

scraped_params_demo_small.png
I know I have posted a screen shot of this app before but now its displaying parameters directly scraped from code.
Now I need to get the parameter reading / setting over the serial / USB port. This shouldn't take too much as I have most the infrastructure already there.
 
After a tidy up I can see the work bench again and have finally removed the LM5116 that I destroyed by careless probing.
I kept putting it off because of the copper pad underneath it which I knew I soldered well.

I cut the legs off with a stanley knife. I really need to get a scalpel as the stanley knife the blade thickens too quickly and tends to put more sideways pressure on the legs being cut requiring more care to avoid damage to the pads on the PCB.

With the legs cut I clamped the board vertically in a vice and then applied my 75W Hakko with a medium tip set to 360degC to the back of the board on the vias that go through to the chip but also have no thermal relief to the copper plane. With a bit of solder to get things started it took about 20 seconds to get enough heat in there and then I just picked the chip off the other side of the board with tweezers. Then a quick mop up with bread gives the photo below. I will give it a final mop up with braid and then a clean with flux remover before replacing the chip.
I though it would require a lot more heating than that.

100_3193_crop.JPG

I guess I better test the two output FETS as well before I replace it. I don't want to be replacing it twice.

PS:
1) After a clean with flux remover and inspection with a magnifying glass its good to go. now where did I put the LP5116 chips...
2) The 2 FET are good :)
3) New chip fitted and looking ok. It will get a final clean when I find my misplaced brush from the flux cleaner.
100_3199_chip_replaced_crop.JPG
My camera isn't great for these photos :(


Further update:
Its running again :D . I knew that most of the board had survived the slipped probe as once I replaced the burnt tantalum capacitor I could power up the board adn controller with a 12V supply on to +vaux but I have just powered the power board and control board up for the first time since I slipped with the probe through the DC bus directly. The only casualties were the LM5116 (rather expensive for its size) and a single 20V tantalum capacitor. All the gate drives are good, All the FETS are good and the control board is fine.

running_again.png

I must finish building up the second board though. I'm still thinking about fitting the 100V FETS rather than the 75V ones for the second board as that might make it fun for the hub motor but then again the bike with the hub motor isn't the best bike to be adding lots of power too.
 
Ok I finally decided to power it up off LiPo.
I was using my 57V meanwell stack for something else so I thought I would try it on a 5S LiPo pack I had that wasn't being used.
Since the video I have commanded conditions on the controller that would have triggered my DC Bus ripple detection on the 7A meanwell stack and as expected the bus was more stable. At one point the watt meter saw 15A peak when I caused the motor to lose sync (Still no sensorless, just fixed frequency).
I was using a fairly wimpy clip lead so It could act as a fuse if necessary :lol:.

[youtube]VaG6osvLZx4[/youtube]
I will need to bolt it back on the heatsink before any more aggressive tests.
The controller is definitely alive after the replaced vaux converter chip I killed. I briefly pushed it to 65ARMS/phase which is as much as I'm comfortable with with no heatsink.
 
Nice as always Ricky. I am impressed with your work, the design looks much better than every Chinese controller I've ever seen.
I hope this hasn't been asked before, but how much control, efficiency or whatever will you gain over a normal sensorless controller or a sensored controller?
Do you have a high resolution current based throttle or voltage regulated like the other controllers that is impossible to control the power?
I am hoping for a high power controller with the sync like a sensored controller and the timing in a sensorless one with current based throttle, is that too much to hope for :wink:
 
Hi Ratking,
Sorry about the delay in posting a reply, busy as usual.
Ratking said:
Nice as always Ricky. I am impressed with your work, the design looks much better than every Chinese controller I've ever seen.
I hope this hasn't been asked before, but how much control, efficiency or whatever will you gain over a normal sensorless controller or a sensored controller?
Do you have a high resolution current based throttle or voltage regulated like the other controllers that is impossible to control the power?
I don't think efficiency will improve, It may be very fractionally worse as it always has to generate sinewave and all mosfets are always switching where as some of the wave controllers switch half of the MOSFETS at the commutation rate rather than the PWM rate lowering switching losses.

The control part should be much better as is a "vector controller" which controls the current in the motor so a throttle with a nice feel should be easy to achieve. It also provides for re-generation that is smooth and can be controlled.
In vector control the current in the stator is controlled to be in phase with the rotor in the motor and to be at the desired level. Torque is controlled by adjusting the desired current setpoint (it can be negative for regen etc).
More controlled timing with the motor rotor should also provide efficiency improvements.
I imagine the sinewave output may be more efficient with some motors also.
in my controller the current in the motor phases controlled/updated every 83us ( might even go faster if necessary) so the motor has the current we ask to be in it or very close to.

It is hard to estimate the total efficiency change positive or negative unless measurements are done as there are a lot of factors involved such as the FET switching being on the minus side but there may be gains in efficiency else where by driving the motor better. It should be capable of getting the maximum torque out the the motor by being well times etc.

Another advantage of my controller is it has a lot of software and hardware protection mechanisms. I have shorted two phases together with a short fat piece of wire and the controller kept the currents under control to the point that it did not fail (didn't even hit hardware current limit). It detects if the battery is too high impedance. DC bus over/under voltage, overcurrent etc the protection list just keeps growing.
Ratking said:
I am hoping for a high power controller with the sync like a sensored controller and the timing in a sensorless one with current based throttle, is that too much to hope for :wink:
I'm working on it :lol:.
I am still deciding on the best start-up strategy for sensor less but I have also designed my hardware so it can support hall sensors and encoders so hopefully I will end up with software where their use can be configured so that sensors could be used in preference to a startup algorithm if they are a better option for a particular motor switching over to full sensor less as soon as the RPM is high enough as it will provide better timing.

The sync should be easy to obtain at speeds not too far above zero in a sensorless configuration and it would be more accurate than the positioning of most hall sensors. The sensor less startup is the fun/nasty area. To get this to work under load the controller needs to know more about the motor and it may still be difficult. There is several schemes I have been reading about and I'll have to experiment a bit to see what works as they all seem to have one drawback or another. One scheme I was looking at could determine the rotor angle but it can't tell if it is 180deg out :eek:.

I am confident I have the hardware ( enough CPU power etc) to be able to make it all work, just need to get the software done.

I think my current 12FET power stage is a good test platform also, a nice match for the Turnigy 80-100 180.
I definitely hit the hardware current limit the other day playing with it on Lipo (only short bursts because it was not on the heatsink). I commanded 102ARMS/phase and it started limiting so I need to rescale my CT inputs but it didn't get too hot in the few seconds I ran it there with no heatsink. I guess that means the efficiency isn't too bad after all :lol:. I will probably rescale it so I can get closer to 200ARMS/phase or more but to test that it definitely heeds to be on a heatsink.
I knew it would be scaled low with 200A CT's, I can alter my comparator thresholds a bit as they are a little low due to the SMD resistors I had at the time but I also need to bypass some of the current around the CT's as per the Alegro app note. I only want to rescale once so I think I'll setup the CT''s so they are good for near 400A :lol: and then change the comparator thresholds to allow a hardware trip that I'm comfortable with.

If you've got any other questions or i missed something/didn't explain well enough, just ask.
 
Earlier in the week I ordered two more heatsinks and they arrived on Friday so I now have most the parts required to complete controllers #2 & #3 so I will go ahead and make one with 75V FETS and one with 100V FETS. #1 has 75V FETS.
Now I just have to get into the mood to drill and tap the two heatsinks, There is quite a few 3mm holes.

I just took stock of the other major parts I need, I was originally planning to only build up board #2 but changed my mind and will now also do #3:
(Listed so I don't forget anything in my next order to digikey.)
- three more gate drive chips
- 4 * 680uF 100V electros
- two Alegro CTs
- 1uF ceramic SMD caps for board #3
- 1uF leaded caps for board #3
It looks like I have most the smd passives as when I ordered them I always order them in multiples of 50 or 100 except for the more expensive ones like tantalums etc.

I'm making progress on the parameter PC interface. I tidied up the embedded software side so it works with a bit of generated code from the scraper to make adding parameters as painless as possible. Now its just down to the PC parameter interface so hopefully not too long till I have that all going.
 
Just looking at upping the current range of the ACS758-200CB current sensors.
I'm aiming for a range of +/-400A to cover peaks with some margin.
The ACS758CB has a 100uR resistance.
Since I'm doubling the current I need to add an external resistance or 100uR in parallel with the device.

I'm thinking a small piece of copper wire since the internal shunt is copper the external one should be also to keep things stable thermally. I guess I should choose a external shunt length that is similar in length to the current path within the device to keep things balanced.

I wonder how accurate the copper wire tables for resistance are when you get down to 100uR in a length of <20mm? Probably the manufacturing tolerance comes into it too.
I guess there is a risk the solder used to attach it to the board will impact things so I'm guessing some trial and error will be required.

It really doesn't have to be too accurate as I can calibrate it if it is in the right area.
I could just solder another device in parallel but that is just expensive and wasteful.
Another option is to use an external DCCT but these on-board ones are quite nice and should be capable of the required performance.

The use of external shunt is shown in the Alegro app notes but most of them are using PCB or bus bar like below.


Has anyone else round here played with paralleling the shunt in this device for higher current.
 
Ricky_nz said:
Just looking at upping the current range

Has anyone else round here played with paralleling the shunt in this device for higher current.
Doubling up the shunt in the cheep china controllers is how we make them faster! I did it on quite a few contorllers.
 
Arlo1 said:
Ricky_nz said:
Just looking at upping the current range

Has anyone else round here played with paralleling the shunt in this device for higher current.
Doubling up the shunt in the cheep china controllers is how we make them faster! I did it on quite a few contorllers.
Yep, I've seen some of the photos of the paralleled shunts on the chinese controllers but I wondered if anyone had played with it on the ACS758 or similar hall sensor based setups.
With the cheaper controllers they measure voltage directly across the shunt whereas in the AC758 sensors the current is sensed magnetically (Hall sensor) next to an internal copper slug so to get more current you need to bypass some of the current by a piece of copper outside the device rather than a piece of resistance wire in a normal shunt.
I guess Its really just a matter of scale if you ignore the isolated hall sensor part. I'm not sure the resistance of the shunts used in the cheap controllers but I'm sure it must be greater than the 100uR inside this device as the cheap controllers must measure the voltage across the shunt where as this device just senses the magnetic field on the internal shunt.
I can solder a second one of these devices in parallel and it will work but I would prefer a piece of copper wire rather than an additional IC (Its a lot cheaper :lol: ).

I'm worried it may be more touchie to get right than a simple shunt setup because the current scaling is affected by the ratio of external to internal resistance where as with two simple shunts on a cheap controller its just the total resistance that matters. Also the fact that such low resistances are involved.

I probably need to do some 4 wire resistance measurements to make sure I get things right and reasonably repeatable but I really need to organise a decent stable high current DC current source for that as at the 5A I can get out of my bench supplies 100uR would only give 0.5mV drop to measure.
I could try and do it with the AC output of the motor controller but DC is so much cleaner. Maybe I should just tweak the code in the controller to generate a DC test current through an inductor for resistance measurements then I can have up to 200A constant current.
 
Hi All,
Realised I hadn't done an update for a while.
I'm still working on the controller software slowly but I have been sidetracked a little.
I did buy some more cupboards for my electronics room so I am now able to organise my ever growing pile of new SMD parts and clear off my bench so I can actually make progress.

Reason for distraction:
My old oven had the end of one rings element break off and land on the frame. Direct short on 230V with less than 2 meters of heavy cable between the main power board and the oven so quite low impedance also fed with re-wireable 30A fuse (remains looked more like 40A though). made a good pop :lol:.
There was already another element failed and 2 aren't enough.
The other failed element was a broken wire (This oven has a really stupid design where you lift the ring to clean and every time it flexes the wires. I got that element going again but the control is stuffed so it just glows with no temperature control.
I took this as enough reason to replace my kitchen:. Ever since I brought the place 5 years ago I had planned to replace the 70s kitchen so now is the time.

Since the kitchen needs ***more power*** I will get some electrical work done.
Since the main power board is all re-wire-able fuses outside in the meter box I think I'll have a new panel installed in the hall and have everything moved over the the new panel in a couple of stages starting with the kitchen. Can't really afford to get every thing moved at once.
I never liked the idea of fuses outside. Seemed to be done around here in the 70's to save cost but changing a fuse in rain is not one of my preferred activities.
I have been informed that its cheaper to use a new plastic panel than to use the surface mount breakers on the old panel especially since now RCDs are required etc and I would probably run out of space in the old panel.

I just worked out how many outlets I want in the new kitchen and its works out that is just about as many as there are in the entire 3 bedroom house currently :lol:.

I'm going with an induction cooktop. What person into power electronics could resist one of those.

I'm doing the kitchen myself starting with flat pack units etc to keep the cost down. Luckily its galley style so I can do one side at a time.
I'll leave the sink side until I have enough cash for the plumber.
I can barely move in my lounge at the moment for kitchen parts.

I'm going to try and get a quote or two next week for the new panel and kitchen wiring. Hopefully Its not too bad. I have a reasonable idea of the cost of the parts so hopefully the labour cost isn't too high.
 
Good for you Ricky, home renovation is not be taken lightly, but with your close attention to detail, I'm sure it will come out perfect. Is it a downdraft cooktop? Those are pretty cool.

So, in layman's terms, where are you with this controller? Is it complete barring testing? What I like about it so far, is the fact that it protects itself on many different levels. I think this is one of the biggest problems with current controller design, it's not user friendly to the novice, even opening up the case is beyond most people. Now, if the controller could do self diagnosis much like modern cars do, where you could scroll through a menu and it could tell you the exact component that failed, that would be something. I guess the pricepoint that controllers are sold for makes it unnecessary to do this because it cost as much to repair than I would to replace.

I really like what you are doing here, keep up the good work!
 
etard said:
Good for you Ricky, home renovation is not be taken lightly, but with your close attention to detail, I'm sure it will come out perfect. Is it a downdraft cooktop? Those are pretty cool.
Yep, I grew up with my dad doing renovations etc. Ive done the wallpapering and tiling things so time to move up. At least no walls have to move. just rip out old cabinets and replace. Just the organising electricians and plumbers etc... Hiring an electrician is good. It means I don't have to crawl around in the ceiling. If I did I myself I would have to get it inspected etc so might as well let them do the lot.
Dosen't have downdraft. I'm going to use an overhead extraction setup.
The cooktop I'm looking at is the Bosch PIE675N14E. The sopecs looks to be a bit better than the no name brand ones that are available round here.
PIE675N14E_2.jpg

etard said:
So, in layman's terms, where are you with this controller? Is it complete barring testing? What I like about it so far, is the fact that it protects itself on many different levels. I think this is one of the biggest problems with current controller design, it's not user friendly to the novice, even opening up the case is beyond most people. Now, if the controller could do self diagnosis much like modern cars do, where you could scroll through a menu and it could tell you the exact component that failed, that would be something. I guess the pricepoint that controllers are sold for makes it unnecessary to do this because it cost as much to repair than I would to replace.
To tell you the truth I was a bit slack last month or so. Didn't get as much done as I wanted.
I'm pretty confident about the hardware now (at least up to 100A/phase) but still want to see it draw real power rather than reactive power.
I haven't done too much on the control software yet.
A bit of simulation etc.
I have just got a little bit more to do and I'll have the PC config app working completely over the USB. Then I'll get really stuck into the control software.
The PC config app makes things so much easier but I had a few annoying issues with it and coulden't get into the mood to fix it but its looking better now.

The current software spins the motor but doesn't know where the rotor is etc. Too crude to use on a bike. Since the reall control code needs more configuration its best to get that going first. It will also allows me to easily probe internal points in the software while its running in real time etc.
Gui apps arnb't as fun to write for me so that is the slightly sower part but it is coming together. The USB interface is working well.

Trying to balance configurablity with novice users is always a challenge. I have got the main protection code working. No cooked FETS yet (fingers crossed). The only hardware failure was due to me slipping with a probe when working late at night :lol:. casualty one LM5116 but the outcome is I definitely want to put a voltage clamp on its output. Thats pending for my next digikey order. ( I must remember to budget for that so I can fit that into next months wages) Its way too easy to spend lots on money on kitchens so I'm keeping tight control on my budget for the next few months but I'll slip a digikey order in I think.

Yep the price point of controllers is an issue but hopefully my separate control board can survive most explosions of power stages should they occur although it will do enverything it can to avoid the explosion in the first place.

I really want to get this thing going and on the bike. Just looks like I'll end up spending weekends on the kitchen for a month or two but I'll try for a good chunk of time on the motor controller in the evenings during the week.

The ecrazyman 6FET on my bike is motovation with is rough throttle response etc... I will have to dial my controller right down on that bike though.
12 x IRFB4468 FETS is likely capable of turning the headline 300W motor into a pile of molten copper :twisted:.
I'll use it as a test bead until I get the 80-100 180KV motor mounted on the other bike.

I will probably add some code to automatically test the hall sensor sequence and positioning.
I wrote some code to monitor the hall sensors a few weeks back, I need to hook it up to a motor to test it and at that point I'll probably add some code to test and correct hall sensor wiring in software.
To use hall sensors with a vector controller is a bit more interesting in that I need more precision in rotor position than the halls provide but I think I can use a phase locked loop to fill in the gaps. I can then specify phase advance / retard for the hall sensors to correct placement etc. The phase shift only takes an add in the software so it is very quick.
 
Tangentially related... http://endless-sphere.com/forums/viewtopic.php?f=2&t=30224


Edit: Removed warning.
 
Ricky_nz said:
The only hardware failure was due to me slipping with a probe when working late at night :lol:. casualty one LM5116 but the outcome is I definitely want to put a voltage clamp on its output. Thats pending for my next digikey order. ( I must remember to budget for that so I can fit that into next months wages) Its way too easy to spend lots on money on kitchens so I'm keeping tight control on my budget for the next few months but I'll slip a digikey order in I think.


Ricky- Please give me any and all parts you want from Digikey and your address, and I will have them shipped to you. The trivial cost of some components does not compare with the cost of avoidable delays in your awesome projects development.
 
Hi all,
Now my kitchen is basically done i should be able to get back onto my controller project finally!

I have added more cupboards and benches to my work area, splitting the amateur radio from the electronics bench and the computer table.
I can see my work bench again!

I got rid of a few plug in RCDs now that my electrical panel has been moved and upgraded such that there is RCDs for all light and power circuits now.
I moved the panel because NZ's latest electrical regs require no more than 3 breakers per RCD and there wasn't enough room in the old meter box.
Besides I prefer breakers to be inside. Since the kitchen effectively doubled the number of outlets in the house I figured this was the right time to do it. Also adding to the old board would basically mean upgrading to new regs anyway so not muych more to move it inside.
The house was built in 1972 so had 1 outlet per room in most cases :lol:. It actually has all 3 bedrooms and the laundry on one circuit, I'll get that circuit split up later.
At least now I have space in the board to add a few more circuits. The bonus was that when the electrician put in the new panel all circuits on 2.5mm cable were upgraded to 20A breakers so the one I had that regularly tripped (3bedrooms+laundry) that was on an old 15Amp breaker no longer trips.
Some of the old fuses showed evidence of previous owners using rather more than 15Amp fusewire :shock: :roll: :lol:.

It was good to upgrade from fuses because the grid loop impedance is lower than when the house was built and the available fault current can now easily exceed the 1KA rating of the old re-wirable fuses.
When a wire dropped off an element in the old oven and hit ground there was a rather large bang! The oven was right behind the meter board!

100_3267_small.JPGView attachment 1
 
Ricky_nz said:
Just looking at upping the current range of the ACS758-200CB current sensors.
I'm aiming for a range of +/-400A to cover peaks with some margin.
The ACS758CB has a 100uR resistance.
Since I'm doubling the current I need to add an external resistance or 100uR in parallel with the device.

Navitas's TSX separately excited controller does that exact method. They have the 200Amp bidirectional Allegro sensor on the PCB and provide a parallel path to shunt a portion of the current around it. http://www.navitastechnologies.com/Navitas/Separately_Excited_Motors.html They have done 600Amp measurement using that method. They do have to calibrate every unit that comes off the assembly line though. The manufacturing tolerances are poor because the soldering affects the parallel resistance too much so no two units have the exact calibration.
 
Back
Top