Vibrations because of BEMF Harmonics?

I'm sure my motor has a different pole/slot combination but there is one particular speed where it gets much louder and you can feel it vibrate the whole bike. Under low throttle, it's still there but barely noticeable. Above and below that speed, it's pretty much silent.

I don't think there's much you can do to reduce magnetostriction. Oriented grains probably helps. All iron with a varying magnetic field will expand and contract a tiny amount. More current = more flux. It's like hitting a bell. Your stator can resonate. Stiffening the structure or adding some form of damping can greatly reduce it.

Does your controller have a sine wave output? I'm assuming so, since a trapezoidal controller is loud at all rpms.
 
It's a FOC controller and something is resonating with the switching frequency. Increasing the switching frequency by 10% for example also moves the rpm range where the vibrations occur 10% higher.
 
That does sound a bit strange. Normally the switching frequency is way too high to create audible vibrations. Certainly the FOC software could be doing something funky that gives you the vibration. Like an oscillation in one of the control loops. If the frequency changes, you can probably rule out mechanical resonance.

ASI controllers are notoriously difficult to dial in. You might try using a scope to look at the battery current rather than the phase current and see if the vibration is visible.
 
I have several years of experience with ASI controllers so for me that's not a problem.
I tried scoping the motor current waveform of one phase with a portable one-channel scope while riding when the vibrations occured, and it looked like a perfect sinewave.

Motor current oscilations while the vibrations occur (under high load, >330 phase amps) are not really noticeable in the log because it's too slow (via bluetooth 10 points per second, via usb 30 points per second).
But something else is noticeable in the log when testing no load while using torque mode to stay in that rpm range and set the throttle values remotely (to <1% in this case).
Motor current draw will not stay constant at about 2.5-2.7 phase amps when inside that rpm range, but oscilate between 1.8-4.5 phase amps. When reaching 634-635rpms (-> 243Hz), the phase current draw oscillations stop completely (when switching frequency is set to 16kHz). Vibrations are not noticeble as long phase current stays below 320-330 phase amps.

I think its a harmonic of the mechanical stator or winding vibration resonating with the switching frequency.
A simulation of the mechanical winding harmonics gives high values for the 69th, 74th, 79th, and (a bit lower) for the 84th harmonic.
16kHz / 69 = 232 Hz -> 605rpm
16kHz / 74 = 216 Hz -> 564rpm
16kHz / 79 = 203 Hz -> 528rpm

This is about the rpm range where I have the vibrations and lowering switching frequency to 13kHz for example will lower that range accordingly.

On a 32p36s motor that rpm range would usually be way higher and not enough current to cause noticeable vibrations could be drawn at those high rpms (1000-1100rpm).

On my 46p51s motor vibrations are not noticeable under 320 phase amps, around 320-350 only barely noticeable. At 400 noticeable, but probably only slighty affecting acceleration performance. At 430 phase amps they are already very annoying and I am sure they have a negative impact on acceleration performance.
Do you think this is related to saturation?
 
How big is the motor? Saturation is a possibility. 400A is a lot, but it takes a lot to hit saturation. I'm not really sure how you would test for that other than measuring the torque output on a dyno.
 
You may be right that its in saturation field ranges depending on its winding.

To measure saturation, we are blessed with constant current DC supplies up to 5,000Amps at the lab and load cells. If you clamp the motor down by the axle, you can mount a lever arm to the motor and pull it with the load cell at the end of the lever affixed to the rotor. Feed current into any 2 of the 3 phase leads, and pull on the lever until the motor cogs over while logging the force on the load cell. Increase current in steps while plotting each value, and giving the motor time to cool down between runs (so your magnets being warm doesn't influence your results).
 
The stator is about 198mm OD and rotor (without magnets) is 205mm ID. Magnet length 45mm. Winding is 3T. It is similar to mxus 3k.

I don't want to measure saturation. I did a simulation and torque per amp already starts to get less much earlier than at 330 phase amps. Would it make sense that the vibrations become noticeable because of saturation? Would a motor which has symmetries (like 32p36s) improve this?
 
The saturation causes a sharp change in the phase inductance for the controller.

This is one reason I asked if it happens at a particular threshold.

If your PID loops are tuned perfectly when it's not in saturation, then the current rise times will transition to MUCH steeper slopes as saturation occurs. The controller current loop can make a racket of noise when it's struggling. That means the control loop needs to be tuned to still regulate current while in the steep slope rates of saturated inductance if you want it to run smoothly there.
 
It is impossible to get it smooth by tuning the PI gains. By tuning the PLL loop gains you can reduce (or increase) the vibrations a bit. On another smaller and completely different motor I had similar issues at much less current which could be tuned away completely.

I could try setting a lower inductance, but then it would be incorrect at normal operation.

The rpm range where the vibrations occur has quite particular thresholds (which are proportional to switching frequency).
The intensity of the vibrations increases with phase current. While they are not noticeable at all under 320 phase amps, they are barely noticeable around 325-350 amps. At around 350 you can only feel them when the body has contact with the saddle.
At 400 they are hearable and feelable.
At 430 they are quite strong and acceleration is no longer smooth when inside that rpm range.
When outside that rpm range, even at 455 phase amps operation is completely smooth.
 
Hello I have the same problem with the vibration but a much weaker system
My system consists of a Gmac with 12T winding and a Bac800 and a 13S 12P battery.
Brief history.
I also have another system with a Bac 800 with a regular Mac motor with 10T winding.
With the 10 T Mac, the system runs really well and cleanly....

I took over the programming from the Mac 10t for the Gmac 12t.
My problem probably lies right there.

The Gmac 12t feels like eggs when starting from about 10 km/h to about 20 km/h then the whole wheel vibrates.
At over 20kmh the bike calms down again and everything is ok.
Does anyone of you have a guess as to what might be causing this?
 
Do you have this problem both in sensorless and hall based mode?
On a geared hub motor with a BAC555 I had vibrations at around 2000 rpm (rpm at the motor shaft, not the wheel). These vibrations also increased with phase current and motor current was oscillating when inside that rpm range.
By manually tuning current regulator and PLL loop they can be tuned away.
Definitely set current regulator bandwidth to 0 and tune the current regulator Kp and Ki yourself.
Especially lowering current regulator Ki from about 275 to 125 and raising PLL bandwidth from 300 to 700 helped, but in my case it was a 10T G310 motor.
 
hias9 said:
On a 23 pole pair 51 slot direct drive hub motor I have vibrations at around 650rpm (250Hz)

Absent better testing gear maybe get a spectrograph application for a mobile phone and look for the resonant frequency in the audio spectrum. Better still clamp a contact microphone on somewhere sensible. It may not be some multiple of pole pairs and RPM. Maybe for example it is a harmonic of your chain stays, seat stays or wheel.
 
Back
Top