贴 一个光盘程序 编译
;《6-1三相交流异步电动机无速度传感器磁场定向控制程序》
.include "x24x_app.h"
;-----------------------------------------------------------------------------
; 变量定义
;-----------------------------------------------------------------------------
.bss speed_ref,1 ;速度参考
.bss speed_ref_rpm,1
stack_size .set 20h ;堆栈空间
stack_start .usect "stack",stack_size
.bss GPR0,1 ;临时变量
.bss sp_loop_cnt,1 ; 速度环计数器
.bss sp_loop_max,1
;速度PI调节变量定义
.bss spd_fdb ,1 ; 反馈速度
.bss spd_ref,1 ; 速度参考
.bss t_out ,1 ; 控制输出
.bss t_max ,1 ; 最大输出 (Q15)
.bss t_min ,1 ;最小输出 (Q15)
.bss up_spd ,1 ; 比例项(Q14)
.bss up1_spd ,1 ; k-1比例项 (Q14)
.bss ui_hi_spd ,1 ;积分项高字 (Q30)
.bss ui_lo_spd ,1 ; 积分项低字
.bss ud_hi_spd ,1 ;微分项高字 (Q30)
.bss ud_lo_spd ,1 ;微分项低字
.bss Kp_spd ,1 ;比例系数
.bss Ki_spd ,1 ; 积分系数
.bss Kd_spd ,1 ; 微分系数
.bss Kc_spd ,1 ; 积分修正系数
.bss e_spd ,1 ; 速度偏差
.bss uprsat_spd,1 ; 没检验饱和的输出
.bss saterr_spd ,1 ; 饱和偏差
Kp_spd_ .set 28312 ;比例系数 Q15
Ki_spd_ .set 4149 ;积分系数Q31
Kd_spd_ .set 0 ; 微分系数Q14
Kc_spd_ .set 31858 ; 积分修正系数Q15
Umax_spd_ .set 07FFFh ; 最大输出
Umin_spd_ .set 08000h ; 最小输出
;弱磁控制变量定义
.bss spd_ref_fp,1 ;速度参考
.bss id_ref_fp,1 ;Id参考
.bss spd_abs,1 ;速度参考绝对值
.bss spd_1,1 ; 最高转速
.bss id_1 ,1 ; 最大d轴定子电流
.bss field_tmp1,1 ;临时变量
id_1_ .set 1500h ;最大d轴定子电流(Q15)
spd_1_.set 4000h ;最高转速 (Q15)
; d轴电流PI调节变量定义
.bss id_fdb ,1 ; 电流反馈
.bss id_ref ,1 ; 电流参考
.bss ud_out ,1 ; 控制电压输出t
.bss ud_max ,1 ;最大输出电压 (Q15)
.bss ud_min ,1 ; 最小输出电压 (Q15)
.bss up_d ,1 ;比例项 (Q14)
.bss up1_d ,1 ; k-1积分项 (Q14)
.bss ui_hi_d ,1 ; 积分项高字 (Q30)
.bss ui_lo_d ,1 ; 积分项低字
.bss ud_hi_d ,1 ;微分项高字(Q30)
.bss ud_lo_d ,1 ;微分项低字
.bss Kp_d ,1 ; 比例系数
.bss Ki_d ,1 ; 积分系数
.bss Kd_d ,1 ; 微分系数
.bss Kc_d ,1 ; 积分修正系数
.bss e_d ,1 ; 电流偏差
.bss uprsat_d ,1 ; 没检验饱和的输出
.bss saterr_d ,1 ; 饱和偏差
Kp_d_ .set 21178 ;比例系数 Q15
Ki_d_ .set 4194 ;积分系数Q31
Kd_d_ .set 0 ;微分系数 Q14
Kc_d_ .set 20281 ;积分修正系数Q15
Umax_d_ .set 04000h ; 最大输出电压
Umin_d_ .set 0C000h ; 最小输出电压
; q轴电流PI调节变量定义
.bss iq_fdb ,1 ; 电流反馈
.bss iq_ref ,1 ; 电流参考
.bss uq_out ,1 ; 控制电压输出
.bss uq_max ,1 ; 最大输出电压 (Q15)
.bss uq_min ,1 ;最小输出电压 (Q15)
.bss up_q ,1 ; 比例项 (Q14)
.bss up1_q ,1 ; 第k-1比例项 (Q14)
.bss ui_hi_q ,1 ; 积分项高字 (Q30)
.bss ui_lo_q ,1 ; 积分项低字 (Q30)
.bss ud_hi_q ,1 ; 微分项高字 (Q30)
.bss ud_lo_q ,1 ; 微分项低字 (Q30)
.bss Kp_q ,1 ; 比例系数
.bss Ki_q ,1 ;积分系数
.bss Kd_q ,1 ; 微分系数
.bss Kc_q ,1 ; 积分修正系数
.bss e_q ,1 ; 电流偏差
.bss uprsat_q ,1 ; 没检验饱和的输出
.bss saterr_q ,1 ;饱和偏差
Kp_q_ .set 21178 ; 比例系数Q15
Ki_q_ .set 4194 ; 积分系数Q31
Kd_q_ .set 0 ; 微分系数Q14
Kc_q_ .set 20281 ; 积分修正系数Q15
Umax_q_ .set 06700h ; 最大输出电压
Umin_q_ .set 09900h ; 最小输出电压
;Park逆变换变量定义
.bss ipark_d ,1 ;Iα
.bss ipark_q ,1 ;Iβ
.bss theta_ip ,1 ;定子电流矢量与M轴夹角,取值范围0-7FFFH,对应0-360度
.bss ipark_D ,1 ;IM
.bss ipark_Q ,1 ;IT
.bss t_ptr ,1 ;表指针
.bss ip_val ,1 ;插值
.bss cos_theta ,1
.bss sin_theta ,1
.bss nxt_entry ,1 ;下一个入口地址
.bss delta_angle ,1 ; 角度差
.bss GPR0_ipark ,1 ; 中间变量
;SVPWM变量定义
.bss Ualfa ,1 ;两相直角坐标电压分量
.bss Ubeta ,1
.bss Va ,1 ;三相电压
.bss Vb ,1
.bss Vc ,1
.bss Ta ,1
.bss Tb ,1
.bss Tc ,1
.bss sector ,1 ;SVPWM扇区号
.bss t1 ,1 ;SVPWM T1
.bss t2 ,1 ;SVPWM T2
.bss half_sqrt3 ,1 ; /2
X .set Va
Y .set Vb
Z .set Vc
SR_ADDR .set sector ;扇区号
;PWM输出变量定义
.bss Mfunc_c1 ,1 ; 相1比较器调整参数 Q15
.bss Mfunc_c2 ,1 ; 相2比较器调整参数 Q15
.bss Mfunc_c3 ,1 ; 相3比较器调整参数 Q15
.bss Mfunc_p ,1 ; 周期调整参数Q15
.bss n_period ,1 ; 周期
.bss m_period ,1 ; 新周期
PWM_PERIOD .set 50 ; PWM周期 50微秒 (20KHz)
T1PER_ .set PWM_PERIOD*20; T1周期1000(时钟40MHz)
T1CON_ .set 1000100001000000b ; 对称PWM
DBTCON_ .set 09E8h ; 死区1.18微秒
ACTR_ .set 011001100110b ; 1/3/5 高有效, 2/4/6 低有效
COMCON_ .set 1000001000000000b ;比较控制寄存器
;ADC采样变量定义
.bss Ch_sel ,1 ;通道选择
.bss Imeas_a_gain ,1 ;a增益
.bss Imeas_b_gain ,1 ;b增益
.bss Vdc_meas_gain ,1 ;Vdc增益
.bss Imeas_a_offset ,1 ;a补偿
.bss Imeas_b_offset ,1 ;b补偿
.bss Vdc_meas_offset,1 ;Vdc补偿
.bss Imeas_a ,1 ;Ia
.bss Imeas_b ,1 ;Ib
.bss Imeas_c ,1 ;Ic
.bss Vdc_meas ,1 ;Vdc
.bss GPR0adc ,1 ;临时变量
.bss GPR1adc ,1
CH_SEL_ .set 0710h ;对eZdsp2407开发板
;Clarke变换变量定义
.bss clark_a ,1 ;A相
.bss clark_b ,1 ;B相
.bss clark_d ,1 ;α相
.bss clark_q ,1 ;β相
.bss sqrt3inv ,1 ; 1/
.bss clk_temp ,1 ;临时变量
;Park变换变量定义
.bss park_d ,1 ;固定坐标轴
.bss park_q ,1 ;固定坐标轴
.bss theta_p ,1 ;夹角
.bss park_D ,1 ;旋转轴
.bss park_Q ,1 ;旋转轴
;.bss t_ptr ,1 ;表指针
;.bss ip_val ,1 ;插值
;.bss cos_theta ,1 ;Cos值
;.bss sin_theta ,1 ;Sin值
;.bss nxt_entry ,1 ;下一个表地址
;.bss delta_angle ,1 ;角差
.bss GPR0_park ,1 ;临时变量
;相电压计算变量定义
.bss Mfunc_V1 ,1
.bss Mfunc_V2 ,1
.bss Mfunc_V3 ,1
.bss DC_bus ,1 ;DC总线电压
.bss Vphase_A ,1 ;A相电压
.bss Vphase_B ,1 ;B相电压
.bss Vphase_C ,1 ;C相电压
.bss Vdirect ,1 ;直轴电压
.bss Vquadra ,1 ;交轴电压
.bss one_third ,1 ; 1/3
.bss tmp_volt ,1 ; 临时变量
; 磁通估算变量定义
.bss u_ds_fe ,1 ; α轴定子电压 (Q15)
.bss u_qs_fe ,1 ; β轴定子电压 (Q15)
.bss i_ds_fe ,1 ; α轴定子电流 (Q15)
.bss i_qs_fe ,1 ; β轴定子电流 (Q15)
.bss psi_dr_fe ,1 ; α轴估计的转子磁通 (Q15)
.bss psi_qr_fe ,1 ; β轴估计的转子磁通(Q15)
.bss theta_r_fe ,1 ;转子磁通角 (Q15)
.bss K1_fe ,1 ;电流模型下常数 (Q15)
.bss K2_fe ,1 ; 电流模型下常数 (Q15)
.bss K3_fe ,1 ; 定子磁通计算的常数 (Q15)
.bss K4_fe ,1 ; 定子磁通计算的常数 (Q15)
.bss K5_fe ,1 ; 反电动势计算的常数 (Q15)
.bss K6_fe ,1 ; 反电动势积分的常数 (Q15)
.bss K7_fe ,1 ; 转子磁通计算的常数 (Q14)
.bss K8_fe ,1 ; 转子磁通计算的常数 (Q15)
.bss K9_fe ,1 ; 转矩计算的常数 (Q12)
.bss Kp_fe ,1 ; PI比例系数 (Q15)
.bss Ki_fe ,1 ; PI 积分系数 (Q31)
.bss ptr_fe ,1 ; 查sin, cos, atan表的表指针
.bss cos_fe ,1 ; Cos(theta_r_fe) (Q15)
.bss sin_fe ,1 ; Sin(theta_r_fe) (Q15)
.bss i_ds_e ,1 ; d轴定子电压 (Q15)
.bss i_qs_e ,1 ; q轴定子电压 (Q15)
.bss flx_dr_e ,1 ; d轴转子磁通 (电流模型) (Q15)
.bss flx_qr_s ,1 ;β轴转子磁通(电流模型) (Q15)
.bss flx_dr_s ,1 ;α轴转子磁通(电流模型) (Q15)
.bss flx_qs_s ,1 ;β轴定子磁通(电流模型) (Q15)
.bss flx_ds_s ,1 ;α轴定子磁通(电流模型) (Q15)
.bss ucomp_qs ,1 ;β轴补偿电压 (Q15)
.bss ucomp_ds ,1 ;α轴补偿电压 (Q15)
.bss error_qs ,1 ;β轴定子磁通偏差 (Q14)
.bss error_ds ,1 ;α轴定子磁通偏差 (Q14)
.bss ui_lo_ds ,1 ;α轴积分项(低字) (Q30)
.bss ui_hi_ds ,1 ;α轴积分项(高字) (Q30)
.bss ui_lo_qs ,1 ;β轴积分项(低字) (Q30)
.bss ui_hi_qs ,1 ;β轴积分项(高字) (Q30)
.bss emf_qs ,1 ;β轴反电动势 (Q15)
.bss emf_ds ,1 ;α轴反电动势 (Q15)
.bss psi_qs_fe ,1 ;β轴定子磁通 (Q31)
.bss psi_ds_fe ,1 ;α轴定子磁通 (Q31)
.bss psi_qs_lo ,1 ;β轴定子磁通(低字) (Q31)
.bss psi_ds_lo ,1 ;α轴定子磁通(低字) (Q31)
.bss psi_qr_p ,1 ;β轴转子磁通 (Q15)
.bss psi_dr_p ,1 ;α轴转子磁通 (Q15)
.bss psi_qdr ,1 ;转子磁通商 (Q15)
.bss tmp1_fe ,1 ;临时变量 |