久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2530|回復: 2
收起左側

BLCD無刷電機仿真模型 附單片機程序

[復制鏈接]
ID:718536 發表于 2023-3-3 22:01 | 顯示全部樓層 |閱讀模式
BLDC無刷電機的驅動都是用方波,我想了想。能不能簡化一下。STC8G單片機IO口輸出頻率可以到30KHZ左右的。
然后直接用3個IO口PWM方式驅動三個2104單端半橋驅動。組成120度正玄波呢?
在利用反饋追頻率不就可以想怎么控制就怎么控制了嗎?
說干就干。
代碼非常簡單。驅動方式采用兩兩導通制
電路原理圖如下:
BLDC仿真.png


單片機源程序如下:
#include <stc8.h>                        //調用51常規庫頭文件
#include <INTRINS.H>
#define uint unsigned int   //宏命令,聲明uint替代unsignde int
#define uchar unsigned char        //宏命令,聲明uchar替代unsigned char

sbit a=P2^0;
sbit b=P2^1;
sbit c=P2^2;
sbit hla=P2^3;            //外接393比較器 檢測A相
sbit hlb=P2^4;           //外接393比較器  檢測B相
sbit hlc=P2^5;           //外接393比較器  檢測C相

uchar pwm,num,mod,ym;
uchar scnt;
uchar azkb,bzkb,czkb;

void main()                                        //主程序
{  
   P0M0=0X00;
   P0M1=0X00;
   P1M0=0X00;
   P1M1=0X00;
   P2M0=0X00;
   P2M1=0X00;
   P4M0=0X00;
   P4M1=0X00;
   P5M0=0X20;
   P5M1=0X00;
   P6M0=0X00;
   P6M1=0X00;
   P7M0=0X00;
   P7M1=0X00;
   P3M1=0x00;                                 
   P3M0=0x00;

   ym=100;  //油門                                

   azkb=5;
   bzkb=5;
   czkb=5;                        
   while(1)
   {

        pwm++;if(pwm>11){pwm=0;}
        mod++;
        if(mod>ym)
        {
        switch(num)
         {
          case 0 : if(azkb<9){azkb++;} if(bzkb>1){bzkb--;} if(czkb>5){czkb--;} if(hlc==0&scnt==0){scnt=1;}if(hlc==1&scnt==1){scnt=2;} if(hlc==0&scnt==2){scnt=0;num=1;} break;         //AB    檢測C相過零點,并且經過兩次上升沿濾波
          case 1 : if(azkb<9){azkb++;} if(bzkb<5){bzkb++;} if(czkb>1){czkb--;} if(hlb==0&scnt==0){scnt=1;}if(hlb==1&scnt==1){scnt=2;} if(hlb==0&scnt==2){scnt=0;num=2;} break;         //AC   檢測B相過零點,并且經過兩次上升沿濾波
          case 2 : if(azkb>5){azkb--;} if(bzkb<9){bzkb++;} if(czkb>1){czkb--;} if(hla==0&scnt==0){scnt=1;}if(hla==1&scnt==1){scnt=2;} if(hla==0&scnt==2){scnt=0;num=3;} break;         //BC   檢測A相過零點,并且經過兩次上升沿濾波
          case 3 : if(azkb>1){azkb--;} if(bzkb<9){bzkb++;} if(czkb<5){czkb++;} if(hlc==0&scnt==0){scnt=1;}if(hlc==1&scnt==1){scnt=2;} if(hlc==0&scnt==2){scnt=0;num=4;} break;         //BA   檢測C相過零點,并且經過兩次上升沿濾波
          case 4 : if(azkb>1){azkb--;} if(bzkb>5){bzkb--;} if(czkb<9){czkb++;} if(hlb==0&scnt==0){scnt=1;}if(hlb==1&scnt==1){scnt=2;} if(hlb==0&scnt==2){scnt=0;num=5;} break;         //CA   檢測B相過零點,并且經過兩次上升沿濾波
          case 5 : if(azkb<5){azkb++;} if(bzkb>1){bzkb--;} if(czkb<9){czkb++;} if(hla==0&scnt==0){scnt=1;}if(hla==1&scnt==1){scnt=2;} if(hla==0&scnt==2){scnt=0;num=0;} break;         //CB  檢測A相過零點,并且經過兩次上升沿濾波
         }
         mod=0;
        }

        if(pwm>azkb){a=0;} else{a=1;}
        if(pwm>bzkb){b=0;} else{b=1;}
        if(pwm>czkb){c=0;} else{c=1;}

   }
}


最后查看輸出波形

BLDC.png

可以看到輸出的階梯波。主要是我仿真的BLDC模型電感設置得太小了。之后0.01UH。
下面再看我把BLDC電感設置為0.1UH的波形。

BLDC仿真2.png

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:718536 發表于 2023-3-3 22:07 | 顯示全部樓層
檢測過零點,就跟音箱過零保護一樣,原理是檢測音箱磁鐵的反電動勢,檢測到直流電就保護。我這里是檢測到直流(即轉子跨越定子磁場)就換相。切換下一步相序形成追頻接力。
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:1060905 發表于 2023-8-18 10:50 | 顯示全部樓層
可以看看工程不
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 懂色中文一区二区三区在线视频 | 亚洲另类视频 | 国产午夜视频 | 亚洲区一区二区 | 日韩av第一页 | 中文字幕亚洲一区二区三区 | 99久久免费精品视频 | av资源网站 | 色视频在线免费观看 | 亚洲精品一区二区三区蜜桃久 | 日韩欧美天堂 | 激情av在线 | 玖玖视频网 | 欧美日韩精品在线免费观看 | 欧美久久久久久久久中文字幕 | 日本精品视频在线 | 亚洲高清免费观看 | 国产精品一区二区久久 | 国产精品区二区三区日本 | 黄色在线免费观看视频 | 国产一区二区视频免费在线观看 | 中文字幕人成乱码在线观看 | 国产激情视频在线观看 | 91性高湖久久久久久久久_久久99 | 国产精品夜色一区二区三区 | 伊人网站在线 | 国产在线a | 亚洲精品在线国产 | 日韩欧美中文字幕在线观看 | 黄网站免费在线看 | 欧美日韩一区在线 | 日本xx视频免费观看 | 日韩电影中文字幕 | 国产精品视频播放 | 宅男噜噜噜66一区二区 | 久久久久久久国产 | 国产一区二区在线视频 | 成人在线视频看看 | 国产高清视频在线观看 | 九色av | 日韩一区在线视频 |