Arduino与Matlab相融合的自控实验平台

2024-04-18 03:49姚鸿泰周妙言
实验室研究与探索 2024年1期
关键词:内模晶体管阶跃

吴 葛, 姚鸿泰, 周妙言

(华中科技大学电气与电子工程学院,武汉 430074)

0 引 言

随着“互联网+”、AI、大数据和智能制造等前沿技术的迅猛发展,社会对于创新意识敏锐、实践经验丰富、综合素养优秀、跨学科知识广博的高素质和多元化人才的需求日益迫切。教育部在此背景下大力推动工程教育变革,并且给予工科教育更加严格的要求和期望。2016 年,我国工程教育认证加入了《华盛顿协议》,其理念是“学生中心、成果导向、持续改进”,培养学生具备解决复杂工程问题的能力[1-3]。教育部积极推行“新工科”建设,大力开拓新型工科专业,并且不断完善和优化传统专业,使其成为一个多元、融合的整体,以提高学生的实践技能和综合素质[4-5]。实验教学是工科专业培养学生的重要环节,它不仅可提高学生的实践技能、激发他们的创新精神,还可提升他们的综合素质。对实验教学进行全面改革与创新显得尤为迫切[6-7]。

“自动控制原理”是自动化及相关专业的学科基础课程,是一门理论与实践并重的课程,其特点是工程性、方法性、综合性强。在该课程实验教学项目设计中贯彻落实“新工科”教育理念,对学生解决实际工程问题能力的培养以及未来发展具有重要意义。传统自动控制实验大多局限于电路实验箱,实验性质多为验证性和演示性,缺乏系统性和设计性,难以满足学生对自动控制原理的深入理解和实践应用的需求,必须采取有效措施来提升自动控制实验的质量和效果[8]。

工程实践中,控制系统的设计多采用频域设计,其前提是要得到精确的系统数学模型。但是系统中存在扰动和未建模动态特性,导致理论模型与实际系统相差较大[9]。

为帮助学生构建分析控制系统的方法,开发了基于Arduino与Matlab 相融合的自动控制实验平台,帮助学生体验数据采集辨识系统模型;系统模型设计控制器;硬件在环系统调试。此外,还实现Arduino 平台代码自动生成、下载、运行,运行过程可以在Matlab 中观察并且利用Simulink在线调试[10]。

1 实验平台介绍

基于Arduino与Matlab相融合的自动控制实验平台,利用Arduino 的I/O 采集控制系统的数据,与Matlab通信进行数据分析仿真,Python 求解器参数优化进行系统模型参数辨识,帮助学生搭建脚手架,构建一个方便提取系统模型的平台,基于此平台可完成控制算法的验证以及硬件在环调试。

实验平台可集成不同的被控对象,本文以自制的温度控制为例,其硬件结构如图1 所示。由一个LED、加热器和温度传感器(温度传感器通过导热胶紧贴加热器)组成,温度传感器并留有Arduino 接口,构成shield扩展板。

图1 温度控制系统硬件结构

以温度控制系统为被控对象的Arduino 与Matlab相融合的自动控制实验平台的实施步骤如下:

(1)模型搭建。构建温度控制系统的数学模型。

(2)数据采集。利用Arduino自带的模数转换器对特定端口进行数据采集,编写特定函数,将数据同步到Matlab。

(3)模型辨识。利用采集的数据对模型进行参数辨识,得到系统模型。

(4)控制器设计。在Matlab中利用其自带的PID控制模块作为主控制器,对辨识的模型进行控制器设计,确定控制器参数。

(5)代码生成与下载。完成控制器设计仿真,进行代码自动生成和在线烧写至Arduino。

(6)硬件在环调试。通过Simulink 环境,实时调整控制器参数,调整Arduino中PWM的输出占空比来调整加热器的输出,并实时监测温度的变化情况。

2 温度控制系统模型搭建与辨识

2.1 温度控制系统模型搭建

温度控制系统是执行器(晶体管)产生的热能通过传导、对流以及辐射传递到测量设备(温度传感器)。

为创建晶体管输入功率以及温度传感器测量温度之间的动态响应模型,使用能量平衡进行推导。作如下假设与取值:

(1)在最大输出时,晶体管加热输出功率为1 W;晶体管和散热器的总质量为4 g。

(2)晶体管散热片为钢材质,其比热容为500 J/(kg·K),加热器和传感器的表面积约为12 cm2,静态空气对流换热系数约为10 W/(m2·K)。

晶体管产生的热量主要损耗是通过对流和辐射传热从器件传递出去,使用能量平衡推导晶体管输入功率与温度传感器测量温度之间的动态响应模型。

式中:m为晶体管和散热器总质量;c为钢的比热容;T为测量温度;hin为系统吸收的热量;hout为系统损耗的热量。对式(1)进行改写:

式中:U为空气对流换热系数;A为加热器和传感器的表面积;T∞为环境温度;∊=0.9 为表面辐射系数;σ =56.7 nW/(m2·K4)为斯忒藩-玻耳兹曼常数;Q为加热器在时间t内产生的热量。

2.2 温度控制系统模型辨识

通过2.1 建模可见,模型涉及辐射散热以及对流换热等,其中环境影响和实际误差难以通过理论准确计算。考虑通过分析系统的阶跃响应来辨识系统模型。

搭建如图2 所示的系统模型,图中,橙色方框为温度控制系统;设置目标温度为40 ℃,对系统进行开环测试,基于Arduino 和Simulink 联合开发的库,通过Matlab与Arduino 混合编程实现Arduino 对晶体管功率的控制,同时将实时读取的温度传输到Matlab 的WorkSpace(temp_out),得到系统的阶跃响应曲线如图3 所示[11]。

图3 温控系统开环阶跃响应(t =40)

由图3 可见,温度控制系统具有非线性、惯性大、时滞等特点,考虑引入一阶纯滞后模型(First Order Plus Dead Time Model,FOPDT)来描述,其传递函数

式中:K为稳态增益;τ为滞后时间常数;T为惯性时间常数。

由图3 可大致计算出以上参数:稳态增益近似等于温度的增量与设置温度的比值,可得K≈1;滞后时间常数是施加阶跃响应后到温度开始上升的时间,可得τ≈20 s;惯性时间常数表明系统的上升速度,从0到稳态值的95%约为5 个时间常数,可近似得到T≈86 s。将3 个参数分别代入式(3)可得到一个大致的系统传递函数。

通过上述方式得到的参数过于粗略,考虑将实时温度和时间数据导入Python 中,以上面粗略计算出的模型参数K、τ、T为初始条件,通过Python 求解器(部分代码如图4 所示)将模型预测值与实际测量值对比,并以误差平方和最小化为优化目标来调整参数。可计算出校正后的传递函数参数K=0.81、T=161.18、τ =12.23。

图4 部分校正代码

将温度控制系统,粗略仿真系统(校正前)和参数校正后系统(校正后)的响应绘制在同一坐标系下,如图5 所示。可见,校正前系统响应趋势与真实系统的差异较为显著,而校正后的系统响应趋势则更接近实际趋势,更适合用于模拟温度控制系统的工作情况。为了验证这个结论,对校正后的仿真系统和温度控制系统的阶跃响应进行进一步的对比,将目标温度值设置为40 ℃,得到校正后的仿真系统的阶跃响应和温度控制系统的实际阶跃响应对比如图6 所示。

图5 校正前后预测对比

图6 温控系统与仿真系统的阶跃响应

可见,所构建的系统的阶跃响应与温度控制系统的阶跃响应有较高的相似度,可以采用其来对实际系统进行仿真测试。校正后的系统的模型

3 基于内模控制的PID控制器设计

通过开环测试,发现系统并不能达到设定的温度值,且抗干扰能力差,考虑引入控制器进行闭环控制,以达到调控温度快速且稳定达到设定值。

内模控制(Internal Mdel Control,IMC)是在控制器设计过程中增加过程模型的一种新型控制测控略[12]。它与传统PID控制相比,内模控制只需整定一个参数,这使得参数调整与系统的动态性能和鲁棒性之间的关系更加明确,使得设计更加简单,控制性能更优。将内模控制与传统PID结合,可提高PID控制器的控制水平。

3.1 内模控制的原理

图7 展示了内模控制的基本结构,其中虚线部分为整个控制系统的内部结构,包含控制器GIMC(s),新的过程模型G~p(s)。Gp(s)为被控对象。为更好地描述输出Y(s)、输入R(s)和扰动D(s)之间的相互影响,对图7 的结构进行转换,结果如图8 所示。

图7 内模控制结构

图8 内模控制等价结构

由图8 可推导出整个控制器

于是有

根据图7,可知反馈信号

3.2 基于IMC的PID控制器参数整定

理想的PID控制器

为设计基于IMC 的PID 的控制器,将式(5)与式(8)等价,从内模控制的角度设计PID控制器。

根据内模控制的设计方法[13-15]:

步骤1 将G~p(s)分解为稳定部分和不稳定的时滞部分,即:

步骤2 设计控制器时,为提高系统的稳定性和鲁棒性,考虑在最小相位上添加滤波器。IMC控制器

假设:

对式(12)中的纯滞后时间使用一阶Pade 近似,得:

将式(13)代入式(12),并按照式(9)进行分解:

由于式(12)为一阶,令n=1,并将式(14)、(16)代入式(11),经整理得

将式(17)与式(8)对比,可得

可见,此时只需调整一个参数ε,进而调整系统的闭环响应速度以及其整体控制性能。

3.3 基于IMC的PID整定在温控系统中的研究

辨识出来的模型如式(4),可令T=161.18,K=0.81,τ =12.23。

分别取ε为10、100 和310 时,根据3.2 推导的结果可得PID控制器的参数见表1。

表1 ε取不同值对应的PID参数

分别用上述参数来搭建PID控制器对式(4)模型进行仿真,为便于调节参数,可直接使用Simulink里的PID模块(也可通过数学关系搭建)。同时,为验证系统的抗干扰能力,引入干扰信号(此处引入阶跃干扰信号),如图9 所示。

图9 内模PID控制仿真模型

在600 s时,加扰动-10 ℃,得到的仿真结果如图10 所示。

图10 不同PID参数下的响应对比

由图10 可见,基于IMC-PID 参数调整方法,能迅速使时延对象系统达到稳定状态,并且超调量非常小。此外,图10 还显示,当ε值增大时,系统的反应速度会变得越来越慢,使得系统的上升时间增加,调节时间也相应延长。在实际应用中,建议使用较小的ε值。

4 在线调试与代码自动生成

4.1 代码生成与运行

基于辨识出来的模型,在Matlab 中应用IMC-PID算法仿真测试选择合适的控制器参数之后,可进行代码自动生成,并在线下载到Arduino。配置使用“Arduino Leonardo”控制板,设置Arduino端口号,并完成波特率的设置,设置完成保存后,回到Simulink编辑窗口,点击“Run”开始自动下载并在完成后运行。

4.2 硬件在环调试

本项目采用的Arduino 平台,拥有2 个串行通信端口,能与电脑进行数据交换,通过编写串口通信代码进行设置,可在Simulink 环境中在线调整IMC-PID 参数,并可观察实际信号的变化。

将温度控制系统的目标温度设置为40 ℃,使用仿真得到的IMC-PID参数对系统进行控制,观察温度变化,如图11 所示。可见,温度较快达到稳定,且超调较小。

图11 在线调试输出

5 结 语

本文基于Arduino与Matlab相融合设计的自动控制实验平台,帮助学生体验通过采集系统数据来辨识系统模型,基于系统模型进行控制器设计,同时实现基于Arduino平台代码的自动生成、自动下载运行以及硬件在环调试等功能,能满足综合性实验教学要求,有助于提升学生工程实践的能力。

猜你喜欢
内模晶体管阶跃
基于阶跃双包层光纤的螺旋型光纤传感器
2.6万亿个晶体管
探讨单位阶跃信号的教学
一种新型的耐高温碳化硅超结晶体管
基于内模控制的SSSC前馈解耦控制策略研究
碳纳米管晶体管迈出商用关键一步
基于三自由度内模解耦控制的VSC-MTDC性能分析
一种基于内模控制的光伏逆变器功率控制策略
高频开关电源模糊内模PID控制器设计
意法半导体(ST)新款100V晶体管提高汽车应用能