<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)PWM細(xì)分控制步進(jìn)電機(jī)的研究

          51單片機(jī)PWM細(xì)分控制步進(jìn)電機(jī)的研究

          作者: 時(shí)間:2012-08-02 來(lái)源:網(wǎng)絡(luò) 收藏

          為什么要細(xì)分呢?因?yàn)檫@樣可以是運(yùn)行平穩(wěn)、減小噪音、增大轉(zhuǎn)速(MAX的)、增加力矩……
          為什么要強(qiáng)調(diào)是呢?因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/51單片機(jī)">51單片機(jī)沒(méi)有硬件模塊,所以只能軟件模擬了……
          研究這玩意兒,我走了許多彎路,看了許多文獻(xiàn),最后發(fā)現(xiàn),盡信書(shū)不如無(wú)書(shū)……
          就用28系列4相5線電機(jī)來(lái)說(shuō)吧。

          整步驅(qū)動(dòng)(四相四拍)時(shí)序?yàn)椋?BR> A相 B相 C相 D相
          1拍 1 0 0 0
          2拍 0 1 0 0
          3拍 0 0 1 0
          4拍 0 0 0 1
          我想沒(méi)人用這樣的方式來(lái)驅(qū)動(dòng)吧,這震動(dòng)也太大了。
          2細(xì)分驅(qū)動(dòng)(四相八拍)時(shí)序?yàn)椋?BR> A相 B相 C相 D相
          1拍 1 0 0 0
          2拍 1 1 0 0
          3拍 0 1 0 0
          4拍 0 1 1 0
          5拍 0 0 1 0
          6拍 0 0 1 1
          7拍 0 0 0 1
          8拍 1 0 0 1
          不需要,我想用著方式驅(qū)動(dòng)的人最多吧。
          PWM6細(xì)分驅(qū)動(dòng)(四相24拍)時(shí)序?yàn)椋?BR>點(diǎn)擊瀏覽下一頁(yè)
          其中的0.97、0.87、0.70、0.50、0.26分別是COS15°、COS30°、COS45°、COS60°和COS75°的近似值。
          根據(jù)我參看的那些專門研究的大佬們的論文,他們說(shuō)中所有線圈中同一時(shí)間電流和為0,就是說(shuō)我上面的那個(gè)時(shí)序圖中凡是數(shù)值為0的地方,其實(shí)是應(yīng)該有相應(yīng)的負(fù)值或零值存在的,使得每一拍四相線圈數(shù)值加起來(lái)為0,但我就想不通了,要是這樣,那怎么使得每相線圈中電流既能正著流,又能反著流?好像我的ULN2003驅(qū)動(dòng)板沒(méi)這功能吧!所以我采用笨辦法,把凡是負(fù)數(shù)的地方全改為了0,管他的!可能這也是使我用此時(shí)序驅(qū)動(dòng)電機(jī)不理想的原因吧……最后通過(guò)不斷試驗(yàn)發(fā)現(xiàn),以此時(shí)序驅(qū)動(dòng)電機(jī),震動(dòng)大、噪音強(qiáng)、轉(zhuǎn)速慢還外加力矩小,一無(wú)是處,連4相8拍都不如,真是欲哭無(wú)淚……
          通過(guò)分析4相24拍和4相8拍的時(shí)序圖,我發(fā)現(xiàn),4相8拍方式下磁力矩的大小的和最小為1,最大為1.414,在半步處!而4相24拍的磁力矩的大小的和最小為1,最大為1.183,也在半步處,難怪了,半步時(shí),轉(zhuǎn)子的小齒離兩通電線圈是最遠(yuǎn)的,此時(shí)磁力矩大小和不如4相8拍,那么力矩肯定也就沒(méi)4相8拍的大了 ……
          所以我重新更新后的時(shí)序?yàn)椋?BR>點(diǎn)擊瀏覽下一頁(yè)
          使用這一時(shí)序后,終于讓我體會(huì)到了細(xì)分的優(yōu)越,和4相8拍比起來(lái)振動(dòng)小了,力矩大了。
          在PWM的每個(gè)周期中,肯定是時(shí)序圖中數(shù)值大的線圈先通電,然后才是小的,一個(gè)周期結(jié)束后,所有線圈斷電。所以得建立一個(gè)描述每拍中是哪一個(gè)相(線圈)先通電,哪一個(gè)相后通電的數(shù)組,以上面的時(shí)序圖為準(zhǔn),建立的數(shù)組為:
          djsx[2][24]={0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,0,0,3,1,1,1,0,0,0,2,2,2,1,1,1,3,3,3,2,2,

          2,0,0,0,3,3}; //djsx[2][24]中的第一維儲(chǔ)存的的就是先通電的線圈的相數(shù),第二維是拍數(shù)
          時(shí)序圖中每一相后的眾多數(shù)字,可以看成是其在某一拍中需要通電的時(shí)間,分析發(fā)現(xiàn),其是有規(guī)律的,每隔6拍重復(fù)出現(xiàn)一次,由于先通電的都是在每一拍中要一直通電,所以用數(shù)組表式剩下某相在某一拍中通電起始時(shí)間和通電的時(shí)間:
          ys[2][5]={1-0.27,1-0.57,1-1,1-0.57,1-0.27,0.27,0.57,1,0.57,0.27}={0.73,0.43,0,0.43,0.73,0.27,0.57,1,0.57,0.27};
          當(dāng)工作在65.536MHz時(shí),每微秒5.461個(gè)機(jī)器周期,PWM頻率為5000Hz時(shí),每周期200微秒,也就是說(shuō)每周期1092個(gè)機(jī)器周期,所以ys數(shù)組變換為:
          ys[2][5]={797,470,0,470,797,295,622,1092,622,295};
          由于51的定時(shí)器分為TH和TL,并且是每機(jī)器周期加1,直到溢出中斷,所以ys數(shù)組得再加一維,分別用來(lái)貯存TL和TH,所以變換為:
          ys[2][5][2]={224,252,47,254,255,255,47,254,224,252,218,254,137,253,187,251,137,253,

          218,254};
          程序源代碼為:

          #includereg52.h>#define uchar unsigned char#define uint  unsigned intuchar code djsx[2][24]={0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,0,0,
          3,1,1,1,0,0,0,2,2,2,1,1,1,3,3,3,2,2,2,0,0,0,3,3};uchar code ys[2][5][2]={224,252,47,254,255,255,47,254,224,252,218,254,
          137,253,187,251,137,253,218,254};uchar code pout[4]={1,2,4,8};char count,count_x,count_b,bs=0;char xzbs=1;       //正轉(zhuǎn)為1,倒轉(zhuǎn)為-1uchar xzsd=6;     //我的28電機(jī)測(cè)試最小為6,此數(shù)值越小,轉(zhuǎn)速越快 
          				
                      
                          
          			
          								

          pwm相關(guān)文章:pwm是什么


          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          pwm相關(guān)文章:pwm原理



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();