【单片机】温控系统参数辨识及单片机PID控制

温控系统参数辨识及单片机PID控制

  • [1. 温控系统组成](#1. 温控系统组成)
  • [2. matlab辨识系统参数](#2. 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 格式

cpp 复制代码
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控制

理论模型与实际模型比较

相关推荐
玄奕子6 小时前
F280049C学习笔记之EPWM
单片机·嵌入式硬件·dsp开发·ti c2000·f280049c
三品吉他手会点灯9 小时前
stm32f103学习笔记-16-RCC(第2节)-讲解系统时钟配置函数SetSysClockTo72()
笔记·stm32·单片机·嵌入式硬件·学习
范纹杉想快点毕业9 小时前
100道关于STM32的问题解答共十万字回答,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。
驱动开发·单片机·嵌入式硬件·fpga开发·硬件工程
国科安芯11 小时前
多输出电压条件下同步整流效率测试与优化
网络·单片机·嵌入式硬件·安全
李宥小哥13 小时前
创建型设计模式1
stm32·嵌入式硬件·设计模式
std8602113 小时前
嵌入式软件与单片机的核心技术与应用
单片机·嵌入式硬件
Shylock_Mister13 小时前
弱函数:嵌入式回调的最佳实践
c语言·单片机·嵌入式硬件·物联网
bbxyliyang13 小时前
基于430单片机多用途定时提醒器设计
单片机·嵌入式硬件·51单片机
d111111111d13 小时前
STM32外设学习-ADC模数转换器(代码部分)四个模块,光敏,热敏,电位,反射式红外。
笔记·stm32·单片机·嵌入式硬件·学习
范纹杉想快点毕业13 小时前
STM32百问百答:从硬件到软件全面解析
单片机·嵌入式硬件