当前位置: 首页 > Web前端 > HTML

关于SPC控制图中常见异常点检验的判定逻辑

时间:2023-03-28 16:14:46 HTML

SPC常见的四种异常点的检查方法,前端实现方法,效果如下,只要通过逻辑得到异常点对应的数组下标,就不难了画这种折线图,所以就把自己实现的逻辑片段判断第一类异常,超出控制范围//判断第一类异常,超出控制范围constadNormal1=()=>{//mockdata,待判断数组constyData:number[]=[];//模拟数据,上下限控制constmock_uplimit:number=100;constmock_lowLimit:number=0;//判断第一类异常,超出控制限for(leti:number=0;imock_uplimit||yData[i]{//mock数据,待判断数组constyData:number[]=[];//模拟数据,Constmock_middle:number=66;//模拟数据,nconstmock_n:number=5;//判断第二种异常,一侧连续n个点consttempAdnormalIndex:number[]=[];for(leti:number=0;imock_middle)tempGroup.push(1);如果(yData[j]===mock_middle)tempGroup.push(0);如果(yData[j]console.log(`这个点异常,点Index:${item},点数据:${yData[item]}`));};第三种异常的判断,连续n个点上升或下降constadNormal3=()=>{//mock数据,待判断数组constyData:number[]=[];//mock数据,n个点连续上升或下降constmock_n:number=3;//判断第三种异常,n个点连续上升或下降consttempAdnormalIndex:number[]=[];for(leti:number=0;iyData[j])tempGroup.push(1);如果(yData[j+1]===yData[j])tempGroup.push(0);如果(yData[j+1]console.log(`点异常,点的Index:${item},点数据:${yData[item]}`));};第四类异常的判断。连续n个点交替上升或下降constadNormal4=()=>{//模拟数据,待判断constyData:number[]=[];//mock数据,n个连续的点交替上升或下降nconstmock_n:number=6;//判断第四种异常,连续n个点交替上升或下降consttempAdnormalIndex:number[]=[];for(leti:number=0;iyData[j])tempGroup.push(1);如果(yData[j+1]===yData[j])tempGroup.push(0);如果(yData[j+1]-1){isAbnormal4=false;}//判断tempGroup数组是否为1,-1的连续交集else{for(letk:number=0;kconsole.log(`这个点异常,点的索引:${item},点的数据:${yData[item]}`));};PS:部分逻辑的时间复杂度不是最优解,待优化