《三相交流异步电动机矢量控制程序》
.INCLUDE \;-----------------------以下定义变量和-------------------------------------------------------------b5E2RGbCAP .DATA
KSPEED .SET 3415;将脉冲数转换成速度系数,13.34的Q8格式
;速度基值1500rpm,速度采样周期3ms SPEEDSTEP .SET 30 ;速度采样周期30个中断
.BSS T1_PERIODS,1 ;T1周期值的Q5格式 .BSS KCURRENT,1 ;电流ipuQ12的转换系数,Q8格式 .BSS KI,1 ;电流积分系数,Q12格式 .BSS KP,1 ;电流比例系数,Q12格式 .BSS KC,1;电流积分修正系数,Q12格式 .BSS KIN,1;速度积分系数,Q12格式 .BSS KPN,1 ;速度比例系数,Q12格式
.BSS KCN,1 ;速度积分修正系数,Q12 .BSS VMIN,1;电压最小极限-1.25 pu,Q12 .BSS VMAX,1;电压最大极限1.25 pu,Q12 .BSS IMAX,1;相电流最大极限,Q12 .BSS TMP,1 ;临时变量 .BSS IA,1 ;相电流IA .BSS IB,1 ;相电流IB .BSS IC,1 ;相电流IC .BSS SIN,1 ;SIN值Q12 .BSS COS,1 ;COS值Q12
.BSS DEC_MS,24 ;6个逆阵,Q14格式 .BSS CMP_1,1 ;第1基本矢量,Q0格式 .BSS CMP_2,1 ;第2基本矢量, Q0格式 .BSS CMP_0,1 ;0基本矢量/2, Q0格式
.BSS FIRST_TOG,1;存放第一次比较匹配的比较器地址 .BSS SEC_TOG,1 ;存放第二次比较匹配的比较器地址
.BSS TETA_E,1 ;转子电角度[0;1000H],对应[0;360]Q12格式 .BSS IALFA,1 ;ALFA轴电流 .BSS IBETA,1 ;BETA轴电流
.BSS VALF_REF,1 ;ALFA轴参考电压 .BSS VBET_REF,1 ;BETA轴参考电压 .BSS IMREF,1 ;M轴参考电流 .BSS ITREF,1 ;T轴参考电流 .BSS IM,1 ;M轴电流 .BSS IT,1 ;T轴电流
.BSS VMREF,1 ;M轴参考电压 .BSS VTREF,1 ;T轴参考电压 .BSS EPIT,1 ;T轴电流调节偏差 .BSS EPIM,1 ;M轴电流调节偏差
.BSS XIT,1 ;T轴电流调节器积分累计量 .BSS XIM,1 ;M轴电流调节器积分累计量 .BSS N,1;速度
常
数
1 / 15
.BSS N_REF,1 ;速度参考值 .BSS EPISPEED,1 ;速度偏差
.BSS XISPEED,1 ;速度调节器积分累计量 .BSS P,1 ;SVPWM扇区索引
.BSS ITREFMIN,1 ;T轴电流最小极限 .BSS ITREFMAX,1 ;T轴电流最大极限 .BSS SECTOR,1 ;SVPWM扇区数 .BSS INDEX,1 ;查SIN表索引 .BSS UPI,1 ;PI调节器输出
.BSS ELPI,1 ;PI调节器极限偏差
.BSS ENCODEROLD,1 ;前一个采样周期时编码脉冲数 .BSS ENCINCR,1 ;编码脉冲增量
.BSS SPEEDTMP,1 ;编码脉冲增量累计值 .BSS SPEEDSTEP,1 ;速度采样周期减计数器
.BSS KR,1 ;常数,见式(4-36) .BSS KT,1 ;常数, 见式(4-37) .BSS K,1 ;转换常数,见式(4-39) .BSS IDK,1 ;转子励磁电流,Q12
.BSS FS,1 ;转子磁链角频率与额定角频率之比 .BSSTETAINCR,1 ;TETA转角增量 .BSS TMP1,1 ;临时变量 ;-----------------------以下是程
-----------------------------------------------------------------------------p1EanqFDPw .TEXT
;-----------------------初始化程
-----------------------------------------------------------------------------DXDiTa9E3d CLRC CNF ; B0 SETC OVM SPM 0
SETC SXM ;扩展符号 LAR AR0,#DEC_MS;传送逆阵数据 LAR AR1,#(24-1); 24个
LACC #ANGLES_ ; 指向源 LARP AR0 INIT_TBL
TBLR *+,AR1 ;下一个
ADD#1 ;下一个地址
BANZ INIT_TBL,AR0 ;AR1=0结束
LAR AR4,#79H ;用于堆栈保存现场,B2(60H-80H) LDP #0E0H
SPLK #68H, WDCR ;不用看门狗
SPLK #0284H,SCSR1 ;CLKIN 10MHZ,CLKOUT 20MHZ LDP #0E1H
SPLK#0900H,ADCTRL1 ;ADC预分频10,1MHZ
SPLK #0001H,MAXCONV ;两个通道
SPLK #0010H,CHSELSEQ1 ;选择ADCIN0和ADCIN1通道 LACC MCRA
OR #0FD8H ;设置PWM1-6,QEP1-2
2 / 15
序
序
SACL MCRA
;-----------------------变量初始化-----------------------------------------------------RTCrpUDGiT LDP #0
SPLK #32000,T1_PERIODS ;T1周期值的Q5格式,1000*32 SPLK #KI,KI ;给电流积分系数赋值,Q12
SPLK #KP,KP ;给电流比例系数赋值,Q12 SPLK #KC,KC ;给电流积分修正系数赋值,Q12 SPLK #KIN,KIN ;给速度积分系数赋值,Q12 SPLK #KPN,KPN ;给速度比例系数赋值,Q12 SPLK #KCN,KCN ;给速度积分修正系数赋值,Q12 SPLK #VMIN,VMIN;给电压最小极限赋值-1.25 pu,Q12 SPLK #VMAX, VMAX;给电压最大极限赋值1.25 pu,Q12 SPLK #IMAX,IMAX ;给相电流最大极限赋值,Q12
SPLK #1383H,KCURRENT ;电流ipuQ12的转换系数19.5的Q8格式
5PCzVD7HxA SPLK #39,KR ;(Lr=0.169,Rr=2.011,T=0.0001)Q15格式
jLBHrnAILg SPLK #156,KT ; (Lr=0.169,Rr=2.011)Q12格式xHAQX74J0X SPLK #328,K ;转换系数,采样周期100微秒,Q0LDAYtRyKfE SPLK #0,IDK SPLK #0,FS
SPLK #0,TETAINCR SPLK #0,TMP SPLK #0,TMP1 LACC IMAX
SACL ITREFMAX NEG
SACL ITREFMIN
LACC #0 SACL ITREF SACL IMREF SACL N_REF SACL INDEX SACL XIM SACL XIT
SACL XISPEED SACL UPI SACL ELPI
SACL ENCODEROLD SACL N
SACL SPEEDTMP
LACC #SPEEDSTEP ;SPEEDSTEP=30 SACL SPEEDSTEP
;-----------------------事件管理器A初始化
-------------------------------------------------------------------Zzz6ZB2Ltk LDP #0E8H
SPLK #0666H,ACTRA ;引脚PWM1,3,5高有效,2,4,6低有效 SPLK #300,CMPR1 ;占空比初值为0 SPLK #300,CMPR2 SPLK #300,CMPR3
3 / 15
SPLK #01F4H,DBTCONA ;死区时间1.6us
SPLK #8200H,COMCONA ;定时器下溢比较器重载,允许比较 SPLK #1000,T1PR ;周期寄存器值1000 SPLK #0,T1CNT
SPLK #0840H,T1CON ;连续增减计数方式,预分频为1,允许T1 SPLK #0,T2CNT ;编码脉冲计数器 SPLK #0FFFFH,T2PR
SPLK #9870H,T2CON ;定向增减,允许编码接口
;-----------------------中断初始化--------------------------------------------------------------------dvzfvkwMI1 SPLK #0FFFH,EVAIFRA ;清事件管理器A所有中断标志 SPLK #000FH,EVAIFRB SPLK #000FH,EVAIFRC
SPLK #0200H,EVAIMRA ;开T1下溢中断 SPLK #0000H,EVAIMRB SPLK #0000H,EVAIMRC LDP #0H LACC #0FFH
SACL IFR ;清所有系统中断标志 LACC #0000010B
SACL IMR ;开INT2中断 CLRC INTM ;开总中断
;-----------------------初始化结束-------------------------------------------------------------------rqyn14ZNXI
;-----------------------T1下溢中断处理子程序-----------------------------------------------------EmxvxOtOco _C_INT2
;-----------------------保存现场------------------------------------------------------------------------SixE2yXPq5 MAR *,AR4 ;AR4作为堆栈指针 MAR *-
SST #1,*-;保存状态寄存器1 SST #0,*- ;保存状态寄存器0 SACH *- ;保存ACC高位 SACL *- ;保存ACC低位 LDP #0E0H
LACC PIVR ;读中断向量 LDP #0E8H
SPLK #0200H,EVAIFRA ;清中断标志位
;-----------------------电流采样和AD转换------------------------------------------------------6ewMyirQFL LDP #0E1H
SPLK #2000H,ADCTRL2 ;启动AD转换,IA-ADCIN0,IB-ADCIN1kavU42VRUs CONVERSION
BIT ADCTRL2,3;将忙状态位复制到TC BCND CONVERSION,TC ;等待 LACC RESULT0,10 LDP #0 SACH IA LDP #0E1H
LACC RESULT1,10 LDP #0 SACH IB
4 / 15
相关推荐: