|
@@ -211,23 +211,41 @@ double GroupSpeedCtrl::Getmindec_front(iv::group::groupinfo & xgroupinfo,
|
|
|
|
|
|
const double fVehMinDis = mfDis_MaxDec_Front;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
//前车车速大于当前车,并且距离>30米, 不制动
|
|
|
- if((fdistocur > (fVehMinDis*1.5)) &&(pvehbefore->mgpsimu().speed() >= fsecspeednow ))
|
|
|
+// if((fdistocur > (fVehMinDis*1.5)) &&(pvehbefore->mgpsimu().speed() >= fsecspeednow ))
|
|
|
+// {
|
|
|
+// return 0.0;
|
|
|
+// }
|
|
|
+
|
|
|
+ if(fdistocur>50)
|
|
|
{
|
|
|
return 0.0;
|
|
|
}
|
|
|
|
|
|
double fspeeddiff = fsecspeednow - pvehbefore->mgpsimu().speed();
|
|
|
|
|
|
- if(fspeeddiff > 0)
|
|
|
+ if(fspeeddiff > 0.1)
|
|
|
{
|
|
|
if(((fspeeddiff*fspeeddiff/(2*1.0))+fVehMinDis) < fdistocur)
|
|
|
{
|
|
|
- assert((fdistocur-fVehMinDis)>0);
|
|
|
+// assert((fdistocur-fVehMinDis)>0);
|
|
|
double fdec = (-1.0) * fspeeddiff*fspeeddiff/(2*(fdistocur - fVehMinDis));
|
|
|
return fdec;
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(fabs(pvehbefore->mgpsimu().speed())<0.1)
|
|
|
+ {
|
|
|
+ return -1.0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ return 0.0;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0.0;
|
|
|
|
|
|
if((fdistocur < (fVehMinDis*1.5)) && (fabs(pvehbefore->mgpsimu().speed()) < 0.3))
|
|
|
{
|