温控系统参数辨识及单片机PID控制
- 1. 温控系统组成
- 2. matlab辨识系统参数
- 2.1 采集阶跃响应信号
- 导入matlab系统辨识模块
- PID控制
1. 温控系统组成
- 半导体制冷片正向通电制冷,反向通电制热。系统采用半导体制冷片(帕尔贴)作为执行单元,帕尔贴下端连接水冷系统进行散热,上端为导热铜片,铜片上贴有热敏电阻用于测量系统的温度。
- 控制系统采用4个MOS管组成的H桥驱动电路,通过PWM进行加热制冷温度控制。
2. matlab辨识系统参数
一般的加热系统的传递函数可以简化为一阶时滞系统,其传递函数如下:
W ( s ) = K e − τ s T 1 s + 1 W(s)=\frac{K e^{-\tau s}}{T_1 s+1} W(s)=T1s+1Ke−τs
2.1 采集阶跃响应信号
我们可以用一阶跃信号去激励系统,从而识别出系统的参数。
这里将温控系统的输出设定为100%,记录导热铜板上的温度变化曲线。
导入matlab系统辨识模块
将阶跃响应信号保存为 iddata 格式
dataName=["P100","P80","P50","P20"]; %P100代表 PWM信号100%开度
dataAll=readtable('Row.xlsx');
dataAll=table2array(dataAll);
originalTemp=dataAll(1,:);%初始温度
dataAll=dataAll-originalTemp;%将所有信号变为0摄氏度开始
sampTime=0.06;%采样时间
for i=1:length(dataName)
tempData=dataAll(:,i);
tempData=tempData(~isnan(tempData));
tempTime=(sampTime:sampTime:(length(tempData))*sampTime)';
tempDataTime=[tempTime,tempData];
u=ones(length(tempDataTime),1);%阶跃信号
eval("x_"+dataName(i)+"=iddata(tempData,u,sampTime);");
end
得到下面四组实验数据
打开matlab中 System Identifiction模块
导入数据点击【Data object】
PID控制
理论模型与实际模型比较