CNCNKI学术不端文献查重检测系统 多语种 图文 高校 期刊 职称 查重 抄袭检测系统
学院开设的电力拖动自动控制系统课程,是一门综合运用以前所学专业课的课程,为了提高实验教学的效果,现需要设计一套通用的电力拖动实验平台。虽然实验室已引进了实验设备,但是现有的实验装置都是采用模拟控制器进行直流电机的检测和调速,存在系统结构复杂制作成本高,调节不方便、可实现功能有限、调速精度难以达到很高,性能不够理想等缺点。并且调速系统过于陈旧,远远落后于目前工业上使用的基于微型计算机的数字直流控制系统,不利于学生与现代化市场接轨。因此本次设计将对实验室双闭环直流调速系统进行部分数字化改造。将本设计的数字直流调速系统应用到实验室,不仅可以扩大学生知识面,还能提高学生改造实验室的积极性,同时提高学生的动手能力。
数字化双闭环直流调速系统由微型计算机、功率放大与变换装置、整流滤波电路、PWM变换电路、电流检测电路、旋转编码器和直流电动机构成。为了充分利用实验室现有装置,节约成本,本次设计只对原有系统进行部分数字化改造:用单片机实现的数字PI控制器代替模拟PI控制器。另外,为了实现试验数据的可视化和参数的灵活可调,还应增加显示电路和参数修改电路。
双闭环直流调速系统主要由三部分组成: 主电路、控制回路、检测回路。主电路由电力二极管组成的三相桥式不可控整流器、电流反馈单元、转速反馈单元、可逆PWM变换器和它励直流电动机等组成;控制回路由单片机系统、PWM产生电路和隔离与驱动电路等组成;检测回路由直流测速发电机、速度检测单元和电流检测单元等组成;另外为了更改参数灵活和方便观察,本次设计还设置了参数更改与显示电路。与模拟控制电路相比,本次设计主要是把转速调节器ASR和电流调节器ACR用单片机进行替代,用软件的方式实现双PI控制器的功能。转速反馈和电流反馈经电平转换后输入到单片机中,通过数字PI控制器计算出输出电压。由于单片机带载能力有限,因此在单片机输出口外另加了一个功率放大电路,输出信号经放大后再传入到PWM控制器UPW中从而控制PWM波的占空比;PWM波经隔离驱动电路控制IGBT的通断,进而控制电枢电压的大小,最终达到调节转速的目的。具体流程如图2所示:
图2数字直流调速系统框图
在王兆安所编写的《电力电子技术》这本书中,整流电路是电力电子电路四大基本电路中的一种,它将交流电变为直流电。综合比较各种类型的整流电路又结合本设计的要求,本设计最终选择由二极管组成的三相桥式不可控整流电路。因为三相桥式整流电路直流电压脉冲较小、易滤波。具体电路形式如图3所示:
图3三相桥式不可控整流电路
可逆PWM变换器主电路有多种方式,最常用的是桥式(亦称H型)电路,直流电动机M两端电压U的极性随全控型电力电子器件的开关状态而改变。由于双极性控制的桥式可逆PWM变换器具有其他类型电路不具有的优点,因此在实际生产中双极性控制的桥式可逆PWM变换器得到了最广泛的应用。本次设计采用的也是双极性控制的桥式可逆PWM变换器。电路连接如图4所示。当正脉冲较宽时,Ug1和Ug4导通,电动机正转;当负脉冲较宽时,Ug2和Ug3导通,电动机反转。IGBT并联二极管具有续流作用。同时,为防止同一桥臂上的IGBT直通,应设计逻辑延时,逻辑延时可以用软件和硬件两种方法实现,本次设计中为了充分利用实验室现有设备,因此采用硬件电路实现逻辑延时。
图4可逆桥式PWM变换电路
对于给定任务,选择何种机型的方案不是唯一的。这不仅有技术上的问题,还受一些客观条件的限制,从技术上考虑,要能够满足控制系统所提出的控制要求。本系统要求微型计算机完成电流环和速度环的反馈信号采样、处理和控制算法计算等功能。在详细的系统分析、实用性、经济性分析的基础上,选用了STM32系列的STM32f103RCT6单片机。
单片机最小系统指用最少的元件组成的单片机可以工作的系统.对STM32系列单片机来说,最小系统一般应该包括晶振电路、复位电路、电源三个部分:这三部分是单片机工作的三要素,它们与单片机一起构成单片机最小系统,三者缺一不可。具体连接如图5(只有晶振与复位电路)所示。除此之外程序下载电路和串口通信电路也非常重要。在STM32开发板中,串口下载代码、供电、串口通信 3 位一体。具体电路连接形式如图6所示。
图5单片机晶振与复位电路
图6电源,下载与串口通信电路
双闭环直流调速系统用的是两个PI调节器,每个PI调节器有两个参数:比例系数和积分系数,因此总共有四个参数需要修改。为此我们设计了八个按键对参数进行加减的修改,按键的连接主要有两种:高电平按键按下和低电平按键按下,本次设计为了方便我采用了共地级接法,即按下按键引脚输入为低电平,对于单片机来说,就是上拉输入(原始状态)。具体接法如图7所示。
图7按键连接
为了便于观察程序的执行情况和参数的变化,本次设计我们采用了TFT-LCD液晶显示屏。TFT-LCD液晶显示屏是薄膜晶体管型液晶显示屏,也就是“真彩”(TFT)。TFT-LCD电路如图8所示。
图8 TFT-LCD
针对本次设计,软件设计一定要满足实时性、可靠性、可修改性这三个最基本的要求。概括地讲,实时性就是指软件的反应要及时,当给定信号和反馈信号有波动时,单片机的AD转换器要能立即采集到并能经过快速的运算计算出相应的输出值,并且显示屏还要能迅速的显示出输入输出数值的变化;可靠性就是指在软件执行的过程中,软件有避免发生故障的能力,在受外界干扰的情况下,软件不能跑飞;所谓可修改性就是指软件程序可以灵活修改,便于反复调试修改,以使程序达到最优。要做到这三点要求,都要有相应的措施。只有满足这三点要求,软件程序才有可能达到理想的效果。
程序设计不能把所有的功能都在主程序中实现,这样会导致整个程序大而复杂,人们不易读懂。程序设计是应该学会把任务分隔成若干个模块,每个模块单独编写,最后在主程序中引用,这样不仅有助于增加程序的易读性和易修改性,还能让人们很容易看清程序所执行的功能。因此实际的应用程序一般都是由若干个功能模块和一个主程序两大部分构成。按照设计任务的要求,每个功能模块都要完成特定的功能。本次设计除了主函数外总共还有有七大功能模块。其中包括按键模块、LCD显示屏模块、模数转换器模块、数模转换器模块、参数显示模块、PID调节模块和看门狗程序模块。主程序和各模块功能下文将逐一介绍。
当对程序进行较好的功能分块后,相对来说主程序就简便了许多。主程序主要是进行其他功能模块的初始化和调用其他功能模块的子程序,然后按照一定的逻辑把需要的子程序拼接起来完成设计所需要的功能。除此之外,主程序还要负责编辑一些不能分割出去的功能模块,例如本设计中的通过按键修改PI参数的程序。本次主程序设计的流程图如图9:
图9主程序流程图
正如主程序流程图所示,主程序主要是调用其他功能模块进行逻辑性的组合。其中,七大功能模块在主程序中都有相应的调用,按键修改参数模块是唯一一个在主程序中编写的功能模块。并且主程序的编写也基本上按着流程图进行,具体程序如下:
由李元春所编的《计算机控制系统》这本书可知,常规的模拟 PID 控制系统原理框图如图10所示。模拟 PID 控制器的控制规律为
其中 Kp——控制器的比例常数
Ti——控制器的积分时间
Td——控制器的微分时间
图10模拟 PID 控制系统原理框图
但是由于计算机控制是一种离散化控制,它不能像模拟控制那样进行连续控制。由于这一特点模拟PID控制器中的积分项和微分项不能直接使用,必须进行离散化处理。数字式 PID 控制算法可以分为位置式 PID 和增量式 PID 控制算法。根据《计算机控制系统》介绍的离散化方法,对模拟控制器进行离散化处理,可以得到位置式PID算法:
(1)
式中:--采样序号 --比例系数
--积分系数 : --微分系数:
--第k次采样时刻的计算机输出值 --第k次采样时刻输入的偏差值
--第k-1次采样时刻输入的偏差值
由公式(1)位置式算法经整理就可以得到增量式PID控制算法公式为
(2)
或写为
(3)
式中,,与公式(1)中的,,含义相同,不再重复注释。
增量式算法除了可以写成公式(3)的形式,写成如下形式:
(4)
式中,,
位置式和增量式两种算法的优缺点对比如下表:
控制算法 计算量 积分限幅 输出限幅 位置式 大 需要 需要 增量式 小 不需要 需要从上表可以看出,增量式算法比位置式算法优越,因此在实际生产中增量式算法应用的较为广泛。增量式算法和位置式算法都有其适用的范围,必须依据系统的具体要求进行合理选择。当必须用位置式算法时,可以利用增量式PID控制算法推出位置式 PID 控制算法,从而可以避免位置式算法带来的问题。
(5)
公式(5)称为数字递推 PID 控制算法,根据公式(3)和(4)可知,公式(5)也有两种形式,此处不再推导。由于本设计要求,又因为数字递推 PID 控制算法具有增量式控制算法的优点,因此本设计采用此控制算法。
由于本次设计采用的是PI调节器,故=0;具体编写流程如图11所示:
图11 PI控制器流程图
速度PI控制器和电流PI控制器的编写流程一样,这里都称为PI控制器。从流程图中可以看出,程序的编写比较简单,在此不再过多赘述。速度PI控制器和电流PI控制器的具体程序编写如下:
//转速环
float vPID(float vr,float vy,float Kp,float Ki)//vr输入电压;vy反馈电压;Kp比例常数;Ki积分系数
{
static float u_i_1=0,vek_1=0;//u_i_1存储上一次的计算结果,vek_1存储上一次的误差
float vek,u_i;//vek误差变量,u_i存储计算结果
vek=vr-vy;//误差计算
u_i=u_i_1+Kp*(vek-vek_1)+Ki*vek;//位置式PID算法
if(u_i>3.3)//输出上限限幅
{
u_i=3.3;
}
if(u_i<0)//输出下线限幅
{
u_i=0;
}
u_i_1=u_i;
vek_1=vek;//更新上一次计算结果的值
return u_i; //返回计算结果
}
//电流环
float iPID(float ir,float iy,float Kp,float Ki)//ir输入电压;iy反馈电压;Kp比例常数;Ki积分系数
{
static float iek_1,i_i_1;//i_i_1存储上一次的计算结果,iek_1存储上一次的误差
float iek,i_i;//iek误差变量,i_i存储计算结果
iek=ir-iy*3;//误差计算
i_i=i_i_1+Kp*(iek-iek_1)+Ki*iek;//增量式PID算法
if(i_i>3)//输出上限限幅
{
i_i=3;
}
if(i_i<0)//输出下线限幅
{
i_i=0;
}
i_i_1=i_i;
iek_1=iek;//更新上一次计算结果的值
return i_i;//返回计算结果
}