PID调节控制做电机速度控制._第1页
PID调节控制做电机速度控制._第2页
PID调节控制做电机速度控制._第3页
PID调节控制做电机速度控制._第4页
PID调节控制做电机速度控制._第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、SUNPLUS11PID调节控制做电机速度控制 V1.1 -Jan 23, 200619, I nn ovati on First Road ? Scie nee Park ? Hs-Chu ? Taiwa n 300 ? R.O.C. Tel:886-3-578-6005 Fax: 886-3-578-4418 E-mail: mcusu SUNPLUS11PID调节控制做电机速度控制版权声明凌阳科技股份有限公司保留对此文件修改之权利且不另行通知。凌阳科技股份 有限公司所提供之信息相信为正确且可靠之信息,但并不保证本文件中绝无错误。 请于向凌阳科技股份有限公司提出订单前,自行确定所使用之相关

2、技术文件及规格 为最新之版本。若因贵公司使用本公司之文件或产品,而涉及第三人之专利或著作 权等智能财产权之应用及配合时,则应由贵公司负责取得同意及授权,本公司仅单 纯贩售产品,上述关于同意及授权,非属本公司应为保证之责任。又未经凌阳科技 股份有限公司之正式书面许可,本公司之所有产品不得使用于医疗器材,维持生命 系统及飞航等相关设备。目录SUNPLUS1模拟PID控制11.1模拟PID控制原理1数字PID控制32.1位置式PID算法32增量式PID算法4 2.3控制器参数整定42.3.1凑试法5 2.3 偃界比例法52.3.3经验法52.3.4采样周期的选择6 2.4参数调整规则的探索62自校正

3、PID控制器73软件说明8 3.1软件说明8 3.2档案构成83.3 DMC 界面83.4子程序说明94程序范例16 4.1 DEMO 程序164.2程序流程与说明194中断子流程与说明205MCU使用资源215.1MCU硬件使用资源说明216实验测试22 6.1响应曲线22参考文献26SUNPLUS修订记录日期版本编写及修订者初版错误校正编写及修订说明7令 SUNPLUSi t acMOffA«ntvti4L«4». « *IT 42卜:r 二心 yy.M J(wp,n71.*rtz【用>*t«*M< K Vin/I-M/I nu

4、 HD rr»aMv«r:»<knM几 几“deA04AMQ4U亀卜5«44v:.©存刁金». rcn4i»4 pui見w ew,o<t94心斤创cu”>m141-u协矶入.nn mfo脚”a.ameotrsU1"心刚眾"|A1-t«Ti - W"WM,FWRRD». ttMV令 SUNPLUSti MtJtWOjrnvrtt*«i er/i«eiiWMieieM f x黑y<> aiiii«iv irMdWGGia

5、aaw*t m魚ms. ratsanMv.人RMWtMMttHMltil U «AII. ««iAait*9 MMAJilldfJLlbi UF4 RffMI<HKRn«w«M*tNi.m £ W竹V. “阳乎ambini口的«RM<s0*iv|t.ambani» «ff-<44 nrfMl q耳ft ROrwaeeMBMMM(< <lr#« BCtAimiisrMinaMXr;i iMMitiA. w«a y *M«ru.暉呎龍*亡WS

6、1;V*«AM4 . 虚O«W<9Zfl,, YI 耳X尺八阿5U9d M Y RY «MBC A/l «<>M«XM创 KuratHwanmi FHjrwiAflHiVK ROJ A«.|>At 1>yr出lUVHHUBROWU /rowtAt*2Sg 皿九3儿 xr i» n «xi 2 < uRMM«nFOAax% Wq 松?u >.*>» i册* Yr 2斗KkXfVHMltVCSil 4%- ffl< r«M Ai-Xp*

7、F<7?c/-«>*rw-7it rnwautvi m 2 « * a mm 尸qW* ai 1 « i4> »txi* a “i貝R*rwnmu aMNMrwwMAKi»< iwmammmmrokwm.UWNdMMr tlfftewti 审“AUt、4AaCi盯»令 SUNPLUS合 SUNPLUSirw*.a列场艮助*<>夕“RN».WttK4d«!irir©i«r«rM*tx怡 jvcs(i啊 anttRu 12 tfBKROWrt»

8、>!<«< OM* WlfW AWXFO 1(, t fBnaaitHCWlMf UK MUiflUnMMM WOW 'JU亠.«iutfl 典 R 畀11,;1弭 EW».TMD*?WWa<Au a? ati 9 2 «C“科,aA9A.RH ,l> 、:» O MW KX一网算“4巴八人”心 <MS9I Mu人wivq q帥 wnGlU从Qp.“O w> ”N«tA_ 8 C.M«ovnw Al-it 如 気OEVllIl良mXw .-"矶一岭 刑仝二"

9、;二仏巧3言洱"3 翠* “ 亠.“5、«1 -41 9“NHMIM. ManWV.TRDr>«Wa*A VXRDVU (> 2 M2X3Att>M»aaav nmrMmLfi <i*«ajmmvmiuujiVMaftUAMll.NBH*M«0W«mk M4“tflKMtitt q."xr> 141 R " /-0 乂A4he a»t«. rtttKun2 4 2. A>M«V tBAAani.4itMi0ic 卩!« 卒.ner

10、/onn“ 0“4外歼«!,* t>”.fl"鼻冒 nm«m«".人 ««RJi<uQra. <£f尸5Mia WMLhaw A> AM UWMTW HU-rs pA2 44tXflllU>,八JbCRCLu疑連 wott餌办刑九釘1X> «M«|4A4B«RD>aav«»AMtnstt. MV »<« 49»t *4HM«*/(iiunae»a »<:

11、 hor «>. uittteattOMLWUUI A9M a9tt.«MRMaA<ltlLMf»atB. Nmot«. Mte.M4MCMtaAit. 2耐«15 SUNPLUS右 SUNPLUS" #FWthA MUiiy,心_*A t- 1心nTJpag上OMde»z.RO0<«4zour->r. M U M. n»;tAMife<e 金Mmrak <iu«aBaMM. 观41“»111«« s mo*A *n.Bix4 歼

12、maw冷Ewn 4M4.O 代冷4俚电El.算仲3t马曳)卑(iwbiv祁代in mk. etrnmiw «<aMtiA<ifwwi.出石 mr«mi < 人 ti.Mfi4»«« not <MM. MBB ww«|/. nn»4 <>IMM ttRMIMmMI *u.K4«< TOW0IWM. Br.ttwwi. </« «rrF©F 2S OttFROffUSH I f 4«lltMbWIR 10金受1<«1

13、1拿|尸9HVJWMI !( J wr n“ Ggiw-utr*ItA a «*An厂3亠10g l E,xi t AuttraR«9«i>n iaaaxaacAXJrMaL safiLMfcaxc*士q、it 4fuiM «HMa«ar<aatnAMliMM M l亍14斜uxdMRo社人 inma <hro u p iu 1 ftatHJtxaf 0vit*<“(!< B1« A> A Q ABttUtf A«4«a<广、*CII9»QUBM1* AiQttt

14、. tereHI.Xt © *Q«.与!« M4wt MISSMlftMWBI0X代E食 5«*>«A<CM. BWIBRfmiMMMLMH*MA94#«a#hatKM. oittnAAvnR.邸裟*i卄Mt. b«« 聲yq績 #«! UM#MTMI»dir. 員i rt<t<*K>#act«ma r,i?y 人 «xen. mh. zf 4SUNPLUS3软件说明3.1软件说明AN_SPMC75_0012在微处理器 SPMC75F2413A上

15、实现数字PID对BLDC速度的调节,重点将是对PID参数的整定,使系统的动静态性能达到满意”的效果3.2档案构成文件名称 Ma in Chap2 In itial ISRDigitalPID_V100.lib功能BLDC驱动相关参数初始化,DMC服务BLDC驱动相关函数系统所有相关初 始化程序 驱动中相应的中断服务PID设置,初始化和PID计算函数库函数类型 C C C C lib libSpmc75_dmc_lib_V100.lib DMC 通信程序3.3 DMC界面Speed1_Cmd设置电机运转的速度Speed1_Now电机当前反馈速度Speed1_Kp 2.5节自校正PID控制器中提到

16、的Kp值User_R0:当前P_TMR3_TGRA寄存器的值User_R1 :设置速度与电机实际转速的差值 Motor 1 Start和Motor 1 Stop控制启停SUNPLUSSUNPLUSSUNPLUSPID调节控制做电机速度控制 3.4子程序说明PIDInit (原形描述输入参数输出参数头文件库文件注意事项例子void PIDInit (voidPID所用到的RAM清零无无Spmc75_PID.h DigitalPID_V100 请在设置参数前使用。PIDI nit (;SUNPLUSPIDSetPoi nt (原形描述输入参数输出参数头文件库文件注意事项例子void PIDSetP

17、oint(int设置PID调节的目标值 期望值 无Spmc75_PID.h DigitalPID_V100PIDSetPoint (2000; /期望电动机的转速为 2000rpmPIDGetSetpoi nt (原形描述输入参数输出参数头文件库文件注意事项例子int PIDGetSetpoint(void读取PID调节设置的目标值 无所设置的期望值 Spmc75_PID.h DigitalPID_V100得到的期望值将和数值的是同一个数值uiSpeed= PIDSetPoi nt (; 读取所设置的期望电动机转速令 SUNPLUStWHKp/f wqXPIKbjtKg9tfVVOKMRaW&

18、quot;* A令 SUNPLUS VROf;K*«na««*»K> V»0Our»<A » ROafiVROnil A1 4»I ns» tf.“fA3 ",攵皿丨罟、PDSemj OMT* e>vn a»rJt Of«*O.V»OD(UMtV ROMY 90 MU 叩*1” FAl-<« 育«rA"O t VpKtltMMAi »'*(攵m> i “外 *<m存 MMc»

19、;4mWKt >WKi>iP 仃 <IB8WV人£RpMb Z «en »< t «D|»W>C V»OD口拿 HO 由 ho hw 11 «>K*CI44«1lSg rAl-4»W5MI41 1> * /»«>“ ¥心>H»|令 SUNPLUSSSROKMaM*OXMen®ut»BA v Roanwromt $Zl 4,丨Kd<4> I'IROteMiftisr* UVM

20、 11VPHianna*»R 檢 m iMra<>Rtrnna龙10 09M»O VU»决u ro a b nit v i naciouitsM * «zr© i ma*0utew*<n.RO»owk> vw»wn ii ro p mt vi'tuiAmnesA>-<.倉WXFO I41-»»"学ma PlOMUilSUNPLUSIn cPIDCalc (原形描述输入参数输出参数头文件库文件注意事项例子int IncPIDCalc(int增量式PID计

21、算PID调节当前采样值 计算增量Spmc75_PID.h DigitalPID_V100(式2-5)增量式PID算法的实现。uiGoalvalue += IncPIDCalc (1998; 位置式PID控制算法通过增量式控制算法 递推实现,当前采样得到转速1998rpm。SUNPLUSLocPIDCalc (原形描述输入参数输出参数头文件库文件注意事项例子其它应用函数式对BLDC驱动的实现,不再一一赘述,可以参考【AN_SPMC75_0003】应用例的介绍。unsigned int LocPIDCalc(int位置式PID计算PID调节当前采样值位置式PID计算出的绝对位置值 Spmc75_P

22、ID.h DigitalPID_V100(式2-4)位置式式PID算法的实现。uiGoalvalue = LocPIDCalc (1998; 位置式PID控制算法,当前采样得到转速1998rpm。PID调节控制做电机速度控制4程序范例4.1 DEMO 程序/*=*/ 应用范例/*=*/ #" elude "Spmc75_regs.h" #in elude "Spmc_typedef.h" #i nclude "un spmacro.h" #i nclude"Spmc75_BLDC.h"mai n( POA

23、_SPE->W = 0x0000; P_IOB_SPE->W = 0x0000; P_IOC_SPE->W = 0x0000;Spmc75_Systemn it(; /Spmc75 系统初始化while(1 BLDC_Run_Service(; / 启停监控 NOP(; /=/ Description: IRQ0 interrupt source is XXX,used to XXX / Notes:错误保护/= void IRQ0(void _attribute_ (ISR; void IRQ0(void IPM_Fault_Protect(; /=/ Descriptio

24、n: IRQ1 interrupt source is XXX,used to XXX / Notes:BLDC 启动 及正常运行服务/:= void IRQ1(void _attribute_ (ISR;SUNPLUSPID调节控制做电机速度控制void IRQ1(void /*= =*/ /*Positi on detect ion cha nge in terrupt/*=*/ if(P_TMRO_Status->B.PDCIF && P_TMRO_INT->B.PDCIE BLDC_Motor_Normalru n(; /*= =*/ /*Timer Cou

25、n ter Overflow/*=*/ if(P_TMR0_Status->B.TCVIF && P_TMRO_INT->B.TCVIE BLDC_Motor_Startup(; P_TMR0_Status->W = P_TMR0_Status->W; /= =/ Description: IRQ6 interrupt source is XXX,used to XXX / Notes:DMC 接收 中断服务函数/: = void IRQ6(void _attribute_ (ISR; void IRQ6(void if(PN T_Status->

26、B.UARTIF if(P_UART_Status->B.RXIF MC75_DMC_RcvStream(; if(P_UART_Status->B.TXIF && P_UART_Ctrl->B.TXIE; /=/ Description: IRQ7 interrupt source is XXX,used to XXX / Notes:512Hz 定时中断完成PID调节速度/= void IRQ7(void _attribute_ (ISR; void IRQ7(void if(PNT_Status->B.CMTIF if(PCMT Ctrl->

27、B.CM0IF && PCMT Ctrl->B.CM0IESUNPLUSBLDC_Motor_Actiyator(; P_CMT_Ctrl->W = P_CMT_Ctrl->W; PID计算子函数:PID调节控制做电机速度控制/数据结构typedef struct PID int SetPoi nt; 设定目标 Desired Value long SumError; /误差累计double Proportio n; 比例常数 Proportio nal Const double In tegral; /积分常数Integral Const double De

28、rivative; /微分常数 Derivative Constint LastError; Error-1 int PrevError; Error-2 PID;static PID sPID; static PID *sptr = &sPID;/PID参数初始化void In cPIDI ni t(void sptr->SumError = 0; sptr->LastError = 0; /Error-1 sptr->PrevError = 0; /Error-2sptr->Proportion = 0; 比例常数 Proportional Const sp

29、tr->Integral = 0; 积分常数Integral Const sptr->Derivative = 0; /微分常数 Derivative Const sptr->SetPoint = 0; SUNPLUSSUNPLUSWWtMjSUNPLUS,"41 川KT.-:)UpM ivr rvvpBfM* Uf*M f|PU VC«-»MtMrAI nt »A0« F.-Xz.tswt W«» (»<«<«M«BAf" IMOrvwHOmt

30、xrvf itrr»xi »<(“It?tnt . iKtr»ttvMtvrwtB*r'«rrvf«v< ! 八 Kt a|<i *a«aaaui an,Vfil2QDdA%W ROf n VCW» R»p)U*RrftXDSUNPLUSSUNPLUS令 SUNPLUS<3 申入w. RC to n>D»t<WH«r«auK«u< 亠行.y MJUT KK cr :=/AltSI|A»4 un M kx TCV !e

31、 5i roc rev i mba awst ttcvvn«mSUNPLUSPID调节控制做电机速度控制6实验测试测试主要是针对120度上相PWM方波驱动带霍尔位置传感的直流无刷电动机 并应用PID控制来进行对电动机的速度调节。硬件原理图及关于BLDC驱动请参照【AN_SPMC75_0003】。Kp参数的调整,在源程序中是可以用预编译定义的。 如果定义的话就可以在 DMC下对Kp参数调整,但请注意,DMC下的参数需要是扩大一千倍的。例如:Kp = 0.105,DMC参数就应该是105。这样Kp的范围就可以在(400, 10),对于这个范围的参数只能说是能正常的工作。如果说最适 合,那

32、么还请您根据系统的需要,按照各种整定方法对其进行全面的评估。【注意】1、在这里PID参数的选择和PWM的载波频率也有一定的关系,载 波频率越高则【P_TMRx_TGRA】所设置的范围就越小,调节就比较的快。这种种因数希望 到能考虑在内,得到最适合的 PID参数。【注意】2、如果选择使用DMC来调整PID的Kp参数,请先设置转速(Speed1_Cmd和Kp (Speed1_Kp的数值再启动 Motor1 ;若是使用固定的 PID的Kp参数(在程序中固定),请先设置转速(Speed1_Cmd再启动Motor1。【注意】3、在DMC下PID参数的时候Speed1_Kp与Kp的关系是Speed1_Kp

33、= 1000Kp,就是说如果要设置 Kp 为 0.125, DMC 的 Speed1_Kp应该 给出125。6.1响应曲线所有测试都是在空载,PWM载波为6KHz的情况下进行:1、Speed1_Kp= 10,即卩Kp = 0.01。在转速从Orpm升至2000rpm的响应曲线,如图6.1。SUNPLUSSUNPLUSSUNPLUSControl Parameters SettkigN NameValue1Speedl Cmd2000*(1 12Speedl Slope0'd3Speedl Kp10'd4 Speed l.Ki0'dControl Parameters Gettviqs.NameValueQSpeed lNow159(Td1Board Parameters GettingSh. NameValue-Driver V0.00ACLine F0.00Sys.Ti0.00Sys_T20.00Sys_T3 Sys T40.000.00zJ<|Motor 1SUNPLUSControl Pardmeten SetttigNblameV

温馨提示

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

评论

0/150

提交评论