DSP无刷直流电动机驱动控制程序

上传人:壹****1 文档编号:549324608 上传时间:2022-08-16 格式:DOC 页数:29 大小:106.50KB
返回 下载 相关 举报
DSP无刷直流电动机驱动控制程序_第1页
第1页 / 共29页
DSP无刷直流电动机驱动控制程序_第2页
第2页 / 共29页
DSP无刷直流电动机驱动控制程序_第3页
第3页 / 共29页
DSP无刷直流电动机驱动控制程序_第4页
第4页 / 共29页
DSP无刷直流电动机驱动控制程序_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《DSP无刷直流电动机驱动控制程序》由会员分享,可在线阅读,更多相关《DSP无刷直流电动机驱动控制程序(29页珍藏版)》请在金锄头文库上搜索。

1、.2.4 无刷直流电动机驱动控制程序/#/无刷电机控制源程序/TMS320F2812/#/=/头文件调用/=#include DSP28_Device.h#include math.h#include float.h/=/常量附值/=#define Idc_max 3000 /电流给定最大值#define Idc_min 0 /电流给定最小值/=/标志位/=char Iab_Data=0;struct Flag_Bits / bits description Uint16 Send:1; / 0 串口发数 Uint16 Test:1; / 1 串口测试 Uint16 Vflag:1; / 2

2、转速更新 Uint16 SendEnd:1; / 3 串口发送结束 Uint16 Sign1:1; / 4 上一次给定转向标志 Uint16 Sign2:1; / 5 本次给定转向标志 Uint16 Openint:1; / 6 启动标志 Uint16 Adfrist:1; / 7 保留 Uint16 Spdoff:1; / 8 保留 Uint16 Zero:1; / 9 转速过零标志 Uint16 Mode:3; / 10-12 保留 Uint16 Dshow:1; / 13 保留 Uint16 Sign:1; / 14 当前转向标志;union Flag_Reg Uint16 all; s

3、truct Flag_Bits bit;FlagRegs;/=/全局变量/=/串口通信变量unsigned int Sci_Rx8=0,0,0,0,0,0,0,0; /接收数据数组unsigned int Sci_Tx8=0,0,0,0,0,0,0,0; /发送数据数组char T_pointer=0; /发送数据数组指针char R_pointer=0; /接收数据数组指针char T_length=1; /发送数据长度char R_length=0; /接收数据长度char a2=0; /控制参数unsigned int spd_kp=0; /转速环P参数unsigned int spd_

4、ki=0; /转速环I参数unsigned int id_kp=0,id_ki=0; /电流PI参数signed int spd_given=0; /转速给定signed int spd_given1=0; /转速给定signed int spd_given2=0; /转速给定/控制变量unsigned int cap1=0; /前次换向标志位unsigned int cap2=0; /本次换向标志位unsigned int intruptcount=0; /定时器1下溢中断次数unsigned int speed_given = 1000; /转速给定signed int Idc_given

5、2=0; /算得本次电流给定值signed int speed_e1=0; /前次转速误差signed int speed_e2=0; /本次转速误差signed int Ia_e1=0; /前次电流误差signed int Ia_e2=0; /本次电流误差char t2first=0;signed int P2=0; /装比较寄存器值/转速反馈char Spd_Data=0; /滤波计数int speed_counter=0; /速度环计数器unsigned int cap_a; /本次捕获单元数据unsigned int cap_b; /上次捕获单元数据long cap_c; /捕获单元数

6、据差signed int BLDC_SPD10=0,0,0,0,0,0,0,0,0,0;/转速滤波signed int spd_fd_q1=0; /转速反馈临时变量unsigned int spd_fd_q0=0; /转速检测值char cc=0;/电流反馈unsigned int ia6=0,0,0,0,0,0; /A相电流反馈值unsigned int ib6=0,0,0,0,0,0; /B相电流反馈值signed int ia_fd=0,ib_fd=0; /电流反馈signed int Temp_filter=0; /临时变量unsigned int t1per=0; /周期寄存器数值/

7、临时变量signed long long1_tmp=0;signed long long2_tmp=0;signed int u16_tmp1=0;signed int u16_tmp2=0;/=/子程序声明/=interrupt void t1uf_int(void);interrupt void cap_int(void);void Ad(void);void speed(void); /计算速度void Ia_PI(void); /电流环调节Iavoid speed_PI(void); /速度环调节void bldc(void); void Check_Rxdata(void); voi

8、d Sci_Send(signed int sci_delay);char *Fen_Jie(signed int Send_Temp);unsigned int Sci_Rx_check(unsigned int i_Rx,unsigned int *p_Rx); signed int DIV_CAL(long signed int dividend,signed int divisor);unsigned int U_DIV_CAL(long unsigned int udividend,unsigned int udivisor);/=/主程序开始/=void main(void)/控制寄存器初始设置 InitSysCtrl(); /初始化系统 DINT; /关全局中断 IER = 0x0000; IFR = 0x0000; InitPieCtrl(); /初始化PIE中断 InitPieVectTable(); /初始化PIE中断矢量表 InitGpio(); /初始化Gpio输入输出口 InitEv(); /初始化Eva的T和T2 InitAdc_Eva(); /初始化

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号