Halbach array rotor issues compared to standard rotor

Hi everyone,

I would like to share some progress on the custom BLDC motor (and driver) that I’ve been working on for past few months. From the last version (discussed here) there were a few major changes.

First of all, a completely new driver board replaced the old ugly squared shaped one :D. The new board is based around the same schematic as the previous one with some minor updates mainly in the microprocessor part.

As always even the new board has some issues. I burned one because of insufficient trace width on some parts. For now it is fixed with some temporary wires soldered here and there :smiley: .

Now to the more important change and topic of this question/post. I have rebuilt the motor a little ( quite a lot :smiley: ). The largest “improvement” is addition of halbach magnetic array to the rotor.

While inspecting with the magnetic flux foil the halbach arrangement seems to “work”, since the magnetic field is stronger on the inner side of the rotor and weaker on the other one. I’ve also checked the polarity of the magnets with hall sensor (seems right).

As a reference for placing the magnets I’ve used this picture from Christoph Laimer’s video.

The “only problem” is that the new rotor doesn’t work :smiley: . The setup is perfectly functional with the standard rotor, but as soon as I put the halbach one on, it won’t even pass the sensor alignment process.

The video shows the setup equiped with the halbach rotor. It makes very little movement while aligning the sensor and than just says MOT: Failed to notice movement.

Increasing the max allowed voltage with both

  • motor.voltage_sensor_align
  • motor.voltage_limit

only makes more current flow but creates no noticeable difference in movement.

Side notes:

The rotors have different pole count, but I have reflected that in the code.
Halbach - 40 poles (40 main magnets + 40 additional 90° rotated magnets)
Normal - 42 poles

Magnets in halbach rotor are stronger by themselves (N42 vs N35). And the difference in magnetic strength is very noticeable.

I increased the max allowed voltage up to the point, where at 3.5A flowing during alignment phase the motor did not make any improvment in movement.

I am testing the setup in torque voltage mode. My sensor is AS5600 I2C magnetic encoder.

Does anyone have clue why this might be happening?

Thanks and Happy New Year to everyone :smiley: !

Adam

1 Like

My 2 cents of wisdom, but I haven’t build a 40-mag motor nor halbach array before.

  • 40 mags versus 42 mags: don’t they require a different winding pattern?
  • halbach array: If you want to build an array from identical shaped mags, you can only use square mags (eg. 5x5x10).

Are you sure you have really constructed a halbach array? The polarity of the pairs should still be alternating, the idea with halbach is that the magnet between the pairs is 90 degrees out of phase one way or the other. On yours it looks like all the magnets which are normal to the rotor are facing the same direction from your magnetic sheet? With all magnets facing the same way, it’s not possible for the commutation to be effective.

Hi, the polarity of the larger (or “main”) magnets is alternating. The polarity of the smaller ones inserted between them alternates as well.

I think that the magnetic foil “detector” or whatever is it called shows intensity of the magnetic field rather than it’s polarity.

It seems quite similar to the magnetic field on this picture i found (and the rotor from the picture works :smiley: ). When I was putting it together every magnet kind of “snapped” into place.

I am not completely sure about the second statement. I will have to look further into it.

But you are absolutely right about the winding scheme. I have wound up the stator once and than completely forgot about it’s properties :smiley: . That’s most likely what causes the probelm! I’ll rewind it as soon as I have a few spare hours of time :smiley: .

Thanks for advice!