发明内容
本发明的目的是为了解决现有数字式电液位置伺服驱动器在进行电液阀门控制过程中,对于系统中的非线性和不确定性环节,仅采用PID等线性调节器,无法满足系统对于位置伺服的高精度控制要求的问题,提供一种基于DSP的电液位置伺服驱动器及驱动方法。
本发明所述的基于DSP的电液位置伺服驱动器包括DSP电路、FPGA电路、位置传感器接口电路、功率放大电路、AD转换及DA转换电路和通讯电路;所述通讯电路用于实现DSP电路与上位机或控制总线之间的数据传输;位置传感器接口电路用于将差分传感器的位置信号发送给FPGA电路;FPGA电路对该位置信号处理后发送给DSP电路;功率放大电路用于将DSP电路发来的控制量进行放大后,对电液阀门进行驱动;AD转换及DA转换电路用于将外部发来的模拟信号转换为数字信号后,发送给DSP电路,或将DSP电路输出的数字控制信号转换为模拟信号。
所述的DSP电路嵌入有软件实现的自校正模块,该模块包括以下单元:
死区参数估计单元:每隔t时间,测量系统的死区宽度,并在该单元结束之后同时启动死区参数更新单元和控制系统建模单元;
死区参数指令更新单元:将测量得到的死区宽度作为新的死区参数指令发送给功率放大电路;
控制系统建模单元:建立比例阀位置控制系统的开环传递函数,并在该单元结束之后启动控制参数计算单元;
控制参数计算单元:根据开环传递函数计算系统控制参数,并在该单元结束之后启动控制信号发送单元;
控制信号发送单元:将控制参数发送给电液阀,并在该单元结束之后启动控制误差监测单元;
控制误差监测单元:监测控制误差,并判断控制误差是否超过5%,在判断结果为是时启动参数辨识单元;在判断结果为否时返回启动控制误差监测单元;
参数辨识单元:计算辨识参数,根据所述辨识参数计算参数误差,并判断参数误差是否小于30%,在判断结果为是时启动报警单元;在判断结果为否时启动控制系统建模单元;
报警单元:发出报警信号。
本发明所述的基于DSP的电液位置伺服驱动方法通过以下步骤实现:
死区参数估计步骤:每隔t时间,测量系统的死区宽度,并在该步骤结束之后同时执行死区参数更新步骤和控制系统建模步骤;
死区参数指令更新步骤:将测量得到的死区宽度作为新的死区参数指令发送给功率放大电路;
控制系统建模步骤:建立比例阀位置控制系统的开环传递函数,并在该步骤结束之后执行控制参数计算步骤;
控制参数计算步骤:根据开环传递函数计算系统控制参数,并在该步骤结束之后执行控制信号发送步骤;
控制信号发送步骤:将控制参数发送给电液阀,并在该步骤结束之后执行控制误差监测步骤;
控制误差监测步骤:监测控制误差,并判断控制误差是否超过5%,在判断结果为是时执行参数辨识步骤;在判断结果为否时返回执行控制误差监测步骤;
参数辨识步骤:计算辨识参数,根据所述辨识参数计算参数误差,并判断参数误差是否小于30%,在判断结果为是时执行报警步骤;在判断结果为否时执行控制系统建模步骤;
报警步骤:发出报警信号。
本发明所述的基于DSP的电液位置伺服驱动器,通过改进传统电液位置伺服驱动器的硬件,采用浮点型DSP+FPGA的控制架构,浮点型DSP作为主控制芯片,FPGA作为协控制芯片,主控制芯片的高速浮点型运算能力,可以保证系统在线辨识和极点配置等自校正算法以及通讯协议算法的高效执行。在控制过程中,根据实际使用的电液阀门选择合适的控制模型,建立比例阀位置控制系统的开环传递函数,在系统运行过程中通过电流、压力等信息,采用基于递推最小二乘法进行系统参数的在线辨识,最大限度的对系统中非线性环节以及参数漂移进行补偿,同时使用极点配置的方法进行调节器开环传递函数的改进和控制参数计算,FPGA电路能够对多种位置传感器协议和滤波等信号处理算法,减少了主控制芯片的负担,极大地提高了系统的控制效率,同时拓展了驱动器的应用范围,实现了对于多种电液阀门的高精度位置伺服控制,比例阀控位置系统控制精度可以达到0.5mm。
本发明所述的基于DSP的电液位置伺服驱动方法,在驱动器初始运行时,进行控制器参数设计,并按照该参数作为初始控制参数;然后,不断监测控制误差,如果控制误差无法达到5%以内,开始进行基于递推最小二乘算法的系统参数辨识,比较辨识参数和系统初始参数,如果参数误差达到30%以上,使用辨识参数按照系统控制器预设计的方法进行重新设计,实现系统的自校正算法,如果参数误差小于30%,驱动器发出报警信号。参数误差小于30%而控制误差无法达到5%以内,则可能是由于驱动器故障导致的,需要人为调试;最后,在系统运行过程中,还需要每隔500s进行一次系统死区参数估计算法,将得到的死区参数叠加到控制指令上,实现系统的非线性补偿。采用上述方法,能够对多种电液阀门进行高精度位置伺服控制,比例阀控位置系统控制精度可以达到0.5mm。
具体实施方式
具体实施方式一:结合图1说明本实施方式,本实施方式所述的基于DSP的电液位置伺服驱动器包括DSP电路1、FPGA电路2、位置传感器接口电路3、功率放大电路4、AD转换及DA转换电路5和通讯电路6;所述通讯电路6用于实现DSP电路1与上位机或控制总线之间的数据传输;位置传感器接口电路3用于将差分传感器的位置信号发送给FPGA电路2;FPGA电路2对该位置信号处理后发送给DSP电路1;功率放大电路4用于将DSP电路1发来的控制量进行放大后,对电液阀门进行驱动;AD转换及DA转换电路5用于将外部发来的模拟信号转换为数字信号后,发送给DSP电路1,或将DSP电路1输出的数字控制信号转换为模拟信号。
本实施方式中,DSP与FPGA均采用浮点型。功率放大电路4主要由伺服阀驱动接口、比例阀驱动接口以及开关阀驱动接口组成,与DSP电路1相连接,系统正常运行时,功率放大电路4接收通过运算得到的控制量,完成功率放大,能够同时进行伺服阀、比例阀和开关阀中的一种或多种驱动。AD转换及DA转换电路5与DSP电路1相连接,系统正常运行时,接收外部0~10V的标准模拟指令信息输入,通过模拟电路将信号调理至0~3V范围,输送至DSP电路1中的AD接口,另外可以同时可以将DSP电路1输出的数字控制量转化为标准的0~10V模拟电压信号。FPGA电路2进行位置传感器信息的预处理,具有实时更新传感器接口协议的能力,同时保证处理速度,不占用DSP电路1的处理时间。通讯电路6与PC上位机或控制总线进行控制指令和系统状态的数据通讯,模拟指令信号通过AD转换及DA转换电路5进行数据处理,然后通过并行总线接口将位置信息直接输送给DSP电路1,进行数模转换,FPGA电路2将转换后的位置传感器信息输送给DSP电路1。通过与给定位置信号进行比较,利用位置误差信号进行控制,另外系统实时通过系统在线辨识方法进行系统参数的实时估计,然后通过自校正模块进行调节器结构和参数的重构与修正,克服系统非线性死区以及参数变化的影响,将最终的控制量输送至功率放大电路4进行放大,驱动电液阀门,达到位置高精度伺服控制目标。
本实施方式通过改进传统电液位置伺服驱动器的硬件,采用浮点型DSP+FPGA的控制架构,浮点型DSP作为主控制芯片,FPGA作为协控制芯片,主控制芯片的高速浮点型运算能力,可以保证系统在线辨识和极点配置等自校正算法以及通讯协议算法的高效执行。在控制过程中,根据实际使用的电液阀门选择合适的控制模型,建立比例阀位置控制系统的开环传递函数,在系统运行过程中通过电流、压力等信息,采用基于递推最小二乘法进行系统参数的在线辨识,最大限度的对系统中非线性环节以及参数漂移进行补偿,同时使用极点配置的方法进行调节器开环传递函数的改进和控制参数计算,FPGA电路2能够对多种位置传感器协议和滤波等信号处理算法,减少了主控制芯片的负担,极大地提高了系统的控制效率,同时拓展了驱动器的应用范围,实现了对多种电液阀门的高精度位置伺服控制,比例阀控位置系统控制精度可以达到0.5mm。
本实施方虽为电液位置伺服驱动器,但也可以作为一种通用的伺服控制装置,适用于直流电机或步进电机电机等控制,应用者可以根据其特殊的应用领域通过修改软件更改系统硬件参数来灵活方便地实现其功能。
具体实施方式二:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的DSP电路1嵌入有软件实现的自校正模块,该模块包括以下单元:
死区参数估计单元:每隔t时间,测量系统的死区宽度,并在该单元结束之后同时启动死区参数更新单元和控制系统建模单元;
死区参数指令更新单元:将测量得到的死区宽度作为新的死区参数指令发送给功率放大电路4;
控制系统建模单元:建立比例阀位置控制系统的开环传递函数,并在该单元结束之后启动控制参数计算单元;
控制参数计算单元:根据开环传递函数计算系统控制参数,并在该单元结束之后启动控制信号发送单元;
控制信号发送单元:将控制参数发送给电液阀,并在该单元结束之后启动控制误差监测单元;
控制误差监测单元:监测控制误差,并判断控制误差是否超过5%,在判断结果为是时启动参数辨识单元;在判断结果为否时返回启动控制误差监测单元;
参数辨识单元:计算辨识参数,根据所述辨识参数计算参数误差,并判断参数误差是否小于30%,在判断结果为是时启动报警单元;在判断结果为否时启动控制系统建模单元;
报警单元:发出报警信号。
驱动器初始运行时,进行控制器参数的与设计,并按照该参数作为初始控制参数;然后不断监测控制误差,如果控制误差无法达到5%以内,开始进行基于递推最小二乘算法的系统参数辨识,比较辨识参数和系统初始参数,如果参数误差达到30%以上,使用辨识参数按照系统控制器预设计的方法进行重新设计,如果参数误差小于30%,驱动器发出报警信号。参数误差小于30%而控制误差无法达到5%以内,则可能是由于驱动器故障导致的,需要人为调试。最后,在系统运行过程中,还需要每隔一段时间(本实施方式选用500s)进行一次系统死区参数估计算法,将得到的死区参数叠加到控制指令上,实现系统的非线性补偿。
具体实施方式三:本实施方式是对实施方式二所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的控制系统建模单元建立比例阀位置控制系统的开环传递函数时,初始开环传递函数通过预先设定的系统参数计算获得,循环过程中的开环传递函数通过辨识参数计算获得。
具体实施方式四:本实施方式是对实施方式二所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的参数辨识单元通过最小二乘法递推获得辨识参数。
具体实施方式五:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的通讯电路6包括CAN接口电路和RS485接口电路。
本实施方式中,所述的通讯电路6主要由CAN接口电路以及RS485接口电路组成,通讯电路6与DSP电路1相连接。系统正常运行时,首先通过配置,使用一种或多种接口与PC上位机以及控制总线相连接,然后将上位机及总线的指令传送至DSP电路1,并将系统的状态信息进行上传。
具体实施方式六:本实施方式是对实施方式五所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的通讯电路6还包括磁耦合芯片,RS485接口电路通过所述的磁耦合芯片与DSP电路1连接。
本实施方式中,所述的磁耦合芯片采用ISO7631C型芯片,该芯片对控制信号和数据信号进行隔离,实现RS485接口电路的可靠通讯。
具体实施方式七:本实施方式是对实施方式五所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的RS485接口电路的通讯电平转换芯片采用SN65LBC184芯片。SN65LBC184芯片具有15KV的ESD防护能力,拥有防雷性能,适用于长线传输。
具体实施方式八:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的DSP电路1采用TMS320F28335芯片实现。
具体实施方式九:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的FPGA电路2采用EP3C10E144芯片实现。
具体实施方式十:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的位置传感器接口电路3包括SSI接口电路和QEP接口电路,采用满足EIA-422标准的差分电平进行信号的驱动与接收,将差分传感器位置信号转换为3.3V CMOS电平输送至FPGA电路2。SSI接口电路采用TI的AM26L31E芯片实现,QEP接口电路采用AM26L32E芯片实现,
具体实施方式十一:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,所述的AD转换及DA转换电路5中的AD转换电路采用AD7606芯片实现,该芯片具有16位精度,8路单端输入通过8个采样保持器可以保证同时采样,该芯片还包括1个200KHz的转换器,接口则可以灵活使用SPI或者并行接口,该芯片的输入接口内建有限幅电路,以及高达7kV的ESD能力。另外,独立的采样保持器保证了信号的相位关系,200KHz的转换器完全可以满足系统的实时性要求,高速并行接口保证了转换结果高速的输出以减小系统的延时,完善的限幅保护和防静电接口电路则使得该芯片具有较高的可靠性,非常适合工业场合。DA转换电路采用了AD421芯片,该芯片具有16位精度,能够可靠输出4~20mA的工业标准电流信号。
具体实施方式十二:本实施方式是对实施方式一所述的基于DSP的电液位置伺服驱动器的进一步限定,本实施方式中,对于伺服阀和比例阀的驱动主要采用L298驱动芯片,该芯片能够对伺服阀的步进电机和直流电机进行驱动,同时也能够对比例阀的比例电磁铁进行电流控制,驱动电路采用外部输入24V,最大驱动电流可以达到3A,另外采用6路隔离PWM输出驱动开关伺服阀,PWM频率达到10KHz,采用K1010光耦进行隔离。
具体实施方式十三:本实施方式所述的基于DSP的电液位置伺服驱动方法,通过以下步骤实现:
死区参数估计步骤:每隔t时间,测量系统的死区宽度,并在该步骤结束之后同时执行死区参数更新步骤和控制系统建模步骤;
死区参数指令更新步骤:将测量得到的死区宽度作为新的死区参数指令发送给功率放大电路4;
控制系统建模步骤:建立比例阀位置控制系统的开环传递函数,并在该步骤结束之后执行控制参数计算步骤;
控制参数计算步骤:根据开环传递函数计算系统控制参数,并在该步骤结束之后执行控制信号发送步骤;
控制信号发送步骤:将控制参数发送给电液阀,并在该步骤结束之后执行控制误差监测步骤;
控制误差监测步骤:监测控制误差,并判断控制误差是否超过5%,在判断结果为是时执行参数辨识步骤;在判断结果为否时返回执行控制误差监测步骤;
参数辨识步骤:计算辨识参数,根据所述辨识参数计算参数误差,并判断参数误差是否小于30%,在判断结果为是时执行报警步骤;在判断结果为否时执行控制系统建模步骤;
报警步骤:发出报警信号。
本实施方式中,以比例阀控缸位置控制系统为例进行说明。DSP电路1首先根据预先输入的阀门参数和控制要求进行调节器设计,即控制系统建模。具体步骤如下:
根据已经输入的参数进行理想状态下控制系统建模。比例阀位置控制系统的开环传递函数为:
其中 K0功率放大器增益,Kq为比例阀的流量系数,Kf位移传感器的反馈系数,A1为比例阀无杆腔的活塞面积,Vt为等效容积,Mt为活塞及杆的总质量,Kce为系统总的压力-流量系数,均可以通过根据器件手册等进行方便的计算出,系统有效弹性模量初始取值为βe=1×109,活塞及负载的粘性阻尼系数取值为Bp=5000,T为系统采样时间。因为1/ωh 2<<1,经过合理近似,系统的开环传递函数可进一步简化为:其中K=K0KqKf/A1为系统开环增益,系统为典型的I型系统。
根据推导出的简化I型系统,设计调节器其中τ1和τ2分为超前和滞后时间常数,Kc为比例常数。令因此可以将原系统较大的惯性环节通过微分环节进行补偿,经过补偿后的系统开环传递函数为:系统的控制性能可以通过设计Kc和τ2实现,按照工程设计方法,系统的闭环传递函数为 选择系统的阻尼比为 K·Kc=0.5/T,能够求出调节器的系统初始控制参数Kc、τ1及τ2,在系统启动时进行控制。
系统在运行过程中,实时采集电流和位置信息,进行系统被控对象和传感器反馈环节进行参数在线辨识,重点刻画出被控对象的非线性环节。
控制器在启动运行时,控制输出电流较小,比例阀存在控制死区,系统不响应,必须进行估计该死区大小,在线性控制环节上进行补偿,具体步骤如下:
首先,启动运行时,系统控制电流按照0.05A逐级增加,每级电流值维持1s,同时监测系统的位置传感器输出,当比例阀出现动作时,记录下当前的电流值Imax,作为比例阀在该方向的死区宽度,同时将-Imax作为比例阀在反方向的死区宽度,系统在运行时可以根据该死去特点进行补偿。
然后,当系统运行一段时间,由于温度压力等因素影响,可能导致比例阀的死区发生变化。因此系统每隔500s,按照上述方法重新进行一次死区的估计,记录下相应的电流值I’max,作为新的比例阀死区宽度,同时立刻将死区检测更改为正常的电流控制。
DSP电路1根据参数在线辨识的结果,结合控制要求,进行调节器结构与参数的设计,不断的对被控对象进行调节与补偿,实现系统的自校正控制算法,提高系统的控制精度,具体步骤如图2所示:
首先,在驱动器初始运行时,进行控制器参数的与设计,并按照该参数作为初始控制参数;然后,不断监测控制误差,如果控制误差无法达到5%以内,开始进行基于递推最小二乘算法的系统参数辨识,比较辨识参数和系统初始参数,如果参数误差达到30%以上,使用辨识参数按照系统控制器预设计的方法进行重新设计,实现系统的自校正算法,如果参数误差小于30%,驱动器发出报警信号。参数误差小于30%而控制误差无法达到5%以内,则可能是由于驱动器故障导致的,需要人为调试;最后,在系统运行过程中,还需要每隔500s进行一次系统死区参数估计算法,将得到的死区参数叠加到控制指令上,实现系统的非线性补偿。
采用上述方法的电液位置伺服驱动器,其工作过程如下:驱动器上电后DSP电路1加载相关程序信息,进入工作模式,然后开始系统自检,若自检不成功,则进入故障诊断模式,同时停机并发出故障信号。当自检正常时,开始并行执行3部分的工作:(1)独立的系统状态监控和通讯算法,通过检测伺服系统的电流和温度等信息,估计系统状态,当出现过流、过流和过热时,系统进入相关异常处理,保护硬件部分。同时负责进行外部通讯功能,将当前系统状态反馈回上位机。(2)主程序从上位机获得控制参数。当系统起动时,使用默认的控制参数进行控制器设计,首先根据与设计的控制器进行初步调试,系统根据反馈的电流信息进行自适应控制参数调整,重复进行设计。控制器进行电液控制同时进行基于递推最小二乘算法的系统参数估计,当估计参数每次变化达到30%时,重新进行控制器设计,进行控制器结构和参数的更新,从而实现电液位置伺服的高精度控制。(3)系统供电装置时刻对主电源进行监测,当发生系统掉电时,将故障信号传送给DSP主控芯片,系统执行异常掉电处理,存储当前设定参数并保存现场数据。采用本实施方式所述的方法,能够对多种电液阀门进行高精度位置伺服控制,比例阀控位置系统控制精度可以达到0.5mm。
具体实施方式十四:本实施方式是对实施方式十三所述的基于DSP的电液位置伺服驱动方法的进一步限定:所述的控制系统建模步骤中,初始开环传递函数通过预先设定的系统参数计算获得,循环过程中的开环传递函数通过辨识参数计算获得。
具体实施方式十五:本实施方式是对实施方式十三所述的基于DSP的电液位置伺服驱动方法的进一步限定:所述的参数辨识步骤中,辨识参数通过最小二乘法递推获得。具体方法为:
首先,采用反向差分法将系统开环传递函数进行离散化。将其中T为系统采样时间,本控制系统为100us,可以得到离散后的开环传递函数:即y(k)=-a1×y(k-2)-a2×y(k-2)+b×u(k)。b,a1,a2为离散后的控制参数,对应于Kc、τ1及τ2。根据Kc、τ1及τ2的初始值求出b,a1,a2的初始值b(0),a1(0),a2(0)。
然后,计算递推最小二乘算法的主要参数P(k),θ(k)和K(k),根据以下公式求得:
其中,h(m)=[-y(m-1) u(m-1) u(m-2)], 为前一时刻的参数估计值,即为辨识参数,z(m)为当前时刻的控制器检测到的位置传感器信号,w(m)为加权矩阵,选为单位阵I,Km+1为修正的增益矩阵。Pm+1为中间矩阵变量。