CN104714967A - 一种基于降维的二维插值方法 - Google Patents
一种基于降维的二维插值方法 Download PDFInfo
- Publication number
- CN104714967A CN104714967A CN201310689741.0A CN201310689741A CN104714967A CN 104714967 A CN104714967 A CN 104714967A CN 201310689741 A CN201310689741 A CN 201310689741A CN 104714967 A CN104714967 A CN 104714967A
- Authority
- CN
- China
- Prior art keywords
- val
- value
- axis
- dimension
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
本发明涉及一种基于降维的二维插值方法。对在MAP表中查不到的值进行插值计算。本发明的技术解决方案是:获取输入值和输出值之间的二维关系表,将二维关系表值组织为MAP表形式,通过查表代替计算,提高系统运行效率,在查表失败时,采用牛顿插值的方法进行降维差值计算;本发明采用的插值计算方法,计算过程简单,精度易于控制;此降维插值方法可以推广到三维或更多维数插值计算中,插值方法也可以根据应用情况采用拉格朗日插值等其他插值方法。
Description
技术领域
本发明属于计算机控制领域,具体涉及一种基于降维的二维插值方法。
背景技术
在嵌入式控制系统中往往涉及较多计算,输出量计算值受到多个输入值组合影响,且输出值得计算复杂,计算调整因素多,使得在实际系统运行中计算量过大,导致系统响应时间变慢,甚至在没有公式依据的情况下,有些输出值无法计算。
本文将计算复杂或影响因素众多的输入值和输出值之间的关系通过实验获取数据对应关系,进而采用MAP表的形式进行记录,这样在系统运行过程中主要根据输入值就可以通过查表获取输出值,提高系统响应速度,且输出值误差小。若查表失败则通过邻近点进行牛顿差值计输出值。本专利主要研究MAP表的组织形式以及在二维维度下如何进行降维进行差值计算的方法,此降维方法也可以推广到更高维度的差值计算中。
发明内容
本发明的目的是:提供一种基于降维的二维插值计算方法,对在MAP表中查不到的值进行插值计算,以解决工程应用中由于在MAP表中查不到数据导致后续应用无法进行的技术问题。
本发明的技术解决方案是:
一种基于降维的二维插值方法,其特殊之处在于:包括以下步骤:
1】通过实验获取输入值和输出值之间的二维关系表,二维关系表包括两个输入值X和Y,通过X和Y组合得到输出值Z;
2】将步骤1】的二维关系表值组织为MAP表形式:将所有输入值X按照递增的顺序以一维表X_Axis的形式进行存储,将所有输入值Y按照递增的顺序以一维表Y_Axis的形式进行存储,将所有输出值Z按照输入值X和Y的对应关系以一维表Z_Table的形式进行存储;一维表X_Axis的下标记为i,一维表Y_Axis的下标记为j,一维表Z_Table的下标记为k,则k=j×length_x+i,length_x表示一维表X_Axis的长度;
3】根据给出的x_val值和y_val值查询对应的z_val值:
3.1】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis未找到,则在一维表X_Axis中查找与x_val最邻近的两个值Xi以及Xi+1,在一维表Y_Axis中查找与y_val最邻近的两个值Yj以及Yj+1,在Yj点处按照公式 求取Za,m=j×length_x+i;在Yj+1点处按照公式 求取Zb,n=(j+1)×length_x+i;按照公式 求取z_val值;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.2】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.3】如果x_val值在表X_Axis找到,y_val值在表Y_Axis未找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.4】如果x_val值在表X_Axis找到,y_val值在表Y_Axis找到,则根据x_val和y_val的关系查询对应的z_val,输出给后续应用进行处理。
上述方法中,在一维表X_Axis中增加一个用于存储输入值X的个数的数据项;在一维表Y_Axis中的增加一个用于存储输入值Y的个数的数据项。
利用上述方法确定汽车风扇控制扭矩的方法,包括以下步骤:
1】通过实验获取汽车控制器中关于发动机转速X、风扇请求Y和风扇控制扭矩Z之间的二维关系表,发动机转速X、风扇请求Y是输入值,风扇控制扭矩Z是输出值;
2】将步骤1】二维关系表中所有的发动机转速值按照递增的顺序以一维表X_Axis形式进行存储,将所有风扇请求值按照递增的顺序以一维表Y_Axis形式进行存储,Z值按照发动机转速值和风扇请求值的对应关系以一维表Z_Table形式进行存储存储;一维表X_Axis的下标记为i,一维表Y_Axis的下标记为j,一维表Z_Table的下标记为k,则k=j×length_x+i,length_x表示一维表X_Axis的长度;
3】根据给出的x_val值和y_val值查询对应的z_val值:
3.1】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis未找到,则在一维表X_Axis中查找与x_val最邻近的两个值Xi以及Xi+1,在一维表Y_Axis中查找与y_val最邻近的两个值Yj以及Yj+1,在Yj点处按照公式 求取Za,m=j×length_x+i;在Yj+1点处按照公式 求取Zb,n=(j+1)×length_x+i;按照公式 求取z_val值;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.2】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.3】如果x_val值在表X_Axis找到,y_val值在表Y_Axis未找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.4】如果x_val值在表X_Axis找到,y_val值在表Y_Axis找到,则根据x_val和y_val的关系查询对应的z_val,输出给后续应用进行处理。
本发明的有益效果是:MAP表的数据表示方式可以将具有复杂输入输出关系的便利关系通过查表的方式解决,提高系统运行效率;采用基于降维的插值计算方法,计算过程简单,精度易于控制;此降维插值方法可以推广到三维或更多维数插值计算中,插值方法也可以根据应用情况采用拉格朗日插值等其他插值方法。
具体实施方式
本发明的原理是:通过设置MAP表的存储方式,将二维插值降维成一系列的一维插值计算,采用牛顿插值的方法进行计算;牛顿插值,也称为线性插值,即认为最近两个已知点之间是一条直线,这样插值点和任意已知点的斜率和两已知点斜率相等。
本发明涉及的二维关系是指根据已知X值和Y值查找Z值。二元关系一般以二维关系表的形式存储,即二维表横向为X值,纵向为Y值,中间点为Z值,如表1。
表1:二维关系表
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | |
Y1 | Z1 | Z2 | Z3 | Z4 | Z5 | Z6 | Z7 | Z8 |
Y2 | Z9 | Z10 | Z11 | Z12 | Z13 | Z14 | Z15 | Z16 |
Y3 | Z17 | Z18 | Z19 | Z20 | Z21 | Z22 | Z23 | Z24 |
Y4 | Z25 | Z26 | Z27 | Z28 | Z29 | Z30 | Z31 | Z32 |
Y5 | Z33 | Z34 | Z35 | Z36 | Z37 | Z38 | Z39 | Z40 |
Y6 | Z41 | Z42 | Z43 | Z44 | Z45 | Z46 | Z47 | Z48 |
Y7 | Z49 | Z50 | Z51 | Z52 | Z53 | Z54 | Z55 | Z56 |
为了降维进行插值计算,本发明将X值,Y值和Z值分别以一维表存储,如表2、表3、表4。X表和Y表中的值以递增顺序存储,Z值按照与X值和Y值的对应关系存储。
表2:X_Axis
x_len | X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 |
表3:Y_Axis
y_len | Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 |
表4:Z_Table
Z1 | Z2 | Z3 | Z4 | Z5 | …… | Z39 | …… | Z55 | Z56 |
三表长度存在公式(1)所示关系,若已知i,j,则对应Z表中值的下标k如公式(2)所示。
length_z=length_x×length_y 公式(1)
k=j×length_x+i 公式(2)
通过k值即可以在Z表中取出对应Z值,length_x表示X_Axis表长度,length_y表示Y_Axis表长度,length_z表示Z_Table表长度。
牛顿差值表达式描述:已知三个点(x1,y1),(x,y),(x2,y2),则牛顿差值表达式如公式(3)所示。
设已知x_val值,y_val值,要获取其对应的z_val值。若x_val值和y_val值在X表和Y表中都能找到则必然能够找到对应的Z值;若x_val值和y_val值中一个值能够找到,则可以采用牛顿插值求取Z值;若x_val值和y_val值均未找到,则采用以下步骤进行牛顿插值求取Z值,具体步骤如下:
1)、分别在X_Axis表和X_Axis表中查找x_val值和y_val值最邻近的两个值,即Xi<x_val<Xi+1,Yj<y_val<Yj+1;
2)、在Yj点处按照公式(3)采用牛顿插值求取Za,在Yj处,Za∈(Zm,Zm+1)|m=j×length_x+i,牛顿差值点为:(Xi,Zm),(x_val,Za),(Xi+1,Zm+1);
3)、在Yi+1点处按照公式(3)采用牛顿插值求取Zb,在Yi+1处,Zb∈(Zn,Zn+1)|n=(j+1)×length_x+i,牛顿差值点为(Xi,Zn),(x_val,Zb),(Xi+1,Zn+1);
4)、步骤2、3中求取的Za,Zb分别对应Yi,Yi+1点处的插值,按照公式(3)采用牛顿插值求取z_val值,牛顿差值点为(Yj,Za),(y_val,z_val),(Yj+1,Zb)。
通过步骤1)到步骤4)就可以将二维插值降维为三个一维线性插值进行求解。
若z_val精度较低,可以采集较多的实验数据点,提高插值计算精度。
以某汽车控制器中的一个二元关系为例,如表5所示,其中,X代表发动机转速,Y代表风扇请求,Z代表风扇控制扭矩;
将表5中所有X的取值按照递增的顺序以一维表X_Axis形式进行存储,将所有Y的取值按照递增的顺序以一维表Y_Axis形式进行存储,Z值按照X值和Y值的对应关系以一维表Z_Table形式进行存储存储;X表长度是9,Y表长度是9,Z表长度是81。
设要查找的x_val=30.0,y_val=800.0,求对应的z_val。由表1可得x_val值和y_val值在表中查找失败,按照以下步骤计算z_val值:
1、查找x_val邻近值分别是20.0和35.0,x_val∈(20.0,35.0)时,y_val的邻近值分别700.0以及1000.0,y_val∈(700.0,1000.0),i=2,j=1;
2、在y=700.0点处,x_val∈(20.0,35.0)时,m=j×length_x+i=11,对应Za∈(7.0,15.0),按照公式(3)计算Za;
Za=(15.0-7.0)/(35.0-20.0)*(30.0-20.0)+7.0=12.3
3、在y=1000.0点处,x_val∈(20.0,35.0)时,n=20,对应Zb∈(9.0,20.0),按照公式(4)计算Zb;
Zb=(20.0-9.0)/(35.0-20.0)*(30.0-20.0)+7.0=14.3
4、按照公式(5)计算z_val;z_val=(14.3-12.3)/(1000.0-700.0)*(800.0-700.0)+12.3=12.9
表5:二元关系表
Claims (3)
1.一种基于降维的二维插值方法,其特征在于:包括以下步骤:
1】通过实验获取输入值和输出值之间的二维关系表,二维关系表包括两个输入值X和Y,通过X和Y组合得到输出值Z;
2】将步骤1】的二维关系表值组织为MAP表形式:将所有输入值X按照递增的顺序以一维表X_Axis的形式进行存储,将所有输入值Y按照递增的顺序以一维表Y_Axis的形式进行存储,将所有输出值Z按照输入值X和Y的对应关系以一维表Z_Table的形式进行存储;一维表X_Axis的下标记为i,一维表Y_Axis的下标记为j,一维表Z_Table的下标记为k,则k=j×length_x+i,length_x表示一维表X_Axis的长度;
3】根据给出的x_val值和y_val值查询对应的z_val值:
3.1】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis未找到,则在一维表X_Axis中查找与x_val最邻近的两个值Xi以及Xi+1,在一维表Y_Axis中查找与y_val最邻近的两个值Yj以及Yj+1,在Yj点处按照公式 求取Za,m=j×length_x+i;在Yj+1点处按照公式 求取Zb,n=(j+1)×length_x+i;按照公式 求取z_val值;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.2】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.3】如果x_val值在表X_Axis找到,y_val值在表Y_Axis未找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.4】如果x_val值在表X_Axis找到,y_val值在表Y_Axis找到,则根据x_val和y_val的关系查询对应的z_val,输出给后续应用进行处理。
2.利用权利要求1所述的基于降维的二维插值方法,其特征在于:在一维表X_Axis中增加一个用于存储输入值X的个数的数据项;在一维表Y_Axis中的增加一个用于存储输入值Y的个数的数据项。
3.利用权利要求1或2所述方法确定汽车风扇控制扭矩的方法,其特征在于:包括以下步骤:
1】通过实验获取汽车控制器中关于发动机转速X、风扇请求Y和风扇控制扭矩Z之间的二维关系表,发动机转速X、风扇请求Y是输入值,风扇控制扭矩Z是输出值;
2】将步骤1】二维关系表中所有的发动机转速值按照递增的顺序以一维表X_Axis形式进行存储,将所有风扇请求值按照递增的顺序以一维表Y_Axis形式进行存储,Z值按照发动机转速值和风扇请求值的对应关系以一维表Z_Table形式进行存储存储;一维表X_Axis的下标记为i,一维表Y_Axis的下标记为j,一维表Z_Table的下标记为k,则k=j×length_x+i,length_x表示一维表X_Axis的长度;
3】根据给出的x_val值和y_val值查询对应的z_val值:
3.1】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis未找到,则在一维表X_Axis中查找与x_val最邻近的两个值Xi以及Xi+1,在一维表Y_Axis中查找与y_val最邻近的两个值Yj以及Yj+1,在Yj点处按照公式 求取Za,m=j×length_x+i;在Yj+1点处按照公式 求取Zb,n=(j+1)×length_x+i;按照公式 求取z_val值;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.2】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.3】如果x_val值在表X_Axis找到,y_val值在表Y_Axis未找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;
3.4】如果x_val值在表X_Axis找到,y_val值在表Y_Axis找到,则根据x_val和y_val的关系查询对应的z_val,输出给后续应用进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689741.0A CN104714967B (zh) | 2013-12-14 | 2013-12-14 | 一种确定汽车风扇控制扭矩的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310689741.0A CN104714967B (zh) | 2013-12-14 | 2013-12-14 | 一种确定汽车风扇控制扭矩的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714967A true CN104714967A (zh) | 2015-06-17 |
CN104714967B CN104714967B (zh) | 2017-10-24 |
Family
ID=53414311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310689741.0A Active CN104714967B (zh) | 2013-12-14 | 2013-12-14 | 一种确定汽车风扇控制扭矩的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104714967B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674133A (zh) * | 2019-09-09 | 2020-01-10 | 北京航天自动控制研究所 | 一种高维插值的压缩存储及计算方法 |
CN112709641A (zh) * | 2020-12-15 | 2021-04-27 | 中国航发控制系统研究所 | 二维流量表的反插方法 |
CN113154730A (zh) * | 2021-04-30 | 2021-07-23 | 珠海格力电器股份有限公司 | 一种制冷剂充注量计算方法、装置及制冷设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041609A1 (en) * | 2004-08-20 | 2006-02-23 | Pellar Ronald J | System and method for multi-dimensional lookup table interpolation |
CN101131692A (zh) * | 2006-08-25 | 2008-02-27 | 陈启星 | 分级统计-概率计算式查找算法 |
CN101606854A (zh) * | 2009-06-10 | 2009-12-23 | 无锡祥生科技有限公司 | 一种高精度实时超声图像扫描变换方法 |
CN102645186A (zh) * | 2012-05-10 | 2012-08-22 | 东南大学 | 一种基于双线性插值算法的水膜厚度传感器实现方法 |
CN103136270A (zh) * | 2011-12-01 | 2013-06-05 | 无锡物联网产业研究院 | 一种获得数据插值的方法及系统 |
-
2013
- 2013-12-14 CN CN201310689741.0A patent/CN104714967B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041609A1 (en) * | 2004-08-20 | 2006-02-23 | Pellar Ronald J | System and method for multi-dimensional lookup table interpolation |
CN101131692A (zh) * | 2006-08-25 | 2008-02-27 | 陈启星 | 分级统计-概率计算式查找算法 |
CN101606854A (zh) * | 2009-06-10 | 2009-12-23 | 无锡祥生科技有限公司 | 一种高精度实时超声图像扫描变换方法 |
CN103136270A (zh) * | 2011-12-01 | 2013-06-05 | 无锡物联网产业研究院 | 一种获得数据插值的方法及系统 |
CN102645186A (zh) * | 2012-05-10 | 2012-08-22 | 东南大学 | 一种基于双线性插值算法的水膜厚度传感器实现方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674133A (zh) * | 2019-09-09 | 2020-01-10 | 北京航天自动控制研究所 | 一种高维插值的压缩存储及计算方法 |
CN110674133B (zh) * | 2019-09-09 | 2022-05-24 | 北京航天自动控制研究所 | 一种高维插值的压缩存储及计算方法 |
CN112709641A (zh) * | 2020-12-15 | 2021-04-27 | 中国航发控制系统研究所 | 二维流量表的反插方法 |
CN112709641B (zh) * | 2020-12-15 | 2021-12-07 | 中国航发控制系统研究所 | 基于二维流量表确定油针位置的方法 |
CN113154730A (zh) * | 2021-04-30 | 2021-07-23 | 珠海格力电器股份有限公司 | 一种制冷剂充注量计算方法、装置及制冷设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104714967B (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiong et al. | Vehicle dynamics control of four in-wheel motor drive electric vehicle using gain scheduling based on tyre cornering stiffness estimation | |
Limebeer et al. | Optimal control of formula one car energy recovery systems | |
CN103645725B (zh) | 一种机器人示教轨迹规划方法和系统 | |
CN109799778B (zh) | 一种电子凸轮曲线生成方法及相关装置 | |
CN104354696B (zh) | 乘用车油耗控制方法 | |
Timings et al. | Vehicle trajectory linearisation to enable efficient optimisation of the constant speed racing line | |
CN104714967A (zh) | 一种基于降维的二维插值方法 | |
CN103744346A (zh) | 一种电子凸轮曲线生成方法 | |
CN109215338B (zh) | 一种基于网格化的北斗gps车辆轨迹管理系统及其方法 | |
CN104252153A (zh) | Cnc加工程序生成系统及方法 | |
CN104076743A (zh) | 一种自识别插补种类的插补控制方法 | |
Horiuchi | Evaluation of chassis control method through optimisation-based controllability region computation | |
CN102156728A (zh) | 一种改进的基于用户兴趣模型的个性化摘要系统 | |
CN102867127A (zh) | 一种用于工程机械液力传动匹配的方法 | |
CN102566965B (zh) | 一种误差平坦的浮点数对数运算装置 | |
CN104008286A (zh) | 一种基于粒子群算法的空间柔性机构动态可靠性分析方法 | |
SE532252C2 (sv) | Förfarande och apparat för extrahering av information från en databas | |
CN108350820B (zh) | 建筑机械的发动机控制装置 | |
CN104809210A (zh) | 一种基于分布式计算框架下海量数据加权top-k查询方法 | |
Sun et al. | A class of accelerated subspace minimization conjugate gradient methods | |
CN104794237A (zh) | 网页信息处理方法及装置 | |
CN104270046A (zh) | 一种基于转速-电流二维模糊模型自学习的电机控制方法 | |
CN104238624B (zh) | 一种最大功率点的跟踪方法及装置 | |
CN116292538A (zh) | 一种基于数字孪生的油缸绑定方法、系统、装置及介质 | |
Zhang et al. | Implementable strategy research of brake energy recovery based on dynamic programming algorithm for a parallel hydraulic hybrid bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |