首页 电机的PID控制

电机的PID控制

举报
开通vip

电机的PID控制#include"DSP28_Device.h"#include"pmsm3_1.h"#include"parameter.h"#include"build.h"// 函数声明interruptvoidEvaTimer1(void);interruptvoidEvaTimer2(void);//全局变量定义floatVd_testing=0;        /*Vdtesting(pu)*/floatVq_testing=0.25;      /*Vqtesting(pu)*/floatId_ref=0;     ...

电机的PID控制
#include"DSP28_Device.h"#include"pmsm3_1.h"#include"parameter.h"#include"build.h"//  关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数声明interruptvoidEvaTimer1(void);interruptvoidEvaTimer2(void);//全局变量定义floatVd_testing=0;        /*Vdtesting(pu)*/floatVq_testing=0.25;      /*Vqtesting(pu)*/floatId_ref=0;          /*Idreference(pu)*/floatIq_ref=0.4;         /*Iqreference(pu)*/floatspeed_ref=0.2;       /*Speedreference(pu)*/floatT=0.001/ISR_FREQUENCY;   /*Sampingperiod(sec),seeparameter.h*/intisr_ticker=0;intpwmdac_ch1=0;intpwmdac_ch2=0;intpwmdac_ch3=0;volatileintenable_flg=0;intlockrtr_flg=1;intspeed_loop_ps=10;    //速度环定标器intspeed_loop_count=1;    //速度环计数器CLARKEclarke1=CLARKE_DEFAULTS;PARKpark1=PARK_DEFAULTS;IPARKipark1=IPARK_DEFAULTS;PIDREG3pid1_id=PIDREG3_DEFAULTS;PIDREG3pid1_iq=PIDREG3_DEFAULTS;PIDREG3pid1_spd=PIDREG3_DEFAULTS;PWMGENpwm1=PWMGEN_DEFAULTS;PWMDACpwmdac1=PWMDAC_DEFAULTS;SVGENDQsvgen_dq1=SVGENDQ_DEFAULTS;QEPqep1=QEP_DEFAULTS;SPEED_MEAS_QEPspeed1=SPEED_MEAS_QEP_DEFAULTS;DRIVEdrv1=DRIVE_DEFAULTS;RMPCNTLrc1=RMPCNTL_DEFAULTS;RAMPGENrg1=RAMPGEN_DEFAULTS;ILEG2DCBUSMEASilg2_vdc1=ILEG2DCBUSMEAS_DEFAULTS;// 主函数voidmain(void){// 系统初始化InitSysCtrl();// HISPCP设置EALLOW; SysCtrlRegs.HISPCP.all=0x0000;  /*SYSCLKOUT/1 */EDIS; //禁止并清除所有CPU中断:DINT;IER=0x0000;IFR=0x0000;//初始化Pie到默认状态InitPieCtrl();//初始化PIE相量表InitPieVectTable();  //初始化EVA 定时器1://设置定时器1寄存器(EVA)EvaRegs.GPTCONA.all=0;//等待使能标志位while(enable_flg==0){//使能定时器1的下溢中断EvaRegs.EVAIMRA.bit.T1UFINT=1;EvaRegs.EVAIFRA.bit.T1UFINT=1;//使能CAP3中断(定时器2)EvaRegs.EVAIMRC.bit.CAP3INT=1;EvaRegs.EVAIMRC.bit.CAP3INT=1;};//重新分配中断向量EALLOW;  PieVectTable.T1UFINT=&EvaTimer1;PieVectTable.CAPINT3=&EvaTimer2;EDIS; //使能PIE组2的中断6(T1UFINT)PieCtrlRegs.PIEIER2.all=M_INT6;//使能PIE组3的中断7(CAPINT3)PieCtrlRegs.PIEIER3.all=M_INT7;//使能CPUINT2(T1UFINT)和INT3(CAPINT3):IER|=(M_INT2|M_INT3);//使能全局中断和最高优先级适时调试事件管理器功能:EINT;   //使能全局中断INTMERTM;  //使能适时调试中断DBGM/*  模块初始化  */pwm1.n_period=SYSTEM_FREQUENCY*1000000*T/2; /*预定标器X1(T1),ISR周期=Tx1*/pwm1.init(&pwm1);pwmdac1.pwmdac_period=2500; /*PWM频率=30kHz*/pwmdac1.PWM_DAC_IPTR0=&pwmdac_ch1;pwmdac1.PWM_DAC_IPTR1=&pwmdac_ch2;pwmdac1.PWM_DAC_IPTR2=&pwmdac_ch3;pwmdac1.init(&pwmdac1);qep1.init(&qep1);drv1.init(&drv1);ilg2_vdc1.init(&ilg2_vdc1);/*初始化SPEED_FRQ模块*/speed1.K1=_IQ21(1/(BASE_FREQ*T));speed1.K2=_IQ(1/(1T*2*PI*30)); /*低通截至频率=30Hz*/speed1.K3=_IQ(1)-speed1.K2;speed1.rpm_max=120*BASE_FREQ/P;/*初始化RAMPGEN模块*/rg1.step_angle_max=_IQ(BASE_FREQ*T);/*初始化PID_REG3 Id调节模块*/pid1_id.Kp_reg3=_IQ(0.75); pid1_id.Ki_reg3=_IQ(T/0.0005);          pid1_id.Kd_reg3=_IQ(0/T);            pid1_id.Kc_reg3=_IQ(0.2);pid1_id.pid_out_max=_IQ(0.30);pid1_id.pid_out_min=_IQ(-0.30);  /*初始化PID_REG3 Iq调节模块*/pid1_iq.Kp_reg3=_IQ(0.75);pid1_iq.Ki_reg3=_IQ(T/0.0005);  pid1_iq.Kd_reg3=_IQ(0/T);pid1_iq.Kc_reg3=_IQ(0.2);pid1_iq.pid_out_max=_IQ(0.95);pid1_iq.pid_out_min=_IQ(-0.95);/*初始化PID_REG3 速度调节模块*/pid1_spd.Kp_reg3=_IQ(1);pid1_spd.Ki_reg3=_IQ(T*speed_loop_ps/0.1);pid1_spd.Kd_reg3=_IQ(0/(T*speed_loop_ps));  pid1_spd.Kc_reg3=_IQ(0.2);pid1_spd.pid_out_max=_IQ(1);pid1_spd.pid_out_min=_IQ(-1);//循环等待for(;;);}  interruptvoidEvaTimer1(void){isr_ticker;if(speed_loop_count==speed_loop_ps){pid1_spd.pid_ref_reg3=_IQ(speed_ref);pid1_spd.pid_fdb_reg3=speed1.speed_frq;pid1_spd.calc(&pid1_spd);speed_loop_count=1;}elsespeed_loop_count;pid1_iq.pid_ref_reg3=pid1_spd.pid_out_reg3;pid1_iq.pid_fdb_reg3=park1.qe;pid1_iq.calc(&pid1_iq);pid1_id.pid_ref_reg3=_IQ(Id_ref);pid1_id.pid_fdb_reg3=park1.de;pid1_id.calc(&pid1_id);ipark1.de=pid1_id.pid_out_reg3;ipark1.qe=pid1_iq.pid_out_reg3;  ipark1.ang=speed1.theta_elec;ipark1.calc(&ipark1);svgen_dq1.Ualfa=ipark1.ds;svgen_dq1.Ubeta=ipark1.qs;svgen_dq1.calc(&svgen_dq1);pwm1.Mfunc_c1=(int)_IQtoIQ15(svgen_dq1.Ta);/*Mfunc_c1isinQ15*/pwm1.Mfunc_c2=(int)_IQtoIQ15(svgen_dq1.Tb);/*Mfunc_c2isinQ15*/pwm1.Mfunc_c3=(int)_IQtoIQ15(svgen_dq1.Tc);/*Mfunc_c3isinQ15*/pwm1.update(&pwm1);ilg2_vdc1.read(&ilg2_vdc1);clarke1.as=_IQ15toIQ((long)ilg2_vdc1.Imeas_a);clarke1.bs=_IQ15toIQ((long)ilg2_vdc1.Imeas_b);clarke1.calc(&clarke1);park1.ds=clarke1.ds;park1.qs=clarke1.qs;park1.ang=speed1.theta_elec;park1.calc(&park1);qep1.calc(&qep1);speed1.theta_elec=_IQ15toIQ((long)qep1.theta_elec);speed1.dir_QEP=(long)(qep1.dir_QEP);speed1.calc(&speed1);pwmdac_ch1=(int)_IQtoIQ15(svgen_dq1.Ta);pwmdac_ch2=(int)_IQtoIQ15(clarke1.as);  pwmdac_ch3=(int)_IQtoIQ15(speed1.theta_elec);  drv1.enable_flg=enable_flg;drv1.update(&drv1);pwmdac1.update(&pwmdac1); //使能定时器中断EvaRegs.EVAIMRA.bit.T1UFINT=1;EvaRegs.EVAIFRA.all=BIT9;PieCtrlRegs.PIEACK.all|=PIEACK_GROUP2;}interruptvoidEvaTimer2(void){qep1.isr(&qep1);EvaRegs.EVAIMRC.bit.CAP3INT=1;EvaRegs.EVAIFRC.all=BIT2;PieCtrlRegs.PIEACK.all|=PIEACK_GROUP3;}voidInitEv(void){EvaRegs.TIPR=OxFFFF;Tl周期EvaRegs.TICNT=0;EvaRegs.TlCON.All=0;EvaRegs.TICON.bit.TMODE=2:/,逢续增计数模式EvaRegs.T1CON.bit.TPS=4;H150MHz的32分频(HSP.CLK已2分频。故TPS---.4。即16分频)EvaRegs.TICON.bit.TENABLE=l;//使能Tl定时器EvaRegs.CAPCONA.all观//捕捉控制寄存器EvaRegs.CAPCONA.bit.CAPl2EN=1;/使能捕捉EvaRegs.CAPCONA.bit.CAPIEDGE=l;, 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 上升沿EvaRegs.CAPCONA.bit.CAPl2TSEL=1;//CAPI选定时器TIEvaRegs.CAPFIFOA.bit.CAPlFIFO=0;f|CAPIFIFO塑EvaRegs.EVAIFRC.bit.CAPIINT=I∥清CAPI中断标志位EvaRegs.EVAIMRC.bit.CAPIINT=1;/,CAPI中断使能}unsignedintcapKl;unsignedintcapK2;floatSpeed;interruptvoidCAPINTI—ISR(void)//EV.A摘获中断子程序{unsignedintK;EvaRegs.EVAIFRC.bit.CAPlINT=I;//清捕获中断1标志位capKl=EvaRegs.CAPIFIFO;capK2=EvaRegs.CAPlFIFO;//读新旧两次计数值if(capK2>capKllK=capK2一capKl;elseK=capK2(OxFFFF-capKl);Speed=1768867.925/(float)K;//计算转速PieCtrl.PIEACK.bit.ACK3=1;,/开外设中断应答l
本文档为【电机的PID控制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_003124
暂无简介~
格式:doc
大小:32KB
软件:Word
页数:15
分类:
上传时间:2022-08-19
浏览量:4