YK7232A磨床液压伺服控制片上系统的研究与设计

2020-09-10 07:22张修龙杨光永陈跃斌
关键词:计数器稳态脉冲

张修龙,杨光永,陈跃斌

(云南民族大学 电气信息工程学院,云南 昆明 650500)

YK7232A磨床液压伺服控制系统存在较多的分立元件,大大增加了系统发生故障的概率.液压伺服控制系统分为2部分,包括电气控制部分以及液压执行部分.其中电气控制部分包括了电路板的设计以及控制算法的设计.国内外对于液压伺服系统的改进,主要是针对这两个方面进行改进.Samakwong[1]研究了遗传算法在电液伺服系统PID控制器参数整定中的优化技术.LI[2]综合了自适应鲁棒控制器的自适应部分和鲁棒部分,提出了一种同时考虑参数不确定性和未建模动态的观测器控制器方案.Baghestan[3]为了提高电液伺服系统的性能,提出了1种新型的液压伺服回路结构.但这种新的液压伺服结构存在一些不确定性的挑战.为了解决这些不确定问题的出现,设计了1种鲁棒性线性控制算法,使得闭环系统在多面体内保持稳定.由于YK7232A磨床为工程实际,对其液压执行部分改造较为困难.因此采用EDA设计技术对电气控制部分进行重新设计.采用Verilog HDL硬件描述语言,将电路板中大部分的模块以及PID控制器进行设计,重新整合为片上系统.

1 YK7232A磨床液压伺服控制系统

液压伺服系统由电气控制和液压伺服2部分组成,其中电气控制部分由片上系统以及外围电路组成.液压伺服部分由三位四通电液阀,对称液压缸,光栅位置传感器以及工件架组成[5-6](见图1).

滤波整形模块是由SN74LS123单稳态电路外接RC构成的,在QuartusⅡ集成开发环境中,没有SN74LS123的固件库或IP核,故采用硬件描述语言自行设计该集成电路.电路中其他的模块在Quartus Ⅱ固件库中存在的,则选择调用固件库.采用Verilog HDL语言对增量式浮点数PID控制器进行设计,与逻辑重构的模块整合为片上系统.不仅减小了整个液压伺服系统的体积,而且增强了控制器的可靠性.

2 滤波整形模块与PID控制器的程序设计

2.1 滤波整形模块的设计

根据SN74LS123的工作特点,设计了三输入控制的可重单稳态触发电路(见图2).通过时钟计数的方式,确定暂稳态过程持续的时间.因此只需要控制计数器Count计数的阈值,便可控制暂稳态的持续时间.设置1个16位的寄存器RC作为计数器的阈值.假设需要输出的脉冲宽度为Wd,单位时钟CLK的周期为T,那么RC的值即为RC=Wd/T.SN74LS123输入信号为A,B,CLRn,CLK,RC,输出为Q,Qn.其中A,B,CLRn为输入信号,CLK为时钟脉冲信号,RC为16位的寄存器.Count为16位的二进制时钟脉冲计数器,Flag为计数器的使能标志(见图3).

由于FPGA并行机制的运行方式,将触发分为3种情况:一是触发脉冲信号B的上升沿触发;二是触发脉冲信号A的下降沿触发;三是CLRn触发脉冲的上升沿触发.每一种触发情况分配1个独立的输出Q以及独立的16位二进制时钟脉冲计数器Count,并为计数器分配2个使能标志Flag.这样每次触发脉冲到来时,都能触发不同的使能标志.每当使能标志改变时计数器清零,并重新计数直至达到设定的阈值.这样就达到了可重触发的目的.定义3种触发的输出分别为Q1、Q2、Q3,则SN74LS123的输出Q为Q=Q1|Q2|Q3.

2.2 增量式浮点数PID控制器的设计

为了实现增量式PID与各个模块整合为片上系统,依据增量式PID表达式,采用IEEE 754标准的32位单精度浮点数,作为设计PID运算的标准格式.浮点PID具有较高精度, 负数范围从-3.402 823×1038到-1.401 298×10-43,正数范围从1.401 298×10-45到3.402 823×1038.

2.2.1 增量式PID表达式

当PID的周期T的取值小到一定程度时,就可将PID 算法离散化处理.对所有历史数据进行采样,得到历史数据偏差值.其积分近似等于历史偏差之和,微分近似等于最近2次偏差的变化率.增量式PID表达式[4]:

ΔU(k)=U(k)-u(k-1)=α0e(k)-α1e(k-1)+α2e(k-2).

(1)

其中α0=Kp+Ki+Kd,α1=Kp+2Kd,α2=Kd.Kp为比例系数,Ki为积分系数,Kd为微分系数.

根据增量式PID的表达式,设计了图4所示的处理方案.设计了1个误差生成器,用来生成e(k),e(k-1),e(k-2)这3个相邻的偏差值;1个三位加数相加的加法器,用来计算系数α0=Kp+Ki+Kd.3个两位乘数相乘的乘法器,分别用来计算α0×e(k)、α1×e(k-1)、α2×e(k-2);1个减法器(Error2),用来计算α0e(k)-α1e(k-1);2个两位加数相加的加法器,用来计算Error2+α2e(k-1)以及α1=Kp+2Kd.ΔUout即为PID控制器的输出值.对加法器、减法器、乘法器、误差生成器模块进行功能仿真验证之后,编写顶层模块将所有模块例化,在QuartusⅡ中调试编译通过后生成浮点数PID控制器的模块结构如图5所示.

3 功能仿真及验证

仿真测试在仿真软件Modelsim SE-64 10.4中进行,分别编写滤波整形模块以及PID控制模块的test_bench.v文件,编译通过后在Modelsim中进行功能仿真.

3.1 滤波整形模块的仿真结果及分析

以图6脉冲信号B为触发脉冲时的仿真结果为例,分析整个程序运行过程的稳态以及暂稳态.定义单位时钟周期T=10 ns,RC=5;则展宽的脉冲宽度为50 ns.当CLRn为高电平,A为低电平时,触发脉冲B的上升沿到来时,输出由稳态变为暂稳态.

3.1.1 触发

第1个触发脉冲到来时,第1个使能标志有效({Flag1,Flag2}=2’b10),置位输出,计数器开始计数; 当计数器的值到达阈值时,复位输出.使能标志为零({Flag1,Flag2}=2’b00),等待下一个触发脉冲的到来.

3.1.2 重触发

第3个触发脉冲到来时,第1个使能标志有效({Flag1,Flag2}=2’b10),置位输出.当电路还处于暂稳态时,第4个触发脉冲到来.此时第2个使能标志有效({Flag1,Flag2}=2’b01),计数器清零并重新开始计数,输出继续保持高电平(Q1=1), 当计数器的值到达阈值时(Count1=RC),复位输出.使能标志为零({Flag1,Flag2}=2’b00),等待下一个触发脉冲的到来.

3.1.3 稳态

由仿真图可知,当输出处于暂稳态时,若清零信号为低电平或者输入信号A为高电平,输出立刻回到稳态.

图6中第2个脉冲表明,从稳态到暂态的跳变只与触发信号的上升沿有关.输出脉冲宽度与计数器的阈值RC有关,与触发脉冲跳变后持续的时间无关.综上所述,验证了单稳态可重触发电路的功能.

3.2 PID控制器的仿真及验证

为了验证PID控制器的功能,在Modelsim中进行功能仿真.根据图7可以发现,输出值与实际值之间存在误差.2组仿真结果分别为:32’h3f900002,32’h4f40840000,而实际值分别为32’h3f900000,32’h4f40840000.第1组结果数存在误差,但是这个误差值极小可以忽略.所以为了提高运算精度,还可以对PID控制器进行进一步的调整.

整个系统采用自顶向下的设计方法和模块化的设计思想,对整个系统进行模块划分.采用Verilog HDL硬件描述语言对系统进行设计.在设计PID控制器时, 为了能有更好的控制效果,采用32位单精度浮点数运算格式,提高了运算的精确度.在所有的模块设计完成之后,把各个模块综合起来,采用原理图的编写方式编写顶层文件.系统的顶层原理图如图 8所示.增量式浮点数PID结合系统逻辑重构模块,最终完成了整个片上系统的设计.

4 结语

采用EDA设计技术对YK7232A磨床液压伺服系统进行设计,具有较高的集成度,不仅减小了控制器的体积,而且减小了系统发生故障的概率.电路中其他模块的设计大量的调用了QuartusⅡ固件库,极大的减小了设计的周期,体现了EDA设计技术的优势.液压伺服控制片上系统只是在Modelsim仿真软件中验证了控制系统的基本功能,若要真正的应用在机床上需要进行大量的实验.

猜你喜欢
计数器稳态脉冲
衰老相关的蛋白稳态失衡
可变速抽水蓄能机组稳态运行特性研究
采用虚拟计数器的电子式膜式燃气表
电厂热力系统稳态仿真软件开发
脉冲工况氧气缓冲罐裂纹修复实践
元中期历史剧对社会稳态的皈依与维护
基于Multisim10.1的任意进制计数器的设计与实现
超音频复合脉冲GMAW电源设计
SR620型与53230A型计数器的性能测试
算盘是个“小气鬼”