欢迎来到天天文库
浏览记录
ID:50750150
大小:510.50 KB
页数:17页
时间:2020-03-08
《数字信号处理技术及应用 教学课件 作者 谢芳芳 第5章PID算法(PID算法的DSP实现).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章PID算法的DSP实现5.1PID控制系统5.1.1PID控制系统硬件电路的组成图5.1PID控制系统的硬件电路5.1.2PID控制过程图5.2基于LF2407的PID控制器的实现框图175.2AD80415.2.1AD8041简介5.2.2AD8041的引脚与引脚功能5.3AD72375.3.1AD7237简介175.3.2AD7237的工作原理5.4PID控制5.4.1PID控制方法简介5.4.2PID控制方法的实现下面介绍一个典型的数字PID控制器。图5.5是数字PID控制器的原理框图。图5.5PID控制器的原理框图PID控制的离散形式,如式(5.2)所示
2、。(5.2)增量式PID控制算式如式(5.4)所示。(5.4)令,,,则(5.5)175.4定点运算基础5.4.1定标的概念1.数的定标2.溢出及处理方法3.舍入与截尾5.4.2定点运算1.加法/减法定点运算的C语言模拟2.乘法定点运算的C语言模拟3.除法定点运算的C语言模拟4.程序变量的Q值确定5.4.3TMS320LF2407的定点运算1.定点乘法2.定点加法175.5PID算法程序实现5.5.1PID控制算法汇编主程序公式中变量和程序中变量的对应关系及意义表公式中的变量意义描述程序中的对应变量公式中的变量意义描述程序中的对应变量r(k)PID控制器的参考输入量P
3、ID_inputKi积分增益系数高位字Ki_highc(k)PID控制器的实际输入量PID_referenceKi积分增益系数低位字Ki_lowu(k)PID控制器的当前控制量PID_outputKd微分增益系数Kdu(k-1)PID控制器的上次控制量PID_output1AA系数高位=Kp+Ki+KdA_coeff_highe(k)当前偏差量PID_e0AA系数低位=Kp+Ki+KdA_coeff_lowe(k-1)上次偏差量PID_e1BB系数=Kp+2*KdB_coeffe(k-2)上上次偏差量PID_e2CC系数=Kd用Kd代替Kp比例增益系数Kp1.所需的复
4、位和中断向量定义文件“vectors.asm”//该文件利用汇编语言代码定义了复位和中断向量.title“vectors.asm”;此文件名为vectors.asm.sect“.vectors”;定义主向量段reset:b_c_int0;复位向量int1:bGISR1;高优先级ADC中断属于INT1int2:bPHANTOMint3:bPHANTOMint4:bPHANTOMint5:bPHANTOMint6:bPHANTOMreservedbPHANTOMsw_int8bPHANTOM…sw_int31bPHANTOM17.sect“.pvectors”;定义子向量
5、段PVECTORSbPHANTOM;保留向量地址偏移量0000HbPHANTOM;保留向量地址偏移量0001HbPHANTOM;保留向量地址偏移量0002HbPHANTOM;保留向量地址偏移量0003HbADCINT_ISR;向量地址偏移量0004H为ADC中断bPHANTOM;保留向量地址偏移量0005H…bPHANTOM;保留向量地址偏移量00041H1.主程序Digital_PID.asm;实用数字PID控制程序.title"Digital_PID.asm";汇编伪指令,定义程序的文件名.include"register.h";引用头部文件.include"ve
6、ctors.asm";引用中断向量表.def_cy_begin;定义程序的入口地址Kp_init.set100H;比例增益系数Kp的初始值Ki_high_init.set00H;积分增益系数Ki的高位初始值Kp_low_init.set1000H;积分增益系数Ki的低位初始值Kd_init.set05H;微分增益系数Kd的初始值PID_ref_init.set500;数字PID控制器的参考输入初始值;本程序实现电机速度PID控制,设置参考输入是500转/分钟PID_output_MAX.set07FFFH;数字PID控制器输出控制量最大值限幅PID_output_MI
7、N.set0H;数字PID控制器输出控制量最小值限幅.dataADRESULT.word00H;存储当前A/D转换的结果PID_input.word00H;存储变量ADRESULT,也即当前实际输入量c(k)PID_output.word00H;存储数字PID控制器的当前控制量u(k)PID_output1.word00H;存储数字PID控制器的上次控制量u(k-1)17PID_reference.word00H;存储数字PID控制器的当前参考输入量r(k)PID_e0.word00H;存储数字PID控制器的当前偏差量e(k),e(k)=r(k)-c
此文档下载收益归作者所有