打印
[电路/定理]

PT1000温度测量问题

[复制链接]
7646|50
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 MissFortune 于 2019-4-25 09:51 编辑

各位大佬号, 小弟最近在做一个温度控制的事情,在实际测试过程中发现温度在变化过程中会 有异常的现象,左思右想都没有找到解决方法。

电路描述如下:
1.传感器是使用PT1000,平衡电桥+ADC采集电路,使用的是TI的ADS1120,24bitADC芯片,平衡电桥的电源采用AMS1117-33(附图),计算温度的公式也是按照PT1000的计算方法的运算;
2.控制器采用STM32;
3.驱动电路采用IR公司的驱动芯片+MOS管H桥,实际使用的PWM最大占空比未90%(防止自举电容不能充电),但很少有机会能达到90%;

程序描述如下:
1.采用经典的增量式PID控制,PID.result 为输出占空比(最大绝对值为92%)

2.下位机接受到温度指令数据之后,将设定温度与当前温度根据PID公式计算;

3.下位机的温度数据接收是使用串口中断;
4.温度控制在定时器中断中运行,保证温度控制具有周期性,周期为5ms;
5.下位机的温度数据,每间隔1s发一次实时温度到上位机中,发送方式使用DMA+串口(发送时间间隔调整,不用DMA也仍然存在下述现象)
PID.result +=        PID.p * (PID.err_current - PID.err_last)                   ////PID.p = 45
                 +        PID.i * PID.err_current                                                ////PID.i = 0.35
                 +        PID.d * (PID.err_current - 2*PID.err_last + PID.err_previous)            // Pid.d = 0
                        ;

测试过程如下:
每次变更温度时由电脑端在串口调试助手上发送温度指令,例如 T=30, T=56, T=96;


现象:
1.每次发送温度指令之后,温度都会有反向的冲击,尤其是在高温向低温变化时更为显著,在电路板的VREF电源上增加了电容,没有起到效果;

请问各位大佬有没有相关的指导经验给小弟一些参考,诚心拜谢各位的指导,如果有未补充的,请留言,谢谢!

ADC.png (261.95 KB )

ADC+平衡电桥

ADC+平衡电桥

AMS1117-33.png (22.14 KB )

VREF

VREF

温度与占空比.png (37.98 KB )

温度与占空比

温度与占空比

使用特权

评论回复
评论
xch 2019-4-27 08:18 回复TA
@MissFortune :没看出哪里限制了。图上看到100%占空比。 你的PWM硬件是多少位的?变量result是多少位?你的所以增量式滤波器,累加几次后溢出怎么处理? 根本就没处理? 
MissFortune 2019-4-26 11:18 回复TA
@xch 没有溢出,占空比就是在-100%到+100%之间,只是在输出的时候,将占空比赋值给一个变量,对这个输出变量做了±92%的限制。 谢谢指正! 
xch 2019-4-25 22:28 回复TA
计算溢出了?实际占空比并非你画的。 

相关帖子

沙发
MissFortune|  楼主 | 2019-4-25 13:42 | 只看该作者
咱也不知道,咱还是得问。。。

使用特权

评论回复
板凳
xch| | 2019-4-25 15:55 | 只看该作者
PID 算法错了

使用特权

评论回复
地板
xch| | 2019-4-25 15:59 | 只看该作者
MissFortune 发表于 2019-4-25 13:42
咱也不知道,咱还是得问。。。

先调P系数,I,D 系数=0;
然后调I系数,
最后调D系数。

你那个计算公式是错的,除了P系数外。通通错了。

使用特权

评论回复
5
gnaijnaoul| | 2019-4-25 16:58 | 只看该作者
占空比是负的表示什么意思?是不是负值占空比没处理好产生的问题。
设定温度降低,占空比下降,控制方向是对的。
出现一个温度上升的过程,有没有可能是风扇之类的空气对流机械停止运行,温度暂时上升。
你用外部温度计记录一个曲线与MCU得到的曲线对比一下。

使用特权

评论回复
6
zhangmangui| | 2019-4-25 22:42 | 只看该作者
以前好像设计过   我记得电源要求比较多    需要很好的稳压和小纹波

使用特权

评论回复
7
Nivans| | 2019-4-26 09:43 | 只看该作者
xch 发表于 2019-4-25 15:59
先调P系数,I,D 系数=0;
然后调I系数,
最后调D系数。

温度模型本来就是一个大惯性环节,加I动态响应更糟糕。还不如用PD算法。。。并且,他这里没有明确给出采样频率,谈PID更加没意义。

使用特权

评论回复
8
MissFortune|  楼主 | 2019-4-26 11:12 | 只看该作者

下图:增量式PID(来自先进PID控制matlab仿真,刘金琨版)

u(k) = u(k-1) +delta_u(k);


        PID.result +=        PID.p * (PID.err_current - PID.err_last)////PID.p = 45
                        +        PID.i * PID.err_current////PID.i = 0.35
                        +        PID.d * (PID.err_current - 2*PID.err_last + PID.err_previous)// Pid.d = 0;
                        ;
这一行代码,左边的 PID.result 是上一次PID计算结果,右边是当前计算的delta_u,将上一次的值+当前的delta_u,再赋值给 PID.result有什么不对的地方吗?

增量式PID难道不是这样用的?

谢谢指正!

PID.png (26.82 KB )

PID

PID

使用特权

评论回复
9
MissFortune|  楼主 | 2019-4-26 11:13 | 只看该作者
xch 发表于 2019-4-25 15:59
先调P系数,I,D 系数=0;
然后调I系数,
最后调D系数。

见8楼的回复,谢谢指正

使用特权

评论回复
10
MissFortune|  楼主 | 2019-4-26 11:14 | 只看该作者
Nivans 发表于 2019-4-26 09:43
温度模型本来就是一个大惯性环节,加I动态响应更糟糕。还不如用PD算法。。。并且,他这里没有明确给出采样 ...

采样频率5ms,在前面讲到过,怪我没说清楚。
谢谢指正!

使用特权

评论回复
11
MissFortune|  楼主 | 2019-4-26 11:16 | 只看该作者
Nivans 发表于 2019-4-26 09:43
温度模型本来就是一个大惯性环节,加I动态响应更糟糕。还不如用PD算法。。。并且,他这里没有明确给出采样 ...

补充:温度控制必须满足与设定值在0.1度温差以内的的稳定性,个别时候需要0.05度以内。所以必须使用积分,PD不能满足温度稳定的需求,是我没说清楚。

谢谢指正!

使用特权

评论回复
12
MissFortune|  楼主 | 2019-4-26 11:20 | 只看该作者
zhangmangui 发表于 2019-4-25 22:42
以前好像设计过   我记得电源要求比较多    需要很好的稳压和小纹波

我目前猜测也是电路板的原因,而且其有可能时电源的影响,我的电路板采用开关电源的24V输入,经过DC/DC转5V,5V经过LDO生成3.3V的VREF。

谢谢!

使用特权

评论回复
13
MissFortune|  楼主 | 2019-4-26 11:29 | 只看该作者
gnaijnaoul 发表于 2019-4-25 16:58
占空比是负的表示什么意思?是不是负值占空比没处理好产生的问题。
设定温度降低,占空比下降,控制方向是 ...

假设TEC在给正向电流(电压、或者正PWM占空比)时升温,那给负向的就是降温(TEC的特点),我把占空比的范围设定在-100%到+100%之间,制冷的时候需要给负向电流(电压、或者负PWM占空比),我这样就可以让它快点降温,不然自然散热很慢;

散热风扇使用的外部220V转12V电源适配器,和我的温度控制电路板不是一个电源生成的。风扇和TEC放在开阔的环境中,没有挡风之类的影响

在外面使用NI采集卡采集的温度中,没有这个温度反冲,问题还是在温度变更过程中的信号采集上。

谢谢指正!

使用特权

评论回复
评论
gnaijnaoul 2019-4-26 21:58 回复TA
用到TEC就没疑问了。 近段时间研究了一下韩京清先生的ADRC控制,这个技术很适合有滞后特点的系统,建议你也可以去尝试一下。 可以用他的改进型PID控制,安排过渡过程,用TD得到微分信号,对速度信号和加速度信号都进行控制,避免过冲,减小调节时间。 
14
xch| | 2019-4-26 12:05 | 只看该作者
本帖最后由 xch 于 2019-4-26 12:09 编辑
MissFortune 发表于 2019-4-26 11:12
下图:增量式PID(来自先进PID控制matlab仿真,刘金琨版)

u(k) = u(k-1) +delta_u(k);

你的所谓增量式PID 模型是这样吗?
就是在标准的 PID 输出端加一个IIR滤波器,而且是不收敛的。

这个滤波器在你的函数实现中表现为result += pid.out.

PWM控制输入值的有效范围是多少?没看到你的抗饱和数学算法。每次更改设定值,就在你的PID什么滤波器输入生成一个剧变,你的滤波器运算不会溢出吗?

使用特权

评论回复
15
hobbye501| | 2019-4-26 13:22 | 只看该作者
在研究PT100的  用的MAX31865  SPI总线的 应该涉及不到温差的问题吧

使用特权

评论回复
16
cooldog123pp| | 2019-4-26 14:13 | 只看该作者
这个感觉每个环节都有误差,会累积的,首先PT100你采集的精度如何,其次,你用的什么PID算法,增量式的吗。这是一个系统性问题,要解决要把每个模块弄好。

使用特权

评论回复
17
戈卫东| | 2019-4-26 14:34 | 只看该作者
要这么高温度精度做什么?做半导体么?

使用特权

评论回复
18
Nivans| | 2019-4-26 16:24 | 只看该作者
MissFortune 发表于 2019-4-26 11:16
补充:温度控制必须满足与设定值在0.1度温差以内的的稳定性,个别时候需要0.05度以内。所以必须使用积分 ...

PT1000的精度是多少???

使用特权

评论回复
19
MissFortune|  楼主 | 2019-4-26 16:30 | 只看该作者
本帖最后由 MissFortune 于 2019-4-26 16:35 编辑
xch 发表于 2019-4-26 12:05
你的所谓增量式PID 模型是这样吗?
就是在标准的 PID 输出端加一个IIR滤波器,而且是不收敛的。

1.谢谢您的回复;
2.我对您所述的滤波器不敢苟同

3.C语言代码如下:
        PID.result +=        PID.p * (PID.err_current - PID.err_last)////PID.p = 45
                        +        PID.i * PID.err_current////PID.i = 0.35
                        +        PID.d * (PID.err_current - 2*PID.err_last + PID.err_previous)// Pid.d = 0;
                        ;
上述代码中"+="左边的运算结果如下,不放假设为
PID_Increment = KP + KI + KD ;

计算的PID_Increment ,就是当前计算出来PWM占空比增量(参考图中红色方框中的公式),这一步时没有问题的吧

当前的PWM占空比增量PID_Increment  加上上一次输出的PWM占空比的值PID.result(k-1),就可以得到当前计算出的PWM占空比 PID.result(k) PID.result(k) = PID.result(k-1) + PID_Increment ;
这部分,您参考第二张图,来自《先进PID控制MATLAB仿真》-刘金琨版,以及下面的链接也可以参考;
https://www.cnblogs.com/CYP01/p/3575288.html




4. 如果计算出来的PWM占空比,就是您说的PID.out,也就是我这里的PID_Increment ,那我可以明确的说,这个根本不行,我以前在电机转速控制时也这样用过,根本不能控制。我在各类教材上、博客上,论文上、都没有见过把增量当作记过直接输出的。


不知是否是我们讨论问题的理解有偏差,欢迎讨论,谢谢指正。

3.png (65.75 KB )

增量式PID

增量式PID

4.png (154.17 KB )

《先进PIDmatlab仿真》程序截图

《先进PIDmatlab仿真》程序截图

使用特权

评论回复
20
MissFortune|  楼主 | 2019-4-26 16:33 | 只看该作者
hobbye501 发表于 2019-4-26 13:22
在研究PT100的  用的MAX31865  SPI总线的 应该涉及不到温差的问题吧

如果电路板和程序做得好,我这个可以做到±0.1度的波动,实际的真实温度还需要和国家计量检测部门的标准仪器校准,只是自己在实验室里的温度稳定性非常好,这也不影响温度的稳定性。

谢谢!

使用特权

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

本版积分规则

11

主题

82

帖子

0

粉丝