积分分离PID程序C语言,积分分离PID控制算法程序.doc

积分分离PID控制算法程序

积分分离PID控制算法程序

2007-01-05 15:23

;**********P10,积分分离PID控制算法程序?********;T、TD、TI、KP依次从30H,33H,36H,39H开始。;A,B,C,A',的值依次存在BLOCK1,BLOCK2,BLOCK3?BLOCK4?的地址里;这里B'与C值相同;?这里R(k)给的是定值ORG?0000HE?EQU?20H?;?一阈值GK?EQU?23H?;G(k)GK1?EQU?26H?;G(k-1)FK?EQU?29H?;F(k)FK1?EQU?2CH?;F(k-1)BLOCK1?EQU?50H?;ABLOCK2?EQU?53H?;BBLOCK3?EQU?56H?;CBLOCK4?EQU?5AH?;A'UK?EQU?5DH?;存放结果BUFF?EQU?43H?;暂存区BUFF1?EQU?46HBUFF2?EQU?49HBUFFR0?EQU?4CHREC?EQU?63H?;采样次数RK?EQU?66H?;R(k)CK?EQU?69H?;采样数据始址EK?EQU?6CH?;存放偏差值E(k)的始址EK1?EQU?70H?;存放E(k-1)的始址TEST:?MOV?RK,#01H?;常数Rk?1.25的BCD码浮点数MOV?RK+1,#12HMOV?RK+2,#50H;?MOV?E,#7EH?;设定一阈值0.001的BCD码浮点数;?MOV?E+1,#10H;?MOV?E+2,#00HMOV?E,#00H?;阈值为0.3MOV?E+1,#30HMOV?E+2,#00HMOV?3CH,#01H?;常数1的BCD码浮点数MOV?3DH,#10HMOV?3EH,#00HMOV?40H,#01H?;常数2的BCD码浮点数MOV?41H,#20HMOV?42H,#00HMOV?30H,#01H?;T?2.34的BCD?码浮点数MOV?31H,#23HMOV?32H,#40HMOV?33H,#01H?;Td?3.54的BCD码浮点数MOV?34H,#35HMOV?35H,#40HMOV?36H,#01H?;Ti?1.12的BCD码浮点数MOV?37H,#11HMOV?38H,#20HMOV?39H,#01H?;Kp?1.25的BCD码浮点数MOV?3AH,#12HMOV?3BH,#50HMOV?R0,#E?;?将其转换成二进制浮点操作数LCALL?BTOFMOV?R0,#RKLCALL?BTOFMOV?R0,#3CHLCALL?BTOFMOV?R0,#40HLCALL?BTOFMOV?R0,#39HLCALL?BTOFMOV?R0,#36HLCALL?BTOF?;将其转换成二进制浮点操作数MOV?R0,#33H?;指向BCD码浮点操作数TdLCALL?BTOF?;将其转换成二进制浮点操作数MOV?R0,#30H?;指向BCD码浮点操作数TLCALL?BTOF?;将其转换成二进制浮点操作数MOV?R1,?#BUFFR0?;保存30H中的值?即T值LCALL?FMOVR0MOV?R1,?#36H?;计算A值(1+T/Ti+Td/T).KpLCALL?FDIVMOV?R1,#3CH?;常数1LCALL?FADDMOV?R0,#33H?;保存33H中的值MOV?R1,#BUFFLCALL?FMOVR0MOV?R1,#BUFFR0LCALL?FDIVMOV?R1,#30H?;30H里存的是T/Ti+1LCALL?FADDMOV?R1,#39HLCALL?FMULMOV?R1?,#BLOCK1?;将结果保存在BLOCK1中LCALL?FMOVR0MOV?R1,#BUFFR0?;30H恢复原值MOV?R0,#30HLCALL?FMOVMOV?R1,#BUFF?;33H恢复原值MOV?R0,#33HLCALL?FMOVMOV?R0,#40H?;计算B的值Kp.(1+2.Td/T)MOV?R1,#33HLCALL?FMULMOV?R1,#30HLCALL?FDIVMOV?R1,#3CHLCALL?FADDMOV?R1,#39HLCALL?FMULMOV?R1,#BLOCK2?;保存B值到BLOCK2中LCALL?FMOVR0MOV?R0,#39H?;计算C的值Kp.Td/TMOV?R1,#33HLCALL?FMULMOV?R1,#30HLCALL?FDIVMOV?R1,#BLOCK3?;保存C值到BLOCK3中LCALL?FMOVR0MOV?R0,#33H?;计算A',保存33H中的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值