专利名称:一种闸门开度与角编码值曲线拟合方法
技术领域:
本发明涉及一种闸门开度与角编码值曲线拟合方法,尤其是用于卷扬式闸门启闭机的开度与角编码值对应的曲线拟合。
背景技术:
目前,公知的闸门开度与角编码值曲线拟合的方法是技术人员通过现场测量并记录多组一一对应的开度和角编码值,然后拟合出其对应的函数关系,并将拟合出的曲线方程的系数固化到PLC程序中。但是系统经过较长时间运行之后由于多种因素的影响,之前的曲线方程不能正确的反应开度与角编码值的对应关系,系统开度的测量就会出现较大的误差。而使用人员无法修改固化到PLC程序中的曲线方程的系数,此时必须技术人员去现场重新进行曲线拟合并修改固化到PLC中曲线方程的系数,这样消耗大量的人力成本而且系统将在开度测量误差较大的情况下运行不定长的时间。因而对闸门启闭机开度与角编码值对应关系的函数曲线拟合自动更新是实际工程的迫切需求。
发明内容
为了克服现有的闸门开度与角编码值曲线拟合的方法的不足,本发明提供一种闸门开度与角编码值曲线拟合方法,该闸门开度与角编码值自动曲线拟合仪器不仅能自动拟合闸门开度与角编码值的曲线方程,而且能根据使用者的需求所设定的值更新曲线方程。本发明解决其技术问题所采用的技术方案是首先将闸门开度与角编码值曲线自动拟合仪和PLC连接,接收PLC发送的开度与角编码值数据,通过内部算法分析和拟合曲线方程,并将拟合出来的曲线方程的系数存储,同时,将此数据发送给PLC,实现对闸门开度与角编码值的曲线拟合与数据更新,具体工作可以按照下面步骤进行;
第一步、建立通讯
在系统开始工作后,PLC通过MODBUS协议的0x10号命令发送33个字节的数据给闸门开度与角编码值自动曲线拟合仪,自动曲线拟合仪将接收到的数据前39个字节进行CRC校验运算,运算的结果与接收到的第40和41个字节的CRC校验码进行比较,
(1)两个CRC校验码相等时,将返回一串正确的代码,PLC接收到正确代码将停止发送数据;
(2)两个CRC校验码不相等时,将返回一串错误的代码,PLC接收到错误的代码将再次发送数据直到接收到正确代码;
第二步、判断
自动曲线拟合仪将对N (需拟合的曲线的阶数)进行一次判断,N=I代表普通闸门,N=2代表弧形闸门,此处的N由用户输入是41个字节数据里的第39个字节,N默认是I ;第三步、数据处理
单片机单元电路将接收到的41个字节的数据进行提取有效数据处理,提取出闸门的开度和角编码值的数据共32个字节,这32个字节是从第7个字节到第38个字节,然后将、提取出的32个字节前16个字节数据换算成8个实数,依次比较这8个数的大小,来判断M等于I或2,M=I代表上升,M=2代表下降;得出N和M的值后,自动曲线拟合仪将调用相应的曲线拟合方法进行曲线拟合,其中曲线拟合使用的数学方法是最小二乘法;
第四步、存储、反馈
当得到拟合的曲线方程的系数后,将曲线方程的系数放到EEPROM里,然后等待PLC发送读取命令,当闸门开度与角编码值自动曲线拟合仪器接收到PLC的读取命令时,自动曲线拟合仪将把曲线方程的系数按照标准发送给PLC。闸门开度与角编码值曲线拟合仪和PLC进行通讯所采用的通讯协议是MODBUS通讯协议;PLC发送41个字节的数据,其中32个字节是开度与角编码值的数据,第39个字节是用来判断闸门型号的数据,用于确认N的值,然后将提取出的32个字节前16个字节数据换算成8个实数,依次比较这8个数的大小,来判断M等于I或2,M=I代表上升,M=2代表下降,使用的数学方法是最小二乘法,在曲线拟合时能根据N和M的值自动调出相应的曲线拟合计算方法。本发明的有益效果是本方法通过与PLC通讯读取闸门开度和角编码值,并自动拟合出曲线方程且将拟合的曲线方程系数反馈给PLC,从而达到对曲线方程的自动曲线拟合和自动更新曲线方程的目的,同时也适合其它场合的自动曲线拟合与自动更新;本方法适应性强、简单可靠、使用方便、移植性强的特点。
图I为本方法的原理框图。
具体实施例方式下面结合附图和实施例对本方法做进一步说明。首先将闸门开度与角编码值曲线自动拟合仪和PLC连接,接收PLC发送的开度与角编码值数据,通过内部算法分析和拟合曲线方程,并将拟合出来的曲线方程的系数存储,同时,将此数据发送给PLC,实现对闸门开度与角编码值的曲线拟合与数据更新,具体工作可以按照下面步骤进行;
第一步、建立通讯
在系统开始工作后,PLC通过MODBUS协议的0x10号命令发送33个字节的数据给闸门开度与角编码值自动曲线拟合仪,自动曲线拟合仪将接收到的数据前39个字节进行CRC校验运算,运算的结果与接收到的第40和41个字节的CRC校验码进行比较,
(1)两个CRC校验码相等时,将返回一串正确的代码,PLC接收到正确代码将停止发送数据;
(2)两个CRC校验码不相等时,将返回一串错误的代码,PLC接收到错误的代码将再次发送数据直到接收到正确代码;
第二步、判断 自动曲线拟合仪将对N (需拟合的曲线的阶数)进行一次判断,N=I代表普通闸门,N=2代表弧形闸门,此处的N由用户输入是41个字节数据里的第39个字节,N默认是I ;第三步、数据处理单片机单元电路将接收到的41个字节的数据进行提取有效数据处理,提取出闸门的开度和角编码值的数据共32个字节,这32个字节是从第7个字节到第38个字节,然后将提取出的32个字节前16个字节数据换算成8个实数,依次比较这8个数的大小,来判断M等于I或2,M=1代表上升,M=2代表下降。得出N和M的值后,自动曲线拟合仪将调用相应的曲线拟合方法进行曲线拟合,其中曲线拟合使用的数学方法是最小二乘法;
第四步、存储、反馈 当得到拟合的曲线方程的系数后,将曲线方程的系数放到EEPROM里,然后等待PLC发送读取命令,当闸门开度与角编码值自动曲线拟合仪器接收到PLC的读取命令时,自动曲线拟合仪将把曲线方程的系数按照标准发送给PLC。闸门开度与角编码值曲线拟合仪和PLC进行通讯所采用的通讯协议是MODBUS通讯协议;PLC发送41个字节的数据,其中32个字节是开度与角编码值的数据,第39个字节是用来判断闸门型号的数据,用于确认N的值,然后将提取出的32个字节前16个字节数据换算成8个实数,依次比较这8个数的大小,来判断M等于I或2,M=I代表上升,M=2代表下降,使用的数学方法是最小二乘法,在曲线拟合时能根据N和M的值自动调出相应的曲线拟合计算方法。
实施例I
例如弧形闸门近似于二次曲线,
第一步、建立通讯
PLC通过MODBUS协议的0x10号命令发送数据,命令如下03 10 00 00 00 21 00 0100 03 00 08 00 10 00 IA 00 26 00 32 00 42 00 01 00 02 00 03 00 04 00 05 00 0600 07 00 08 02 84 67自动曲线拟合仪将接收到的数据前39个字节进行CRC校验运算,
(1)如果计算出的CRC校验码也是8467,将放回一串正确的代码,返回命令03 10 0000 00 21 01 F3,PLC接收到正确代码将停止发送数据;
(2)如果计算出的CRC校验码不是8467,将放回一串错误的代码,返回命令03 90 0000 00 21 00 2D,PLC接收到错误的代码将再次发送数据直到接收到正确代码;
第二步、判断
自动曲线拟合仪将对N (需拟合的曲线的阶数)进行一次判断,N=I代表普通闸门,N=2代表弧形闸门,此处的N由用户输入是41个字节数据里的第39个字节,N=2 ;
第三步、数据处理
单片机单元电路将接收到的41个字节的数据进行提取有效数据处理,提取出闸门的开度和角编码值的数据共32个字节,这32个字节是从第7个字节到第38个字节,(00 0100 03 00 08 00 10 00 IA 00 26 00 32 00 42 00 01 00 02 00 03 00 04 00 05 00 0600 07 00 08)然后将提取出的32个字节前16个字节数据换算成高度是1、3、8、16、26、38、50、66,依次比较这8个数,可以确认该数据依次增大,所以是上升,判断出M=l,M=I代表上升,M=2代表下降。得出N和M的值后,自动曲线拟合仪将调用相应的曲线拟合方法进行曲线拟合,其中曲线拟合使用的数学方法是最小二乘法,拟合出的曲线方程是y = I. 0357x2+ 0.0833x - 0.7857 ;
第四步、存储、反馈
当得到拟合的曲线方程的系数后,将曲线方程的系数经过整型,转换为整数10357、833、7857、I、1、0(0代表-I是7857的系数I代表+1是10357和833的系数)存放到EEPROM里,然后等待PLC发送读取命令,当闸门开度与角编码值自动曲线拟合仪器接收到PLC的读取命令时,读取命令如下03 03 00 00 00 06 C4 2A
闸门开度与角编码值自动曲线拟合仪器将把存放在EEPROM里的数据发送给PLC发送命令如下03 03 00 00 00 06 28 75 03 41 IE BI 00 01 00 01 00 00 22 2C(03代表地址,03代表MODBUS读取指令,00 00代表起始地址00 06代表读取的字节数,2875是十进制的10357,0341是十进制的833,IEBl是十进制的7857,0001是十进制的I代表+1是10357的系数,0001是十进制的I代表+1是833的系数,0000是十进制的0代表-I是7857的系数)
实施例2
普通闸门一般近似于一次曲线,
第一步、建立通讯
PLC通过MODBUS协议的0x10号命令发送数据,命令如下03 10 00 00 00 21 00 OA00 09 00 07 00 06 00 05 00 03 00 02 00 01 00 01 00 03 00 05 00 07 00 09 00 OA
00 OB 00 OC 01 07 B6自动曲线拟合仪将接收到的数据前39个字节进行CRC校验运算,
(1)如果计算出的CRC校验码也是07B6,将放回一串正确的代码,返回命令03 10 0000 00 21 01 F3,PLC接收到正确代码将停止发送数据;
(2)如果计算出的CRC校验码不是07B6,将放回一串错误的代码,返回命令03 90 0000 00 21 00 2D,PLC接收到错误的代码将再次发送数据直到接收到正确代码;
第二步、判断
自动曲线拟合仪将对N (需拟合的曲线的阶数)进行一次判断,N=I代表普通闸门,N=2代表弧形闸门,此处的N由用户输入是41个字节数据里的第39个字节,N=I ;
第三步、数据处理
单片机单元电路将接收到的41个字节的数据进行提取有效数据处理,提取出闸门的开度和角编码值的数据共32个字节,这32个字节是从第7个字节到第38个字节,(00 OA00 09 00 07 00 06 00 05 00 03 00 02 00 01 00 01 00 03 00 05 00 07 00 09 00 OA00 OB 00 0C)然后将提取出的32个字节前16个字节数据换算成高度是10、9、7、6、5、3、2、1,依次比较这8个数,可以确认该数据依次减小,所以是下降,判断出M=2,M=I代表上升,M=2代表下降。得出N和M的值后,自动曲线拟合仪将调用相应的曲线拟合方法进行曲线拟合,其中曲线拟合使用的数学方法是最小二乘法,拟合出的曲线方程是y = -1.2014x +13. 707 ;
第四步、存储、反馈
当得到拟合的曲线方程的系数后,将曲线方程的系数经过整型,转换为整数12014、13707、0、1 (0代表-I是12014的系数,I代表+1是,13707的系数)存放到EEPROM里,然后等待PLC发送读取命令,当闸门开度与角编码值自动曲线拟合仪器接收到PLC的读取命令时,读取命令如下03 03 00 00 00 04 45 EB
闸门开度与角编码值自动曲线拟合仪器将把存放在EEPROM里的数据发送给PLC发送命令如下03 03 00 00 00 04 2E EE 35 8B 00 00 00 01 72 El (03 代表地址,03代表MODBUS读取指令,00 00代表起始地址00 04代表读取的字节数,2EEE是十进制的12014,358B是十进制的13707,0000是十进制的0代表-I是12014的系数,0001是十进制的I代表+1是13707的系数,)
考虑到这个问题所以本发明设计时添加了自动识别闸门型号并根据闸门的型号决定拟合的曲线的阶数。同一闸门在上升和下降的时候曲线也不相同,所以在本发明中将自动识别上 升和下降并分开拟合曲线。在实际应用中,本发明可以根据使用者的需求和设定自动更新曲线方程。本发明通过具体实施过程进行说明的,在不脱离本发明范围的情况下,还可以对本发明专利进行各种变换及等同代替,因此,本发明专利不局限于所公开的具体实施过程,而应当包括落入本发明专利权利要求范围内的全部实施方案。
权利要求
1.一种闸门开度与角编码值曲线拟合方法,其特征在于首先将闸门开度与角编码值曲线自动拟合仪和PLC连接,接收PLC发送的开度与角编码值数据,通过内部算法分析和拟合曲线方程,并将拟合出来的曲线方程的系数存储,同时,将此数据发送给PLC,实现对闸门开度与角编码值的曲线拟合与数据更新,具体工作可以按照下面步骤进行; 第一步、建立通讯 在系统开始工作后,PLC通过MODBUS协议的0x10号命令发送33个字节的数据给闸门开度与角编码值自动曲线拟合仪,自动曲线拟合仪将接收到的数据前39个字节进行CRC校验运算,运算的结果与接收到的第40和41个字节的CRC校验码进行比较, (1)两个CRC校验码相等时,将返回一串正确的代码,PLC接收到正确代码将停止发送数据; (2)两个CRC校验码不相等时,将返回一串错误的代码,PLC接收到错误的代码将再次发送数据直到接收到正确代码; 第二步、判断 自动曲线拟合仪将对N (需拟合的曲线的阶数)进行一次判断,N=I代表普通闸门,N=2代表弧形闸门,此处的N由用户输入是41个字节数据里的第39个字节,N默认是I ; 第三步、数据处理 单片机单元电路将接收到的41个字节的数据进行提取有效数据处理,提取出闸门的开度和角编码值的数据共32个字节,这32个字节是从第7个字节到第38个字节,然后将提取出的32个字节前16个字节数据换算成8个实数,依次比较这8个数的大小,来判断M等于I或2,M=I代表上升,M=2代表下降;得出N和M的值后,自动曲线拟合仪将调用相应的曲线拟合方法进行曲线拟合,其中曲线拟合使用的数学方法是最小二乘法; 第四步、存储、反馈 当得到拟合的曲线方程的系数后,将曲线方程的系数放到EEPROM里,然后等待PLC发送读取命令,当闸门开度与角编码值自动曲线拟合仪器接收到PLC的读取命令时,自动曲线拟合仪将把曲线方程的系数按照标准发送给PLC。
2.根据权利要求I所述的一种闸门开度与角编码值曲线拟合方法,其特征在于闸门开度与角编码值曲线拟合仪和PLC进行通讯所采用的通讯协议是MODBUS通讯协议。
3.根据权利要求I所述的一种闸门开度与角编码值曲线拟合方法,其特征在于PLC发送41个字节的数据,其中32个字节是开度与角编码值的数据,这32个字节是从第7个字节到第38个字节,然后将提取出的32个字节前16个字节数据换算成8个实数,依次比较这8个数的大小,来判断M等于I或2,M=1代表上升,M=2代表下降;第39个字节是用来判断闸门型号的数据,用于确认N的值,使用的数学方法是最小二乘法,在曲线拟合时能根据N和M的值自动调出相应的曲线拟合计算方法。
全文摘要
本发明涉及一种闸门开度与角编码值曲线拟合方法,首先将闸门开度与角编码值曲线自动拟合仪和PLC连接,接收PLC发送的开度与角编码值数据,通过内部算法分析和拟合曲线方程,并将拟合出来的曲线方程的系数存储,同时,将此数据发送给PLC,实现对闸门开度与角编码值的曲线拟合与数据更新,本方法适应性强、简单可靠、使用方便、移植性强的特点。
文档编号G05B19/05GK102722134SQ201210181399
公开日2012年10月10日 申请日期2012年6月5日 优先权日2012年6月5日
发明者周敏, 林雨, 王藤, 邵建龙, 魏龄 申请人:昆明理工大学