fds
2021-03-29 10:41:08 6 举报
fd
作者其他创作
大纲/内容
设置观察周期为200mss_brake.num_adj = 4
N
Y
s_brake.point <= (s_brake.num_accup + s_brake.num_brake)
s_brake.acc_diff[s_brake.point] < 0?
s_brake.f_ratio[s_brake.point] = fratio_acc[i];
time = s_brake.point * 50;s_brake.acc_set[s_brake.point] = (s_brake.safeinfo.acc_zhu_max / s_brake.safeinfo.t_accup_set) * time;s_brake.acc_real[s_brake.point] = FCA_GetAcc_ZHU();s_brake.acc_diff[s_brake.point] = s_brake.acc_set[s_brake.point] - s_brake.acc_real[s_brake.point]
s_brake.f_ratio[s_brake.point] = s_brake.f_ratio[s_brake.point - 1];s_brake.b_ratio[s_brake.point] = s_brake.b_ratio[s_brake.point - 1];
i = (|s_brake.acc_diff[s_brake.point]| - 0.7) / 0.25 + 0.5);i >= 调整等级(7)?
i = 7
设置观察周期为100ms,因为刹车处理程序执行周期为50ms,所以设置s_brake.num_adj = 2
s_brake.f_ratio[s_brake.point - 1] < fratio_dec[i] ?
s_brake.f_ratio[s_brake.point] = s_brake.f_ratio[s_brake.point - 1] + ratio_update;设置本次前阀占空比为上一时刻占空比 + 2
s_brake.f_ratio[s_brake.point - 1] > fratio_acc[i] ?
前阀当前时刻需要控制的占空比和上一时刻需要控制的占空比不一样 或者后阀当前时刻需要控制的占空比和上一时刻需要控制的占空比不一样?
当前时刻制动力偏小 s_brake.acc_diff[s_brake.point] > 0 ?
PWM输出设置调整PWM输出的时间点变量s_brake.point_adj 为s_brake.point;
当前时刻制动偏大? s_brake.acc_diff[s_brake.point] < -0.7
s_brake.f_ratio[s_brake.point] = s_brake.f_ratio[s_brake.point - 1] ;设置本次前阀占空比为上一时刻占空比
s_brake.stage = BRAKE_STEP_BRAKE;time = s_brake.point * TIME_BRAKE_PERIOD_S - s_brake.safeinfo.t_delay - s_brake.safeinfo.t_accup; s_brake.acc_set[s_brake.point] =s_brake.safeinfo.acc_zhu_max;s_brake.acc_real[s_brake.point] = FCA_GetAcc_ZHU();
上次调整PWM输出时刻的制动力偏小? s_brake.acc_diff[s_brake.point_adj] > 0?
s_brake.acc_set[s_brake.point] = s_brake.acc_set[s_brake.point - 1];s_brake.acc_real[s_brake.point] = FCA_GetAcc_ZHU();
s_brake.f_ratio[s_brake.point] = s_brake.f_ratio[s_brake.point - 1] + ratio_update;设置本次前阀占空比为上一时刻占空比 - 2
s_brake.f_ratio[s_brake.point] s_brake.f_ratio[s_brake.point - 1] ;设置本次前阀占空比为上一时刻占空比
开始
s_brake.num_adj != 0?
前阀占空比设置为36,后阀占空比设置为26s_brake.point_adj = 0;s_brake.num_adj = 0;s_brake.stage = BRAKE_STEP_ACCUP;s_brake.num_accup = (s_brake.safeinfo.t_accup * 1000) /50;s_brake.num_brake = (s_brake.safeinfo.t_brake * 1000) / 50;上面除以50,是因为刹车处理程序周期为50ms
s_brake.f_ratio[s_brake.point]=s_brake.f_ratio[s_brake.point - 1];设置本次前阀占空比为上一时刻占空比
当前时刻制动力偏大 s_brake.acc_diff[s_brake.point] <
s_brake.num_adj > 0?
当前时刻制动偏小? s_brake.acc_diff[s_brake.point] > 0
s_brake.f_ratio[s_brake.point] = fratio_dec[i];
当前时刻制动力偏大 s_brake.acc_diff[s_brake.point] < -0.7 ?
++s_brake.point <= s_brake.num_accup
当前时刻制动力偏小 s_brake.acc_diff[s_brake.point] > 0
s_brake.stage == BRAKE_STEP_NULL?
0 条评论
下一页
为你推荐
查看更多