Thread Tools
Feb 18, 2011, 01:04 PM
homo ludens modellisticus
Ron van Sommeren's Avatar
New Hacker F3A controller MASTER Senstrol, sinusoidal commuation.

And on the Atmel site
AVR435: BLDC/BLAC Motor Control Using a Sinus Modulated PWM Algorithm

Prettig weekend Ron
Last edited by Ron van Sommeren; Feb 18, 2011 at 01:09 PM.
Sign up now
to remove ads between posts
Feb 18, 2011, 02:15 PM
Registered User

Sinusoidal control


Thanks, Ron. Very interesting.
Feb 18, 2011, 02:16 PM
Registered User
Trevor_G's Avatar
Quote:
Originally Posted by George Shering
I have been working on Takao's program for the Thunderbird 9 ESC.
See further back in this thread.
I got it working fine with a lot of modifications.
Then I changed to a ramp startup after discussions here with Trevor.
Also worked fine.
Then I found, by chance, that it works even better with no start-up at all!
Faster than Takao's inductive kick and smoother than the ramp?
Is this just a coincidence with this particular setup?
Has anyone else seen it?
Quax, do you use a ramp?
I seem to remember saying that the best way to deal with startup is to ignore it. Which is very much what you have found. The only reason to ramp up is that there is an ideal speed to run at while you are starting and this varies from motor to motor. So I usually change the speed during startup that way if I have a difficult motor to start there is a good chance of hitting the "sweet spot". For this purpose I have used both ramp up and ramp down without noticable difference.

Perhaps I should have said I only ramp over a limited rev range ~ 2:1. Never go down to zero.

I can't help feeling there is a better way to start a motor. Despite trying a number of methods I have yet to find it!
Feb 19, 2011, 04:24 AM
Registered User
quax's Avatar
Quote:
Originally Posted by George Shering
....
Quax, do you use a ramp?
No, I don't use a ramp. For the commutation I start directly with BEMF evaluation. The commutation is forced by timeout, if the expected feedback doesn't come.

In the beginning this was done in a single loop, that served the startup and run mode. After a while I divided the single loop in a startup loop and a run loop, because there were problems with side effects between the modes.

cu
quax
Last edited by quax; Feb 19, 2011 at 01:40 PM. Reason: word correction
Feb 19, 2011, 11:21 AM
Xtreme Power Systems
Sinus is much easier to do when the motor is sensored.
Feb 19, 2011, 12:24 PM
Account Deleted
___
Last edited by AL3xGR; Apr 14, 2017 at 08:45 AM.
Feb 20, 2011, 08:33 AM
homo ludens modellisticus
Ron van Sommeren's Avatar
Quote:
Originally Posted by JimDrew
Sinus is much easier to do when the motor is sensored.
The Hacker Senstrol RPM controller uses sensors whereas the SLS controller series is sensorless and used for traction as well. Will we see sensored sinus-controllers first, later followed by sensorless controllers?

@Takao Shimizu
Any sinus controller development updates from Japan?





Last edited by Ron van Sommeren; Feb 20, 2011 at 08:38 AM.
Feb 20, 2011, 11:33 AM
Xtreme Power Systems
There are already a couple of sensorless-sinus controllers available from Germany. The advanage of sinus controllers is they make very little noise while running (you hear just the prop) and have far less of an issue of losing commutation (sensorless). Of course sensored controllers/motors is the solution for applications where the motor is under constant load changes (boats for example). The downside to sinus controllers is that a true sinus controller can never run at "full throttle". The work around for that is to modify the sinus routine to expand the edges to allow full throttle, at which point it is a hybird - which I think is the best solution.
Feb 20, 2011, 01:53 PM
Account Deleted
___
Last edited by AL3xGR; Apr 14, 2017 at 08:45 AM.
Feb 21, 2011, 02:26 AM
Suspended Account
Arduino/avrstudio? Can't you just use WinAVR?
Feb 21, 2011, 02:43 AM
Registered User
>Any sinus controller development updates from Japan?

It is already available.

http://www.semicon.toshiba.co.jp/eng...ver/index.html

ps
I had talked with MOSFET driver manufacture guy about new MOSFET driver technique. And Si-C device is available( from R-ohm).
So, I am testing new Si-C MOSFET and all new driver with Arduino.

Takao
Feb 21, 2011, 07:02 PM
Registered User
Fixed the photo focus.
Mar 03, 2011, 01:49 AM
Registered User

Arduino Sensorless BLDC some useful subroutines


You need the cranking to start for small power with these useful Arduino Sketch subroutines as step1.
(I am still contine writing the jet control program and testing new MOSFET driver).

Takao
Last edited by Takao Shimizu; Mar 03, 2011 at 02:07 AM.
Mar 07, 2011, 01:53 AM
Registered User

Timing


The algorithm I use, thanks Takao, measures the time from the commutation to the BEMF zero crossing, then adds on half again for the next commutation. So the zero crossing occurs at 2/3 of the way down the phase and as a phase is 60 degrees electrical this means at 40 degrees down the phase. Neutral timing might be at 30 degrees, so the above might be considered 10 degrees advance. Is this understanding correct?

If 3/4 is added on (easily calculated) it would be about 4 degrees, and if the full time is added it would be zero degrees.

Castle Creations offer 10 degrees, 5 degrees and 0 degrees as options. They suggest 0 degrees for outrunners. I thought I had read somewhere that 15 degrees was best for outrunners?

Trevor and Quax, what do you think?
Mar 07, 2011, 05:25 AM
Registered User
Trevor_G's Avatar
Quote:
Originally Posted by George Shering
The algorithm I use, thanks Takao, measures the time from the commutation to the BEMF zero crossing, then adds on half again for the next commutation. So the zero crossing occurs at 2/3 of the way down the phase and as a phase is 60 degrees electrical this means at 40 degrees down the phase. Neutral timing might be at 30 degrees, so the above might be considered 10 degrees advance. Is this understanding correct?
Hi George,
Lets hold the discussion of what is the correct amount of advance to another time. It is to big a topic to be added in here.

Your calculations of advance seem to be correct. The question seems to be how easy is it to implement this on an ESC.

The first thing I discovered was that everything works around the State time. Your algorithm allows sudden changes in State time. Generally this is not good and can make starting and response to load changes difficult. In extreme cases it can cause the motor to stall. At the very least you will get timing jitter.

This is all very dependant on the motor you are running. You assume that the three coils are exactly 120 degrees apart and produce an identical magnetic field. From experience this is not a reasonable assumption. As a result the BEMF timings will jitter between states even when the motor is running at constant speed.

Let me explain how I do it. Firstly working in assembler (AVR) and wanting to keep the maths as fast as possible I like to keep to powers of 2.

1) I define a tick as 1/64 th of the state time. ~1 degree but dividing by 64 is much faster than dividing by 60.
2) Multiply tick time by advance and add it to half the state time. This is the target BEMF point.
3) When crossing occurs I work out the difference between the target and actual time. I divide this by 2 (to reduce the size of any change) and adjust the State time with this value.

The advantages of this approach are:
1) The maths are kept simple and are performed at time when the processor is not busy.
2) Advance can be adjusted in ~1 degree steps. I can do this while the motor is running
3) I avoid the sudden changes in State time that can cause timing jitter and othe problems.

Does this help?

Trevor


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
For Sale Quadframes 2 Axis BLDC Gimbal V2 w/RCTimer Alexmos Controller ramdmc Aircraft - Electric - Multirotor (FS/W) 1 Dec 09, 2016 11:57 PM
Help! Motor control for BLDC - Gimbal the_g Multirotor Drone Talk 1 Sep 09, 2016 09:36 PM
Help! DIY Sensorless BLDC Controller gdelf DIY Electronics 0 May 16, 2016 12:04 PM
Help! Control BLDC gimbal motor with arduino an L6234 slu123 Power Systems 0 Mar 06, 2016 09:43 AM
For Sale Quadframe v2 BLDC gimbal w/ Centerpiece Gimbal controller Mactadpole Aircraft - Electric - Multirotor (FS/W) 0 Jan 31, 2016 04:28 PM