一种三维反向离散数据的获取方法及系统技术方案

技术编号:26924283 阅读:65 留言:0更新日期:2021-01-01 22:49
本发明专利技术涉及一种三维反向离散数据的获取方法及系统。以解决针对某些控制对象,三维反向离散数据获取过程复杂、计算量大,无法快速得到的问题。方法包括:获取控制对象的三维正向离散数据,并导入MATLAB/2‑D lookup table模块;搭建stateflow流程图;输入x

【技术实现步骤摘要】
一种三维反向离散数据的获取方法及系统
本专利技术涉及一种三维反向离散数据的获取方法及系统。
技术介绍
在实际工程应用或科学实验中,存在一类控制对象,其输出主要与两个输入因素相关,用函数的形式可以记为:Z=f(X,Y),其中X、Y为控制对象的输入,属于自变量,Z为控制对象的输出,属于因变量,且控制对象存在以下特性:变量X一定时,因变量Z随自变量Y的单调变化而单调变化,将其输出特性绘制为曲线时,曲线之间无交叉。实际应用时,通常是已知变量X,需要控制变量Y去得到所需要的输出Z,相当于需要明确函数Y=g(X,Z)。实际中,Z=f(X,Y)的函数关系式难以明确表示,无法直接求得函数Y=g(X,Z)。对控制对象进行测试时,输入多组数据(x′i,y′j),(i=1,2,...m;j=1,2,...n),可以分别得到相应的z′ij,这些数据中的x′i、z′ij无法完全覆盖所有应用场景,因此无法直接应用。若要进行实际应用,需要对测得的多组(x′i,y′j)对应的z′ij进行处理,估计其余未知的数据,近似得到任意x、z所对应的y。这类问题相当于已知三维正向离散数据,计算任意三维反向离散数据,目前这方面相关研究较少,解决方法主要有拟合和插值两种,若采用曲面拟合,即依据测试得到的多组(x′i,y′j)对应的z′ij建立曲面模型函数Y=g(X,Z),函数关系复杂且计算量大,不利于应用。传统插值法是根据当前已知点确定一个函数,函数严格满足所有已知点,再以此函数求得未知点的值。但是针对上述控制对象对应的函数形式的应用,还未见报道。
技术实现思路
针对一类控制对象,其输出与两个输入量相关,且满足以下特性:其中一个输入量不变时,输出随另一个输入量单调变化。对该类控制对象,通过实验可以直接得到多组三维正向离散数据,但在应用时需要其任意三维反向离散数据,而当前三维反向离散数据获取过程复杂、计算量大,无法快速得到。因此本专利技术的目的是:基于传统插值法提供一种在MATLAB/Simulink环境下简单快速易实现的计算三维反向离散数据的方法。以解决上述控制对象,三维反向离散数据获取过程复杂、计算量大,无法快速得到的问题。由于三个变量之间无明确的函数关系,因此通过三维正向离散数据计算其三维反向离散数据时,正向数据中不包含的点只能近似估算。因为正向数据存在以下特征:其中一个自变量一定时,因变量随另一个自变量单调变化,将三维正向离散数据绘制为二维曲线时,曲线之间无交叉,所以,采用线性插值法求未知节点对应的输出时,依然可以满足控制对象的特性。本专利技术的技术方案是:一种三维离散数据反向数据的获取方法,其特殊之处在于,包括以下步骤:步骤1、获取控制对象的三维正向离散数据,并导入MATLAB/2-Dlookuptable模块;步骤2、搭建stateflow流程图;确定三维反向离散数据中变量Z的期望值zj和当前迭代值zP为stateflow流程图的输入,设置两者偏差小于阈值Δzmax时,状态量U置1,否则置0。Δzmax为可允许的变量Z的偏差,根据实际需要设置。步骤3、输入xi和yP;将xi和yP输入步骤1的MATLAB/2-Dlookuptable模块,得到当前线性插值结果zP。由于正向数据表中各个节点间隔相差不大,可以认为当前yP为xi和zP对应的Y值。其中,xi为三维反向离散数据中变量X的离散节点之一,xi初始值为xi(0),yP为三维反向离散数据中待计算的变量Y的迭代值,yP初始值为yP(0)。xi(0)、yP(0)可根据实际需要设置。步骤4、利用stateflow流程图判断zj与zP;在stateflow流程图中判断|zj-zP|是否满足|zj-zP|<Δzmax;其中,zj为三维反向离散数据中变量Z的期望值,zj初始值为zj(0),zj(0)可根据实际需要设置。若满足,则U=1,表明当前zP非常接近期望的zj值,可以认为当前yP为xi和zj对应的yij,单次求yij迭代完成,进入步骤6。若不满足,则U=0,表明当前zP与期望的zj相差较大,进入步骤5,对yP迭代;步骤5、yP迭代;令yP(k+1)=yP(k)+Δy;重复步骤3与步骤4;其中,k为迭代次数,k初始值为0;Δy为迭代步长,Δy可任意设置。步骤6、保存当前xi、zj、yP。步骤7、zj迭代;判断当前zj是否满足zj<zmax;zmax一般为三维正向离散数据中z′ij的最大值,超过最大值时,相当于外插,插值结果可能与实际偏差较大。若满足,对zj进行迭代,令yP=yP(0),zj(l+1)=zj(l)+Δz,xi保持不变,重复第3、4、5、6步,计算xi与不同zj所对应的yij值;其中,l为迭代次数,l初始值为0;Δz为迭代步长,Δz可任意设置。若不满足,进入步骤8。步骤8、xi迭代;令zj=zj(0),yP=yP(0),xi(m+1)=xi(m)+Δx,其中,m为迭代次数,m初始值为0;Δx为迭代步长,根据需要设置。判断xi(m+1)是否满足xi(m+1)≤xmax;其中,xmax一般为三维正向离散数据中x′i的最大值。若满足,则进入步骤9。若不满足,进入步骤10。步骤9、重复步骤3、4、5、6、7、8;计算其他xi与不同zj所对应的yij值。步骤10、迭代结束,至此,已得到三维正向离散数据数值范围内,任意xi和zj所对应的yij,计算完成。进一步地,步骤1具体包括:步骤1.1、对控制对象进行实验测试,输入多组数据(x′i,y′j),(i=1,2,...m;j=1,2,...n),分别得到相应的z′ij,获取控制对象的三维正向离散数据;变量X、Y各相邻节点的间隔不能过大,否则采用线性插值时误差过大没有应用价值。步骤1.2、在MATLAB/2-Dlookuptable模块导入步骤1.1获取的三维正向离散数据,Breakpoints的行和列分别由变量X,Y各个离散节点{x′1;x′2;x′3;...x′m}、{y′1;y′2;y′3;...y′n}递增排列组成;Tabledata由每一组x′i和y′j对应的值z′ij依次组成。本专利技术还提供一种三维反向离散数据的获取系统,包括处理器及存储器,其特殊之处在于:所述存储器中存储计算机程序,计算机程序在处理器中运行时,执行三维反向离散数据的获取方法。本专利技术还提供一种计算机可读存储介质,其特殊之处在于:储存有计算机程序,计算机程序被执行时实现三维反向离散数据的获取的方法。本专利技术的有益效果是:只需在Matlab/Simulink中按照本专利技术所述步骤搭建模型,导入三维正向离散数据,运行模型即可快速得到任意所需的三维反向离散数据。该方法省去了传统曲面拟合所需要的曲面建模、评价拟合效果、选择最优模型等步骤,该方法实现简单、计算速度极快且占用计算机空间小,而且可以通过调节迭代步长改变三维反向离散数据的节点间隔,得到任意离散节本文档来自技高网
...

【技术保护点】
1.一种三维反向离散数据的获取方法,其特征在于,包括以下步骤:/n步骤1、获取控制对象的三维正向离散数据,并导入MATLAB/2-D lookup table模块;/n步骤2、搭建stateflow流程图;/n确定三维反向离散数据中变量Z的期望值z

【技术特征摘要】
1.一种三维反向离散数据的获取方法,其特征在于,包括以下步骤:
步骤1、获取控制对象的三维正向离散数据,并导入MATLAB/2-Dlookuptable模块;
步骤2、搭建stateflow流程图;
确定三维反向离散数据中变量Z的期望值zj和当前迭代值zP为stateflow流程图的输入,设置zj和zP偏差小于阈值Δzmax时,状态量U置1,否则置0;
步骤3、输入xi和yP;
将xi和yP输入步骤1的MATLAB/2-Dlookuptable模块,得到当前线性插值结果zP;其中,xi为三维反向离散数据中变量X的离散节点之一,xi初始值为xi(0),yP为三维反向离散数据中待计算的变量Y的迭代值,yP初始值为yP(0);
步骤4、利用stateflow流程图判断zj与zP;
在stateflow流程图中判断|zj-zP|是否满足|zj-zP|<Δzmax;其中,zj为三维反向离散数据中变量Z的期望值,zj初始值为zj(0);Δzmax为可允许的变量Z的偏差;
若满足,则U=1,认为当前yP为xi和zj对应的yij,单次求yij迭代完成,进入步骤6;
若不满足,则U=0,表明当前zP与期望的zj相差较大,进入步骤5,对yP迭代;
步骤5、yP迭代;
令yP(k+1)=yP(k)+Δy;重复步骤3与步骤4;其中,k为迭代次数,k初始值为0;Δy为迭代步长;
步骤6、保存当前xi、zj、yP;
步骤7、zj迭代;
判断当前zj是否满足zj<zmax;zmax为三维正向离散数据中z′ij的最大值;
若满足,对zj进行迭代,令yP=yP(0),zj(l+1)=zj(l)+Δz,xi保持不变,重复步骤3、4、5、6,计算xi与不同z...

【专利技术属性】
技术研发人员:陈双双严鉴铂刘义白蒲江
申请(专利权)人:陕西法士特齿轮有限责任公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1