下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、typedef struct int16 ElecTheta;int16 MechTheta;Uint16 DirectionQep;Uint16 QepCountIndex;Uint16 RawTheta;Uint32 MechScaler;Uint16 LineEncoder;Uint16 PolePairs;int16 CalibratedAngle;Uint16 IndexSyncFlag; void (*init)();void (*calc)();void (*isr)();1. 位置檢測,計算過程中的變量的定義/*Define the structure of the QEP (
2、Quadrature Encoder) Driver Object*/ Output: Motor Electrical angle (Q15)/ (輸出的電角度?)/ Output: Motor Mechanical Angle (Q15)/ (輸出的機(jī)械角度?)/ Output: Motor rotation direction (Q0)/ (電機(jī)轉(zhuǎn)向?)/ Variable: Encoder counter index (Q0)/ (編碼器輸出的脈沖數(shù)?)/ Variable: Raw angle from Timer 2 (Q0)/ (某一時刻轉(zhuǎn)子對于定子A相的絕對角度?)/ Para
3、meter: 0.9999/total count (Q30)/ (每個脈沖所轉(zhuǎn)過的機(jī)械角度?)/ Parameter: Number of line encoder (Q0)/ (編碼器每轉(zhuǎn)輸出的脈沖個數(shù)?)/ Parameter: Number of pole pairs (Q0)/ (極對數(shù))/ Parameter: Raw angular offset between encoder/index and phase a (Q0)/翻譯過來是編碼器與定子A相之間的角度偏量,/但不知道到底這個偏移量是指什么,請教高人/ Output: Index sync status (Q0)(?)/
4、Pointer to the init function/ (初始化函數(shù))/ Pointer to the calc function/ (位置測量,計算函數(shù))/ Pointer to the isr function/ (Z信號的捕獲中斷) QEP;上面的漢語解釋不知道對不對,請高人過目,指出問題。2、變量的初始化#define QEP_DEFAULTS 0x0, 0x0,0x0,0x0,0x0,0x00020C4A,0x0,4,-1250,0x0,(void (*)(Uint32)F281X_EV1_QEP_Init,(void (*)(Uint32)F281X_EV1_QEP_Calc,
5、(void (*)(Uint32)F281X_EV1_QEP_Isr QEP qep1 = QEP_DEFAULTS;/ Applied-motion PMSM motor: 24-v, 8-pole, 2000 line encoder, CalibratedAngle = -1250 / MechScaler = 1/8000 = 0X00020C4A (Q30)主程序里還有QEP模塊的初始化,與上面的初始化有一點點重復(fù)的地方。/ Initialize QEP moduleqep1.LineEncoder = 2000;qep1.MechScaler = _IQ30(0.25/qep1.L
6、ineEncoder);qep1.PolePairs = P/2; qep1.CalibratedAngle = -1250; qep1.init(&qep1);此處要請教高手指導(dǎo)的問題就是:CalibratedAngle到底是什么東西?3、功能模塊程序 3、1在進(jìn)行正交編碼,捕獲 Z之前對2812的寄存器進(jìn)行初始化,設(shè)置定時器2為QEP電路提供基準(zhǔn)時鐘 void F281X_EV1_QEP_Init(QEP *p) EvaRegs.CAPCONA.all = 0X9004;/ Set up capture unitsEvaRegs.T2CON.all = 0X9870;/ Set u
7、p capture timerEvaRegs.T2PR = 4*p->LineEncoder; / Init Timer 1 period Register EvaRegs.EVAIFRC.bit.CAP3INT = 1;/ Clear CAP3 flagEvaRegs.EVAIMRC.bit.CAP3INT = 1;/ Enable CAP3 InterruptEALLOW;/ Enable EALLOWGpioMuxRegs.GPAMUX.all |= 0x0700;/ Set up the capture pins to primaryfunctionsEDIS;/ Disable
8、 EALLOW此處要請教高手問題就是:EvaRegs.T2PR = 4*p->LineEncoder ,根據(jù)上面初始化的定義,4*2000=8000個脈沖對應(yīng)的就應(yīng)該是一個360度的機(jī)械角度,也就該是一個定時周期,此時一個周期計算完畢,超過360度的角度就從新開始?假如此時的角度是 200度,是不是對應(yīng) 的脈沖數(shù)就該是 8000*200/360=4444個脈沖?3、2void F281X_EV1_QEP_Calc(QEP *p) int32 Tmp;/ Check the rotational directionp->DirectionQep = 0x4000&EvaReg
9、s.GPTCONA.all;/(GPTCONA的第14位為定時器2的狀態(tài),只讀,如果是遞增記數(shù)就是電機(jī)正轉(zhuǎn),遞減就 是電機(jī)反轉(zhuǎn)?和4000相與就是為了只保留第14位信號?)p->DirectionQep = p->DirectionQep>>14;/得到電機(jī)的轉(zhuǎn)向,是 0是1就知道是正轉(zhuǎn)還是反轉(zhuǎn)?/ Check the timer 2 counter for QEPp->RawTheta = EvaRegs.T2CNT + p->CalibratedAngle;按照定義RawTheta為轉(zhuǎn)子即時的位置對應(yīng)的脈沖,那就應(yīng)該是轉(zhuǎn)子對應(yīng)定子A相的初始位置的角度+轉(zhuǎn)
10、過的相對角度,在 TI的例程里定義的轉(zhuǎn)子對應(yīng)定子 A相的初始位置的角度為0嗎?如果是那此處就應(yīng)該是p->RawTheta =EvaRegs.T2CNT+0。為何有 CalibratedAngle ?/ Compute the mechanical angle in Q15Tmp = _qmpy32by16(p->MechScaler,p->RawTheta,31);/ Q15 = Q30*Q0p->MechTheta = (int16)(Tmp);/ Q15 -> Q15p->MechTheta &= 0x7FFF;/ Wrap around 0X0
11、7FFF/_qmpy32by16()我好象沒找到是什么含義,理解起來應(yīng)該是p->MechScaler*p->RawTheta ,再轉(zhuǎn)換格式對吧?能否請高人說下 /p->MechTheta為何要和0X7FFF相與?按我的理解, TMP已經(jīng)計算得到了即時的機(jī)械角 度,消除第0到11位,保留高位的15為,這樣不僅對整個角度的大小沒有大的影響,并 /且轉(zhuǎn)換成了 Q15格式,而Q15格式里,7FFF最大,代表360度,也代表的是1,相與是 /是為了將大于360度的角度轉(zhuǎn)換過來。此處我還是不大清楚。煩請高人解釋下下。/ Compute the electrical angle in Q1
12、5p->ElecTheta = p->PolePairs*p->MechTheta;/ Q0*Q15 = Q15/計算電角度,電角度=極對數(shù)*機(jī)械角度p->ElecTheta &= 0x7FFF;/ Wrap around 0X07FFF void F281X_EV1_QEP_Isr(QEP *p)(p->QepCountIndex = EvaRegs.T2CNT; / Get the timer 2 counter for one mechanical revolutionEvaRegs.T2CNT = 0;p->IndexSyncFlag = 0
13、x00F0;/ p->IndexSyncFlag 是個什么信號?/ Reset the timer 2 counter/ Set the index flag按照道理,PMSM應(yīng)該有個初始定位的過程,采用最簡單的6個區(qū)的定位,也就是針對編碼器發(fā)出的UVW信號判斷在哪個 60度的區(qū),然后再給定角度完事,這段程序應(yīng)該放在主 程序里系統(tǒng)初始化之后吧?假設(shè)此時UVW信號為101,這時候轉(zhuǎn)子在第一個區(qū),也就是0-60度范圍之內(nèi),那么就設(shè)定轉(zhuǎn)子在相對于定子A相30度的地方,這樣做有最大30度的誤差,會導(dǎo)致電機(jī)可能不會以最大轉(zhuǎn)矩啟動,但啟動是沒問題。此時是不是應(yīng)該把這些角度轉(zhuǎn)換為脈沖個數(shù),送給 Eva
14、Regs.T2CNT做為初始角度去計算?/轉(zhuǎn)子初始定位if(GpioDataRegs.GPADA T.bit.GPIOA8=1&&GpioDataRegs.GPADAT.bit.GPIOA9=0&&Gpio DataRegs.GPADAT.bit.GPIOA10=1)InitAngle=30 度;if(GpioDataRegs.GPADA T.bit.GPIOA8=1&&GpioDataRegs.GPADA T.bit.GPIOA9=0&&Gpio DataRegs.GPADAT.bit.GPIOA10=0)InitAngle=9
15、0;if(GpioDataRegs.GPADA T.bit.GPIOA8=1&&GpioDataRegs.GPADAT.bit.GPIOA9=1&&Gpio DataRegs.GPADAT.bit.GPIOA10=0)InitAngle=150;if(GpioDataRegs.GPADA T.bit.GPIOA8=0&&GpioDataRegs.GPADA T.bit.GPIOA9=1&&Gpio DataRegs.GPADAT.bit.GPIOA10=0)InitAngle=210;if(GpioDataRegs.GPADA T.bit.GPIOA8=0&a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水產(chǎn)養(yǎng)殖行業(yè)助理工作總結(jié)
- 美容行業(yè)人力資源管理經(jīng)驗總結(jié)
- 樓梯扶手銷售工作總結(jié)
- 潛水行業(yè)潛水技巧培訓(xùn)回顧
- 糧食行業(yè)話務(wù)員工作總結(jié)
- 2024年河南省商丘市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年四川省涼山自治州公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年山東省煙臺市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 農(nóng)村先進(jìn)個人發(fā)言稿
- PEP小學(xué)生讀書心得體會作文選
- 人機(jī)交互技術(shù)智慧樹知到期末考試答案2024年
- GB/T 144-2024原木檢驗
- YS-T 650-2020 醫(yī)用氣體和真空用無縫銅管
- 心靈養(yǎng)生的療愈之道
- 建筑設(shè)計公司的商業(yè)計劃書
- 建筑景觀設(shè)計勞務(wù)合同
- 人教版PEP六年級英語下冊課件unit1
- 人教版四年級數(shù)學(xué)上冊寒假每日一練
- 主動脈夾層介入手術(shù)的護(hù)理
- 浙江省嘉興市經(jīng)開區(qū)2023-2024學(xué)年四年級上學(xué)期期末學(xué)科素養(yǎng)評價科學(xué)試題
- 森林火災(zāi)滅火器具使用與技巧課件
評論
0/150
提交評論