Sensorless position detection at standstill, first result !

Lebowski

10 MW
Joined
Jun 27, 2011
Messages
3,412
Location
beautiful Zurich, Switzerland
It works, kinda :mrgreen: !

[youtube]x-BGbGhK3Jc[/youtube]

this is just the very first run, and to be honest I cannot claim I understand fully what's
going on because there's a phase inversion necessary somewhere that I don't understand....

but it works ! :mrgreen:

What it does in the video:
- first it determines the amplitude necessary for the tone
- then it forces the motor in a known position
- then the run starts (0.5A phase current). The updates in the magnet phase position are transferred to the
motor (after division by 2). What I don't get is that this needs an inversion but OK, will figure that out...
the laptop screen shows the phase of the signals powering the motor. The phase current is regulated
to 0.5A, this gives some power but it can be overcome by hand. It should speed up to higher speeds
with this current but the phase delay of the internal filters limits the rpm...

edit: figured out the negative... when the rotor moves forward the low-value inductance 'rotates' backward.
The low value inductance is the one having the magnet straight at its rotor teeth. In a 2-magnet 3-tooth motor,
when one magnet moves from stator tooth A to B, in the mean time the other magnet will move past
tooth C making C the low-value inductance. So the low value inductance 'rotates' from A to C while the
magnet moves from A to B -> this explains the inversion I need.
 
Oh, and this is with the same hardware. So microcontroller, power stages and
current sensors in the motor wiring. No extra chips, better ADC's or any other
changes made to the board ...
 
Cool. So is it always going to have to force it to a position? I guess it will only have to do that every time you power it up? So for instance if you stop at a stop sign it will still know the position? The only thing that will be a bit scary is if it has to turn the motor backwards to find its known spot. Maybe you can use what the cheep RC controller use to spin forward just to find the known spot then start from there?
 
Forcing the known position is only done when you turn on the controller, so at the traffic lights etc it will keep track of the rotor position. When the position is forced it rotates over maximum half an e-rotation so its not too bad.

Sensing rotor position via the inductances only gives 0-179 degree information, from forcing the position at startup it gets the information for adding either 0 or 180.
 
What's the purpose of the position detection, if it still have to force the motor to a different position?
If it knows the motors position, shouldn't it be able to force the motor to that same position?
Or, if the motor is forced to a "start position", isn't possible to do that without the position detection?
 
Jolly Jumper said:
Nice work. hmmm sensorless FOC dreams come true. :mrgreen:
Does this solution have efficency loss like other sensorless controller´s ?

This magnet detection bit is meant as a start for the sensorless FOC. The only proper and
most efficient method to run a motor is sensorless.

The sensorless as used by cheap china controller has nothing to do with the
sensorless FOC I use...
 
bearing said:
What's the purpose of the position detection, if it still have to force the motor to a different position?
If it knows the motors position, shouldn't it be able to force the motor to that same position?
Or, if the motor is forced to a "start position", isn't possible to do that without the position detection?

It only has to force the motor into a known position when the controller is turned on. After that, the rest of
the trip including traffic lights, hill starts etc etc it does not need to do this anymore, it will behave as a
hall-sensored controller.
I intend to use the inductor detection stuff as a method to start the motor from standstill under load, and switch
to sensorless FOC above a certain rpm. In Arlo1's YSR50 the motor etc should behave exactly as it
does now, but without the hall sensors...
 
Lebowski said:
It only has to force the motor into a known position when the controller is turned on. After that, the rest of
the trip including traffic lights, hill starts etc etc it does not need to do this anymore, it will behave as a
hall-sensored controller.

I see... I misunderstood. I thought the position detection was run prior to forcing the rotor.
 
[youtube]ndzZTAZPIGE[/youtube]

The screen shows the rotating vector that is the result of the varying inductor measurement.
The motor rotates based on a slowly rotating phase current (no rotor feedback, just 1.5 seconds
per e-rotation as forced by controller)
When I block the rotor the vector still moves, albeit in a small circle. Is this due to crappy
non-linear current sensors or does it have something to do with magnetics ? The motor does
not have any iron in the coils, but it does have back-iron... I tried measurements with resistors
but something makes my power supply crap out. the few seconds of data I get also show a
circle, and since there's definately no magnetics involved there I suspect the current sensors.
Thoughts anyone ?
 
bearing said:
Could it be the phase lag from the RC filter on the current sensor output?
I don't think so, as all 3 channels would show the same lag and this would be seen as a fixed phase difference...

I looked at the phase currents yesterday on the scope and it showed some funny behavior, it looked like
the amount of PWM signal in the current sensor output depends on the combined motor powering current
and the HF current. We know the amount of PWM current is highest around 75% / 25% dutycycle, and lowest
for close to 0 or 100 %, so some dependency is to be expected. But it looks like this also changes the amplitude
of the HF detection current, with a high amplitude around the 75/25% PWM mark. And since the angle
detection at standstill is based on different HF amplitudes... I mean the different HF current amplitudes should
come from different inductor values, not from some PWM effect.
I have to look at it a bit closer as it shouldn't happen, I don't think HF amplitude should depend on PWM amplitude.
Maybe the high frequency PWM is treated in a non-linear way by the current sensors. I don't know yet
whats going on, have to have a closer look..
In general the thing is very sensitive. If the motor is in a fixed phase the motor currents make one coil
heat up more than the others. This increases it's resistance, which I can also see on the laptop (the vector slowly
starts walking as the winding heats up)

But the main thing, I still don't really know what happens to the inductor values as current is put through the
windings...
 
For those that followed this thread that havent' found the new one where it's working under power:

https://endless-sphere.com/forums/viewtopic.php?f=30&t=94865
 
Back
Top