描述如下:
pid控制一温度系统, 使之能保持稳定的温度(一般设置为38~40度), 做法是控制电热丝的工作电压来实现
电热丝的电压从0v ~ 5v可调, 也就是说,电压可以等于4.7这样的数值
但是现在想改为开关量的, 就是电压只能是0v或者5v这两种情况, 有点没头绪, 连续量的我会做, 但是不知道怎么改成开关量的,
目前的做法是: PID计算输出电压, 如果大于5v,电热丝就通5v, 如果pid计算出的电压小于5v, 一律按0v计算, 不知道我这个算法行不行,已经做过实验了, 效果不理想, 温度曲线网上漂了一个大弯才降下来
补充, 我之前在某本资料上看到过另外一种pid控制方法, 计算出的结果不是"输出值", 而是在采样周期内的工作时间比例, 比如计算出40%, 采样周期为10秒, 则电热丝在10秒内的周期内通电4秒, 但我不知道这种pid是如何实现的?
请教~
通过pid计算出当前输出值,用当前值计算一个延时长度。标准间隔内延时这个长度开!,其余时间关!
例如你提到的40%,换算为0.4秒,以1秒为单位进行控制,1s中断的话,进入1秒就延时0.4秒的开,然后关掉,直至下次进中断!
引用: 引用 4 楼 galle 的回复:
例如你提到的40%,换算为0.4秒,以1秒为单位进行控制,1s中断的话,进入1秒就延时0.4秒的开,然后关掉,直至下次进中断!
请教这样可行否? 输出电压范围是0~5v, 如果计算出的电压为4v,则比例是4/5=80%
引用: 引用 1 楼 lbing7 的回复:
试试往PWM方向上考虑看看
Pulse Wavelength Modulation -- 脉波调制 ??
引用: 引用 5 楼 dos5gw 的回复:
引用 4 楼 galle 的回复:例如你提到的40%,换算为0.4秒,以1秒为单位进行控制,1s中断的话,进入1秒就延时0.4秒的开,然后关掉,直至下次进中断!
请教这样可行否? 输出电压范围是0~5v, 如果计算出的电压为4v,则比例是4/5=80%
你计算出来的只是趋势,是随时变化的,并不是固定不变的,
怎么没看出你有温度传感器?定时采样温度值,计算出与设定值差的百分比,按这个百分比去量化你开关电热器的时间
UP, UP
只考虑用PID控制, 还有其他的办法改为开关量吗?
楼主可以参考下:
精典的PID原理与算法源码实例--数据采集礼包V2.0
http://download.eeworld.net/source/1899208
包括详细的PID原理与算法分析,很具体的设计PDF文档。还有配套的完整的源码
PID算法结合单片机我以前实现过,实时性不是特别高的情况下完全可以实现。
传感器采集,模数转化,计算,数模输出,PWM也可以。
请问各位:基于PID算法的有刷直流电机PWM调速系统中对有刷直流电机调速用到的算法是模拟 PID控制原理还是增量式PID控制或者别的PID控制原理?能否将PID算法式子告诉我?谢谢各位了!!QQ:286410824