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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2397|回復: 2
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
BLDC無刷電機的驅動都是用方波,我想了想。能不能簡化一下。STC8G單片機IO口輸出頻率可以到30KHZ左右的。
然后直接用3個IO口PWM方式驅動三個2104單端半橋驅動。組成120度正玄波呢?
在利用反饋追頻率不就可以想怎么控制就怎么控制了嗎?
說干就干。
代碼非常簡單。驅動方式采用兩兩導通制
電路原理圖如下:



單片機源程序如下:
#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模型電感設置得太小了。之后0.01UH。
下面再看我把BLDC電感設置為0.1UH的波形。



評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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电影一区| 亚洲午夜视频在线观看 | 国产午夜影院 | 天天拍天天操 | 日韩久久久久久 | 国产精品久久国产精品久久 | 国产精品美女久久久久久久网站 | 欧美一区二区三区电影 | japanhdxxxx裸体 | 国产91视频播放 | 亚洲人精品| 亚洲视频免费在线观看 | 日韩免费看片 | 欧美黄色一区 | 亚洲国产精品va在线看黑人 | 欧美国产日韩在线观看 | 国产日韩一区二区三区 | 一级毛片黄片 | 国产不卡一区 | 国产精品污污视频 | 国产亚洲精品精品国产亚洲综合 | 一本久久a久久精品亚洲 | 亚洲欧美日韩在线 | 日韩爱爱网站 | 久久久久国产一区二区三区四区 | 成人综合一区 | 国产午夜精品久久 | www.久久久.com | 嫩草视频在线看 | 欧美精品一区二区三区一线天视频 | 成人伊人网| 亚洲国产精品人人爽夜夜爽 | 91社区在线观看高清 | 中文字幕一区在线观看视频 | 日韩视频在线一区 | 99久久免费精品国产免费高清 | 一区二区三区视频 | 午夜视频在线观看一区二区 | 国产在线观看网站 | 亚洲一区二区三 | 成人国产精品色哟哟 |