数字PID方案(一)
使用数字控制来实现LM2677的模拟控制,最简单的程序实现方案莫过于,使用ADC的值乘以相应的比例,给出DAC的值。这种方案里,没有算法,没有数字PID,ADC采到什么,DAC就给出什么。简单,直接,有效。
程序需要实现以下步骤:
在定时器中断服务程序中,采集10次voltageOut的值,做平均值滤波;
使用voltageOut,计算实际比例的LM2677输出(mV);
按照指令中的理想输出,计算理想的等效反馈电阻resFeed;
根据反馈电压,计算并给出对应的DAC值;
启动下一次ADC;
指定值 voltageSet |
采样间隔 |
采样时间 |
采样与操作 时延 |
负载 |
采样次数 |
备注 |
||
18V |
1ms |
≈80us |
≈1ms |
1k |
14 |
有R11 |
||
反馈引脚有PVCC上拉电阻的MCU复位输出波形; 复位MCU时,输出电容放电,电压缓慢下降,此时voltageFeed先变成了+1.5V(+3.9V分压); voltageFeed下降为0,再进入工作阶段; 不为+3.3V是因为钳位二极管本身还有压降; 去掉反馈引脚有PVCC上拉电阻后,voltageFeed引脚不再被上拉到+1.5V(+3.9V分压);
|
||||||||
18V |
1ms |
≈80us |
≈1ms |
1k |
14 |
无R11 |
||
|
正常工作时的波形; 几乎为锯齿波,周期为40ms; 取前n毫秒的voltageOut做平均,锯齿波幅值会变大; n越大,幅值越大; 取平均值其实是一种滞后的调节,输出已经变化了,但是给定值以没有变化的情况作为参考; |
|||||||
18V |
100us |
≈40us |
≈100us |
0.015A |
10 |
|
||
|
波形已经相当平稳了; 说明100us的调节时间优于1ms; 输出约+15V; |
|||||||
18V |
100us |
≈40us |
≈100us |
0.92A |
10 |
|
||
|
噪声非常大; 输出约+15V; |
|||||||
18V |
100us |
≈40us |
≈100us |
2.5A |
10 |
|
||
|
2.5A负载电流,波形很平稳; 输出约+14V;
MCU知道voltageOut为+14V,但是电阻确定之后,反馈的比例也就确定了,误差并不能自动消除; |
文章评论(0条评论)
登录后参与讨论