1、修改自适应滤波的bug

2、求重心函数的最大半径改为300mm,和坏点门限一致
This commit is contained in:
weidong 2024-04-26 08:31:47 +08:00
parent 32d54272e6
commit 875d0dd423
6 changed files with 14 additions and 7 deletions

View File

@ -34,11 +34,11 @@ public class ZNYForwarder extends Forwarder{
/** /**
* 每半小时转发GNSS解算结果 * 每半小时转发GNSS解算结果
*/ */
/*@Scheduled(cron = "0 0/10 * * * ?") // 每30分钟执行一次 @Scheduled(cron = "0 0/10 * * * ?") // 每30分钟执行一次
private void checkDevice() { private void checkDevice() {
logger.info("zny checkDevice"); logger.info("zny checkDevice");
checkOfflineDevice("2345078","2345073","2345065"); checkOfflineDevice("2345072","2345076","2345064");
}*/ }
@Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次
private void forwardGnss() { private void forwardGnss() {

View File

@ -20,7 +20,7 @@ public class FocusCalculator1 implements FocusCalculator{
int gravityMinCount = 50; int gravityMinCount = 50;
int gravityMaxCount = 300; int gravityMaxCount = 300;
double gravityInitR = 5;//mm double gravityInitR = 5;//mm
double gravityMaxR = 200;//mm double gravityMaxR = 300;//mm
double pointSelectedRate = 0.5; double pointSelectedRate = 0.5;
double iterStep = 1;//mm double iterStep = 1;//mm
double[] referPoint; //参考点一般是上一次计算的位置用来辅助计算重心 double[] referPoint; //参考点一般是上一次计算的位置用来辅助计算重心

View File

@ -30,7 +30,7 @@ public class FocusCalculator2 extends FocusCalculator1{
public FocusCalculator2(){ public FocusCalculator2(){
super(); super();
iterStep = 2;//2mm iterStep = 2;//2mm
gravityMaxR = 400; gravityMaxR = 500;
} }
@Override @Override

View File

@ -166,6 +166,8 @@ public class GNSSCalcFilterService {
} }
void refreshFilterCycle(String deviceId, GnssGroupCalc groupCalc, GnssCalcData curCalcData){ void refreshFilterCycle(String deviceId, GnssGroupCalc groupCalc, GnssCalcData curCalcData){
if(curCalcData.getAuxe()==null) return;
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 比较当前均值和FilterMinHour前的均值之差是否超过门限 // 比较当前均值和FilterMinHour前的均值之差是否超过门限
LocalDateTime cmpTime = now.minusHours(groupCalc.getFilter_min_hour()); LocalDateTime cmpTime = now.minusHours(groupCalc.getFilter_min_hour());
@ -177,7 +179,9 @@ public class GNSSCalcFilterService {
queryWrapper.last("limit 1"); queryWrapper.last("limit 1");
queryWrapper.orderByDesc("createtime"); queryWrapper.orderByDesc("createtime");
GnssCalcData gnssCalcData = repository.selectOne(queryWrapper); GnssCalcData gnssCalcData = repository.selectOne(queryWrapper);
if (gnssCalcData != null) { if (gnssCalcData != null) {
if(gnssCalcData.getAuxe()==null) return;
double gapE = Math.abs(gnssCalcData.getAuxe() - curCalcData.getAuxe()); double gapE = Math.abs(gnssCalcData.getAuxe() - curCalcData.getAuxe());
double gapN = Math.abs(gnssCalcData.getAuxn() - curCalcData.getAuxn()); double gapN = Math.abs(gnssCalcData.getAuxn() - curCalcData.getAuxn());
if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) { if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) {

View File

@ -125,7 +125,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService {
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString()); logger.error(e.toString());
} }
},20, TimeUnit.SECONDS); },30, TimeUnit.SECONDS);
timerMap.put(device.getDeviceId(), future); timerMap.put(device.getDeviceId(), future);
} }
@ -229,6 +229,7 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService {
} }
public void refreshGroupCalc(){ public void refreshGroupCalc(){
groupCalcList.clear();
groupCalcList = groupCalcMapper.selectList(null); groupCalcList = groupCalcMapper.selectList(null);
calculatorMap.clear(); calculatorMap.clear();
logger.info("group paras changed"); logger.info("group paras changed");

View File

@ -77,6 +77,8 @@ public class BeidouDevice {
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_4xx.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_4xx.log");
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_5xx.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2345076_0424_5xx.log");
*/ */
execute("C:\\Users\\wd\\Desktop\\log\\2353120_0424_1.log");
/*
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_1.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_1.log");
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_2.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_2.log");
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_1xx.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_1xx.log");
@ -84,7 +86,7 @@ public class BeidouDevice {
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_3xx.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_3xx.log");
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_4xx.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_4xx.log");
executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_5xx.log"); executeAsD342("C:\\Users\\wd\\Desktop\\log\\2353120_0424_5xx.log");
} */ }
catch (Exception e){ catch (Exception e){
} }