



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、無位置傳感器的無刷直流電動機調(diào)速控制程序.include "240x.h".global _c_int0;-以下定義常數(shù)和變量 -KP.set 245;電流調(diào)節(jié)比例系數(shù) , 0.12的Q11格式KPS.set 100;速度調(diào)節(jié)比例系數(shù).bss CAPT,1;換相控制字.bss COMP,1; 更新占空比的比較值,由電流調(diào)節(jié)輸出.bss IDC_REF,1;電流參考值 ,由速度調(diào)節(jié)輸出.bss IDC_ERRORK,1;電流偏差.bss FLAGCUR,1; 更新比較值和換相標志,1-允許更新 ,0-不允許.bss SPEED_REF,1;給定速度參考.bss V_ERROR
2、K,1;速度偏差.bss SPEED_COUNT,1; 速度調(diào)節(jié)環(huán)計數(shù)器.bss V1,1;相電壓 1.bss V2,1;相電壓 2.bss V3,1;相電壓 3.bss NEUTRAL,1; 中性點電壓.bss FLAG,1;感應電動勢變符號標志,1-變了 ;0-沒變.bss FLAGUP,1;轉(zhuǎn)過一機械轉(zhuǎn)標志 ,1-沒轉(zhuǎn)過 ,0-轉(zhuǎn)過.bss BCOUNT,1;延遲時間更新值 ,磁定位時臨時變量.bss B2COUNT,1;延遲時間.bss STALL,1;磁定位結(jié)束標志 ,1-結(jié)束 ,0-沒結(jié)束.bss ASYM,1;延時計算感應電動勢計數(shù)器.bss SPEEDFLAG ,1;第一轉(zhuǎn)時禁
3、止速度調(diào)節(jié)標志,1-禁止 ,0-允許.bss TIME,1;每轉(zhuǎn)時間計數(shù)器.bss STACK,6;軟堆棧區(qū);-定義主向量-.sect "vectors"RSVECTB_c_int0;復位INT1BPHANTOM;INT1INT2BPHANTOM;INT2INT3BPHANTOM;INT3INT4BPHANTOM;INT4INT5BPHANTOM;INT5INT6BADCINT;ADC 中斷;略;-以下是程序-.text;-初始化程序-_c_int0SETCCNFCLRCOVMSETCSXM;符號擴展SETCINTM;關中斷LARAR1,#STACKLDP#0E0HSPLK
4、#68H, WDCR;不用看門狗SPLK#0284H,SCSR1;10MCLKIN,20MCLKOUTLDP#0E8HSPLK#500,T1PR;PWM 設置 ,周期 50微秒SPLK#0000H,T1CNTSPLK#0FFFH,ACTRA;PWM1 6全部高電平輸出SPLK#01F4H,DBTCONA;死區(qū) 1.6微秒SPLK#500,CMPR1; 占空比為 0SPLK#500,CMPR2SPLK#500,CMPR3SPLK#8200H,COMCONA;允許比較 ,T1下溢重載SPLK#0840H,T1CON;連續(xù)增減計數(shù) ,內(nèi)部時鐘 ,不分頻SPLK#0100H,GPTCONA;T1 周期
5、中斷標志啟動AD 轉(zhuǎn)換LDP#0E1HSPLK#0FC0H, MCRA;引腳設置為 PWMLDP#0LACC#020HSACLIMR;允許 INT6 中斷LACCIFR; 清標志SACLIFRLDP#0E8HLACCEVAIFRA;清標志SACLEVAIFRALACCEVAIFRBSACLEVAIFRBLACCEVAIFRCSACLEVAIFRCSPLK#0,EVAIMRA;屏蔽中斷SPLK#0,EVAIMRBSPLK#0,EVAIMRCLDP#0E1H;AD 設置SPLK#0500H,ADCTRL2; 允許 EVA 啟動 AD 轉(zhuǎn)換SPLK#0900H,ADCTRL1;10分頻SPLK#00
6、03H,MAXCONV;4個轉(zhuǎn)換通道SPLK#3210H,CHSELSEQ1;ADCIN00-03 通道CLRCINTM;開總中斷;-變量初始化 -LDP#0;變量初始化SPLK#020H,IDC_REF;磁定位電流SPLK#0,IDC_ERRORKSPLK#0300H,SPEED_REF;轉(zhuǎn)速初值SPLK#00112,COMP;最小占空比SPLK#0000H,FLAGCURSPLK#0000H,SPEED_COUNTSPLK#0000H,CAPTSPLK#0000H,V1SPLK#0000H,V2SPLK#0000H,V3SPLK#0000H,NEUTRALSPLK#0000H,FLAGSP
7、LK#0001H,FLAGUP;沒轉(zhuǎn)過一轉(zhuǎn)SPLK#0001H,SPEEDFLAG;禁止速度調(diào)節(jié)SPLK#0000H,BCOUNTSPLK#0000H,B2COUNTSPLK#0000H,STALLSPLK#0000H,ASYMSPLK#0000H, V_ERRORKSPLK#0000H,TIME;-準備磁定位 -LDP#0LACCCOMP;裝載比較初值LDP#0E8H;反相驅(qū)動SPLK#03FDH,ACTRA;PWM1 低有效 ,PWM6 低電平 ,其它高電平SACLCMPR1;A 相入 ,C相出 ,B相不通電SPLK#0000H,CMPR2SPLK#0000H,CMPR3;-等待磁定位結(jié)束
8、 -MAGSTALLLDP#0LACCSTALL;檢測磁定位是否結(jié)束BCNDMAGSTALL,EQ;沒結(jié)束繼續(xù)等待;-磁定位結(jié)束換相 -LACCCOMPLDP#0E8HSPLK#03DFH,ACTRA;PWM3 低有效 ,PWM6 低電平 ,其它高電平SACLCMPR2;B 相入 ,C相出 ,A 不通電SPLK#0000H,CMPR3SPLK#0000H,CMPR1LDP#0SPLK#4,CAPT;CAPT 初值;-主循環(huán) -LOOPLDP#0LACCFLAGCUR;檢測是否更新比較值BCNDLOOP,EQ; 不更新跳轉(zhuǎn)SPLK#0,FLAGCUR; 更新 ,清標志CALLSEQUENCE;調(diào)
9、用更新子程序BLOOP;等待下次更新;-假中斷處理 -PHANTOMCLRCINTMRET;-更新比較值或換相子程序 -SEQUENCELDP#0LACCTIME; 每轉(zhuǎn)時間計數(shù)器ADD#1SACLTIMELACCCAPT;換相控制字ADD#CAPT_DETER;加起始地址BACCCAPT_DETERBRISING1;相當于 H1 上升沿BFALLING3;相當于 H3 下降沿BRISING2;相當于 H2 上升沿BFALLING1;相當于 H1 下降沿BRISING3;相當于 H3 上升沿FALLING2;相當于 H2 下降沿LACCCOMPLDP#0E8HSPLK#0D3FH,ACTRA;
10、PWM5 低有效 ,PWM4 低電平 ,其它高電平SACLCMPR3;C相入 ,B相出 ,A 相不通電SPLK#0000H,CMPR2SPLK#0000H,CMPR1LDP#0;延時過濾干擾LACCASYM;延時計數(shù)器ADD#1; 加1SACLASYMSUB#10;檢測是否到計數(shù)值BCNDEND,LEQ;沒到 ,退出SPLK#10,ASYM;計數(shù)值已到 ,測量感應電動勢過零點LACCFLAG;感應電動勢符號變化 ?BCNDEND,NEQ;變了 ,退出LACCV1,1;沒變 ,檢測 .V1乘 2ADDV1;ACC=3*(BEMFA + NEUTRAL)SUBNEUTRAL;ACC=3*BEMFA
11、BCNDEND,LT;<0 符號沒變 ,退出SPLK#1,FLAG;否則符號改變 ,置過零標志LACCBCOUNTSACLB2COUNT; 更新延遲時間BEND; 退出RISING3LACCCOMPLDP#0E8HSPLK#0DF3H,ACTRA;PWM5 低有效 ,PWM2 低電平 ,其它高電平SACLCMPR3;C相入 , A相出 , B相不通電SPLK#0000H,CMPR2SPLK#0000H,CMPR1LDP#0;延時過濾干擾LACCASYM;延時計數(shù)器ADD#1; 加1SACLASYMSUB#10;檢測是否到計數(shù)值BCNDEND,LEQ;沒到 ,退出SPLK#10,ASYM;
12、計數(shù)值已到 ,測量感應電動勢過零點LDP#0LACCFLAG;感應電動勢符號變化 ?BCNDEND,NEQ;變了 ,退出LACCV2,1;沒變 ,檢測 .V2乘 2ADDV2;ACC=3*(BEMFB + NEUTRAL)SUBNEUTRAL;ACC=3*BEMFBBCNDEND,GEQ; 0符號沒變 ,退出SPLK#1,FLAG;否則符號改變 ,置過零標志LACCBCOUNTSACLB2COUNT; 更新延遲時間BEND; 退出FALLING3LACCCOMPLDP#0E8HSPLK#03FDH,ACTRA;PWM1 低有效 ,PWM6 低電平 ,其它高電平SACLCMPR1; A 相入 ,
13、 C相出 , B相不通電SPLK#0000H,CMPR2SPLK#0000H,CMPR3LDP#0;延時過濾干擾LACCASYM;延時計數(shù)器ADD#1; 加1SACLASYMSUB#10;檢測是否到計數(shù)值BCNDEND,LEQ;沒到 ,退出SPLK#10,ASYM;計數(shù)值已到 ,測量感應電動勢過零點LDP#0LACCFLAG;感應電動勢符號變化 ?BCNDEND,NEQ;變了 ,退出LACCV2,1;沒變 ,檢測 .V2乘 2ADDV2;ACC=3*(BEMFB + NEUTRAL)SUBNEUTRAL;ACC=3*BEMFBBCNDEND,LT;<0 符號沒變 ,退出SPLK#1,FL
14、AG;否則符號改變 ,置過零標志LACCBCOUNTSACLB2COUNT; 更新延遲時間BEND; 退出RISING2LACCCOMPLDP#0E8HSPLK#03DFH,ACTRA;PWM3 低有效 ,PWM6 低電平 ,其它高電平SACLCMPR2;B 相入 , C相出 , A 相不通電SPLK#0000H,CMPR3SPLK#0000H,CMPR1LDP#0;延時過濾干擾LACCASYM;延時計數(shù)器ADD#1; 加1SACLASYMSUB#10;檢測是否到計數(shù)值BCNDEND,LEQ;沒到 ,退出SPLK#10,ASYM;計數(shù)值已到 ,測量感應電動勢過零點LDP#0LACCFLAG;感
15、應電動勢符號變化 ?BCNDEND,NEQ;變了 ,退出LACCV1,1;沒變 ,檢測 .V1乘 2ADDV1;ACC=3*(BEMFA + NEUTRAL)SUBNEUTRAL;ACC=3*BEMFABCNDEND,GEQ; 0符號沒變 ,退出SPLK#1,FLAG;否則符號改變 ,置過零標志LACCBCOUNTSACLB2COUNT; 更新延遲時間BEND; 退出RISING1LACCCOMPLDP#0E8HSPLK#0F3DH,ACTRA;PWM1 低有效 ,PWM4 低電平 ,其它高電平SACLCMPR1;A 相入 , B相出 , C相不通電SPLK#0000H,CMPR2SPLK#0
16、000H,CMPR3LDP#0;延時過濾干擾LACCASYM;延時計數(shù)器ADD#1; 加1SACLASYMSUB#10;檢測是否到計數(shù)值BCNDEND,LEQ;沒到 ,退出SPLK#10,ASYM;計數(shù)值已到 ,測量感應電動勢過零點LDP#0LACCFLAG;感應電動勢符號變化 ?BCNDEND,NEQ;變了 ,退出LACCV3,1;沒變 ,檢測 .V3乘 2ADDV3;ACC=3*(BEMFC + NEUTRAL)SUBNEUTRAL;ACC=3*BEMFCBCNDEND,GEQ; 0符號沒變 ,退出SPLK#1,FLAG;否則符號改變 ,置過零標志LACCBCOUNTSACLB2COUNT
17、; 更新延遲時間BEND; 退出FALLING1LACCCOMPLDP#0E8HSPLK#0FD3H,ACTRA;PWM3 低有效 ,PWM2 低電平 ,其它高電平SACLCMPR2; B 相入 , A相出 , C相不通電SPLK#0000H,CMPR3SPLK#0000H,CMPR1LDP#0;延時過濾干擾LACCASYM;延時計數(shù)器ADD#1; 加1SACLASYMSUB#10;檢測是否到計數(shù)值BCNDEND,LEQ;沒到 ,退出SPLK#10,ASYM;計數(shù)值已到 ,測量感應電動勢過零點LDP#0SPLK#0,FLAGUP;轉(zhuǎn)過一機械轉(zhuǎn) ,置標志LACCFLAG;感應電動勢符號變化 ?B
18、CNDEND,NEQ;變了 ,退出LACCV3,1;沒變 ,檢測 .V3乘 2ADDV3;ACC=3*(BEMFC + NEUTRAL)SUBNEUTRAL;ACC=3*BEMFCBCNDEND,LT;<0 符號沒變 ,退出SPLK#1,FLAG;否則符號改變 ,置過零標志LACCBCOUNTSACLB2COUNT; 更新延遲時間ENDRET;-速度計算和調(diào)節(jié)子程序 -SPEED_REGLDP#0SPLK#32,SPEED_COUNT;25CLRCSXMLACC#0OR#0FFFFH;ACC=FFFFH 無符號數(shù)RPT#15SUBCBCOUNT;除 1/12機械轉(zhuǎn)時間AND#0FFFFH
19、;屏蔽高位SETCSXMSUBSPEED_REFNEG;速度偏差 = SPEED_REF-SPEEDBCNDPOS,GEQ; 檢測偏差是否超限 . 0跳轉(zhuǎn)ABS;<0 則取絕對值SPLK#-32,SPEED_COUNT;- 25POSSACLV_ERRORK;保存速度偏差SUB#03FFH;檢測上限BCNDOKPOS,LEQ;不超上限則跳轉(zhuǎn)SPLK#03FFH, V_ERRORK;否則 =3FFHOKPOSLTV_ERRORK;-1024 < 速度偏差 < 1024MPYSPEED_COUNT;乘 25PACSACLV_ERRORK;速度偏差 <<5LTV_ERR
20、ORK;速度比例調(diào)節(jié)MPY#KPS;乘比例系數(shù)PACADDIDC_REF,16SACHIDC_REF;IDC_REF(K)=IDC_REF(K-1) + KPS*V_ERRORKLACCIDC_REF;檢測 IDC_REF 是否超限BCNDRES,GEQ;0跳轉(zhuǎn)SPLK#0,IDC_REF;超下限則 =0RESSPLK#0,SPEED_COUNT;速度調(diào)節(jié)環(huán)計數(shù)器清 0RET;-ADC中斷子程序-ADCINT;每 50微秒轉(zhuǎn)換一次MAR*,AR1;保存現(xiàn)場MAR*+SST#1, *+; 保存 ST1SST#0, *+; 保存 ST0SACH*+;保存 ACC 高16位SACL*;保存 ACC
21、低 16位;-速度調(diào)節(jié)與否-LDP#0LACCSTALL;檢測磁定位是否完成?BCNDVDC_IDC,EQ;STALL=0( 磁定位沒完成 ) 禁止速度調(diào)節(jié)LACCSPEEDFLAG;禁止速度調(diào)節(jié) ?BCNDVDC_IDC,NEQ;SPEEDFLAG=1, 禁止速度調(diào)節(jié)LACCSPEED_COUNT;檢測是否該速度調(diào)節(jié)?SUB#2000;每 100ms進行一次速度調(diào)節(jié)BCNDNO_SPEED_REG ,NEQ;時間沒到 ,跳轉(zhuǎn)CALLSPEED_REG;時間到 ,調(diào)速度調(diào)節(jié)子程序NO_SPEED_REGLACCSPEED_COUNTADD#1SACLSPEED_COUNT;SPEED_COUN
22、T+1;-讀 ADC 轉(zhuǎn)換結(jié)果 -VDC_IDCLDP#0E0HLACCPIVR;清 ADC 中斷標志LDP#0E8HLACCEVAIFRA;清 T1周期中斷標志SACLEVAIFRALDP#0E1HLACCADCTRL2OR#0202HSACLADCTRL2LACCRESULT0,10; 讀電流值LDP#0SACHIDC_ERRORKLDP#0E1HLACCRESULT1,10;讀A相電壓LDP#0SACHV1LDP#0E1HLACCRESULT2,10;讀 B相電壓LDP#0SACHV2LDP#0E1HLACCRESULT3,10;讀 C相電壓LDP#0SACHV3;-電流比例調(diào)節(jié)-SET
23、CSXMLACCIDC_ERRORK,5;Q5 格式SUBIDC_REF,5SACLIDC_ERRORK;保存電流偏差 ,Q5格式LTIDC_ERRORK;電流比例調(diào)節(jié)MPY#KP;Q11格式PAC;ACC = KP*IDC_ERRORKADDCOMP,16SACHCOMP;KP*IDC_ERRORK + COMP(K-1)LACCCOMP;檢測是否超限BCNDSUP_LIM,GTSPLK#0,COMP;超過下限 ,COMP=0BCOMP_OKSUP_LIMSUB#0500BCNDCOMP_OK,LTSPLK#0500,COMP;超過上限 ,COMP=500COMP_OK;在上下限內(nèi);-換相準備 -LDP#0LACCFLAG;過零 ?BCNDNEU,EQ; 沒過零 ,跳轉(zhuǎn)LACCB2COUNT;過零 ,執(zhí)行延遲時間SUB#1;延遲時間減 1SACLB2COUNTSETCSXMBCNDNEU,NEQ;延遲時間沒到 ,跳轉(zhuǎn)LACCCAPT;否則更新?lián)Q相控制字ADD#2SACLCAPTSUB#0CHBCNDOKCAPT,NEQ;沒超過 12,跳轉(zhuǎn)SPLK#0,CAPT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025型材購銷合同樣本
- 2025年度勞動合同制員工招聘申請表
- 2025快遞公司物流服務合同范本
- 2025年甘肅貨車資格證考試題
- 2025年勞動合同模板:項目經(jīng)理與建筑工人之間的協(xié)議
- 先天性食管裂孔疝的健康宣教
- 先天性腸閉鎖的健康宣教
- 先天性純紅細胞再生障礙性貧血的健康宣教
- 2025《合同法》中關于合同解除問題
- 腦出血的急救護理
- 學校保潔方案
- 血液透析患者心力衰竭的護理
- 江蘇省2021-2022學年二年級下學期數(shù)學期中備考卷一(南京專版)
- TCI 535-2024 鋁合金液態(tài)模鍛模具技術條件
- 胰島素泵護理管理規(guī)范
- 9.1.1 西亞 第1課時 課件 七年級地理下冊 人教版
- 校外培訓機構(gòu)預收費資金托管協(xié)議書范本
- 2025山東能源集團中級人才庫選拔高頻重點模擬試卷提升(共500題附帶答案詳解)
- 《餐廳托盤的使用技》課件
- 【化學】化學與可持續(xù)發(fā)展教學設計-2024-2025學年九年級化學人教版下冊
- Unit 2 Know your body(說課稿) -2024-2025學年外研版(三起)(2024)英語三年級下冊
評論
0/150
提交評論