BLDC Speed Control Using Pulse Width Modulation (PWM)| Brushless Motor Control with Simulink, Part 3

Поділитися
Вставка
  • Опубліковано 24 січ 2025

КОМЕНТАРІ • 61

  • @SurvivalSquirrel
    @SurvivalSquirrel 2 роки тому +3

    Explaining PWM in this kind of topic, is like explaing addition and subtraction while going for integration. ;-) I would find so more explaination at the last part of the video to be more useful.

  • @briancherbak5047
    @briancherbak5047 3 роки тому +5

    Same as everyone, I really appreciate this motor control series -- thank you! I have a question. You mention frequently that the voltage applied to the phases contributes to the speed of the motor, which is why PWM would be helpful to control the speed. We are talking about synchronous motors yes? What I'm trying to decipher is how commutation frequency contributes to motor speed. If the frequency of commutation does not increase, how can the motor spin faster by increasing voltage only? Second question: If the answer to that question is you need to increase commutation frequency to increase motor speed, then in synchronous motors, what voltage contribute to? It makes sense that you could get a stronger magnetic field, but what would that do? Increase torque? Overall power? Thank you for your time.

    • @HollwegX
      @HollwegX 3 роки тому +2

      Hello, Brian. I'm not from Matlab team but I think I can help you.
      The voltage applied in the DC bus is directly related to motor speed and torque. The PWM frequency, also known as switching frequency (f_{sw}) is responsible to modulate the voltages in switches to generate the three-phase voltages.
      The point in the video is to show that if the PWM frequency is too low... think as 5Hz or 10Hz, for example... even you can control the bus (acquire the setpoint), it changes are significantly to the motor since the PWM is too slow... Then, you need to ever consider a enough sampling time and, consequently, switching frequency.
      5kHz is most of time sufficient for grid-tied power converters PWM (another power electronics application) for example... but is normal to see in literature 10-50-100kHz (the switching frequency impacts in the harmonics, that are related to filter response, values and cost, for example).
      Hope my brief explanation helps.
      Best regards

    • @radon3292
      @radon3292 3 роки тому

      i had the same question when i was watching these videos. I think it has to do with the trapezoidal control versus FOC. Trapezoidal control - control speed with voltage (think of it as controlling the speed of brushed DC motor with voltage), FOC - control speed with frequency (think of it as controlling the speed of AC synchronous motor with frequency)

    • @gatzetech3079
      @gatzetech3079 2 роки тому

      As for as I know, in a practical way with trapezoidal control, commutation (frequency) is always fixed to to rotor rpm. 2 phases are used for driving the motor and 1 phase is used as sensor to determine the rotor position. If you draw it then you get a resistor divider, where the resistor divider are the coils of 2 phases. By doing so you know the rotor position and when to commutate. When you want to increase or decrease speed, the pwm duty cycle have to change of the active 2 phases and thus the current will change. Commutation is irrelevant for the speed of the motor, but you have to know when to commutate.
      FOC is a different story, more complicated, but there are good video's on UA-cam.

  • @mustafaerdemyatarkalkmaz8785
    @mustafaerdemyatarkalkmaz8785 5 років тому +8

    Great explanation, great visualation, very usefull info.
    Çok teşekkürler

  • @ser7ser7i
    @ser7ser7i 3 роки тому +2

    Teşekkürler Melda.

  • @ttkok11
    @ttkok11 2 роки тому +1

    What is the advantage of using buck converter against using the direct commutation logic circuit

  • @curvs4me
    @curvs4me 4 роки тому +1

    Thanks, I was looking for a refresher. This was good. Now I need to look at 36 pulse modulators for pure sine waves.

  • @oualisadok1281
    @oualisadok1281 2 роки тому

    the simulation of the same model presented run for a long time and does not stop for me is there any solution please ?

  • @KiranKhatri_Electrical_AI
    @KiranKhatri_Electrical_AI Рік тому

    Hey there, i am also building the bldc motor controller in my project, but I can't animate the rotor position. when I write animateRotorPosition in command windows then following error occurs:
    Unrecognized function or variable 'animateRotorPosition'
    if someone know please help me

  • @furrukhali1547
    @furrukhali1547 3 роки тому +1

    This was beautiful put LOVED IT,this is exactly what I needed in my life right now. God bless .

  • @mikeg6633
    @mikeg6633 Рік тому

    Some people love the French language, for me there's something about listening to smart girls talk that really gets me. I know how magnet motors work but not much more. I'm looking forward to building controllers on my PC.

  • @hamzaalrajoubi1939
    @hamzaalrajoubi1939 3 роки тому

    great job Melda Ulusoy, thanks. Is it possible to connect this model to PV array in MATLAB simulation which is powered as Simulink components to feed simscape inverter.

  • @FWC-GETSRM
    @FWC-GETSRM 11 місяців тому

    I have a doubt if pwms are generated in 120 degrees phase shift and we are generating 6 pwms if we want to change the duty of the PWMs means the phase is not correctly matched...can you please help me to resolve the problem

  • @OsamaKhan-ud3lu
    @OsamaKhan-ud3lu 4 роки тому

    very nice, comprehensive and understandable......thank you

  • @yousefchartabmohammadi7071
    @yousefchartabmohammadi7071 Рік тому

    Thanks very good
    خیلی عالی بود متشکرم

  • @brahimharmat2799
    @brahimharmat2799 5 років тому +1

    Please help me i need to simulate BLDC motor control using PID controller

  • @wilsongarcia1632
    @wilsongarcia1632 3 роки тому

    Hi there can’t you make a video in how to wire this PMW item to a mide drive 3000w 3 phase wire motor

  • @andifauzanalim1440
    @andifauzanalim1440 4 роки тому

    is ther an explanation about the controller subsystem on the model?

  • @ameeshasudarsan3131
    @ameeshasudarsan3131 5 років тому +3

    Well explained..can plz make one about regeneration process with bldc?

    • @gokul8370
      @gokul8370 3 роки тому

      Hello Ameesha, were you able to obtain any references for implementing regeneration with BLDC in Simulink?

    • @YanZhang-tx9zi
      @YanZhang-tx9zi Рік тому

      Dear,
      I am Abby from Changzhou Songjie Electrical motor Co., LTD company. We have a history of over 10 years in producing brushless motors and stepper motors.We have customers all over the world. Especially in the Mexican market,We sell very well. Our brushless motors are very popular in your country,Because our brushless motor has a long working life. Low noise. Low temperature rise.If you are interested,Please do not hesitate to contact us.We are looking forward to your inquiry.

  • @Ayush-lr3bt
    @Ayush-lr3bt 4 роки тому

    is there is any video on sensorless bldc??

  • @RedBatteryHead
    @RedBatteryHead 5 років тому +3

    Great explanation. Like your new look too.

  • @xr80rman
    @xr80rman 3 роки тому

    Does anyone know of anyone who makes a drive that would allow you to send the pwm sig to the igbt?

  • @raefsiam
    @raefsiam 3 роки тому

    Very good work
    Thank you very very much

  • @gergotanyi5348
    @gergotanyi5348 3 роки тому +1

    First of all thank you for the great tutorial! I am having a problem though running the animation. The viewer window opens just fine but the rotor isn't moving, I can see only the initial state of the motor. Can somebody help what I am missing here?

    • @nukalasaikirankashyap3376
      @nukalasaikirankashyap3376 Місяць тому

      I modifed above animation file. to generate a movie it works for me.
      Here I attach my code.
      close all
      clear
      % Below parameters are defined in the Simulink model
      % Sample time
      % Ts = 1e-5;
      % Number of pole pairs
      % p = 1;
      % Initial rotor angle in degrees
      % th0 = 0;
      % Sector
      % sector = 6;
      mdl = 'Switching_Pattern';
      open_system(mdl);
      sim(mdl);
      pause(5)
      obj = VideoWriter('Swithing_video','MPEG-4');
      open(obj)
      axis([-3 3 -3 3])
      hold on
      %
      r = 1.2;
      theta = linspace(0,2*pi);
      x = cos(theta);
      y = sin(theta);
      x1 = 0.8*cos(theta);
      y1 = 0.8*sin(theta);
      xa = cos(0);
      ya = sin(0);
      xb = cos(2*pi/3);
      yb = sin(2*pi/3);
      xc = cos(-2*pi/3);
      yc = sin(-2*pi/3);
      xat = r*cos(0);
      yat = r*sin(0);
      xbt = r*cos(2*pi/3);
      ybt = r*sin(2*pi/3);
      xct = r*cos(-2*pi/3);
      yct = r*sin(-2*pi/3);
      hf = figure(1);h = plot(x,y,'k-',[0 xa],[0 ya],'k-',[0 xb],[0 yb],'k-',[0 xc],[0 yc],'k-',xa,ya,'ko',xb,yb,'ko',xc,yc,'ko',x1,y1,'k-');grid
      set(hf,'Color',[1 1 1])
      ha = gca;
      set(ha,'Visible','off')
      ht1 = text(xat,yat,'A');
      ht2 = text(xbt,ybt,'B');
      ht3 = text(xct,yct,'C');
      set(ht1,'FontSize',14);
      set(ht2,'FontSize',14);
      set(ht3,'FontSize',14);
      axis([-1.2 1.2 -1.2 1.2])
      axis equal
      set(h(5),'MarkerSize',20)
      set(h(6),'MarkerSize',20)
      set(h(7),'MarkerSize',20)
      switch_pattern = ans.Switching;
      init_switch_pattern = num2str(switch_pattern(1,:))
      switch init_switch_pattern

      case num2str([1 0 0 0 0 1])

      set(h(5),'MarkerFaceColor',[1 0 0])
      set(h(7),'MarkerFaceColor',[0 0 1])

      case num2str([0 0 1 0 0 1])

      set(h(6),'MarkerFaceColor',[1 0 0])
      set(h(7),'MarkerFaceColor',[0 0 1])

      case num2str([0 1 1 0 0 0])

      set(h(5),'MarkerFaceColor',[0 0 1])
      set(h(6),'MarkerFaceColor',[1 0 0])

      case num2str([0 1 0 0 1 0])

      set(h(5),'MarkerFaceColor',[0 0 1])
      set(h(7),'MarkerFaceColor',[1 0 0])

      case num2str([0 0 0 1 1 0])

      set(h(6),'MarkerFaceColor',[0 0 1])
      set(h(7),'MarkerFaceColor',[1 0 0])

      case num2str([1 0 0 1 0 0])

      set(h(5),'MarkerFaceColor',[1 0 0])
      set(h(6),'MarkerFaceColor',[0 0 1])
      end
      for i=1:500:length(ans.theta1)
      l1 = 0.7;
      ro = ans.theta1(i)*pi/180;

      xr1 = l1*cos(ro);
      yr1 = l1*sin(ro);
      xr2 = -l1*cos(ro);
      yr2 = -l1*sin(ro);

      hold on,hl1 = plot([xr1 xr2],[yr1 yr2],'m-');

      set(hl1,'LineWidth',3)

      hpr = plot(xr2,yr2,'ko');
      hpb = plot(xr1,yr1,'ko');


      set(hpr,'MarkerSize',20)
      set(hpb,'MarkerSize',20)
      set(hpr,'MarkerFaceColor',[1 0 0])
      set(hpb,'MarkerFaceColor',[0 0 1])

      ro1 = ans.theta1(i);

      for l = 1:numel(ro1)

      switch_pattern1 = num2str(switch_pattern(i,:));

      ro = ro1(l)*pi/180;


      xr1 = l1*cos(ro);
      yr1 = l1*sin(ro);
      xr2 = -l1*cos(ro);
      yr2 = -l1*sin(ro);

      set(hpr,'XData',xr2);
      set(hpr,'YData',yr2);
      set(hpb,'XData',xr1);
      set(hpb,'YData',yr1);

      set(hl1,'XData',[xr1 xr2]);
      set(hl1,'YData',[yr1 yr2]);


      switch switch_pattern1

      case num2str([1 0 0 0 0 1])

      set(h(5),'MarkerFaceColor',[1 0 0])
      set(h(6),'MarkerFaceColor',[1 1 1])
      set(h(7),'MarkerFaceColor',[0 0 1])

      case num2str([0 0 1 0 0 1])
      set(h(5),'MarkerFaceColor',[1 1 1])
      set(h(6),'MarkerFaceColor',[1 0 0])
      set(h(7),'MarkerFaceColor',[0 0 1])

      case num2str([0 1 1 0 0 0])

      set(h(5),'MarkerFaceColor',[0 0 1])
      set(h(6),'MarkerFaceColor',[1 0 0])
      set(h(7),'MarkerFaceColor',[1 1 1])

      case num2str([0 1 0 0 1 0])

      set(h(5),'MarkerFaceColor',[0 0 1])
      set(h(6),'MarkerFaceColor',[1 1 1])
      set(h(7),'MarkerFaceColor',[1 0 0])

      case num2str([0 0 0 1 1 0])

      set(h(5),'MarkerFaceColor',[1 1 1])
      set(h(6),'MarkerFaceColor',[0 0 1])
      set(h(7),'MarkerFaceColor',[1 0 0])

      case num2str([1 0 0 1 0 0])

      set(h(5),'MarkerFaceColor',[1 0 0])
      set(h(6),'MarkerFaceColor',[0 0 1])
      set(h(7),'MarkerFaceColor',[1 1 1])

      end
      end
      frame = getframe(gcf);
      writeVideo(obj, frame)
      delete(hl1)
      delete(hpr)
      delete(hpb)
      end
      close(obj)

  • @SiervodeYHWH
    @SiervodeYHWH 5 років тому +1

    Hi. Make one but with position Control, Please.

  • @galinrashkov7645
    @galinrashkov7645 3 роки тому

    Is there a way to use the same system, but to control by desired angle?
    I really need this info

    • @davidgbetan
      @davidgbetan 3 роки тому

      With hall sensores can move minimal steps with low pwm duty

  • @prpanchal509
    @prpanchal509 2 роки тому

    Great good explain

  • @nanibelloua4962
    @nanibelloua4962 10 місяців тому

    Thanks

  • @education2studying217
    @education2studying217 2 роки тому

    how make motor spin in reverse direction?

  • @davidgbetan
    @davidgbetan 4 роки тому

    How do you do with dead time between change of phases?

    • @pranjal3727
      @pranjal3727 3 роки тому +1

      Modern microcontroller timers have dead time settings built in.

  • @sumidorpopolf5173
    @sumidorpopolf5173 5 місяців тому

    Это вящее пояснения товарищ инженарь

  • @MudasirHussain-o9s
    @MudasirHussain-o9s 5 років тому

    Ma'am please i need STATCOM and SVC module

  • @aslamsayyad5549
    @aslamsayyad5549 5 років тому

    Is there any company in India which uses bldc mechanism in washing machines?

  • @pranjal3727
    @pranjal3727 3 роки тому +1

    I came to this series as is was trying to develope a sine wave BLDC motor driver. Aaand you just look like someone who left me and I'm crying 🤣🤣🤣🤣😭😭😭😭😭😭😭😭😭😭😭

  • @sopankashte7344
    @sopankashte7344 3 роки тому

    Thanks

  • @TheFoolletmein
    @TheFoolletmein 4 роки тому +1

    This girl is amazing

  • @ghanemmenaouer2895
    @ghanemmenaouer2895 4 роки тому

    Thank you very much for the valuable information، I want simulink MADA withe turbine

  • @samcinto9697
    @samcinto9697 4 роки тому

    Great!! Thanks

  • @lartsevevgenii6640
    @lartsevevgenii6640 3 роки тому

    Incredible smart woman

  • @khaledalnoumas9701
    @khaledalnoumas9701 3 роки тому

    احسنت

  • @MrHagibaba
    @MrHagibaba 4 роки тому

    Merhaba Melda Hanim Ingilizce anlamiyorum.Yada cok az diyelim.Ama mevzu BLCDMotorlar ve Kontrollü.Ben kendi capimda bir motor gelistirmeye calisiyorum.Ama bana bu hususda akademisyen insanlar lazim.Yardimci olurmusunuz,selamlar

  • @Tony_starkk3000
    @Tony_starkk3000 2 роки тому

    Love u ma'm

  • @walterpamaus8540
    @walterpamaus8540 4 роки тому +2

    nice! clearly, i am sure... she is very beautiful

  • @bigcatdairy
    @bigcatdairy 2 роки тому

    you are so beautiful

  • @amitvarma9458
    @amitvarma9458 4 роки тому

    I like,s you

  • @MarcusEarthboy
    @MarcusEarthboy 5 років тому +2

    Kendi insanımızdan kendi dilimizde de paylaşım beklemek hakkımız sanırım.

    • @YasinCetin1
      @YasinCetin1 5 років тому +8

      Zeynel Abidin Delikan Hakkin falan degil.

    • @alperengoktas7380
      @alperengoktas7380 4 роки тому +2

      Hakkın felan değil. Zaten bu video da kendi insanının kendi platformundaki paylaşımı değil. Kolay gelsin.

    • @yasxxxbilxxxqtr1185
      @yasxxxbilxxxqtr1185 4 роки тому

      @@alperengoktas7380 Ben de ayni görüsteyim

  • @arnabbanerjee4310
    @arnabbanerjee4310 3 роки тому

    the girl in the thumbnail is just clickbait !!! 0 stars