28333_TMS320F28335_PID调节.doc_第1页
28333_TMS320F28335_PID调节.doc_第2页
28333_TMS320F28335_PID调节.doc_第3页
28333_TMS320F28335_PID调节.doc_第4页
28333_TMS320F28335_PID调节.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Q/ES041-2011/*/#include Task_Global_h.h/*/extern void AdcComputer_HighSpeed(void);extern void WaveRecorder(void);/* 准备录波数据 */ #pragma CODE_SECTION(PIDInitCtrl,.UserProgramCode)void PIDInitCtrl(void)Sys.PID.Ukn_0 = 4000000;Sys.PID.Ukn_1 = 4000000;Sys.PID.Ukn_2 = 4000000;Sys.PID.Ien_0 = 0;Sys.PID.Ien_1 = 0;Sys.PID.Ien_2 = 0;Sys.PID.Uk = 4000;OS_ENTER_CRITICAL();Sys.EnF0Reg.bit.PWM_Enable = OFF;OS_EXIT_CRITICAL();/*/PID输出到PWM最后输出的转换 /*/#pragma CODE_SECTION(Transition,.UserProgramCode)void Transition(int16 Uk)int32 Temp;Uint16 Temp1, Temp2;if(Uk UkMax)Uk = UkMax;if(Uk 1) - 125;Temp2 = (Uint16)(Temp * Sys.PWMCon.PR) / 20000);if(Temp2 Temp1)Temp2 = Temp1;Sys.PID.Uc = Temp2;/*/PID 参变量求值 /*/#pragma CODE_SECTION(PID_Par,.UserProgramCode)void PID_Par(int32 Kp, int32 Ti, int32 Td)int32 Ts; / 时间常数Ts = 50; / 运算周期 50 usSys.PID.A = (Ts * Ts) + (Td * Ti) + (Ts * Ti);Sys.PID.B = (Ts * Ts) - (Td * Ti) 8500000)Temp = 8500000;if(Temp 500000)Temp = 500000;Sys.PID.Uk = (int16)(Temp / 1000);/*/差分增量算法, 适合于小电流 /*/#pragma CODE_SECTION(InvariablenesCurrentLC,.UserProgramCode)void InvariablenesCurrentLC(void)int32 Kp, Ki, Kd;/ 放大1000 倍 int32 DUk;int32 Ukp, Uki, Ukd;Sys.PID.Ukn_2 = Sys.PID.Ukn_1;Sys.PID.Ukn_1 = Sys.PID.Ukn_0;Sys.PID.Ien_2 = Sys.PID.Ien_1;Sys.PID.Ien_1 = Sys.PID.Ien_0;Sys.PID.Ien_0 = Sys.PID.If;#ifdefMaxCurrent_500Kp = 15000;Ki = 40;Kd = 300;#endif#ifdefMaxCurrent_1000Kp = 15000;Ki = 40;Kd = 300;#endif#ifdefMaxCurrent_1500Kp = 15000;Ki = 40;Kd = 300;#endifUkp = Kp * (Sys.PID.Ien_0 - Sys.PID.Ien_1);Uki = Ki * Sys.PID.Ien_0;Ukd = Kd * (Sys.PID.Ien_0 + Sys.PID.Ien_2 - (Sys.PID.Ien_1 8500000)Sys.PID.Ukn_0 = 8500000;if(Sys.PID.Ukn_0 500000)Sys.PID.Ukn_0 = 500000;Sys.PID.Uk = (int16)(Sys.PID.Ukn_0 / 1000);/*/* /*/#pragma CODE_SECTION(Control_Code,.UserProgramCode)void Control_Code (void)AdcComputer_HighSpeed();#ifdefMaxCurrent_500Sys.PID.If = Sys.Given.Ig * 20;Sys.PID.If -= Sys.Simulate.If * 2; / 500 A 额定#endif#ifdefMaxCurrent_1000Sys.PID.If = Sys.Given.Ig * 10;Sys.PID.If -= Sys.Simulate.If; / 1000 A 额定#endif#ifdefMaxCurrent_1500Sys.PID.If = (Sys.Given.Ig * 20 ) / 3);Sys.PID.If -= (Sys.Simulate.If * 2) / 3); / 1500 A 额定#endifif(Sys.EnF2Reg.bit.PID = 0)InvariablenesCurrentLC();elseInvariablenesCurrent();if(Sys.Timer.CFD = 0) / 电流速降保护&(Sys.EnF1Reg.bit.WeldingState = 2)if(Sys.PID.If - 180)Sys.EnF1Reg.bit.CFDGoing = 0;elseSys.EnF1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论