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

Поделиться
HTML-код
  • Опубликовано: 5 янв 2025

Комментарии • 61

  • @SurvivalSquirrel
    @SurvivalSquirrel 2 года назад +2

    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 RUclips.

  • @mustafaerdemyatarkalkmaz8785
    @mustafaerdemyatarkalkmaz8785 5 лет назад +8

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

  • @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

  • @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.

  • @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.

  • @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

  • @furrukhali1547
    @furrukhali1547 2 года назад +1

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

  • @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

  • @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 ?

  • @OsamaKhan-ud3lu
    @OsamaKhan-ud3lu 4 года назад

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

  • @yousefchartabmohammadi7071
    @yousefchartabmohammadi7071 Год назад

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

  • @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

  • @brahimharmat2799
    @brahimharmat2799 5 лет назад +1

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

  • @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?

  • @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.

  • @raefsiam
    @raefsiam 3 года назад

    Very good work
    Thank you very very much

  • @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.

  • @Ayush-lr3bt
    @Ayush-lr3bt 4 года назад

    is there is any video on sensorless bldc??

  • @prpanchal509
    @prpanchal509 2 года назад

    Great good explain

  • @education2studying217
    @education2studying217 2 года назад

    how make motor spin in reverse direction?

  • @SiervodeYHWH
    @SiervodeYHWH 5 лет назад +1

    Hi. Make one but with position Control, Please.

  • @nanibelloua4962
    @nanibelloua4962 9 месяцев назад

    Thanks

  • @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 21 день назад

      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)

  • @andifauzanalim1440
    @andifauzanalim1440 4 года назад

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

  • @pranjal3727
    @pranjal3727 3 года назад

    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 🤣🤣🤣🤣😭😭😭😭😭😭😭😭😭😭😭

  • @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

  • @MudasirHussain-o9s
    @MudasirHussain-o9s 5 лет назад

    Ma'am please i need STATCOM and SVC module

  • @sumidorpopolf5173
    @sumidorpopolf5173 4 месяца назад

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

  • @aslamsayyad5549
    @aslamsayyad5549 4 года назад

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

  • @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.

  • @sopankashte7344
    @sopankashte7344 2 года назад

    Thanks

  • @TheFoolletmein
    @TheFoolletmein 4 года назад +1

    This girl is amazing

  • @samcinto9697
    @samcinto9697 4 года назад

    Great!! Thanks

  • @ghanemmenaouer2895
    @ghanemmenaouer2895 4 года назад

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

  • @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