WLTC 续航与 CLTC 续航大不同,你了解多少?

在理想L8的仪表屏幕中看到有WLTC和CLTC的选择,我们这次专门介绍一下这两者的区别,为初次接触车载测试的小伙伴们带来知识分享。

WLTC 续航和 CLTC 续航主要有以下区别:

一、测试标准制定背景不同

  1. WLTC(Worldwide Harmonized Light Vehicles Test Cycle),即全球统一轻型车辆测试循环。

    • 它是为了适应全球不同地区的驾驶环境和车辆技术发展而制定的标准。

    • 考虑了更广泛的驾驶情况,包括高速行驶、城市道路、郊区道路以及不同的加速度和减速度等多种工况。

  2. CLTC(China Light-duty Vehicle Test Cycle),即中国轻型汽车行驶工况。

    • 主要是基于中国的道路情况、交通流量、驾驶习惯等因素制定的标准。

    • 旨在更准确地反映中国国内汽车在实际使用中的能耗和续航表现。

二、测试工况不同

  1. WLTC 测试工况:

    • 分为低速、中速、高速和超高速四个部分。

    • 最高车速为 131.3km/h,平均车速为 46.5km/h,相比以往的测试标准,速度范围更广,更接近实际驾驶中的各种情况。

    • 该测试循环对不同速度区间的行驶时间和距离进行了更细致的划分,能够更好地评估车辆在不同路况下的性能。

  2. CLTC 测试工况:

    • 由低速、中速和高速三个部分组成。

    • 最高车速为 114km/h,平均车速为 28.96km/h。

    • 更加侧重于城市道路的低速和中速行驶情况,这与中国城市交通中频繁的启停和较低的平均车速相适应。

三、续航表现差异

  1. 一般情况下,同一辆车在 WLTC 标准下的续航里程会比在 CLTC 标准下的续航里程更短。

    • 这是因为 WLTC 测试工况更加严格,涵盖了更多高速行驶和急加速、急减速的情况,车辆的能耗相对较高。

    • 例如,一些电动汽车在 CLTC 续航里程下可能标称能行驶 500 公里,但在 WLTC 续航里程下可能只有 400 多公里。

  2. CLTC 续航里程在一定程度上可能会给消费者带来较为乐观的预期。

    • 由于其更侧重于城市低速行驶,对于那些主要在城市道路行驶的用户来说,CLTC 续航里程可能更接近实际使用情况。

    • 但如果用户经常进行高速行驶或长途驾驶,那么实际续航里程可能会与 CLTC 标称值有较大差距。

上面就是为大家分享的WLTC和CLTC,当然有的同学可能还了解过NEDC(新欧洲驾驶周期),其中NEDC主要用于欧洲市场,所以这里不做赘述。我们目前需要了解文中两个即可。

/** * 混合动力 CLTC 续航里程 */ private static void initCltcTotalRemainingRange() { initMileage( () -> BatteryManager.getInstance().getCltcTotalRemainingRange(), "CltcTotalRemainingMileage", AtomConstant.CLTC_TOTAL_REMAINING_MILEAGE ); } private static void subscribeCltcTotalRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeCltcTotalRemainingRange(callback), "CltcTotalRemainingMileage", AtomConstant.CLTC_TOTAL_REMAINING_MILEAGE ); } /** * 纯电 综合 续航里程 */ private static void initElectricRemainingMileage() { initMileage( () -> BatteryManager.getInstance().getRemainingMileage(), "ElectricRemainingMileage", AtomConstant.ELECTRIC_REMAINING_MILEAGE ); } private static void subscribeElectricRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeRemainingMileage(callback), "ElectricRemainingMileage", AtomConstant.ELECTRIC_REMAINING_MILEAGE ); } /** * 纯电 WLTC 续航里程 */ private static void initWltcElectricRemainingMileage() { initMileage( () -> BatteryManager.getInstance().getWltcRemainingRange(), "WltcElectricRemainingMileage", AtomConstant.WLTC_ELECTRIC_REMAINING_MILEAGE ); } private static void subscribeWltcElectricRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeWltcRemainingRange(callback), "WltcElectricRemainingMileage", AtomConstant.WLTC_ELECTRIC_REMAINING_MILEAGE ); } /** * 纯电 CLTC 续航里程 */ private static void initCltcElectricRemainingMileage() { initMileage( () -> BatteryManager.getInstance().getCltcRemainingRange(), "CltcElectricRemainingMileage", AtomConstant.CLTC_ELECTRIC_REMAINING_MILEAGE ); } private static void subscribeCltcElectricRemainingMileage() { subscribeMileage( callback -> BatteryManager.getInstance().subscribeCltcRemainingRange(callback), "CltcElectricRemainingMileage", AtomConstant.CLTC_ELECTRIC_REMAINING_MILEAGE ); } 这段代码格式化后给我
09-30
/** * 混合动力 Cltc 续航里程 数据初始化 */ private static void initCltcTotalRemainingRange() { int value; try { float level = BatteryManager.getInstance().getCltcTotalRemainingRange(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initTotalMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init TotalMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.CLTC_TOTAL_REMAINING_MILEAGE, value); } /** * 混合动力 Cltc 续航里程 订阅 */ private static void subscribeCltcTotalRemainingMileage() { try { BatteryManager.getInstance().subscribeCltcTotalRemainingRange(new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float signal) { LogUtil.info(TAG, "TotalRemainingMileageChanged, value: " + signal); int value = (int) Math.floor(signal); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.CLTC_TOTAL_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error(TAG, "subscribeTotalRemainingMileage error, " + "zoneId: " + zoneId + ", errorCode: " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeWltcTotalRemainingMileage catch Exception: " + e.getMessage()); } } /** * 纯电 综合 续航里程 数据初始化 */ private static void initElectricRemainingMileage() { int value; try { float level = BatteryManager.getInstance().getRemainingMileage(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initElectricRemainingMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init ElectricRemainingMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.Electric_REMAINING_MILEAGE, value); } /** * 纯电 综合 纯电续航里程 订阅 */ private static void subscribeElectricRemainingMileage() { try { BatteryManager.getInstance().subscribeRemainingMileage(new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float aFloat) { LogUtil.info(TAG, "The ElectricRemainingMileageChanged, value is " + aFloat); int value = (int) Math.floor(aFloat); AtomAbilityManagement.saveCockpitAttribute( AtomConstant.Electric_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error( TAG, "subscribeElectricRemainingMileage onFloatErrorSignal, " + "the zoneId is " + zoneId + ", the errorCode is " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeElectricRemainingMileage catch Exception: " + e.getMessage()); } } /** * 纯电 Wltc 续航里程 数据初始化 */ private static void initWltcElectricRemainingMileage() { int value; try { float level = BatteryManager.getInstance().getWltcRemainingRange(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initWltcElectricRemainingMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init WltcElectricRemainingMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.WLTC_Electric_REMAINING_MILEAGE, value); } /** * 纯电 Wltc 续航里程 订阅 */ private static void subscribeWltcElectricRemainingMileage() { try { BatteryManager.getInstance().subscribeWltcRemainingRange(new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float aFloat) { LogUtil.info(TAG, "The WltcElectricRemainingMileageChanged, value is " + aFloat); int value = (int) Math.floor(aFloat); AtomAbilityManagement.saveCockpitAttribute( AtomConstant.WLTC_Electric_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error( TAG, "subscribeWltcElectricRemainingMileage onFloatErrorSignal, " + "the zoneId is " + zoneId + ", the errorCode is " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeWltcElectricRemainingMileage catch Exception" + e.getMessage()); } } /** * 纯电 Cltc 续航里程 数据初始化 */ private static void initCltcElectricRemainingMileage() { int value; try { float level = BatteryManager.getInstance().getCltcRemainingRange(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initCltcElectricRemainingMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init CltcElectricRemainingMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.CLTC_Electric_REMAINING_MILEAGE, value); } /** * 纯电 Cltc 续航里程 订阅 */ private static void subscribeCltcElectricRemainingMileage() { try { BatteryManager.getInstance().subscribeCltcRemainingRange( new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float aFloat) { LogUtil.info(TAG, "The CltcElectricRemainingMileageChanged, value is " + aFloat); int value = (int) Math.floor(aFloat); AtomAbilityManagement.saveCockpitAttribute( AtomConstant.CLTC_Electric_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error( TAG, "subscribeCltcElectricRemainingMileage onFloatErrorSignal, " + "the zoneId is " + zoneId + ", the errorCode is " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeCltcElectricRemainingMileage catch Exception" + e.getMessage()); } } /** * 燃油 综合 续航里程 数据初始化 * CLTC_Fuel_REMAINING_MILEAGE */ private static void initFuelRemainingMileage() { int value; try { float level = BatteryManager.getInstance().getCltcFuelRemainingRange(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initFuelRemainingMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init FuelRemainingMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.Fuel_REMAINING_MILEAGE, value); } /** * 燃油 综合 续航里程 订阅 */ private static void subscribeFuelRemainingMileage() { try { BatteryManager.getInstance().subscribeCltcFuelRemainingRange( new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float aFloat) { LogUtil.info(TAG, "The FuelRemainingMileageChanged, value is " + aFloat); int value = (int) Math.floor(aFloat); AtomAbilityManagement.saveCockpitAttribute( AtomConstant.Fuel_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error( TAG, "subscribeFuelRemainingMileage onFloatErrorSignal, " + "the zoneId is " + zoneId + ", the errorCode is " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeCltcFuelRemainingMileage catch Exception" + e.getMessage()); } } /** * 燃油 Wltc 续航里程 数据初始化 */ private static void initeWltcFuelRemainingMileage() { int value; try { float level = BatteryManager.getInstance().getWltcFuelRemainingRange(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initWltcFuelRemainingMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init WltcFuelRemainingMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.CLTC_Fuel_REMAINING_MILEAGE, value); } /** * 燃油 Wltc 续航里程 订阅 */ private static void subscribeWltcFuelRemainingMileage() { try { BatteryManager.getInstance().subscribeWltcFuelRemainingRange( new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float aFloat) { LogUtil.info(TAG, "The WltcFuelRemainingMileageChanged, value is " + aFloat); int value = (int) Math.floor(aFloat); AtomAbilityManagement.saveCockpitAttribute( AtomConstant.CLTC_Fuel_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error( TAG, "subscribeCltcFuelRemainingMileage onFloatErrorSignal, " + "the zoneId is " + zoneId + ", the errorCode is " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeCltcFuelRemainingMileage catch Exception" + e.getMessage()); } } /** * 燃油 Cltc 续航里程 数据初始化 */ private static void initCltcFuelRemainingMileage() { int value; try { float level = BatteryManager.getInstance().getCltcFuelRemainingRange(); value = (int) Math.floor(level); } catch (Exception e) { LogUtil.error(TAG, "initCltcFuelRemainingMileage catch exception" + e.getMessage()); value = ConstantUtil.INVALID_SIGNAL_VALUE; } LogUtil.info(TAG, "Get the init CltcFuelRemainingMileage is " + value); AtomAbilityManagement.saveCockpitAttribute(AtomConstant.CLTC_Fuel_REMAINING_MILEAGE, value); } /** * 燃油 Cltc 续航里程 订阅 */ private static void subscribeCltcFuelRemainingMileage() { try { BatteryManager.getInstance().subscribeCltcFuelRemainingRange( new FloatSubscribeCallback() { @Override public void onFloatChangeSignal(Float aFloat) { LogUtil.info(TAG, "The CLTCFuelRemainingMileageChanged, value is " + aFloat); int value = (int) Math.floor(aFloat); AtomAbilityManagement.saveCockpitAttribute( AtomConstant.CLTC_Fuel_REMAINING_MILEAGE, value); } @Override public void onFloatErrorSignal(int zoneId, int errorCode) { LogUtil.error( TAG, "subscribeCltcFuelRemainingMileage onFloatErrorSignal, " + "the zoneId is " + zoneId + ", the errorCode is " + errorCode); } }); } catch (Exception e) { LogUtil.error(TAG, "subscribeCltcFuelRemainingMileage catch Exception" + e.getMessage()); } } 这段代码重复的部分可以抽出来吗
09-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值