请教PID控制开关量的问题

dos5gw 2010-02-22 01:59:15
描述如下:
pid控制一温度系统, 使之能保持稳定的温度(一般设置为38~40度), 做法是控制电热丝的工作电压来实现
电热丝的电压从0v ~ 5v可调, 也就是说,电压可以等于4.7这样的数值

但是现在想改为开关量的, 就是电压只能是0v或者5v这两种情况, 有点没头绪, 连续量的我会做, 但是不知道怎么改成开关量的,
目前的做法是: PID计算输出电压, 如果大于5v,电热丝就通5v, 如果pid计算出的电压小于5v, 一律按0v计算, 不知道我这个算法行不行,已经做过实验了, 效果不理想, 温度曲线网上漂了一个大弯才降下来

补充, 我之前在某本资料上看到过另外一种pid控制方法, 计算出的结果不是"输出值", 而是在采样周期内的工作时间比例, 比如计算出40%, 采样周期为10秒, 则电热丝在10秒内的周期内通电4秒, 但我不知道这种pid是如何实现的?

请教~
...全文
1104 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhansheng 2011-01-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 shagua0916 的回复:]

怎么没看出你有温度传感器?定时采样温度值,计算出与设定值差的百分比,按这个百分比去量化你开关电热器的时间
[/Quote]是否可以这样理解:用“e =(PV-SV)* 100 / 温度的量程” 代替 “e = PV-SV” 作为PID的输入e。这样计算出来的值就是开加热器的时间?期盼您的回复!谢谢!
lhansheng 2011-01-04
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 tcdzyq 的回复:]

开关量考虑使用类似PWM方式,使用占空比调节
[/Quote]能否举个例子参考一下??谢谢!
huweiping8603 2010-04-26
  • 打赏
  • 举报
回复
请问各位:基于PID算法的有刷直流电机PWM调速系统中对有刷直流电机调速用到的算法是模拟 PID控制原理还是增量式PID控制或者别的PID控制原理?能否将PID算法式子告诉我?谢谢各位了!!QQ:286410824
tcdzyq 2010-02-24
  • 打赏
  • 举报
回复
开关量考虑使用类似PWM方式,使用占空比调节
hallowwar 2010-02-24
  • 打赏
  • 举报
回复
PID算法结合单片机我以前实现过,实时性不是特别高的情况下完全可以实现。
传感器采集,模数转化,计算,数模输出,PWM也可以。
kyzf 2010-02-24
  • 打赏
  • 举报
回复
楼主可以参考下:

精典的PID原理与算法源码实例--数据采集礼包V2.0
http://download.csdn.net/source/1899208

包括详细的PID原理与算法分析,很具体的设计PDF文档。还有配套的完整的源码

galle 2010-02-24
  • 打赏
  • 举报
回复
我们做过!“双DO模拟AO”效果不错!
贝隆 2010-02-23
  • 打赏
  • 举报
回复
搞一个温控模块不就结了?!
dos5gw 2010-02-23
  • 打赏
  • 举报
回复
UP, UP
只考虑用PID控制, 还有其他的办法改为开关量吗?
shagua0916 2010-02-22
  • 打赏
  • 举报
回复
怎么没看出你有温度传感器?定时采样温度值,计算出与设定值差的百分比,按这个百分比去量化你开关电热器的时间
galle 2010-02-22
  • 打赏
  • 举报
回复
引用 5 楼 dos5gw 的回复:
引用 4 楼 galle 的回复:例如你提到的40%,换算为0.4秒,以1秒为单位进行控制,1s中断的话,进入1秒就延时0.4秒的开,然后关掉,直至下次进中断!
请教这样可行否? 输出电压范围是0~5v, 如果计算出的电压为4v,则比例是4/5=80%

你计算出来的只是趋势,是随时变化的,并不是固定不变的,
dos5gw 2010-02-22
  • 打赏
  • 举报
回复
引用 1 楼 lbing7 的回复:
试试往PWM方向上考虑看看

Pulse Wavelength Modulation -- 脉波调制 ??
wangxiaokun8706 2010-02-22
  • 打赏
  • 举报
回复
用PWM来实现输出功率的调节!没问题的!
dos5gw 2010-02-22
  • 打赏
  • 举报
回复
引用 4 楼 galle 的回复:
例如你提到的40%,换算为0.4秒,以1秒为单位进行控制,1s中断的话,进入1秒就延时0.4秒的开,然后关掉,直至下次进中断!

请教这样可行否? 输出电压范围是0~5v, 如果计算出的电压为4v,则比例是4/5=80%
galle 2010-02-22
  • 打赏
  • 举报
回复
例如你提到的40%,换算为0.4秒,以1秒为单位进行控制,1s中断的话,进入1秒就延时0.4秒的开,然后关掉,直至下次进中断!
dos5gw 2010-02-22
  • 打赏
  • 举报
回复
引用 2 楼 galle 的回复:
通过pid计算出当前输出值,用当前值计算一个延时长度。标准间隔内延时这个长度开!,其余时间关!


请教,如何用输出值计算延时呢?
galle 2010-02-22
  • 打赏
  • 举报
回复
通过pid计算出当前输出值,用当前值计算一个延时长度。标准间隔内延时这个长度开!,其余时间关!
lbing7 2010-02-22
  • 打赏
  • 举报
回复
试试往PWM方向上考虑看看

27,381

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧