pid控制算法程序

pid控制算法程序

ID:797608

大小:128.53 KB

页数:39页

时间:2017-09-05

pid控制算法程序_第1页
pid控制算法程序_第2页
pid控制算法程序_第3页
pid控制算法程序_第4页
pid控制算法程序_第5页
资源描述:

《pid控制算法程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、;********增量式PID控制算法程序***********;T、TD、TI、KP依次从30H,33H,36H,39H开始。;A,B,C的值依次存在BLOCK1,BLOCK2,BLOCK3的地址里;这里R(k)给的是定值;ORG0000HBLOCK1EQU43H;A,B,CBLOCK2EQU46HBLOCK3EQU49HUKEQU4CH;存结果UKRKEQU50HEKEQU53H;存放偏差值E(k)的始址EK1EQU56H;存放E(k-1)的始址EK2EQU59H;存放E(k-2)的始址CKEQU5CH;采样数据始址BUFFEQU60H;暂存区BUFF1EQU63HBUFF2EQ

2、U66HRECEQU69HTEST:MOVRK,#01H;常数Rk的BCD码浮点数MOVRK+1,#12H;1.25MOVRK+2,#50HMOV3CH,#01H;常数1的BCD码浮点数MOV3DH,#10HMOV3EH,#00HMOV40H,#01H;常数2的BCD码浮点数MOV41H,#20HMOV42H,#00HMOV30H,#01H;T的BCD码浮点数MOV31H,#23H;2.34MOV32H,#40HMOV33H,#01H;Td的BCD码浮点数MOV34H,#35H;3.54MOV35H,#40HMOV36H,#01H;Ti的BCD码浮点数MOV37H,#11H;1.12

3、MOV38H,#20HMOV39H,#01H;Kp的BCD码浮点数MOV3AH,#12H;1.25MOV3BH,#50HMOVR0,#RK;指向BCD码浮点操作数LCALLBTOF;将其转换成二进制浮点操作数MOVR0,#3CHLCALLBTOFMOVR0,#40HLCALLBTOFMOVR0,#39HLCALLBTOFMOVR0,#36H;指向BCD码浮点操作数TiLCALLBTOF;将其转换成二进制浮点操作数MOVR0,#33H;指向BCD码浮点操作数TdLCALLBTOF;将其转换成二进制浮点操作数MOVR0,#30H;指向BCD码浮点操作数TLCALLBTOF;将其转换成二进

4、制浮点操作数MOVR1,#BUFF1;保存30H中的值即T值LCALLFMOVR0MOVR1,#36H;计算A值(1+T/Ti+Td/T).KpLCALLFDIVMOVR1,#3CH;常数1LCALLFADDMOVR0,#33H;保存33H中的值MOVR1,#BUFFLCALLFMOVR0MOVR1,#BUFF1LCALLFDIVMOVR1,#30H;30H里存的是T/Ti+1LCALLFADDMOVR1,#39HLCALLFMULMOVR1,#BLOCK1;将结果保存在BLOCK1中LCALLFMOVR0MOVR1,#BUFF1;30H恢复原值MOVR0,#30HLCALLFMOV

5、MOVR1,#BUFF;33H恢复原值MOVR0,#33HLCALLFMOVMOVR0,#40H;计算B的值Kp.(1+2.Td/T)MOVR1,#33HLCALLFMULMOVR1,#30HLCALLFDIVMOVR1,#3CHLCALLFADDMOVR1,#39HLCALLFMULMOVR1,#BLOCK2;保存B值到BLOCK2中LCALLFMOVR0MOVR0,#39H;计算C的值Kp.Td/TMOVR1,#33HLCALLFMULMOVR1,#30HLCALLFDIVMOVR1,#BLOCK3;保存C值到BLOCK3中LCALLFMOVR0MOVR0,#EK1;将EK1,E

6、K2设初值0LCALLFCLRMOVR0,#EK2LCALLFCLRMOVREC,#03H;设置采样次数LOOP:MOVCK,#7eH;采样数据暂时给了一个定值MOVCK+1,#21H;0.002112MOVCK+2,#12HMOVR0,#CKLCALLBTOFMOVR0,#RK;保存R(k)中的值MOVR1,#BUFFLCALLFMOVR0MOVR1,#CKLCALLFSUB;计算R(k)-C(k)的值送给E(k)MOVR1,#EKLCALLFMOVR0MOVR1,#BUFF;恢复RK的值释放BUFFMOVR0,#RKLCALLFMOVMOVR0,#BLOCK2;将B.e(k-1)

7、的值暂存在BUFF1中MOVR1,#BUFF;保存BLCALLFMOVR0MOVR1,#EK1LCALLFMULMOVR1,#BUFF1LCALLFMOVR0MOVR1,#BUFF;恢复B释放BUFFLCALLFMOVMOVR0,#BLOCK3;将C.e(K-2)的值暂存在BUFF2中MOVR1,#BUFF;保存CLCALLFMOVR0MOVR1,#EK2LCALLFMULMOVR1,#BUFF2LCALLFMOVR0MOVR1,#BUFF;恢复C释放BU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。