整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx

上传人:b****8 文档编号:10935498 上传时间:2023-02-23 格式:DOCX 页数:87 大小:46.46KB
下载 相关 举报
整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx_第1页
第1页 / 共87页
整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx_第2页
第2页 / 共87页
整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx_第3页
第3页 / 共87页
整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx_第4页
第4页 / 共87页
整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx

《整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx》由会员分享,可在线阅读,更多相关《整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx(87页珍藏版)》请在冰豆网上搜索。

整理61三相交流异步电动机无速度传感器磁场定向控制程序.docx

整理61三相交流异步电动机无速度传感器磁场定向控制程序

《6-1三相交流异步电动机无速度传感器磁场定向控制程序》

.include"x24x_app.h"

;-----------------------------------------------------------------------------

;变量定义

;-----------------------------------------------------------------------------

.bssspeed_ref,1;速度参考

.bssspeed_ref_rpm,1

stack_size.set20h;堆栈空间

stack_start.usect"stack",stack_size

.bssGPR0,1;临时变量

.bsssp_loop_cnt,1;速度环计数器

.bsssp_loop_max,1

;速度PI调节变量定义

.bssspd_fdb,1;反馈速度

.bssspd_ref,1;速度参考

.bsst_out,1;控制输出

.bsst_max,1;最大输出(Q15)

.bsst_min,1;最小输出(Q15)

.bssup_spd,1;比例项(Q14)

.bssup1_spd,1;k-1比例项(Q14)

.bssui_hi_spd,1;积分项高字(Q30)

.bssui_lo_spd,1;积分项低字

.bssud_hi_spd,1;微分项高字(Q30)

.bssud_lo_spd,1;微分项低字

.bssKp_spd,1;比例系数

.bssKi_spd,1;积分系数

.bssKd_spd,1;微分系数

.bssKc_spd,1;积分修正系数

.bsse_spd,1;速度偏差

.bssuprsat_spd,1;没检验饱和的输出

.bsssaterr_spd,1;饱和偏差

Kp_spd_.set28312;比例系数Q15

Ki_spd_.set4149;积分系数Q31

Kd_spd_.set0;微分系数Q14

Kc_spd_.set31858;积分修正系数Q15

Umax_spd_.set07FFFh;最大输出

Umin_spd_.set08000h;最小输出

;弱磁控制变量定义

.bssspd_ref_fp,1;速度参考

.bssid_ref_fp,1;Id参考

.bssspd_abs,1;速度参考绝对值

.bssspd_1,1;最高转速

.bssid_1,1;最大d轴定子电流

.bssfield_tmp1,1;临时变量

id_1_.set1500h;最大d轴定子电流(Q15)

spd_1_.set4000h;最高转速(Q15)

;d轴电流PI调节变量定义

.bssid_fdb,1;电流反馈

.bssid_ref,1;电流参考

.bssud_out,1;控制电压输出t

.bssud_max,1;最大输出电压(Q15)

.bssud_min,1;最小输出电压(Q15)

.bssup_d,1;比例项(Q14)

.bssup1_d,1;k-1积分项(Q14)

.bssui_hi_d,1;积分项高字(Q30)

.bssui_lo_d,1;积分项低字

.bssud_hi_d,1;微分项高字(Q30)

.bssud_lo_d,1;微分项低字

.bssKp_d,1;比例系数

.bssKi_d,1;积分系数

.bssKd_d,1;微分系数

.bssKc_d,1;积分修正系数

.bsse_d,1;电流偏差

.bssuprsat_d,1;没检验饱和的输出

.bsssaterr_d,1;饱和偏差

Kp_d_.set21178;比例系数Q15

Ki_d_.set4194;积分系数Q31

Kd_d_.set0;微分系数Q14

Kc_d_.set20281;积分修正系数Q15

Umax_d_.set04000h;最大输出电压

Umin_d_.set0C000h;最小输出电压

;q轴电流PI调节变量定义

.bssiq_fdb,1;电流反馈

.bssiq_ref,1;电流参考

.bssuq_out,1;控制电压输出

.bssuq_max,1;最大输出电压(Q15)

.bssuq_min,1;最小输出电压(Q15)

.bssup_q,1;比例项(Q14)

.bssup1_q,1;第k-1比例项(Q14)

.bssui_hi_q,1;积分项高字(Q30)

.bssui_lo_q,1;积分项低字(Q30)

.bssud_hi_q,1;微分项高字(Q30)

.bssud_lo_q,1;微分项低字(Q30)

.bssKp_q,1;比例系数

.bssKi_q,1;积分系数

.bssKd_q,1;微分系数

.bssKc_q,1;积分修正系数

.bsse_q,1;电流偏差

.bssuprsat_q,1;没检验饱和的输出

.bsssaterr_q,1;饱和偏差

Kp_q_.set21178;比例系数Q15

Ki_q_.set4194;积分系数Q31

Kd_q_.set0;微分系数Q14

Kc_q_.set20281;积分修正系数Q15

Umax_q_.set06700h;最大输出电压

Umin_q_.set09900h;最小输出电压

;Park逆变换变量定义

.bssipark_d,1;Iα

.bssipark_q,1;Iβ

.bsstheta_ip,1;定子电流矢量与M轴夹角,取值范围0-7FFFH,对应0-360度

.bssipark_D,1;IM

.bssipark_Q,1;IT

.bsst_ptr,1;表指针

.bssip_val,1;插值

.bsscos_theta,1

.bsssin_theta,1

.bssnxt_entry,1;下一个入口地址

.bssdelta_angle,1;角度差

.bssGPR0_ipark,1;中间变量

;SVPWM变量定义

.bssUalfa,1;两相直角坐标电压分量

.bssUbeta,1

.bssVa,1;三相电压

.bssVb,1

.bssVc,1

.bssTa,1

.bssTb,1

.bssTc,1

.bsssector,1;SVPWM扇区号

.bsst1,1;SVPWMT1

.bsst2,1;SVPWMT2

.bsshalf_sqrt3,1;

/2

X.setVa

Y.setVb

Z.setVc

SR_ADDR.setsector;扇区号

;PWM输出变量定义

.bssMfunc_c1,1;相1比较器调整参数Q15

.bssMfunc_c2.,1;相2比较器调整参数Q15

.bssMfunc_c3.,1;相3比较器调整参数Q15

.bssMfunc_p,1;周期调整参数Q15

.bssn_period,1;周期

.bssm_period,1;新周期

PWM_PERIOD.set50;PWM周期50微秒(20KHz)

T1PER_.setPWM_PERIOD*20;T1周期1000(时钟40MHz)

T1CON_.set1000100001000000b;对称PWM

DBTCON_.set09E8h;死区1.18微秒

ACTR_.set011001100110b;1/3/5高有效,2/4/6低有效

COMCON_.set1000001000000000b;比较控制寄存器

;ADC采样变量定义

.bssCh_sel,1;通道选择

.bssImeas_a_gain,1;a增益

.bssImeas_b_gain,1;b增益

.bssVdc_meas_gain,1;Vdc增益

.bssImeas_a_offset,1;a补偿

.bssImeas_b_offset,1;b补偿

.bssVdc_meas_offset,1;Vdc补偿

.bssImeas_a,1;Ia

.bssImeas_b,1;Ib

.bssImeas_c,1;Ic

.bssVdc_meas,1;Vdc

.bssGPR0adc,1;临时变量

.bssGPR1adc,1

CH_SEL_.set0710h;对eZdsp2407开发板

;Clarke变换变量定义

.bssclark_a,1;A相

.bssclark_b,1;B相

.bssclark_d,1;α相

.bssclark_q,1;β相

.bsssqrt3inv,1;1/

.bssclk_temp,1;临时变量

;Park变换变量定义

.bsspark_d,1;固定坐标轴

.bsspark_q,1;固定坐标轴

.bsstheta_p,1;夹角

.bsspark_D,1;旋转轴

.bsspark_Q,1;旋转轴

.bsst_ptr,1;表指针

.bssip_val,1;插值

.bsscos_theta,1;Cos值

.bsssin_theta,1;Sin值

.bssnxt_entry,1;下一个表地址

.bssdelta_angle,1;角差

.bssGPR0_park,1;临时变量

;相电压计算变量定义

.bssMfunc_V1,1

.bssMfunc_V2,1

.bssMfunc_V3,1

.bssDC_bus,1;DC总线电压

.bssVphase_A,1;A相电压

.bssVphase_B,1;B相电压

.bssVphase_C,1;C相电压

.bssVdirect,1;直轴电压

.bssVquadra,1;交轴电压

.bssone_third,1;1/3

.bsstmp_volt,1;临时变量

;磁通估算变量定义

.bssu_ds_fe,1;α轴定子电压(Q15)

.bssu_qs_fe,1;β轴定子电压(Q15)

.bssi_ds_fe,1;α轴定子电流(Q15)

.bssi_qs_fe,1;β轴定子电流(Q15)

.bsspsi_dr_fe,1;α轴估计的转子磁通(Q15)

.bsspsi_qr_fe,1;β轴估计的转子磁通(Q15)

.bsstheta_r_fe,1;转子磁通角(Q15)

.bssK1_fe,1;电流模型下常数(Q15)

.bssK2_fe,1;电流模型下常数(Q15)

.bssK3_fe,1;定子磁通计算的常数(Q15)

.bssK4_fe,1;定子磁通计算的常数(Q15)

.bssK5_fe,1;反电动势计算的常数(Q15)

.bssK6_fe,1;反电动势积分的常数(Q15)

.bssK7_fe,1;转子磁通计算的常数(Q14)

.bssK8_fe,1;转子磁通计算的常数(Q15)

.bssK9_fe,1;转矩计算的常数(Q12)

.bssKp_fe,1;PI比例系数(Q15)

.bssKi_fe,1;PI积分系数(Q31)

.bssptr_fe,1;查sin,cos,atan表的表指针

.bsscos_fe,1;Cos(theta_r_fe)(Q15)

.bsssin_fe,1;Sin(theta_r_fe)(Q15)

.bssi_ds_e,1;d轴定子电压(Q15)

.bssi_qs_e,1;q轴定子电压(Q15)

.bssflx_dr_e,1;d轴转子磁通(电流模型)(Q15)

.bssflx_qr_s,1;β轴转子磁通(电流模型)(Q15)

.bssflx_dr_s,1;α轴转子磁通(电流模型)(Q15)

.bssflx_qs_s,1;β轴定子磁通(电流模型)(Q15)

.bssflx_ds_s,1;α轴定子磁通(电流模型)(Q15)

.bssucomp_qs,1;β轴补偿电压(Q15)

.bssucomp_ds,1;α轴补偿电压(Q15)

.bsserror_qs,1;β轴定子磁通偏差(Q14)

.bsserror_ds,1;α轴定子磁通偏差(Q14)

.bssui_lo_ds,1;α轴积分项(低字)(Q30)

.bssui_hi_ds,1;α轴积分项(高字)(Q30)

.bssui_lo_qs,1;β轴积分项(低字)(Q30)

.bssui_hi_qs,1;β轴积分项(高字)(Q30)

.bssemf_qs,1;β轴反电动势(Q15)

.bssemf_ds,1;α轴反电动势(Q15)

.bsspsi_qs_fe,1;β轴定子磁通(Q31)

.bsspsi_ds_fe,1;α轴定子磁通(Q31)

.bsspsi_qs_lo,1;β轴定子磁通(低字)(Q31)

.bsspsi_ds_lo,1;α轴定子磁通(低字)(Q31)

.bsspsi_qr_p,1;β轴转子磁通(Q15)

.bsspsi_dr_p,1;α轴转子磁通(Q15)

.bsspsi_qdr,1;转子磁通商(Q15)

.bsstmp1_fe,1;临时变量

K1_fe_.set32739;K1_fe(Q15)

K2_fe_.set29;K2_fe(Q15)

K3_fe_.set31203;K3_fe(Q15)

K4_fe_.set3209;K4_fe(Q15)

K5_fe_.set11626;K5_fe(Q15)

K6_fe_.set171;K6_fe(Q15)

K7_fe_.set17206;K7_fe(Q14)

K8_fe_.set3370;K8_fe(Q15)

;速度估计变量定义

.bssi_ds_se,1;α轴定子电流(Q15)

.bssi_qs_se,1;β轴定子电流(Q15)

.bsspsi_dr_se,1;α轴转子磁通(Q15)

.bsspsi_qr_se,1;β轴转子磁通(Q15)

.bsstheta_r_se,1;转子磁通角(Q15)

.bsswr_hat_se,1;估计转子速度(Q15)

.bsswr_hat_rpm_se,1;估计转子速度rpm(Q0)

.bssK1_se,1;速度计算常数(Q15)

.bssK2_se,1;微分器常数(Q6)

.bssK3_se,1;低通滤波器常数(Q15)

.bssK4_se,1;低通滤波器常数(Q15)

.bssbase_rpm_se,1;速度基值rpm(Q0)

.bssw_sl,1;估计转差速度(Q15)

.bsspsi_r_2,1;转子磁通平方(Q15)

.bsstheta_r_old,1;前一次计算的转子磁通角(Q15)

.bssw_psi_r,1;估计的转子磁通同步速度(Q15)

.bssmin_theta,1;转子磁通角最小极限(Q15)

.bssmax_theta,1;转子磁通角最大极限(Q15)

t.bssmp1_se,1;临时变量

K1_se_.set776;forK1_se(Q15)

K2_se_.set10667;forK2_se(Q6)

K3_se_.set30831;forK3_se(Q15)

K4_se_.set1937;forK4_se(Q15)

BASE_RPM_SE_.set3600;速度基值(Q0)

DIFF_MAX_LIMIT.set7333h;theta_r_se的最大极限(Q15)

DIFF_MIN_LIMIT.set0CCDh;theta_r_se的最小极限(Q15)

;----------------------------------------------------------------------

;定义主向量

;----------------------------------------------------------------------

.sect"vectors"

.def_c_int0

RESETB_c_int0;00

INT1BPHANTOM;02

INT2BT1UF_ISR;04

INT3BPHANTOM;06

INT4BPHANTOM;08

INT5BPHANTOM;0A

INT6BPHANTOM;0C

.include"rtvecs.h"

;----------------------------------------------------------------------

;主程序

;----------------------------------------------------------------------

.text

_c_int0

CALLSYS_INIT;调系统初始化子程序

SPLK#28378,half_sqrt3;常数

/2,Q15格式

CALLFC_PWM_DRV_INIT;PWM初始化子程序

SPLK#RPM_MAX_,rpm_max;Q0

SPLK#SPEED_SCALER_,speed_scaler;Q0

SPLK#SHIFT_,shift;Q0

CALLILEG2_DCBUS_DRV_INIT;调Ia、Ib、Ic、DC检测初始化子程序

SPLK#10923,one_third;7FFFhx0.33333...(Q15)

SPLK#018919,sqrt3inv;7FFFhx0.577350269...(Q15)

SPLK#018830,sqrt3inv;1/

(Q15)

SPLK#3FFFh,ipark_D

SPLK#3FFFh,ipark_Q

CALLACI_FE_INIT;调磁通估算初始化子程序

CALLACI_SE_INIT;调开环速度估计初始化子程序

CALLPID_REG3_ID_INIT;调IdPI调节初始化子程序

CALLPID_REG3_IQ_INIT;调IqPI调节初始化子程序

CALLPID_REG3_SPD_INIT;调速度PI调节初始化子程序

SPLK#SPD_1_,spd_1

SPLK#ID_1_,id_1

;系统中断初始化

SPLK#0000001000000001b,IMRA;使能T1下溢中断和保护中断

SPLK#0FFFFh,IFRA;清所有A组中断标志

SPLK#0FFFFh,IFRB;清所有B组中断标志

SPLK#0FFFFh,IFRC;清所有C组中断标志

SPLK#0FFFFh,IFR;清所有悬挂中断标志

SPLK#0000000000000010b,IMR;使能INT2

EINT;使能中断

;给定速度初始化

SPLK#2000h,speed_ref;120Hz的25%,30Hz

SPLK#0,sp_loop_cnt;速度环计数器

SPLK#1,sp_loop_max;每2个PWM周期调整一次

;---------------------------------------------------------

MAIN;主循环

BMAIN

;----------------------------------------------------------------------

;T1下溢中断子程序

;----------------------------------------------------------------------

T1UF_ISR

MAR*,AR1;保存现场

MAR*+;指向缓存区

SST#1,*+;保存ST1

SST#0,*+;保存ST0

SACH*+;保存acc高字

SACL*+;保存acc低字

SARAR6,*+;保存AR6

POPD*+;保存栈顶

SPLK#0FFFFh,IFRA;清所有A组中断标志

CLRCXF

LACCsp_loop_max

SUBsp_loop_cnt

BCNDSKIP_SP_PID,GEQ;是否速度PI调节,不是跳转

SPLK#0,sp_loop_cnt;复位sp_loop_cnt

LDP#spd_ref

BLDD#speed_ref,spd_ref;速度参考

BLDD#wr_hat_se,spd_fdb

CALLPID_REG3_SPD;速度PI调节

SKIP_SP_PID

LACCsp_loop_cnt

ADD#1h

SACLsp_loop_cnt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1