Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Sine wave controller

Status
Not open for further replies.

surendran_raj

Junior Member level 2
Joined
Aug 8, 2022
Messages
23
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
235
Hi,

I trying to code a BLDC controller in Sine wave. I started up with sine lookup table. I tried to run the motor I find some problem at the starting of the BLDC motor. On rising the throttle, the motor jerk slightly and after that it run properly. I view it in Digital oscilloscope and I found that stating wave is not in proper form and amps in phase is get increased. So that I slightly rise the throttle at that time i can see the motor run properly and current in phase (ie., anyone phase current) is increased at starting.

I also tried with another scenario that sudden increase in throttle the motor slightly jerks and phase current is get high. So anyone can help me to solve this issues. i also inserted the screenshot of my sinusoidal wave.

channel_1 (yellow) - phase voltage
channel_2 (green) - phase current
sine_1.png
 

Where are you starting your sine, at its 0 value assuming its not offset ?

In other words start sine such that V across motor is = 0 ?


Regards, Dana.
 

Hi,

...and don´t you need to ramp up frequency and the same time ramp up amplitude?

Did you read application notes about how to control BLDC motors.
Give a link to a document that shows how you want it to work.

Klaus
 

Hi
When motor start speed from zero '0', the peak current is high then reduce when speed increase (have formular)
You have to check rating voltage of motor, maximum current. When start, ensure motor core is not saturated and power suplly can support this peak power.
If the peak/max power of supply is lower, you need to limit the peak current through the coil of motor.
I saw the current wave form, it is limitted by PWM. That why when current is going up to peak of sine wave, shuddenly decrease. This make the momen of motor close low speed is not smooth. You need reduce start current or low speed current adapt to speed parametes( I_d ) to maintena the sine wave - the smooth of momen.
If BLDC motor is nearly like PMSM, is is good for position control. You can check back EMF of motor to select the right modulation, instead of sine wave only.
Something in simulation to imagine: (SimpleFOC open source is like this scheme)
1665885995110.png

1665886013939.png
 
Hi
When motor start speed from zero '0', the peak current is high then reduce when speed increase (have formular)
You have to check rating voltage of motor, maximum current. When start, ensure motor core is not saturated and power suplly can support this peak power.
If the peak/max power of supply is lower, you need to limit the peak current through the coil of motor.
I saw the current wave form, it is limitted by PWM. That why when current is going up to peak of sine wave, shuddenly decrease. This make the momen of motor close low speed is not smooth. You need reduce start current or low speed current adapt to speed parametes( I_d ) to maintena the sine wave - the smooth of momen.
If BLDC motor is nearly like PMSM, is is good for position control. You can check back EMF of motor to select the right modulation, instead of sine wave only.
Something in simulation to imagine: (SimpleFOC open source is like this scheme)
View attachment 179130
View attachment 179131
Hi Taihung,
Thanks for your response. As you said "You need reduce start current or low speed current adapt to speed parametes( I_d ) to maintena the sine wave". i had tried to slow start the throttle and is observed that starting current is get to 8A. But i need to reduce to 4A . Can you help me to solve this in logical method.
 

Hi,
I am not sure about your ideal limit 4A.
With PWM, current can shot 10A in one cycle, but rms current still < 4A.
You need define clearly, here I understand Irms = 4A @ speed of motor ( rotation frequency of motor << PWM frequency)
Normally: Vectors I_a + I_b +I_c = 0, but total current supply to motor still: I_sum = I_a + I_b + I_c < 4A
Do you have current sensor ? At least one to measure sum or better use 02 inline current sensor.
When start, speed low, mean f ~0 rpm, back EMF is small. The current through coil of motor nearly I = V/R (ZL ~ 0).
R is resistor of coil.

But, to keep vector F smooth (constant amplitude & acceleration) I_a, I_b, I_c as calculated as funtion of sine & cos.
In sche above #5, three vector is transformed to I_d (real element) and I_q (imagine element). You reduce I_d when you calculate still I_a + I_b + I_c > 4A. It mean that you will reduce % of max duty to PWM_a, PWM_b, PWM_c. This is quite slowly respondly. Because I_a, I_b, I_c has compute through LPF (f_cut ~ max speed of motor) with long delay time.

For faster adaptive: you can use DAC to generate I_ref = 4A ( reference output voltage maybe like 2.5V) to compare with sum of I_abc (use opam to sum. Ia, Ib, Ic will through LPF with higer frequency filter (f_cut ~ PWM frequency) to reduce delay time), if I_abc > I_ref, ouput of comparator will change logic. Which genrate interrrupt to MCU -> reduce I_d, you can reduce PWM immediately (total 03 PWMs insted of only 01 PWM and keep sine way of current).
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top