打印

PID输出量映射到控制量,有公式吗?

[复制链接]
5006|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小鱼儿1045|  楼主 | 2011-12-25 21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用PID做温控,我实际是用控制可控硅的过零后的触发时间,来调节功率。但是在PID输出一个量,将其映射到过零触发时间上,出现了问题。例如:AC220,控制范围在10mS之内,温度越高,可控硅导通角应该越大,我自己用Rout=10000-PID算回的数据,然后Rout就是给可控硅触发的时间。可是控制效果很不好,我就怀疑我自己摸索的这个映射公式可对啊?
第一次做PID,很无助感觉……谢谢各位大侠了。

相关帖子

沙发
程序匠人| | 2011-12-26 13:03 | 只看该作者
因为你问的是“PID输出量映射到控制量”,因此,我先假设你的PID部分是没有问题的。

但是你的公式:Rout=10000-PID ,有问题!

如果是过零检测移相触发,请记住:你控制的是正弦波。正弦波上的每个点,其功率是不一样的。
试想一下,在过零点附近,与在波峰波谷附近,电压不一样,其功率能一样吗?

所以,控制量与导通时间并不是简单的比例关系。请重温有关正弦波的三角计算函数。

使用特权

评论回复
板凳
小鱼儿1045|  楼主 | 2011-12-26 16:20 | 只看该作者
2# 程序匠人
那匠人可不可以指点一下我,如果是你,你怎么选择映射的函数。是自己做实验,所以精确度要求不是太高。

使用特权

评论回复
地板
小鱼儿1045|  楼主 | 2011-12-26 16:22 | 只看该作者
2# 程序匠人
谢谢了……

使用特权

评论回复
5
程序匠人| | 2011-12-26 20:48 | 只看该作者
2# 程序匠人  
那匠人可不可以指点一下我,如果是你,你怎么选择映射的函数。是自己做实验,所以精确度要求不是太高。
小鱼儿1045 发表于 2011-12-26 16:20


其实,方向已经指明了,只要上网一搜,就可以搜索到有关信息:

以下为圈圈当年2006年的帖子:
供参考:

---------------------------
用积分来算。
假设信号为sinx,则周期为2pi,设导通角为a度,功率比为n,只计算半个周期(因为对称),则有:
(∫(sinx)2)[从(a*pi/180)到pi]
------------------------------------  = n      注:后面的[]内表示积分区间,分子分母的pi被消掉
   (∫(sinx)2)[从0到pi]

由于∫(sinx)2)=(x-sin(2x))/2,所以有:
(pi-sin(2*pi))-(a*pi/180-sin(2*a*pi/180))
------------------------------------------ = n
     (pi-sin(2*pi))-(0-sin0)
即:
pi-a*pi/180+sin(2*a*pi/180)=n*pi

a*pi/180-sin(2*a*pi/180)=(1-n)*pi
式中pi为圆周率。
可代入几个值验证:导通角a=0,左边等于0,所以n=1,即100%
                  导通角a=90,左边等于pi/2,所以n=0.5,即50%
                  导通角a=180,左边等于pi,所以n=0,即0%

假设n=0.25,解出a,即可。不过,这个方程不好解。

使用特权

评论回复
6
lost1421| | 2012-1-20 15:40 | 只看该作者
5# 程序匠人:
a*pi/180-sin(2*a*pi/180)=(1-n)*pi
式中pi为圆周率。
可代入几个值验证:导通角a=0,左边等于0,所以n=1,即100%
                  导通角a=90,左边等于pi/2,所以n=0.5,即50%
                  导通角a=180,左边等于pi,所以n=0,即0%
-----------------
当a=45时,左边=45*pi/180-sin(2*45*pi/180)=pi / 4 - sin(pi / 2) = 3.14159265 / 4 - 1,结果为负!!!!
那么右边结果必须为负,就有n>1,就是说要超水平发挥喽?[/b]

使用特权

评论回复
7
yewuyi| | 2012-1-21 16:11 | 只看该作者
又有问这个问题的啦,很多在做数字PID控制的时候都会遇到,你只要想想模拟PID怎么处理这个问题就知道了。

使用特权

评论回复
8
lost1421| | 2012-1-22 01:22 | 只看该作者
只是突然发现等式左右会有负数出现,没考虑PID的问题。

是公式推导出错?还是一开始的理论有问题?

呵呵!纯属无聊!

使用特权

评论回复
9
yewuyi| | 2012-1-22 13:22 | 只看该作者
只是突然发现等式左右会有负数出现,没考虑PID的问题。

是公式推导出错?还是一开始的理论有问题?

呵呵!纯属无聊!
lost1421 发表于 2012-1-22 01:22


这就是公式和现实应用的区别,如果具有反向动作,负数自然就有用

使用特权

评论回复
10
DownCloud| | 2012-1-23 18:30 | 只看该作者
直接对应的关系,连续、直线, 如果你是什么导通角的 , 就算下三角函数 , 让输出量去控制占空比从0 到 100连续变化的。 这很简单 。

使用特权

评论回复
11
tracymoon| | 2014-4-29 11:22 | 只看该作者
你好 我想问一下 PID温度控制中 在温度比较程序中调用PID子程序后 的 输出high-time=rout/800  是根据什么来的

使用特权

评论回复
12
sandao| | 2015-10-12 20:59 | 只看该作者
最近也在看PID,匠人讲的很有道理!
但如何将PID算出的结果与控制量对应还没搞明白!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

1966

帖子

19

粉丝