时间:2024-05-04
李杰 邢笑笑
(商洛学院电子信息与电气工程学院 陕西省商洛市 726000)
基于迭代学习的控制系统研究是一个比较受研究人员重视的领域,大多数重复控制系统中都有应用迭代学习算法,与传统的控制算法不同,基于迭代学习的控制算法对控制系统精确的数学模型要求不高,并且算法比较容易掌握,因此这种算法一经提出就引起了研究人员极大的兴趣[1]。很多专家和学者对迭代学习做了很多的研究,使得迭代学习的应用更加广泛,尤其是在控制系统的应用中。
PID控制算法是发展较早并且应用比较成熟的控制方法,因为它的算法模型比较简单,鲁棒性好并且可靠性高,所以在过程控制系统和运动控制系统中都被广泛应用[2]。在控制系统的研究设计应用中,PID参数的整定是研究人员经常面临的一个难点问题,如果PID控制参数没有调节好的话,将会严重影响控制系统的控制性能[3],因此研究PID参数的整定问题非常重要。在直流电机控制系统的中,电机的速度控制是一个相对复杂的重复控制系统[4],一般的控制系统很难得到良好的控制效果。在迭代学习控制系统中,利用学习到的迭代信息不断对控制器 的输入进行修正[5],大大提高了控制性能,可以得到比较满意的控制效果。因此,本文使用基于迭代学习控制的PID参数整定方法来控制电机的转速。
本文是采用PID型迭代学习控制算法来对直流电机转速进行研究的,称之为PID型开环迭代学习控制算法:
式中,T为学习周期。kp,ki,kd分别为PID控制系统的比例系数、积分系数、微分系数。通过对参数kp,ki,kd进行适当的调整,可以得到其他形式的开环控制模型,派生出其它形式的开环学习控制算法[6],如基于迭代学习的比例积分控制型、微分控制型、比例微分控制型等。
在控制器控制结束后,需要判断迭代的停止条件[7]。如果满足停止条件,则迭代学习过程停止。一般的停止条件为:
其中t∈[0,T]。
公式(2)中ε为给定的最大允许跟踪误差。在一般情况下,也可以对最大迭代次数进行限定来确定停止条件。
在电机控制系统系统中,被控对象描述为:
式中,q为角度;τ为控制力矩。
设系统所要跟踪的期望轨迹为qd(t),t∈[0,T],系统第i次输出为qi(t),令运动误差ei(t)=qd(t)-qi(t)。在最初的时候,控制系统的状态为x0(0)。迭代学习控制的任务是使第i+1次的运动误差ei+1(t)减小,这将通过迭代学习设计ui+1(t)来实现[8]。
采用三种基于迭代学习的PID迭代控制算法来设计多入多出非线性系统迭代学习控制系统,分别为闭环D型、闭环PD型和指数变增益D型。其中闭环D型如公式(4)所示,闭环PD型如公式(5)所示,指数变增益D型如公式(6)所示。
为了使被控对象的初始输出值和预设的初值一样,设定被控对像的初始状态[9]为x(0)=[0,1]T。使用变增益型迭代学习控制系统,即M=3,KP=30,Kd=50,使用SIMULINK模块设计出基于迭代学习PID型仿真控制系统如图1所示。
图1:基于迭代学习PID型仿真控制系统
为了验证的有效性,首先在MATLAB上进行仿真,本次实验的停止条件采用限定最大迭代次数,其中迭代次数设为20次,分别基于变指数增益D型,闭环PD型和闭环D型进行仿真,然后得出位置跟踪,速度跟踪和误差的变化情况。三种迭代学习控制系统仿真对比的结果较多,且闭环PD型的仿真结果性能处于中等,因此本文仅展示变指数增益D型和闭环D型的误差仿真结果,两种种迭代控制系统仿真结果中误差的变化如图2所示。
图2:误差仿真结果对比图
图2中上方的图表示比例误差,下方的图表示微分误差,由图我们可以看出两种迭代控制系统的比例误差变化情况基本相同,在第三次迭代时误差为0,而微分误差差异明显,其中闭环D型收敛最快,在第六次迭代时误差为0,而变指数增益D型收敛最慢,在第十三次迭代时误差为0。
在直流电机中,直流电流经过电刷,根据电磁力定律,载流导体受到电磁力的作用,使得转子运动,这就是直流电机的工作原理[10]。而影响直流电机转速的关键因素是加在负载两端的电压,桶盖改变电压来控制直流电机的转速。而PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,进而改变负载两端的电压,使负载两端的电压符合控制要求[11]。在基于脉冲宽度调制的控制系统中,设定一个固定的频率用来接通和断开电源,并且根据控制要求来改变一个周期内电源“接通”和“断开”时间,在一个脉冲循环的周期内电源“接通”的时间与循环周期的总时间之比称为“占空比”[12],在基于PWM的控制系统中,可以通过改变“占空比”来达到控制目的。在直流电机中,通过改变直流电机电枢上电压的“占空比”来改变直流电机负载两端的平均电压,进而达到控制电机转速的目的。PWM也可以应用在其他许多方面,例如温度控制、压力控制等等。
直流电机的转速控制系统是由驱动电路、STM32单片机、接口电路和直流电机、接口电路等部分组成。将霍尔开关传感器安装到直流电机中用来获取电机的转速信号,并将转速信号传送到STM32单片机中,STM32单片机接受到设定的输入信号和电机的转速信号,在控制算法的作用下生成对应的输出控制信号来控制电机的转速,直流电机的实时转速信息将被送到电机显示屏进行显示。直流电机转速控制系统实物如图3所示。
图3:直流电机转速控制系统实物
控制板成功启动后,在连接电机的情况下,我们可以通过“位置/速度控制按键”调节电机转速或位置。位置模式下:单击该键:电机顺时针旋转90度;双击该键:电机逆时针旋转90度;速度模式下:单击该键,电机速度增大;双击该键,电机速度减小。
我们所要用到的程序编写软件keil C51,Keil C51是51单片机系列C语言软件开发系统,简单易学,比较容易掌握,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面[13],提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起[14]。Keil主要应用于STM32单片机的模拟实验和编译功能。开发人员可以用Keil C51自带的集成开发环境(IDE)来编译源文件,然后由C51编译器编译生成目标文件,目标文件可以与库文件一起经L51连接定位生成绝对目标文件,绝对目标文件由OH51转换成标准的hex文件,以供调试器dScope51或tScope51进行源代码级调试。Keil C51生成的目标代码效率非常之高,并且容易理解,很受开发人员的青睐。
在实验过程中,首先安装相关串口驱动软件,用到的是CH340串口驱动,在自己电脑的硬件设置查找它,确保安装成功,然后,安装keil C51版本软件,需要把编译好的程序下载到单片机中,并且近一步用到mcuisp软件,这是一款STM32的串口下载器,可将程序下载到单片机中。最后在实验进行的时候便于我们观察其中的电压转速变化,我们应用到模拟示波器MiniBalance波形显示上位机来观察它的波形变化。
经典PID分为位置式和增量式,实验结果如表1所示,可以看到位置式PID在实验结果中稳定时间为15s,快速性较差,超调和稳态误差为0,稳定性较好,基本无超调;速度式PID在实验结果中超调为2,稳定时间为6s,稳态误差为1,增量式PID的快速性较好,但是超调比较大,稳态误差较小但相对比较密布,系统稳定性较差。
表1:经典PID的直流电机实验结果
基于迭代学习的位置式PID和增量式的实验结果如表2所示,可以看出基于迭代学习的位置式PID实验结果基本无超调,稳定时间为10s,稳态误差和超调为0,相对于经典位置式PID来说,快速性有所提高。基于迭代学习的增量式PID的实验结果中超调为1,稳态误差为1,快速时间为4s,与经典速度式PID直流电机控制系统相比,有超调但相对较小,稳定性和快速性都有所提高,控制效果较好。
表2:经典PID的直流电机实验结果
通过迭代学习PID的直流电机控制系统的仿真与实验,本文基于迭代学习算法获取学习数据并在此基础上对PID参数的整定是可行的。与传统的PID控制算法相比,用这种方法得到的PID参数在直流电机转速的控制中稳定性和快速性都有所提高。虽然基于迭代学习PID控制系统相比较传统PID控制算法更为复杂一些,代码编写也相对较难,但最终得到的控制效果更有优越性,对于其他控制系统,该方法有较好的借鉴意义。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!