当前位置:首页>自动驾驶>商用车端到端自动驾驶详解(下):控制、换挡与执行闭环

商用车端到端自动驾驶详解(下):控制、换挡与执行闭环

  • 2026-07-29 08:16:40
商用车端到端自动驾驶详解(下):控制、换挡与执行闭环

上篇讲到,端到端模型最终不应该只吐出一个模糊的“往前开”,而应输出未来几秒的轨迹、速度、行为意图或代价。下篇进入更硬的部分:控制层如何把这条轨迹兑现成真实车辆动作。对商用车来说,控制不是“油门、刹车、方向盘”三个滑块,而是一整套闭环:轮端力怎么算,动力和制动怎么分配,转向角怎么限速,转向灯什么时候开关,挡位什么时候提前切换,TCU 回报什么才算成功,失败时如何降级。

为了把这件事讲透,我们用一个贯穿案例:一辆 40 吨牵引车带挂车在 80km/h 高速巡航,前方 1.5% 上坡且有慢车,需要提前判断是否并线、是否维持速度、是否降挡、是否打开转向灯、是否能在目标车道稳定居中。这个场景看起来很日常,却足以把感知、决策、规划、控制、换挡和执行反馈全部串起来。

图 1:Arnold NextG 的 Drive-by-Wire 测试车辆资料图:自动驾驶算法必须通过线控执行层才能真正控制油门、制动和转向。 图片来源:https://www.arnoldnextg.com/company/blog/the-symbiosis-why-drive-by-wire-and-autonomy-are-inseparable

一、控制层的位置:它是自动驾驶的肌肉和反射弧

控制层收到的不是原始图像,而是规划层输出的轨迹。轨迹一般包含未来每个时刻的 x、y、航向、曲率、速度、加速度,有时还带目标车道、行为状态、让行关系、停止线、转向灯请求和换挡建议。控制层要做的第一件事,是比较“我现在在哪里”和“轨迹希望我在哪里”。横向误差 e_y、航向误差 e_ψ、速度误差 e_v、加速度误差 e_a,是控制器最常看的量。

然后控制层会分成纵向和横向两条主线。纵向负责速度、加速度、驱动力、制动力、挡位和能量回收;横向负责方向盘角、前轮角、横摆率、横向位置和车道居中。商用车还要加一层“执行协调”:同一个减速度可以来自发动机制动、缓速器、EBS 服务制动和挂车制动;同一个加速度可以来自发动机扭矩、电机扭矩或挡位变化;同一个并线动作既要转向,又要提前打转向灯,还要保证挂车扫掠空间。

所以控制层不是模型的附属品。它是把神经网络输出变成机械动作的翻译器,也是最后一道快速反射弧。模型慢一点可以容忍,控制闭环不能慢;模型偶尔不确定可以降级,制动命令必须明确;规划可以表达意图,执行器只认有限、带单位、带超时的命令。

二、纵向控制:先算轮端力,再决定油门还是制动

纵向控制最朴素的目标,是让车速跟上规划速度。但工程上不能只做 PID 调速,因为车要面对坡度、风阻、滚阻、质量变化、挡位变化、制动滞后和发动机/电机扭矩边界。更好的做法是先估算目标轮端力,再把轮端力分配给驱动、制动和挡位。

Fx,req = ma + mgsinθ + Crrmg + 1/2 ρCdAv2
Tw,req = Fx,reqrw

这两个公式的意思很直白:你想让车产生某个加速度,就要克服车辆惯性、坡度、滚阻和空气阻力;需要的轮端力乘以轮胎半径,就是轮端扭矩。端到端规划如果希望车在上坡还继续加速,控制层必须检查当前动力总成能不能提供这么多轮端扭矩。提供不了,就不能硬跟踪;要么提前降挡,要么降低加速度目标,要么拉大跟车距离。

图 2:纵向控制先把规划加速度转换成轮端力和轮端扭矩,再决定驱动、制动和换挡。

变量工程含义单位典型来源
m整车质量,含货物和挂车kg称重、气囊压力估计、车队装载信息
v车辆纵向速度m/s轮速、GNSS/INS 融合
a规划目标加速度m/s²速度规划或 MPC
θ道路坡度角-地图坡度、IMU、长期估计
Crr滚动阻力系数-轮胎/路面经验值
T_w轮端扭矩N·m纵向控制计算结果

实际控制器会在前馈和反馈之间做组合。前馈来自上面这种车辆模型,它提前补偿坡度、风阻和滚阻;反馈来自速度误差和加速度误差,用 PID、LQR 或 MPC 修正模型误差。商用车常见做法是前馈给出基础驱动/制动需求,反馈慢慢修,限幅器保证踏板、扭矩、制动压力变化率不会让车辆顿挫。

三、油门怎么给:不是踏板百分比,而是驱动扭矩请求

在传统车上,驾驶员踩油门,发动机 ECU 根据踏板位置、转速、负荷、排放和变速箱状态决定喷油或电机扭矩。自动驾驶系统接管后,最理想的接口不是“模拟一个脚去踩踏板”,而是通过车辆接口请求目标扭矩、目标加速度或虚拟踏板。不同平台开放程度不同:有的通过 J1939 或专用 CAN 请求发动机扭矩,有的通过线控套件转成踏板传感器信号,有的新能源平台直接给 VCU 目标轮端扭矩。

控制层给油门时通常遵循四个约束。第一,不能超过轮胎附着和舒适性限制;第二,不能超过发动机/电机当前转速下可用扭矩;第三,不能与换挡过程冲突,换挡时要先卸载扭矩;第四,不能与制动同时打架,除非是特定的坡道保持或扭矩填充策略。

油门是否到位,不是看命令发出去了没有,而是看反馈是否收敛。典型反馈包括发动机实际扭矩百分比、发动机转速、电机实际扭矩、车速、纵向加速度、驱动轴扭矩估计。控制器会判断:目标加速度和实际加速度误差是否小于阈值,扭矩响应是否在允许时间内到达,车速是否按预期变化,是否有发动机限扭、热保护、牵引力控制介入或通信超时。

图 3:Knorr-Bremse 电子制动控制产品图。EBS 能把制动意图转成轴/轮侧压力控制,并向自动驾驶提供可控的制动执行路径。 图片来源:https://truck.knorr-bremse.com/en/de/products/brake-control/electronic-braking-control/

四、制动怎么给:EBS、气压滞后和挂车协调

商用车制动控制的难点在于,它不是一个理想的“刹车百分比”。许多重卡使用电控气压制动,EBS 接收制动意图后计算各轴压力,再通过电控气压调制器建立压力。挂车还要通过牵引车-挂车接口协调制动力。也就是说,从制动命令到车轮产生制动力之间,有电控延迟、阀体延迟、气压建立、制动器热状态、轮胎附着和 ABS/ESP 介入。

规划层如果要求很急的减速度,控制层要先判断是否可实现。低附着路面、大质量、长下坡、制动热衰退、挂车负载变化都会改变可用减速度。控制器通常会把目标减速度分解为缓速器/再生制动、发动机制动、服务制动和挂车制动。目标是既要安全减速,又要减少制动磨损和挂车推头。

制动到位的判定通常看三类反馈。第一是运动反馈:实际减速度、车速下降率、轮速一致性。第二是系统反馈:制动压力、EBS 状态、ABS/ESP 是否介入、气压是否足够。第三是安全反馈:轮胎是否接近抱死、横摆率是否异常、挂车是否出现不稳定迹象。如果命令给了但减速度不上来,控制层不能继续假设车会按轨迹停下,必须立刻重规划或触发降级。

图 4:Bendix 电控气压制动系统资料图。商用车制动仍然有气压、阀体、管路和挂车耦合,控制层必须考虑响应滞后和冗余。 图片来源:https://www.bendix.com/en/products/vehicle-dynamics/electropneumatic-braking-systems-ebs/

五、横向控制:从轨迹曲率到前轮角

横向控制负责让车辆沿着规划轨迹走。经典方法包括 Pure Pursuit、Stanley、LQR 和 MPC。Pure Pursuit 像“追前方一个预瞄点”,实现简单、鲁棒性好;Stanley 同时考虑横向误差和航向误差,曾用于高速越野自动驾驶;MPC 则在预测窗口内优化未来一串控制量,可以同时考虑转向角、转向角速率、横向加速度和车辆稳定性约束。商用车高速场景常更偏向带约束的 MPC 或“前馈曲率 + 反馈修正”的组合。

δff ≈ arctan(Lκ)
δ = δff + Kyey + Kψeψ

第一条公式是曲率前馈:如果轨迹曲率是 κ,轴距是 L,车辆大致需要一个前轮角 δ_ff。第二条公式是反馈修正:横向偏了就修横向误差,车头方向不对就修航向误差。实际系统还会加上转向角限幅、角速度限幅、轮胎侧偏限制、横向加速度限制和执行器滞后补偿。

图 5:Bosch 商用车电动助力转向/转向执行器资料图。转向控制不是只给一个角度,还要处理速率、力矩、回正和故障降级。 图片来源:https://www.bosch-presse.de/pressportal/de/en/bosch-kompakt-268227.html

转向到位的判定也不是看方向盘角等于命令。更可靠的判据包括:前轮角或方向盘角是否跟踪目标,横摆率是否接近期望,横向误差 e_y 是否收敛,航向误差 e_ψ 是否收敛,转向角速度是否没有饱和,轮胎侧偏估计是否在安全范围。高速重卡如果只追求快速消除横向误差,容易造成横向加速度突变和挂车摆动;所以控制器宁愿慢一点,也要可预测、可恢复。

六、转向灯怎么给:行为状态机,而不是规划图上的装饰

转向灯是一个很小的执行器,却是自动驾驶系统与外部交通交流的重要信号。典型并线流程里,行为决策先进入“准备并线”状态,确认目标车道间隙、速度差、后车风险和法规允许;随后控制层向 BCM 发出左/右转向灯命令,并记录开始时间、闪烁次数和行为状态。许多策略会要求转向灯至少开启一段时间后才真正越线,具体阈值取决于法规、场景和公司策略。

取消转向灯也要靠状态判定。车辆中心越过车道线不代表并线完成,挂车尾部可能还在原车道。更稳妥的取消条件是:自车与挂车都在目标车道安全范围内,横向误差和航向误差收敛,行为状态从 LaneChange 退出到 LaneKeeping,且最短闪烁时间满足。如果 BCM 提供灯光反馈,系统应确认反馈状态;如果只提供命令接口,也至少要有命令回显和超时监控。

七、换挡为什么要提前做:挡位是纵向控制的一部分

很多人以为自动驾驶只控制油门、刹车和方向,挡位交给变速箱自己管就行。对乘用车低速城市场景,这种想法有时还能凑合;对商用车,尤其是柴油重卡或 AMT 重卡,挡位会直接决定轮端力、发动机转速、换挡中断时间、油耗和舒适性。自动驾驶规划层如果看见前方上坡、汇入、超车、限速变化,就应该把未来速度需求传给换挡策略,而不是等车已经掉速再被动降挡。

挡位选择本质上是一个约束优化问题:在未来几秒速度曲线和道路坡度已知的情况下,选择当前挡位、目标挡位和换挡时刻,使发动机/电机工作在合理转速区间,轮端力满足需求,换挡次数不要太多,换挡时的扭矩中断不会破坏安全距离。

Favail(g) = Teng(ω) · ig · i0 · η / rw

这里 g 是挡位,i_g 是该挡位速比,i_0 是主减速比,η 是传动效率,T_eng 是发动机在当前转速下可提供的扭矩。控制器会对每个候选挡位计算发动机转速是否在允许范围、可用轮端力是否大于需求、换挡是否会导致速度掉得过多。

图 6:自动换挡是一个带条件、反馈和超时的状态机。换挡成功必须由 TCU 和车辆运动反馈共同确认。

八、换挡过程怎么执行:从请求到成功确认

以 AMT 或自动变速箱为例,一个安全的自动换挡过程通常包含六步。第一,触发条件:控制层发现未来轮端力不足、发动机转速不合适、燃油经济性更优或规划动作需要更大扭矩。第二,安全检查:当前速度、坡度、跟车距离、横向动作、制动状态和发动机转速是否允许换挡。第三,扭矩卸载:控制层降低驱动扭矩,必要时请求发动机降扭,避免带载强行换挡。第四,发送目标挡位或目标范围请求。第五,监控 TCU 状态:Shift in Process、Selected Gear、Current Gear、输入轴/输出轴转速、离合器滑差或变矩器状态。第六,确认成功后按斜率恢复驱动扭矩,并把新的动力能力反馈给规划层。

成功判定不能只看 Selected Gear。Selected Gear 表示变速箱打算达到的目标档,Current Gear 才表示当前已经结合或上一已结合档。更稳妥的判据是:Current Gear 等于目标档,Shift in Process 为 0,输入轴/输出轴转速关系符合目标速比,离合器滑差下降到阈值以下,发动机转速没有越界,纵向加速度没有异常跳变。若超过时间还没满足,系统要进入换挡失败处理:保持安全距离、限制加速、必要时降级到最小风险动作。

九、J1939/CAN 反馈:自动驾驶不是单向发命令

商用车底盘通信常见 SAE J1939。J1939 用 PGN 表示一组报文,用 SPN 表示具体信号。变速箱、发动机、制动、车速、踏板、故障码都会在不同 PGN/SPN 中出现。自动驾驶控制器不能只往外发命令,还要持续读取底盘反馈,形成闭环。

对象常见信号工程用途到位/异常判断
发动机/电机发动机转速、实际扭矩、负荷、踏板位置驱动力闭环、换挡前后转速校验扭矩未响应、限扭、过热、转速越界
变速箱 TCUSelected Gear、Current Gear、Shift in Process、输入/输出轴转速换挡请求与成功确认目标档未结合、换挡超时、滑差异常
EBS/制动制动压力、ABS/ESP 状态、轮速、气压减速度闭环和稳定性监控压力不足、ABS 介入、减速度不足
EPS/转向方向盘角、前轮角、转向角速率、故障状态轨迹跟踪和横向稳定角度饱和、速率不足、回差过大
BCM/灯光转向灯命令、回显、灯光故障并线/转弯意图表达灯未打开、灯故障、取消条件未满足

一个成熟系统会给每条关键报文加 freshness 检查:时间戳是否新鲜,序号是否连续,信号是否在物理范围内,是否出现 J1939 的无效值或错误值,通信周期是否超时。因为对于自动驾驶来说,旧的 Current Gear、旧的制动压力、旧的转向角都可能比没有数据更危险。

图 7:JTEKT 线控转向与备份电源系统资料图。真正的自动驾驶执行层需要控制器、执行器、通信和备份供电一起成立。 图片来源:https://www.jtekt.co.jp/e/news/2025/004779.html

十、执行器闭环:什么叫油门、刹车、转向灯“给到了”

“命令发出”不是“执行到位”。油门到位,意味着实际扭矩和纵向加速度在允许时间内接近目标;制动到位,意味着减速度和压力响应满足目标且稳定系统没有异常;转向到位,意味着前轮角、横摆率、横向误差和航向误差共同收敛;转向灯到位,意味着 BCM 接收并反馈灯光状态,且行为状态满足打开和取消条件;换挡到位,意味着目标档真实结合并且动力链恢复。

因此控制层每次下发命令都应该带着“期望响应”。例如 100ms 内扭矩应该开始变化,300ms 内加速度方向应该正确,1s 内速度误差应该下降;制动压力应该在某个延迟后建立,横向误差应该在预测窗口内下降,换挡应该在允许时间内结束。到位判定不是固定一个阈值,而是由执行器类型、车速、载荷、坡度和当前状态共同决定。

图 8:控制层必须为每类执行器建立命令、反馈、到位判定和超时降级。

十一、一个可执行的小计算:为什么 80km/h 上坡前要提前降挡

下面这个接近可执行的 Python 例子,把上文的轮端力和挡位选择串起来。它不是完整量产算法,但能帮助理解控制层如何把“上坡保持速度”翻译成“当前挡位是否够用”。

import math

m = 40000          # kg, 牵引车+挂车
v = 80 / 3.6       # m/s
a = 0.10           # m/s^2, 目标轻微加速
grade = 0.015      # 1.5% 上坡
Crr = 0.006
rho, CdA = 1.2, 7.0
rw = 0.50
T_eng = 1900       # Nm, 当前可用发动机扭矩
eta, i0 = 0.92, 2.64
gears = {11: 1.00, 10: 1.25, 9: 1.55, 8: 1.96}

F_req = m*a + m*9.81*grade + Crr*m*9.81 + 0.5*rho*CdA*v*v
wheel_rpm = v / (2*math.pi*rw) * 60
for g, ig in gears.items():
    rpm = wheel_rpm * i0 * ig
    F_avail = T_eng * ig * i0 * eta / rw
    print(g, round(rpm), round(F_avail), F_avail > F_req)

print(round(F_req))

示例结果可以这样理解:当前 11 挡轮端力不足,10 挡接近但裕度不够,9 挡能基本覆盖 1.5% 上坡和 0.10m/s² 目标加速度,同时发动机转速还在可接受范围;8 挡虽然轮端力更大,但可能让发动机转速过高。于是换挡策略会倾向提前降到 9 挡,或者在 9 挡仍无足够裕度时降低目标加速度。

注意,这个决策发生在车真正掉速之前。端到端世界模型看到前方坡道和交通流,规划层知道未来速度目标,控制层知道当前挡位和动力能力,于是系统可以提前换挡。等速度已经掉下来再降挡,跟车距离、汇入窗口和乘坐舒适性都可能变差。

图 9:PlusAI 与 International / TRATON 体系合作的工厂集成自动驾驶重卡展示图,说明 L4 商用车正在从改装样车走向主机厂集成。 图片来源:https://www.plus.ai/solutions/superdrive

十二、安全外壳:当模型和执行器意见不一致时,谁说了算

端到端系统必须有安全外壳。安全外壳不是反对模型,而是为模型定义边界:这条轨迹是否碰撞,是否超速,是否超过横向加速度,是否在 ODD 内,是否需要转向灯,制动是否可实现,当前执行器是否健康,通信是否正常。如果模型给出一个看似漂亮但不可执行的动作,安全外壳要拒绝或修正。

常见安全机制包括轨迹碰撞检查、控制命令限幅、互斥逻辑、双通道计算、状态机守卫、故障诊断、心跳监控和最小风险动作。比如油门和制动不能长期互相打架;换挡未完成时不能突然恢复大扭矩;转向执行器故障时不能继续执行激烈并线;制动压力不足时要扩大安全距离;定位不可信时要退出自动驾驶。

最小风险动作 MRM 是商用车必须认真设计的能力。它不是简单停车,而是根据场景选择安全降速、保持车道、打开双闪、靠右、进入应急停车、请求远程协助或停在安全区域。对重卡来说,随便停在高速主线并不一定安全,所以 MRM 也需要规划、控制和运营策略配合。

十三、调试一辆端到端商用车,看哪些日志字段

真正调车时,工程师不会只看一段视频。他会同时看模型输出、规划轨迹、控制误差、底盘反馈和故障码。尤其是控制问题,很多时候视频看起来只是“顿了一下”,日志里才知道是换挡扭矩卸载太早、EBS 压力建立慢、转向角速率饱和、目标轨迹曲率突变,还是 J1939 报文超时。

日志字段为什么重要
trajectory_id / timestamp确认控制器跟踪的是哪一条轨迹,是否跟踪旧轨迹
v_ref, a_ref, curvature_ref速度、加速度、曲率是否突然跳变
e_y, e_psi, e_v横向、航向、速度误差是否收敛
throttle_cmd, brake_cmd, steering_cmd命令是否被限幅或互相冲突
actual_torque, brake_pressure, steering_angle执行器实际响应是否到位
selected_gear, current_gear, shift_in_process换挡是否进入、是否结束、是否成功
abs_active, esp_active, fault_code稳定系统或故障是否介入
sensor_health, localization_quality控制问题是否其实来自感知/定位不可信

一个好用的自动驾驶系统,调试日志应该能复盘“为什么下了这个命令、执行器怎么响应、系统如何判断成功或失败”。这也是端到端工程落地的关键:模型可以复杂,但每一次危险动作都必须能被解释到足够工程层级。

十四、下篇小结:端到端的最后一公里是控制工程

商用车端到端自动驾驶的上半场,是让模型理解世界并给出合理轨迹;下半场,是让控制工程把轨迹兑现成油门、制动、转向、灯光和挡位。没有上半场,车辆不知道该往哪里开;没有下半场,车辆知道得再多也开不稳。真正可商用的系统,必须把端到端模型、车辆动力学、线控执行、J1939/CAN 反馈、安全状态机和数据闭环放在同一张图里。

如果只记住一个判断标准,可以这样问:系统是否知道自己想做什么,是否知道车辆能不能做到,是否能通过反馈证明已经做到,做不到时是否知道怎样安全退出。能回答这四个问题,端到端自动驾驶才从算法演示进入商用车工程。

参考资料

[1] Arnold NextG: Why Drive-by-Wire and Autonomy Are Inseparablehttps://www.arnoldnextg.com/company/blog/the-symbiosis-why-drive-by-wire-and-autonomy-are-inseparable

[2] New Eagle Autonomous Machines / Drive-by-Wire Kitshttps://neweagle.net/autonomous-machines/

[3] Robotics Knowledgebase: Drive-by-wire Conversion for Autonomous Vehiclehttps://roboticsknowledgebase.com/wiki/actuation/drive-by-wire/

[4] Knorr-Bremse Electronic Braking Controlhttps://truck.knorr-bremse.com/en/de/products/brake-control/electronic-braking-control/

[5] Bendix Electropneumatic Braking Systemshttps://www.bendix.com/en/products/vehicle-dynamics/electropneumatic-braking-systems-ebs/

[6] Bosch commercial vehicle solutionshttps://www.bosch-presse.de/pressportal/de/en/bosch-kompakt-268227.html

[7] JTEKT Steer-by-Wire System and Backup Power Supplyhttps://www.jtekt.co.jp/e/news/2025/004779.html

[8] PCS J1939 Communication for Automatic Transmission Controllerhttps://powertraincontrolsolutions.com/download/Released/Public/Developer_Files/PCS%20J1939%20Messages%20v2_1.pdf

[9] CSS Electronics: J1939 Explainedhttps://www.csselectronics.com/pages/j1939-explained-simple-intro-tutorial

[10] Testing and Assessment of a Full-Scale J1939 Network Modelhttps://rosap.ntl.bts.gov/view/dot/145/dot_145_DS1.pdf

[11] Pure Pursuit implementation technical report, CMUhttps://publications.ri.cmu.edu/storage/publications/pub_files/pub3/coulter_r_craig_1992_1/coulter_r_craig_1992_1.pdf

[12] Stanley trajectory tracking control paperhttps://ai.stanford.edu/~gabeh/papers/hoffmann_stanley_control07.pdf

[13] PlusAI SuperDrive 官方页面https://www.plus.ai/solutions/superdrive

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-31 08:46:02 HTTP/2.0 GET : https://e.mffb.com.cn/a/533752.html
  2. 运行时间 : 0.196234s [ 吞吐率:5.10req/s ] 内存消耗:4,415.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=491a0062e9903595f35b8bbda1c1e2b8
  1. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/runtime/temp/600e51726691ba7063b44bb89d9aaaff.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/e.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001109s ] mysql:host=127.0.0.1;port=3306;dbname=e_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001492s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.003817s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003388s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001356s ]
  6. SELECT * FROM `set` [ RunTime:0.000626s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001603s ]
  8. SELECT * FROM `article` WHERE `id` = 533752 LIMIT 1 [ RunTime:0.001112s ]
  9. UPDATE `article` SET `lasttime` = 1785458762 WHERE `id` = 533752 [ RunTime:0.004013s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000617s ]
  11. SELECT * FROM `article` WHERE `id` < 533752 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001077s ]
  12. SELECT * FROM `article` WHERE `id` > 533752 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001054s ]
  13. SELECT * FROM `article` WHERE `id` < 533752 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001988s ]
  14. SELECT * FROM `article` WHERE `id` < 533752 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001858s ]
  15. SELECT * FROM `article` WHERE `id` < 533752 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005055s ]
0.200037s