三、软件系统总体设计
1、软件程序结构
在深入学习STM32编程、PID控制算法、组态王软件的基础上进行温度控制系统的软件设计。软件设计主要包括温度数据的采集变换、PID算法的设计、PWM输出信号控制以及触摸屏显示设计、上位机监控画面的设计。上位机监控画面的设计主要包括设计监控主画面、设计报警画面等。整个程序系统主要有主控程序、初始化程序、温度设定程序、PID设置程序、温度采集程序、温度显示程序、PID控制算法程序、PWM控制信号输出程序和串口通信程序组成,其结构如图14所示。 3.2.2 主程序设计
主程序是整个软件系统的主干,处在程序的最顶一层,引导系统进入正常的工作状态,并且协调着各个程序块之间的调用关系,使硬件系统能正常的工作以完成温度控制系统任务,其流程如图15所示。 3.2.3 初始化程序设计
系统初始化程序在系统上电启动或者复位时,对温度控制器的硬件和软件进行初始化,完成系统的配置工作,初始化程序主要包括:显示屏初始化、系统时钟初始化、I/O 端口的配置、定时器初始化。
2、温度采集程序设计
温度检测电路是由PT100温度传感器和模拟量前向通道组成的,温度的检测由二者直接完成。利用温度检测电路得到温度变化对应的模拟电压信号,该信号直接由STM32进行A/D转换,由于转化的数值与实际的温度值之间不是线性关系,要用DS18B20采集对应温度值,该温度值用来校验当前温度是否正确,并用此温度值对应前向通道输出的模拟电压值以拟合数值与温度值的曲线,得到他们之间的函数关系,本次拟合曲线如图16所示。
曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。最终经MATLAB得到曲线公式如公式(3)所示。
温度采集相关的程序核心代码如下所示:
void filter(void) //模拟量前向通道温度采集
{
int sum = 0;
u8 count,i;
for(i=0;i《12;i++)
{
for(count=0;count《Sampling_Number;count++)
{
sum += Conv_AD_Value[count][i];
}
After_filter[i]=sum/Sampling_Number;
sum=0;
}
}
此程序用来获取当前温度对应的模拟量信号,并将其转化为数字量信号,经由拟合公式计算出对应的温度值。
3、位置式PID控制算法设计
工业生产过程中,对于生产装置的温度、压力、流量、液位等工艺变量常常要求维持在一定的数值上,或按一定的规律变化,以满足生产工艺的要求。PID控制算法的原理是对整个控制系统进行按偏差进行调节,从而使被控量的实际值与工艺要求的预定值一致。因为PID控制算法具有:技术成熟、容易被人们熟悉和掌握、不需要建立数学模型、控制效果好、鲁棒性等优点,所以PID控制算法成为应用最广泛的控制算法。
单片机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此连续PID控制算法不能直接使用,需要采用离散化方法。由于工业生产过程大多数是缓慢变化的过程,因此只要控制机的采样周期T取得足够短,断续控制形式就趋于连续控制形式。数字PID控制算法又分增量式PID控制算法和位置式PID控制算法,由于位置式PID控制算法控制精度比较高,而增量式PID控制算法有:积分截断效应大、有静态误差、溢出的影响大等缺点,所以本设计选用的控制算法是位置式PID控制算法。
位置式PID控制算式如公式(4)所示。
PID控制算法的参数整定与采样周期的选取
PID控制算法参数整定的方法很多,概括起来有如下两大类:
(1)理论计算整定法。它主要依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接使用,还必须通过工程实际进行调整和修改。
(2)工程整定法。它主要依赖于工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制算法参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。这三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后的调整与完善。
本文采用经验法整定PID控制算法参数,下面具体说明经验法的整定步骤:
(1)让调节器参数的积分系数I=0,微分系数D=0,控制系统投入闭环运行,由小到大改变比例系数P,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。
(2)取比例系数P为当前的值乘以0.83,由小到大增加积分系数I,同样让扰动信号作阶跃变化,直至得到满意的控制过程。
(3)积分系数I保持不变,改变比例系数P,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数P增大一些,再调整积分系数I,力求改善控制过程。如此反复试凑,直到找到满意的比例系数P和积分系数I为止。
(4)引入适当的微分系数D,此时可适当增大比例系数P和积分系数I。和前述步骤相同,微分系数的整定也需反复调整,直到控制过程满意为止。
经验法简单可靠,但需要有一定的现场运行经验,整定时易带有主观片面性。当采用PID控制算法时,由于有多个整定参数,反复试凑的次数增多,因此增加了得到最佳整定参数的难度。
需要注意的是:本设计所用到PID控制算法的参数与的工业上PID控制算法的参数有所不同,工业中由于对象的体积大、容量大、控制室距离现场较远等因素,所以其PID控制算法的参数普遍比本设计的大。书上、参考资料上的的PID控制算法的参数多数都是从工业生产过程中得来的,因此此经验数据不适应作本设计PID控制算法的参数。
采样周期的选取,按一定的时间间隔T,把时间上连续和幅值上也连续的信号,转变成在时刻0、T2、…、kT的一连串脉冲输出信号的过程称为采样过程。执行采样动作的开关S称为采样开关或采样器采样后的脉冲序列ty*称为采样信号,采样器的输入信号ty称为原始信号,采样开关每次通断的时间间隔T称为采样周期。采样信号ty在时间上是离散的,但在幅值上仍是连续的,所以采样信号是一个离散的模拟信号。信号采样过程如图18所示。
从信号的采样过程可知,经过采样不是取全部时间上的信号值,而是取某些时间上的值。这样处理会不会造成信号丢失呢?香农采样定理指出:如果模拟信号(包括干扰在内)频谱最高频率为maxf,只要按照采样频率max2ff进行采样,那么采样信号ty*就能惟一的复观ty。采样定理给出了ty*能惟一的复观ty所必需的最低采样频率。实际应用中,常取max105ff,甚至更高。
4、采样周期的确定需要注意以下事项:
(1)从执行机构的特性要求来看,有时需要输出信号保持一定的宽度。采样周期必须大于这一时间。
(2)从控制系统的随动和抗干扰的性能来看,要求采样周期短些。
(3)从单片机的工作量和每个调节回路的计算来看,一般要求采样周期大些。
(4)从单片机的精度看,过短的采样周期是不合适的。
经过多次调试设置,采样周期T选为1s采样效果最好,且信号采样不失真。
5、 PWM输出程序设计
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中[14]。PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式。
通过单片机输出的PWM信号控制固态继电器的通断,通过改变一定时间内通过的交流波头数实现对电加热水器内水温的控制,我国公共电力网的频率均为50HZ,周期也就是0.02秒,设置 PWM 信号的输出周期为4秒,即STM32单片机以0.25Hz的频率输出PWM,改变PWM的占空比,在4秒的周期内,当PID算法的控制量大于100时,通过交流电源的最大周期波数是100,当 PID 算法的控制量小于0时,最小周期波数是0,当控制量在0~100之间时,就按比例换算进行确定PWM输出信号的占空比。STM32单片机具有多个定时器/计数器,每个定时器/计数器都可以独立的输出PWM信号,本设计采用单片机的TIM3定时器/计数器在PB5 引脚输出PWM,PWM输出流程如图19所示。
四、上位机监控界面设计
1、上位机监控软件的选取
组态王(Kingview)由北京亚控自动化软件有限公司开发的,该软件由中国科技大学学士、清华大学硕士林伟总设计,经数十位工程师历时五年开发成功,是最优秀的国产组态软件,居全国同类软件产销量第一。组态王是一个具有易用性、开放性和集成能力的通用组态软件。应用组态王可以使工程师把精力放在控制对象上,而不是形形色色的通信协议、复杂的图形处理、枯燥的数字统计。只需要进行填表操作,即可生成适合于用户的监控和数据采集系统。可以在整个生产企业内部将各种系统和应用集成在一起,实现“厂际自动化”的最终目标。组态王开发监控系统软件是新型的工业自动控制系统正以标准的工业计算机软、硬件平台构成的集成系统取代传统的封闭式系统,具有适应性强、开放性好、易于扩展、经济、开发周期短等优点。组态软件以其可靠性高、抗干扰能力强、界面简单、功能强大、性价比高等显著特点广泛应用于现代工业的自动控制之中。
2、 组态王软件组态监控界面设计
使用组态王实现控制系统实验仿真的基本方法:
(1)图形界面的设计;
(2)构造数据库;
(3)建立动画连接;
(4)运行和调试。
根据以上控制方案的确定,本次设计组态王监控界面如图20所示
定义数据变量见表2。
选择设备的相关配置如下:
设备名称:通用单片机ASCII;
通信描述:串口;
逻辑名称:STM32;
选择串口号:COM4;
设备地址:1.0。
动态连接,参数动态连接设置见表3。
3、报警和事件窗口设计
运行报警时间记录是监控软件必不可少的功能,“组态王”提供了强有力的支持和简单的控制运行报警和时间记录方法。
组态王中的报警和事件主要包括变量报警事件、操作事件、用户登陆事件和工作站事件。通过这些报警和事件,用户可以方便地记录和查看系统的报警、操作和各个工作站的运行情况。当报警和事件发生时,在报警窗中会按照设置的过滤条件实时的显示出来[16]。定义报警组,本次建立报警画面如图21所示。
五、系统的运行结果及问题分析
1、运行结果及分析
经过多次的参数设置的调试,对比各组设置参数的调节效果得出:当程序中PID设置参数如表4所示参数时控制效果最好。
总结:本系统的控制核心算法是PID控制算法,难点是PID参数整定。图22为系统运行曲线的初始温度50℃,设定温度60℃时的结果,经过9分钟的调节系统达到稳定,实际温度达到设定温度,稳态误差为0.4℃,超调量几乎为零。本设计中温度能达到设定温度,而且超调量较小,稳态效果很好。
2、出现的问题及解决方法
在长达十六周的毕业设计中,自己碰到了不少问题。曾经,为了解决这些问题也花费了较多的时间。当然,这也使自己对实际工程中所遇到或者可能遇到的问题有了个提前认知。
(1)上位机采集不到现场的数据
解决方法:原因是温度传感器与模拟量前向通道接线有错误、松动,串口使用的通道设置错误,在利用组态王软件进行I/O设备组态的时候应选设备名称通用单片机ASCII。
(2)上位机的输出控制信号控制不了电加热水器
解决方法:上位机组态软件中查看数字量输出通道的设置与当前连线的通道不一致。
(3)系统稳定后误差比较大
解决方法:误差产生的原因有:温度对象是大惯性对象、单片机控制信号从发出到固态继电器的吸合,再到加热丝停止加热,这过程中存在时间误差、硬件灵敏度不够精确等问题。
评论
查看更多