当前位置:首页>自动驾驶>论文精读:面向自动驾驶汽车的4D汽车雷达感知 —— 一种稀疏性导向的方法

论文精读:面向自动驾驶汽车的4D汽车雷达感知 —— 一种稀疏性导向的方法

  • 2026-05-07 23:15:09
论文精读:面向自动驾驶汽车的4D汽车雷达感知 —— 一种稀疏性导向的方法

论文精读:面向自动驾驶汽车的4D汽车雷达感知 —— 一种稀疏性导向的方法

P. Chen, Z. Cao, Z. Chen and X. Wang, "Off-Grid DOA Estimation Using Sparse Bayesian Learning in MIMO Radar With Unknown Mutual Coupling," in IEEE Transactions on Signal Processing, vol. 67, no. 1, pp. 208-220, 1 Jan.1, 2019, doi: 10.1109/TSP.2018.2881663.

1. 论文要解决的问题

自动驾驶需要的不是仅能看到东西的雷达,而是能把目标在四个维度上分清楚的雷达。这里的四维是距离、径向速度、多普勒对应的慢时间维,以及方位角与高度角。而 4D 成像雷达若想同时在这几个维度上做到高分辨率,必须同时拥有足够大的有效带宽、足够长的相干处理时间以及足够大的二维阵列孔径;但现实中的车载雷达又被严格限制在小体积、低成本、低功耗和强互扰环境里,所以“高分辨率”与“可量产”之间天然存在矛盾。因此,作者提供了一种新的思路,即把“稀疏”变成一种资源配置策略:在频谱上做稀疏,在阵列上也做稀疏,再利用结构化恢复把稀疏带来的损失补回来。

更具体地说,这篇论文从两条主线进行论述。第一条是频率维:每个发射天线不再连续扫满带宽,而是发射随机稀疏步进频率波形 RSSFW,从而在只占用一部分频谱的情况下合成出很大的有效带宽;第二条是空间维:发射阵列与接收阵列都不做满阵,而是利用 MIMO 的虚拟阵列机制合成大孔径的稀疏阵列,再通过 Hankel 或块 Hankel 的低秩矩阵补全恢复成等效的满阵响应。前者服务于高距离分辨率与抗雷达互扰,后者服务于高方位/高程分辨率与弱目标可检测性。

2. 为什么高程分辨率是汽车雷达必须具备的能力

图一:道路上同时出现一个很矮的小金属罐,以及跨在路面上方的钢结构人行桥,汽车则从远处驶来,雷达波束朝前方和上方展开。这个图的重点不是“前方有两个障碍物”,而是“这两个目标在驾驶决策上完全相反”:饮料罐属于应该安全碾过的低矮目标,而人行桥属于应该从下面穿过的高架结构。如果雷达缺少高程分辨率,它很可能把二者都视为前方静止阻挡物,从而导致错误制动或路径规划。drive-over 和 drive-under 这两类能力,都依赖目标高度信息,而传统仅能较粗糙估计高程的汽车雷达会把这些物体误视为静止遮挡物。

从这个角度看,这篇论文在思考一个很具体的自动驾驶问题:如何让低成本毫米波雷达在保留全天候优势的同时,逐步接近 LiDAR 式的点云分辨能力。作者的思路是,既然二维满阵代价太高,就用二维稀疏 MIMO 阵列加低秩恢复来逼近二维满阵。作者把最终目标描述为“以远低于 LiDAR 的成本提供接近 LiDAR 分辨率的点云,同时对天气更鲁棒”。

3. 总体技术路线

作者的总体路线可以压缩成下面这条链条:

其中,RSSFW 用来在少占频谱的前提下合成大有效带宽,最优化权重用来压制距离旁瓣,DDM 用来保证多发射通道之间的正交性,而二维稀疏阵列补全则用来抑制方位和高程谱中的高旁瓣,并支持无栅格的角度估计。文中特别强调,这套方法适合车载环境的一个核心原因是:目标先在距离-多普勒域被分离,然后再对同一个 range-Doppler bin 上的一帧阵列快照做角度恢复;也就是说,作者是在尽量利用“单快照可用”的方案,而不是依赖大量快照去先估协方差。

4. RSSFW:频率维的稀疏设计

在频率维上,作者考虑的是一组脉冲,其载频不是连续铺满全部频点,而是从总共  个可用频点里只选择其中  个发射。文中把这组稀疏载频记为

并指出最大无模糊距离和距离分辨率分别为

其中距离分辨率是由整个可合成的有效带宽 决定的,而不是由单个脉冲的瞬时带宽决定;因此即便只用稀疏的一部分频点,仍然可以保留大带宽带来的距离分辨力。第  个脉冲的单位能量发射信号写成

这里  是脉冲宽度, 是 burst 周期,一个 CPI 内共有  个 burst 周期。

对第  个目标,若其距离随时间近似为

则解调后的回波写成

对所有目标求和后,原文进一步把它整理成

其中

其中第一项里已经显式分离出“慢时间多普勒相位”和“步进频率造成的距离相位”,而第二项则是范围-多普勒耦合带来的残余相位。接着在后面提出一组工程假设,包括 、一个 CPI 内距离迁移可以忽略,以及一个小量条件  等,目的是让这些残余耦合足够小,从而可以稳定地做距离和多普勒估计。

5. 从回波到距离谱、再到多普勒谱

第 II-A 节中提到,虽然传统步进频率系统通常需要  个脉冲才能得到  的分辨率,但这里通过把未使用频点补零,再对一个 CPI 的快时间采样做  点 IDFT,仍然能获得同样的距离分辨力。对第  个 burst 的快时间数据列做 IDFT,可得

它的闭式表达本质上是一个带有 Dirichlet 核结构的和式;在小耦合假设下, 在

处达到最大,因此目标距离估计为

随后,对于每一个距离单元 ,再沿慢时间方向对  做  点 DFT:

这样就得到距离-多普勒二维谱。同时, 点 IDFT 和  点 DFT 会带来

的处理增益,这一点对后续角度估计非常重要,因为阵列补全与高分辨角度恢复都明显受益于更高的快照 SNR。

从图像上看,图 7 正是在展示这一步的结果。它给出两个三维距离-多普勒表面:上图是不加权时的谱面,下图是加权后的谱面。两者在目标距离附近都能看到明显的结构,但不加权时背景起伏更大,在目标距离对应位置还横贯整个多普勒轴出现一条比较平的 ridge;作者解释说,这条 ridge 是其它发射天线在慢时间解调后的残余泄漏。加权之后,这条 ridge 仍然存在,但整体背景和旁瓣显著更低。

图 8 则把固定 Doppler bin 上的距离谱抽出来看,可以更直观地看到:不加权时主峰附近和远离主峰的位置都存在较高旁瓣,而加权后旁瓣地板明显下降。

6. 为什么还要做最优化权重

稀疏频谱的最大副作用就是距离旁瓣会抬高。原文在第 II-B 节有提到:由于载频是“均匀划分后随机抽取”的,距离谱会出现较高旁瓣,从而让弱小 RCS 目标被强目标的旁瓣淹没。因此作者没有直接采用计算代价更高、并且有 off-grid 问题的 CS 重建,而是提出了一个更简单的替代:对每个已使用频点施加复权重 ,使得加权后的快时间 IDFT

在整个旁瓣区域上尽量低。进一步把它写成一个凸优化问题:先把无模糊距离区间离散成细网格,构造距离导向向量 ,然后通过最小化变量  来压制旁瓣峰值,约束形式为

subject to

其中  由允许的峰值旁瓣电平 PSL 决定。这一优化问题是凸的,可通过 CVX 求解。直觉其实很朴素:既然加权后的距离谱等价于“原始距离数据频响”和“权重频响”的卷积,那么就应当先把权重本身的频响做成低旁瓣。

图 6 就是在展示优化后的权重谱。画面上横轴是归一化频率,纵轴是谱幅度,主瓣在中心附近形成单个尖峰,而大部分旁瓣都被压在较低水平。对应的定量结论是:该权重谱在整个旁瓣区间上被压到大约  dB 以下。

图 9 则体现了这个设计的实际价值:当一个强目标位于  m、一个弱目标位于  m,且后者功率只有前者的  时,不加权会让强目标的高旁瓣把弱目标盖住;而在做了 PSL 最小化后,弱目标能被稳定地分辨出来。

7. DDM:为什么论文用慢时间相位编码实现波形正交

论文第 II-C 节选择的不是传统 TDM,而是 Doppler-division multiplexing。做法是:所有发射天线在同一个 CPI 内同时发射相同的 RSSFW 稀疏频点集合,但给每个发射天线在慢时间上附加不同的相位编码:

解调时,先做距离 IDFT,再在慢时间上对各个发射通道做 Doppler 解调,最后对  个 burst 周期组成的向量做 DFT。这样设计的目标是让来自其它发射天线的残余能量尽量均匀地摊在整个 Doppler 轴上,而不要在某些特定 range bin 上形成尖锐干扰峰。更重要的是,这种慢时间相位编码不会改变 RSSFW 的有效带宽,因此不会损伤距离分辨率。

这也解释了为什么图 7 中会出现贯穿整个 Doppler 方向的一条较平的 ridge。它不是“处理失败”的标志,而是作者有意接受的一种残余形式:干扰被均匀摊薄,而不是集中在局部 bin 中形成假的强目标。这个设计选择符合车载 MIMO 的实际需求。

8. 一维稀疏阵列:图 2

图 2 上半部分画的是物理阵列:红色的 TX 和蓝色的 RX 被稀疏地布在一条水平半波长网格上,位置明显很不均匀;下半部分则是利用 MIMO 之后得到的虚拟阵列,其阵元总数更多,但仍然有大量“空洞”。给出的这个例子里,,因此总共只用了  个物理天线,却合成出一个有  个虚拟阵元、孔径为  的稀疏线阵。同时,由于发射和接收阵列都保持较稀疏,互耦也会比满阵更轻。

在这一维问题里,先把同一个 range-Doppler bin 上的虚拟阵列快照记作

其中  是稀疏线阵的阵列流形矩阵, 是目标幅度向量。随后,作者设想一个与之具有相同孔径、但用半波长间距填满的理想 ULA,其响应写成

事实上,论文真正要恢复的不是“目标角度参数本身”,而是对应满阵 ULA 的完整阵列响应 。换句话说,稀疏线阵只是满阵响应的一个欠采样版本。

9. 一维 Hankel 矩阵为什么天然低秩

把满阵 ULA 的响应按滑窗方式重排后,可以构造出一个 Hankel 矩阵 。对这个矩阵,论文给出最核心的结构式:

其中  是由各个目标方向对应的子阵流形向量堆叠成的 Vandermonde 型矩阵,。当子阵长度足够时,Hankel 矩阵的秩就是目标数 。这意味着只要同一个 range-Doppler bin 里需要分开的角目标数不多,Hankel 矩阵就是低秩的。于是,稀疏阵列产生的“孔洞补全”问题就变成了“低秩矩阵恢复”问题。

对应的恢复模型被写成标准的核范数松弛:

有噪声时则是

这里  是由稀疏阵列几何决定的观测条目集合。作者随后用 SVT 算法求解,并指出一旦恢复出完整 Hankel 矩阵,就可以通过反对角线平均重构出完整 ULA 响应,再用 FFT、matrix pencil 或更高分辨的方法做角度估计。

10. 图 10:补全后的角谱

图 10 上是原始稀疏阵列直接做 FFT 后得到的方位谱,下则是矩阵补全之后、等效完整阵列做 FFT 的结果。两者都在正确的方位附近出现峰值,但差别非常明显:稀疏阵列的谱图在几乎整个视场上都铺着很高的旁瓣,两个真实峰淹没在起伏的背景上;补全后的角谱则在  和  附近出现两个清晰尖峰,而背景旁瓣明显被压低。论文还给出一个非常直观的增益估计:因为这里等效满阵有  个阵元,而稀疏虚拟阵列只有  个阵元,所以矩阵补全在这个仿真里大致对应

的阵列处理 SNR 提升。严格说这不是一个严格的最优界,而是作者给出的直观处理增益解释,但它可以很好说明了为什么补全后的角谱会“峰更尖、底更低”。

11. 二维稀疏阵列:图 3 和图 4

图 3 分上下两部分。上图是二维物理阵列:红色的 TX 与蓝色的 RX 点随机散布在一个矩形区域中,横轴与纵轴都以半波长为单位;下图则是由这组发射、接收位置经过 MIMO 叠加形成的二维虚拟阵列,点数大大增多,分布也更密,但仍然远不是满阵。论文给出的具体配置是:通过级联 4 个汽车雷达收发器,得到  个发射天线和  个接收天线,它们随机部署在

的矩形区域中,进而合成一个有  个虚拟阵元的二维稀疏阵列。整个物理尺寸大约是  cm。对应的虚拟阵列尺寸约为

据此给出方位与高程分辨率近似为

作者还把它与 Velodyne HDL-32E 的分辨率作比较,用来说明这种二维稀疏阵列的角度分辨能力已经相当接近车载 LiDAR 的量级。

图 4 则是二维几何关系图。坐标轴  在阵列平面内, 轴竖直向上,目标点位于空间中,作者同时标记了传统的方位角 、俯仰角 ,以及目标与  轴、 轴之间的夹角 。这张图的作用,是把二维 URA 的相位模型写成两个一维指数的可分离形式。也就是说,作者不是直接在  坐标中写阵列流形,而是引入  来得到更适合块 Hankel 化的代数表达。

12. 二维 URA 响应与块 Hankel 补全

在二维情形下,把 URA 上第  个阵元的响应用下面这个式子建模:

接下来,作者并没有直接对这个二维矩阵做补全,而是先把它“增强”为块 Hankel 矩阵 :先沿一个维度做小 Hankel 块,再把这些小块沿另一个维度按 Hankel 方式堆叠起来。原文给出结论:只要窗口长度满足

则块 Hankel 矩阵的秩就是 。于是二维补全被写成

有噪声时写成

在这里实现时仍然使用 SVT。这个思路的深层含义是:二维角域稀疏并不直接表现为“图像稀疏”,而是表现为“块 Hankel 增强矩阵低秩”。一旦抓住了这个低秩结构,就可以用统一的核范数框架去恢复对应的完整 URA 响应。

13. 为什么特别强调“单快照”

论文在引言里专门回顾了 difference coarray 路线,并指出它往往依赖多个快照来估计协方差矩阵;而在高度动态的汽车场景中,目标与自车位置都可能快速变化,一个 range-Doppler bin 上常常只剩下一帧快照可用。作者因此选择的是更适合单快照的 sum coarray 思路,并且把“array snapshot”明确定义为“同一个 range-Doppler bin 上所有虚拟阵元的阵列响应”。

14. 可恢复性:低秩还不够,还要看相干性

第 IV 节提到,补全能否成功不只取决于矩阵是否低秩,还取决于奇异子空间是否“足够分散”。这可以通过相干性来衡量:对 Hankel 矩阵  的左奇异子空间 ,相干性定义为

如果矩阵满足两组关于  和  的相干性条件,那么在一定随机采样条件下就能被准确恢复。更进一步,作者给出一个与目标最小空间频率分离度有关的定理:若目标之间的最小空间频率间隔满足 ,并且目标数不太多,则可以用 Fejér kernel

来上界相干性参数。原文的结果是:当

矩阵相干性参数可被控制在较小范围内,并且随着  增大, 会下降并趋近于 。直观上,这说明目标之间越分离、子阵长度越大,Hankel 补全越容易。

论文还进一步援引矩阵补全理论指出:当观测条目数  满足一个依赖于  的下界时,无噪声问题可以被唯一恢复;有噪声时也有对应的误差界。对于二维块 Hankel 的情形,作者同样给出带参数  的测量数条件与误差上界。虽然这些定理不是这篇论文原创,但它们在这里的作用非常重要:它们把“稀疏阵列 + 低秩补全”从经验方法变成了有可恢复性支撑的方法。

15. 图 5:为什么阵列拓扑本身也决定能不能补全

图 5 画了两个看上去“稀疏程度差不多”的稀疏线阵 SLA 1 和 SLA 2;下面则是它们对应的二部图  和 。画面上, 的左右两侧节点通过边构成一个连通图,而  则明显断成了几个部分。论文给出的结论是:虽然这两个阵列拥有相同的阵元数量和相同的总孔径,但从缺失 Hankel 条目恢复原矩阵时, 可以唯一恢复,而  会存在无穷多种补全。而对于唯一重建,采样算子对应的二部图必须是连通的;进一步地,足够大的谱隙也会帮助准确恢复。

这个结果特别值得强调,因为它说明“稀疏阵列设计”不是只看阵元数和孔径这两个指标。即使两种阵列在这两个指标上一模一样,它们也可能因为观测拓扑不同而一个可恢复、一个不可恢复。也就是说,阵列几何并不是单纯的物理布阵问题,同时也是一个图结构设计问题。

16. 数值结果:图 6 到图 12

可以从图六里面看到,优化后的稀疏权重在整个旁瓣区域上都被压到了约  dB 以下。

图 7 与图 8 展示的是同距离、同速度、不同角度的两个等功率目标。图 7 左栏中的两个三维谱面表明,不加权时距离-多普勒谱背景更高,而加权后更干净;图 8 把同一问题投影到距离谱后,能更直接看到旁瓣的显著降低。

图 9 则把问题变得更苛刻:两个目标分别在  m 和  m,且后者功率只有前者的 。在不加权时,弱目标被高旁瓣掩盖;加权后,弱目标重新露出来。作者据此说明,优化权重能在不引入高虚警概率的前提下显著提高弱目标探测能力。

图 10、图 11、图 12 则分别展示了一维和二维补全的收益。图 10 中,上图的稀疏阵列方位谱虽然还能看到真实方向附近的峰,但全场旁瓣很高;下图的补全满阵方位谱则在  和  位置形成明显尖峰,背景大幅降低。图 11 与图 12 则把这一现象扩展到二维:图 11 的二维稀疏阵列方位-高程谱在两个正确目标位置附近确实有峰,但整个视场都漂浮着高旁瓣;图 12 的补全满 URA 谱图中,这两个峰更加突出,而且整个视场的谱底明显塌下去。

在二维例子中, 个虚拟稀疏阵元对应的等效 URA 需要  个满阵元,稀疏阵列只占后者的 ;在这个设定下,补全带来的阵列处理 SNR 增益约为

这正是图 12 看起来比图 11“干净很多”的根本原因。

17. 整体评价

本人认为这篇文章最强的地方,不是单个公式,而是它给出了一整套面向车载场景的设计哲学:在频率域做稀疏,在空间域也做稀疏,再利用结构低秩把信息恢复回来。 这比单独谈某一种 waveform 或某一种 sparse array 更完整。尤其是作者有意识地避开了强依赖多快照协方差估计的路线,而把问题重心放在“先做 range-Doppler 分离,再对单快照阵列响应做恢复”,这使它在车载动态场景中更有现实意义。

当然,这篇论文也有很明确的前提条件。首先,同一个 range-Doppler bin 里需要恢复的目标数要相对较少,否则 Hankel 或块 Hankel 的低秩性会变差;其次,作者自己也强调角度恢复得益于前面的 IDFT/DFT 带来的高快照 SNR,这说明低 SNR 下恢复难度会明显上升;再次,SVT 的每次更新复杂度与观测条目数  有关,这意味着二维大规模块 Hankel 补全虽然理论上成立,但真正走到严格实时的车规实现时,仍然会面临计算代价压力。


附录:部分数学推导

附录 A. 从回波模型到距离峰值与 Doppler 峰值

这一节是对原文第 II-A 节公式  到公式  的中间步骤补写。原文已经给出回波模型、若干小耦合假设,以及 IDFT/DFT 形式;下面把关键代数链条连起来。

从原文的回波表达式出发,在对未使用频点补零,并令使用频点索引满足  后,可把第  个目标对应项写成

其中  吸收了公式  里由  等产生的范围-多普勒耦合残差项。假设 1)-4) 恰恰是在说明:在车载典型速度范围和系统参数下,这个残余相位可以被视为足够小,因此可以近似使用

于是总回波近似为

这一步的意思非常简单:距离信息主要被编码在频率索引  上,而速度信息主要被编码在慢时间索引  上。

对固定的  做  点 IDFT:

代入上式可得

内层是标准几何级数。令

因此

这就是距离谱里典型的 Dirichlet 核主瓣-旁瓣结构。主峰在  时出现,也就是

于是目标距离满足

这正是公式  后给出的距离恢复关系。

接下来,在正确的距离单元  处, 可以近似写成

因此再对慢时间做  点 DFT,

就得到另一个几何级数。峰值位置满足

所以速度分辨率与最大无模糊速度分别为

附录 B. 为什么一维 Hankel 矩阵具有 Vandermonde 分解

这一节补的是公式  之间的代数过渡。

先看理想满阵 ULA。若阵元间距为 ,第  个目标对应的空间相位基可以记为

则满阵响应的第  个样本可写成

若把这个一维序列重排成 Hankel 矩阵,定义

现在定义两个 Vandermonde 矩阵

以及

那么逐元素看就有

如果采用方阵 Hankel 或两侧窗口长度相同的特殊情形,就退化成论文写的

于是立刻得到

另一方面,只要各个  彼此不同,则  彼此不同,Vandermonde 列向量线性无关;当  时, 与  都满列秩,因此

所以,“同一 range-Doppler bin 内目标数少”就会直接变成“对应 Hankel 矩阵秩低”。这就是一维矩阵补全可行的根本原因。

附录 C. 图 4 中二维角度关系

原文在图 4 后引入了  与 ,并写出它们与传统方位/俯仰角  的关系。为了在实际实现中不混淆,在此把这个关系完整推一遍。

由图 4 的方向余弦关系,有

两式相除得到

因此可写为

再把两式平方后相加:

因此

从而

这就说明,作者引入  之后,并没有丢失  信息;它只是把二维阵列相位写成了更适合块 Hankel 分解的形式。

附录 D. 为什么二维块 Hankel 矩阵的秩仍然是 

这一节补的是公式  到 、再到“rank 为 ”之间的结构理由。原文给出了结论,但没有把 Kronecker 结构完全展开。

定义

则二维 URA 响应可写为

先沿第二维构造小 Hankel 块。对固定的 ,定义

则内层 Hankel 块  可以写成

因为对固定  本身就是一个 rank- 的外积,所以每个  都是这些 rank- 项的线性组合。

再沿第一维做块 Hankel 堆叠。定义

则整个块 Hankel 矩阵可写成

利用 Kronecker 外积恒等式

就得到

所以  被分解成了  个 rank- 外积项之和,从而

当各个  对彼此不同,且窗口长度满足原文要求的  时,相关 Kronecker 列向量保持线性无关,于是通常有

这就是二维块 Hankel 低秩性的本质来源。

附录 E. 图 5 为什么会出现“一个能补,一个不能补”

原文通过图 5 给出两个一维 rank- 的例子:同样的阵元数、同样的总孔径,但  能唯一补全, 不能。这里给一个更代数化的解释。

设真实矩阵是 rank- 的

如果采样图对应的二部图是连通的,那么只要给定一个已知观测条目,就能沿着图中的边不断传播约束,从而把  和  中所有坐标的相对比例都固定下来,除了一个全局尺度因子外不会再有自由度。这个全局尺度因子在 rank- 情形下本来就不可辨,但不会影响整体唯一性。

相反,如果二部图分裂成两个互不连通的连通分量  与 ,那么在  上我们可以对行因子和列因子同时做一组反向缩放,而不改变任何观测到的条目。也就是说,取任意非零常数 ,定义

则在所有已观测位置上,仍有

也就是说,观测数据根本分不清  还是别的值;一旦跨分量的未观测条目存在,它们就会因为这个自由缩放而发生变化,从而导致无穷多种补全。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-08 12:18:27 HTTP/2.0 GET : https://e.mffb.com.cn/a/486752.html
  2. 运行时间 : 0.079571s [ 吞吐率:12.57req/s ] 内存消耗:4,397.99kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=673861b5fe3ba549205e7b8915c35b38
  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.000628s ] mysql:host=127.0.0.1;port=3306;dbname=e_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000730s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000309s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000293s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000620s ]
  6. SELECT * FROM `set` [ RunTime:0.000222s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000528s ]
  8. SELECT * FROM `article` WHERE `id` = 486752 LIMIT 1 [ RunTime:0.001287s ]
  9. UPDATE `article` SET `lasttime` = 1778213907 WHERE `id` = 486752 [ RunTime:0.005171s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000253s ]
  11. SELECT * FROM `article` WHERE `id` < 486752 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000481s ]
  12. SELECT * FROM `article` WHERE `id` > 486752 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000389s ]
  13. SELECT * FROM `article` WHERE `id` < 486752 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000563s ]
  14. SELECT * FROM `article` WHERE `id` < 486752 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000671s ]
  15. SELECT * FROM `article` WHERE `id` < 486752 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001108s ]
0.081238s