原创 加温器的建模控制仿真和实例分析

2023-7-6 13:14 3499 21 4 分类: MCU/ 嵌入式 文集: matlab

    罗昊  southcreek's product

这个加温器建模如下:输入的设定温度与输出的温度比较,将比较值使用PI调节器处理,输出控制。温度模型由实际加温装置测定而来,在这个模型中,满功率加热时,每秒钟目标温度上升0.12度。目标散热速度与环境温度相关认为是正比于实时温度与环境温度差。显然散热速度不能大于加温速度,否则就加温不了。

PI调节器的设计如图所示,比例部分温差值经过P增益 Pgain输出。积分部分为当前温差累加先前的累加输出。为防止积分器失控,累加输出需要作限幅处理。使积分器输出处于±1之间。经过Igain与比例部分相加,同时限幅处理。因为现在的温控器只能加温,没有制冷。所以将控制输出限制在0~1之间。


建立这个模型的目的是查找合适的Pgain Igain值。使输出稳定。不超调。仿真的步长为1S

Pgain 设置为2 Igain设置为0,也就是纯比例控制。可以发现输出稳定时低于设定值。

Pgain 设置为200 Igain设置为0.1,并没有出现预期的振荡。且输出值误差很小。

Pgain 设置为2 Igain设置为1,有稍许超调。但积分部分起了作用,消除了误差。

使用一个脚本对积分参数进行扫描仿真。

open_system('warmermodule');

gainBlock = get_param('warmermodule/Igain', 'Handle');

gainValue = 0.05:0.1:0.95;

% 循环改变增益并运行模型

for i = 1:length(gainValue)

    % 改变增益值

    set_param(gainBlock, 'Gain', num2str(gainValue(i)));

    % 运行模型

    sim('warmermodule');

    t(:,i)=yout(:,1);

end

plot(t)

grid on

legend('0.05','0.15','0.25','0.35','0.45','0.55','0.65','0.75','0.85','0.95')

得到输出结果:

可以看到积分参数设置比较低时,过冲小,但稳定时有偏差。积分分量大时,过冲增加,但偏差小。


在实际的机器上进行测试,得到如下结果:

Pgain 2 Igain 0.05

Pgain1 Igain 0.5

Pgain 1 Igain 0.1

可以看出,修改不同的控制参数,都会出现过冲(超调量)。稳定控制时,总会有小许波动。在比例系数设置为2积分参数设置为0.5时,温度输出发生振荡,显然不可用。

仿真结果与实际测试的结果差异如此之大。原因分析如下:

1、  模型不准确。

2、  系统非线性。PI控制方法需要使用在线性系统中。这个加热控制在温度低时可以加热。超温时只能靠散热。负输出与正输出不对称。因而是非线性的。

测温电阻存在测温误差和噪声。但测量结果作为反馈输入。会引入误差。





作者: southcreek, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-408807.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

southcreek 2023-7-8 21:19

有人点赞,我就开源。
相关推荐阅读
southcreek 2024-07-08 11:38
接地不良导致的故障分析
这个电路的控制板需要连接显示板和识别板。5V 供电和串行控制连到显示板,显示板再连接到识别板。识别板上电位器使用一个LDO供电,将输入的5V转成3.3V。当电位器滑动时,输出电压在0~3.3V之间。...
southcreek 2024-06-26 09:15
【EMC整改】带辅助加热的滴速控制器辐射抗扰整改
这个滴速式的输液泵使用一个红外线发射和接收装置,当有液滴通过时,会扰动检测信号,识别这个扰动检测到液滴滴下,获得滴壶中的液滴速度,调整阀门大小,实现输液速度控制。控制器还配备一根加热条,用于输液时对药...
southcreek 2024-06-06 08:52
QT 使用QSettings 操作ini文件配合表格操作
这个项目可以演示 使用QSetting 读取或写入 ini文件。并使用tablewidget 显示。Ini文件的格式如下,这个文件可以事先编写。也可以在程序中生成。有一个大类,下面有一个小类使用等号设...
southcreek 2024-05-27 16:18
差分输入ADC的单端到差分转换器驱动设计
单端信号需要转换成差分信号,以便使用ADC进行转换。这个就所谓的ADC驱动电路。需要的结果为Vp = Vcm + Vi/2Vn = Vcm – Vi/2这样 Vp – Vn = Vi使用简单的加法器和...
southcreek 2024-05-10 15:12
QT 使用 customplot实现绘图
从customPlot 官网下载需要的源文件。将qcustomplot类中的源文件加入到工程里。在工程文件中增加greaterThan(QT_MAJOR_VERSION, 4): QT += widg...
southcreek 2024-04-19 12:15
步进电机运动控制
这个项目使用步进电机高速启停并换向。需要在尽可能短时间完成相应的圈数。常用的线性加速启停的时候有很大的噪声。需要做一点运动控制。达到加速度变化连续的效果。7段加减速控制策略分t1~t7 7个阶段,A...
我要评论
1
21
关闭 站长推荐上一条 /2 下一条