版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.5 正弦波永磁同步电动机驱动控制程序/# #/ 采用矢量控制算法控制永磁同步电机/ TMS320F2812/# #/= /头文件调用/= #include "DSP281x_Device.h"/= /常量附值/= #define Delta 5#define PI 3.1415926#define Kpspeed 0.7 /0.9 /转速环 PI 调节器低速时参数要大 一些#define Kispeed 0.7 /0.6 / 0.6 0.6 150转时#define Kpd 0.1 /0.07#define Kid 0.1 /0.1#define Kpq 0.15 /0
2、.22 /0.22 /0.07#define Kiq 0.1 /0.04 /0.04 /0.1/= /全局变量/= unsigned int index1; /index1为转子位置角用于 PARK PARKN变换 unsigned int index2;unsigned int testtime; /index2为转子位置角加或减 2分之 PIint charge=0; /自举充电时间控制位unsigned long rd=0; /转子定位时间控制位int L2=0; /T2计数器当前计数值int L1=0; /T2计数器上一次计数值int L; /计数器两次差值用于 M 法转速计算int
3、lin=0;unsigned int capcount=0;unsigned int cap50;/通过 SCI 口发信息unsigned int scienable=0;unsigned int canchannel=0; /发送选项控制unsigned long a=0,b=0;unsigned int speedsci=0;unsigned int speedsd=0;unsigned int speedthousand=3; /转速千位unsigned int speedhundred=3; /转速百位unsigned int speeddecade=1; /转速十位unsigned
4、int speedlow=0;unsigned int Udc=3500; /转速个位unsigned int Udcthousand=0; /电压千位unsigned int Udchundred=0; /电压百位unsigned int Udcdecade=4; /电压十位unsigned int Udclow=8; /电压个位unsigned int Idc=0;unsigned int Idcthousand=0; /电流千位unsigned int Idchundred=0; /电流百位unsigned int Idcdecade=6; /电流十位unsigned int Idclo
5、w=0; /电流个位unsigned int scicount=0; /向上位机发送数据周期控制unsigned long setspeed=2500; /上位机设定的速度unsigned int scisend6;char ReceivedChar=0;char scired6;int p=0,q=0,sciflag=0,tenable=0;int i,j,t;/AD数字滤波unsigned int once=0;long Ia_now;long Ia_fore;long Ib_now;long Ib_fore;long Ic_now;unsigned int ad_count;unsign
6、ed int delay=0;unsigned int S_Ia=0;unsigned int ia18=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; unsigned int ib18=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;long Icb,Ica; /CLARK变换两相静止坐标系电流 long Iat,Ibt; /AD数字滤波中间变量long Ia=0,Ib=0,Ic=0; /滤波后的电流值/转速环 PI 调节参数int direct=0; /转向控制 0为正转 1为反转long speed_given=170; /转速给定lo
7、ng speed_count=10; /转速计算周期控制标志long speed_feed=0; /转速反馈long speed_out2=0; /上次转速调节器输出long speed_e1; /当前转速偏差long speed_e2=0; /上次转速偏差/电流环 PI 调节参数long Id_given=0; /Id给定long Iq_given=0; /Iq给定转速调节器输出 long Id_feed; /d轴电流反馈值long Iq_feed; /q轴电流反馈值long Id_e; /d轴当前电流偏差long Id_e0=0; /d轴上次电流偏差long Iq_e; /q轴当前电流偏差
8、long Iq_e0=0; /q轴上次电流偏差long Ud=-150; /d轴电流调节器输出long Uq=1000; /q轴电流调节器输出long Ud0=0; /上次 d 轴电流调节器输出 long Uq0=0; /上次 q 轴电流调节器输出 long Upa,Upb; /Ud Uq PARKN变换值 long Ua,Ub,Uc; /SPWM调制电压void init_SCI(void; /串口初始化void scia_xmit(int a; /串口发送函数void init_eva(void; /EVA初始化void init_ADC(void; /ADC初始化void calcuin
9、dex(void; /转子位置角计算void calcuspeed(void; /转速计算void speed_PI(void; /转速环 PI 调节void AD(void; /AD采样及滤波void I_PI(void; /电流环 PI 调节void CLARK(void; /CLARK变换void CLARKN(void; /CLARK逆变换void PARK(void; /PARK变换void PARKN(void; /PARK逆变换interrupt void t1pint_isr(void; /定时器 1中断服务程序 interrupt void cap3_isr(void; /捕
10、获单元 3中断服务程序 interrupt void sci_isr(void;signed int sintable512=/同 SPWM/Q15格式 , 将 2PI 弧度分成了 512份void main(void/初始化系统InitSysCtrl(;/关中断DINT;IER = 0x0000;IFR = 0x0000;/初始化 PIE 中断InitPieCtrl(;/初始化 PIE 中断矢量表InitPieVectTable(;EALLOW;EDIS;EALLOW;PieVectTable.T1UFINT = &t1pint_isr;PieVectTable.CAPINT3 =
11、&cap3_isr;PieVectTable.RXAINT=&sci_isr;EDIS;IER |= M_INT2;IER |= M_INT3;IER |= M_INT9;EALLOW;EDIS;/开中断init_SCI(;init_eva(; /初始化 EVAinit_ADC(; /初始化 ADCif(direct=0speed_given=speed_given; /正反转速度设定elsespeed_given=-speed_given;EINT;ERTM;for(;if(scienable=1&&(tenable=1=1/speedsci=setspeed
12、;tenable=0;speedthousand=speedsci/1000;speedhundred=speedsci/100%10;speeddecade=speedsci/10%10;speedlow=speedsci%10;scisend0='s'scisend1=0x30+speedthousand; /speedthousand scisend2=0x30+speedhundred; /speedhundred scisend3=0x30+speeddecade; /speeddecade scisend4=0x30+speedlow; /speedlowscise
13、nd5='p'while(1scia_xmit(scisendp;p+;if(p>5p=0;break;void init_SCI(/ Note: Clocks were turned on to the SCIA peripheral/ in the InitSysCtrl( function/ No parity,8 char bits,/ async mode, idle-line protocolSciaRegs.SCIHBAUD =0x0001;SciaRegs.SCILBAUD =0x00E7;void scia_xmit(int aSciaRegs.SCIT
14、XBUF=a;void init_eva(EvaRegs.T1PR=7500; / Timer1 periodEvaRegs.T1CNT=0x0000; / Timer1 counterEvaRegs.T2PR=9999; /光电编码器 2500线EvaRegs.T2CNT=0;void init_ADC(voidfor(i=0;i<1000;i+ ;for(i=0;i<500;i+ ;/*/ /根据 L 正反转 4种不同情况进行转速计算所得转速均为正值/*/ void calcuspeed(voidif(L>=0&&(L<2000speed_feed=
15、L*3;if(L<0&&(L<-2000speed_feed=(10000+L*3;if(L>0&&(L>2000speed_feed=(10000-L*3;if(L<0&&(L>=-2000speed_feed=(-L*3;if(speed_feed>0speedsci=speed_feed;elsespeedsci=-speed_feed;void speed_PI(voidspeed_e1=speed_given-speed_feed;Iq_given=speed_out2+Kpspeed*(spe
16、ed_e1-speed_e2+Kispeed*speed_e1;if(Iq_given>500Iq_given=500;if(Iq_given<-500Iq_given=-500;speed_e2=speed_e1;speed_out2=Iq_given;/*/AD采样及滤波连续采样 18次,舍弃最大值和最小值剩下的再取平均值/*/void AD(voidfor(ad_count=0;ad_count<=17;ad_count+for(delay=0;delay<=10;delay+iaad_count=AdcRegs.ADCRESULT0>>4;ibad_
17、count=AdcRegs.ADCRESULT1>>4;/testtime=0;for(j=1;j<=17;j+for(i=0;i<=17-j;i+if(iai>iai+1t=iai;iai=iai+1;iai+1=t;if(ibi>ibi+1t=ibi;ibi=ibi+1;ibi+1=t;Iat=(ia5+ia6+ia7+ia8+ia9+ia10+ia11+ia12>>3;Ibt=(ib5+ib6+ib7+ib8+ib9+ib10+ib11+ib12>>3;Ia=Iat-2110;Ib=Ibt-2110;if(once=0Ia_fo
18、re=Ia;Ib_fore=Ib;once=1;Ia_now=(Delta*Ia+(8-Delta*Ia_fore>>3;Ib_now=(Delta*Ib+(8-Delta*Ib_fore>>3;Ia_fore=Ia_now;Ib_fore=Ib_now;Ic_now=-(Ia_now+Ib_now;/*/ /Ud Uq限幅值限定了最高转速/*/ void I_PI(voidId_e=Id_given-Id_feed; /2*Id_feedUd=Ud0+Kpd*(Id_e-Id_e0+Kid*Id_e;Iq_e=Iq_given-Iq_feed; /2*Iq_feedU
19、q=Uq0+Kpq*(Iq_e-Iq_e0+Kiq*Iq_e;if(Ud>500Ud=500;if(Ud<-500Ud=-500;if(Uq>2500Uq=2500;if(Uq<-2500Uq=-2500;Ud0=Ud;Uq0=Uq;Id_e0=Id_e;Iq_e0=Iq_e;void CLARK(voidIca=(5017*Ia_now>>12;Icb=(2896*Ia_now>>12+(5793*Ic_now>>12;void CLARKN(voidUa=(Upa*3344>>12;Ub=(-Upa*1672>&
20、gt;12+(Upb*2896>>12;Uc=-(Ua+Ub;if(Ua>7500Ua=7500;if(Ua<-7500Ua=-7500;if(Ub>7500Ub=7500;if(Ub<-7500Ub=-7500;if(Uc>7500Uc=7500;if(Uc<-7500Uc=-7500;void PARK(voidId_feed=(Ica*sintableindex2>>15+(Icb*sintableindex1>>15; Iq_feed=-(Ica*sintableindex1>>15+(Icb*sintableindex2>>15; void PARKN(voidUpa=(Ud*sintableindex2>>15-(Uq*sintableindex1>>15;Upb=(Ud*sintableind
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度新型配电房土建与智能化安装综合服务合同2篇
- 二零二五年度企业电脑采购与绿色环保协议3篇
- 二零二五年度建筑工程项目施工人员培训劳动合同细则2篇
- 皮革集团合同管理要点
- 2025标准房屋抵押借款合同范本
- 2025租赁物回购合同范文
- 2025有关房产买卖合同范本
- 2025采购合同模板木地板类
- 二零二五年度合作开发合同标的描述2篇
- 二零二五年度土地承包经营权租赁与种植项目合作合同3篇
- 卷扬机专项施工方案
- 对外投资合作国别(地区)指南 -泰国
- 2023年-2024年岗位安全教育培训试题及答案通用
- 口腔修复学(全套课件290p)课件
- 小学生心理问题的表现及应对措施【全国一等奖】
- 小学生科普人工智能
- 初中学段劳动任务清单(七到九年级)
- 退耕还林监理规划
- GB/T 1335.2-2008服装号型女子
- DCC20网络型监视与报警
- 项目实施路径课件
评论
0/150
提交评论