性能评价指标体系与综合赋权方法)
简介《地面无人作战平台性能评价指标体系》是一份面向无人作战平台研发、需求论证与测试评估人员的PDF论文针对缺乏统一评价标准、不同单位间性能描述不一致的问题从平台内涵出发提出机动性、自主性和任务载荷性能三类基础维度并重点分析机动性与自主性的支撑指标及其度量思路尝试构建层次化性能评价体系。资源包共1个PDF文件大小约306KB正文涵盖研究现状、平台内涵、指标选取原则以及快速性、灵活性、通过性、环境感知、决策规划等具体指标讨论可帮助读者快速把握UGV性能评价框架为指标设计、方案交流与后续量化研究提供参考。已有93人学习适合从事地面无人平台论证、研制和测评的相关人员查阅。1. 从一张对不齐的选型参数表说起地面无人平台性能评价指标体系解决什么前阵子帮某实验室做设备选型评审三家供应商交上来的参数表格式完全不搭A 家写最大速度 32 km/hB 家写越野平均速度 18 km/hC 家干脆只留一句具备全地形机动能力。三张表摆在一张桌子上谁也说服不了谁最后靠的是谁嗓门大。地面无人平台UGV性能评价指标体系要解决的正是这个问题——把描述性语言换成带量纲、带测试条件的数再把这些数按层次聚合成一个能横向比较的综合得分。这份材料是文档型资源不是源码包。它围绕机动性、自主性、任务载荷性能三条主线搭出一棵三层树机动性和自主性各展开到 12 个可测叶节点每个叶节点都给了度量口径和量纲。做装备选型、研发阶段评审、试验大纲设计的人可以直接把它当模板套做仿真评测的人可以把它当成结算模型的字段清单。2. 三层树状结构机动性、自主性、任务载荷的拆法与边界2.1 为什么不照搬有人平台那套指标有人车辆的机动性评价已经非常成熟动力、传动、悬挂、制动一堆国标行标摆在那里测什么、怎么测都有定论。但把这套东西直接搬到无人平台上第一个卡住的就是自主性。早期一批研究把自主性切成 11 个等级另一批切成 10 个等级看着挺细翻开一看每个等级只有一段文字描述——能够在有人监督下完成局部任务这种表述你没法代入数值算评审时还是靠人拍脑袋。这类等级制的通病是定级容易定分难。真正能让评审坐下来谈的是那种可以写进试验大纲、有明确量纲、换个测试场地还能复现的指标。这套指标体系走的是另一条路不追求给自主性定一个 0 到 10 的整数等级而是把它拆成感知、决策、执行、人员依赖四组每组再落成可以拿秒表、拿激光测距仪、拿日志文件算出来的量。好处是可审计坏处是采集成本高这个取舍后面第 5 章还会提到。至于任务载荷性能原文的处理方式很克制指标体系图上保留了任务载荷性能这个一级节点但明确说明不同类型的载荷之间缺乏可比性所以不做细化研究。这不是遗漏是刻意的边界划定。我做评审时一般会把载荷节点单独拎出来做一张附表只比同类载荷比如同为光电侦察吊舱才互相比较跨类比较直接判定为无意义。2.2 结构上的三条硬约束这棵树不是随便画的它有三条必须遵守的约束理解了这三条后面所有的实现细节都是自然推论。第一条父节点由子节点衡量。机动性这个节点本身没有数值它的数值完全来自快速性、灵活性、通过性、续航能力四个子节点而快速性的数值又完全来自最大直线速度和平均速度两个叶节点。整棵树里只有叶节点有实测数据中间节点和根节点都是算出来的不允许人工给中间节点打分——这是保证评价可复现的前提。第二条上层抽象、下层具体。靠上的指标综合性强、抽象程度高屏蔽了具体实现细节靠下的指标则完全贴着硬件和算法。这个特性带来的实际好处是可裁剪做一个快速筛选只跑到第二层就够了做一次完整验收才需要把 24 个叶节点全部测一遍。第三条评价过程自底向上。从叶节点开始逐层向父节点聚拢直到根节点得出综合结果。这意味着任何一个综合分都能向下追溯到自己是由哪几个实测值算出来的——评审会上被质疑时这条路就是你的后悔药。2.3 从需求文本到指标树的五步落地拿到一份需求书怎么把它变成上面这棵树我一般按五步走每步都有明确的产出物不走回头路。第一步锁定评价目的。是选型比价、阶段评审还是定型验收目的不同树的深度不同。选型比价砍到第二层就够验收必须四个叶节点组全覆盖。第二步从平台内涵反推支撑功能。平台要机动就得有行走和动力子系统要自主就得有感知、规划、控制子系统要完成任务就得有载荷接口。第三步把每个支撑功能摊成可测项判断标准只有一条能不能在试验大纲里写出一句用某仪器在某条件下测某量。写不出来的继续往下拆。第四步做独立性检查两个叶节点如果强相关比如最大速度和最大爬坡度在很多底盘上是同源的就得考虑合并或者降权。第五步给每个叶节点标注量纲、测试条件、数据来源。层级节点示例是否可测数据来源根节点综合性能否聚合得出无一级机动性 / 自主性 / 任务载荷性能否聚合得出无二级快速性 / 灵活性 / 通过性 / 续航能力否聚合得出无三级最大速度、爬坡能力、越壕宽度……是场地试验三级环境建模精度、路径跟踪精度……是仿真 实车日志这张表看着简单实际落地时第五步最容易偷懒。我见过一份评审材料24 个叶节点里有 9 个的数据来源一栏写着厂家提供这种情况下综合得分再漂亮也没有说服力。数据来源必须能追到具体的试验报告编号或者日志文件路径否则这个叶节点就是空的。3. 12 12 个叶节点每一项到底拿什么仪器、按什么口径测3.1 机动性四组共 12 项量纲必须写死机动性这一支拆成四组一共 12 个叶节点。这 12 项的共同特点是测量手段成熟、场地要求明确翻车的点几乎全在测试条件没写死而不在测不出来。分组叶节点度量定义量纲快速性最大速度良好道路上能达到的最大行驶速度km/h快速性平均速度规定比例公路与越野路面混合路段的平均速度km/h灵活性加速性从起步加速到规定速度所需时间s灵活性转向性稳定转向时转向中心到车体纵向对称轴线的最小距离m灵活性制动性规定初速、规定水平路面紧急制动到停车的距离m通过性爬坡能力不用惯性冲坡能通过的最大纵向坡道角°通过性越墙高度垂直翻越坚实垂直墙的最大高度m通过性越壕宽度低速行驶能跨越的壕沟最大宽度m通过性涉水能力不用辅助器材能安全通过水障碍的最大深度m通过性软地面通过性通过软地面时的平均接地压力kg/m²续航最大行程一次加足油料或充满电按规定条件行驶的实际里程km续航连续工作时间平均工况下的最长连续工作时间h表里每一项后面的量纲不要小看。我见过两家把越障能力混着写的材料一家报的是越墙高度 0.4 m另一家报的是越壕宽度 1.2 m采购方看着 1.2 比 0.4 大直接选了后者结果实际需求是要翻越台阶。越墙和越壕是两回事前者考的是垂直攀爬后者考的是跨越合并成一个越障能力就是在制造歧义。3.2 自主性四组共 12 项公式比仪器更重要自主性这一支麻烦得多因为大部分指标没法用一台仪器直接读出来得靠公式算。四组分别是环境感知能力、决策能力、执行能力、人员依赖度一共 12 个叶节点。环境感知能力有 3 项。感知范围用扇形面积度量扇形圆心取平台中心半径取最远感知距离中心角取感知角度也就是 $S\frac{1}{2}r^2\theta$θ 用弧度。这个口径的好处是把看得远和看得宽统一成一个数坏处是对多传感器融合的平台不太公平——激光雷达和视觉的视场拼起来往往不是一个规整的扇形这时候我一般会取外包络或者分传感器分别报。环境建模精度用建图结果与真值地图的关联度度量。把两张栅格地图写成矩阵元素取值在 0 到 1 之间表示该栅格有障碍的概率关联度按下面的式子算$$\text{sim} 1 - \frac{1}{(m1)(n1)}\sum_{i0}^{m}\sum_{j0}^{n}\left|M_{ij} - R_{ij}\right|$$其中 $M$ 是建图结果$R$ 是真值地图。这个式子的物理含义很直白逐格比对障碍概率平均绝对误差越小关联度越接近 1。落地时最大的坑是两张图分辨率不一致必须先重采样对齐否则算出来的数没有任何意义。模型更新频率则用单位时间内的地图更新次数度量单位是次每秒。决策能力有 5 项规划与决策速度给定任务后自主完成一次规划决策的平均时间s、规划与决策正确率正确次数占总次数百分比、平台定位精度定位误差均方差m、路径规划正确率成功规划路径的百分比、路径更新频率单位时间路径更新次数。这 5 项里定位精度最容易被含糊过去写厘米级是不合格的必须给均方差数值和置信区间。执行能力 2 项指令响应速度指令下达到执行机构开始响应的时间间隔s、路径跟踪精度。跟踪精度的口径比较讲究原文用的是给定直线路径与实际行驶轨迹之间所包含面积的平方根量纲是 m。这个定义实际上是在算横向偏差的等效值比单纯取最大偏差更稳因为它把偏差在整个行程上的分布都算进去了。人员依赖度 2 项人员操控时间比例操控人员干预或帮助决策执行所用时间占完成任务总时间的比例、人员操控平台数量一个操控人员能同时控制的平台台数。这两项是整个体系里最玄学的部分因为它们同时受平台能力和操作员熟练度影响具体怎么控制变量在第 5 章展开。3.3 测试条件台账比指标本身更容易出事的地方所有 24 个叶节点的数值都必须绑定一组测试条件才有意义。同一台平台空载和满载的最大速度能差一倍同样的爬坡能力干燥路面和湿滑路面差一个等级同样的建模精度结构化走廊和野外植被区完全不是一个难度。我一般会强制维护一张测试条件台账每一条数据后面挂一个条件编号条件编号对应一组固定的环境参数路面类型与附着系数、环境温度与光照、载荷配置与重心位置、胎压或履带张紧度、风速、是否有人为引导。台账里字段空着的数据一律不进聚合流程。这条规矩看着死板但它是让不同批次、不同供应商数据可比的前提。顺带说一句连续工作时间和最大行程这两项经常被合并成一个续航这是不严谨的。前者考的是热管理和可靠性后者考的是能量密度和传动效率一台机器可能连续工作 8 小时但只能跑 20 公里另一台可能跑 60 公里但 3 小时就得停机散热合并之后就看不出来了。4. 从 24 个实测值到 1 个综合分标准化、赋权与自底向上聚合4.1 三种指标类型三种标准化写法24 个叶节点的量纲五花八门速度是 km/h时间是 s面积是 m²比例是百分数直接加权求和没有任何物理意义。所以第一步一定是标准化把所有叶节点映射到 0 到 1 的区间。按越大越好还是越小越好这 24 项可以分成三类。极大型最大速度、最大行程、越墙高度、连续工作时间、各类正确率越大越好极小型加速时间、制动距离、最小转向半径、指令响应时间、人员操控时间比例、接地压力越小越好还有一类是区间型比如人员操控平台数量1 台太少、10 台不现实存在一个合理的中间区间。三类各用一套公式不能混。import numpy as np def normalize(values, kind, loNone, hiNone): values: 一维数组同一叶节点在多个被试平台上的实测值 kind: max 极大型 / min 极小型 / range 区间型 lo,hi: 区间型指标的理想上下界 返回: 同长度数组值域 [0, 1]越大越优 v np.asarray(values, dtypefloat) if kind max: # 极大型除以最大值 return v / v.max() if kind min: # 极小型最小值除以自身 return v.min() / v if kind range: # 区间型落在 [lo,hi] 内给满分 mid, half (lo hi) / 2.0, (hi - lo) / 2.0 return np.clip(1.0 - np.abs(v - mid) / half, 0.0, 1.0) raise ValueError(unknown kind)这段代码用极值法而不是极差法是为了让新增一台被试平台时不用回头重算历史数据的上下界代价是得分不会铺满 0 到 1 全区间。如果参与比较的平台数量少于 5 台我一般会换成极差法把区分度拉满。kind参数必须和叶节点的物理含义严格对应把制动距离错标成max结果就是刹车越差得分越高——这个错我在别人的表里见过不止一次。4.2 权重怎么来AHP 打底熵权校正标准化之后要给权重。这套指标体系是树状的权重也要分层给先给机动性、自主性、任务载荷性能三个一级节点分配权重再在机动性内部给快速性、灵活性、通过性、续航四个二级节点分配最后给每个二级节点下的叶节点分配。同层权重之和为 1不同层之间互不干扰。常见做法是层次分析法AHP靠两两比较构造判断矩阵。这一步的主观性没法完全消除但可以用一致性比率 CR 卡住CR 小于 0.1 才认为判断矩阵可用否则说明你的两两比较自相矛盾得重新打分。import numpy as np RI {1: 0.0, 2: 0.0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45} def ahp_weights(mat): mat: n x n 正互反判断矩阵mat[i][j] 表示 i 相对 j 的重要度 返回: (w, cr)w 为归一化权重向量cr 为一致性比率 mat np.asarray(mat, dtypefloat) n mat.shape[0] vals, vecs np.linalg.eig(mat) k np.argmax(vals.real) # 最大特征值对应的特征向量 w np.abs(vecs[:, k].real) w w / w.sum() # 归一化 lam vals[k].real ci (lam - n) / (n - 1) # 一致性指标 cr ci / RI[n] if RI[n] 0 else 0.0 # 一致性比率 return w, cr # 机动性四个二级节点的两两比较示例实际按任务需求调整 M [[1, 1, 2, 3], [1, 1, 2, 3], [1/2, 1/2, 1, 2], [1/3, 1/3, 1/2, 1]] w, cr ahp_weights(M) print(np.round(w, 3), round(cr, 3))跑出来权重大约是[0.35, 0.35, 0.19, 0.11]CR 在 0.02 附近远小于 0.1矩阵可用。这个结果表达的是快速性和灵活性同等重要都高于通过性续航权重最低。如果你的任务场景是长时值守这个判断矩阵就得改把续航提到 0.3 以上。纯 AHP 的毛病是专家主观性太重。我的做法是拿 AHP 结果做基准再用熵权法算一遍客观权重两者按 7:3 加权。熵权法完全从数据本身的离散程度出发某项指标在各平台之间差异越大说明它区分能力越强权重就越高。两种方法算出来的排序如果严重打架说明要么专家判断脱离实际要么样本量太少两种情况都得停下来查。4.3 自底向上聚合一次求和逐层回溯权重齐了聚合就是逐层加权求和从叶节点一路算到根节点。这里的关键是每一层都要保留中间结果不然评审会上问为什么自主性只有 0.42你只能回答说算出来的。def aggregate(tree, weights, scores): tree: 嵌套字典键为节点名叶节点值为 None weights: 字典键为父节点名值为子节点权重列表顺序与 tree 一致 scores: 字典键为叶节点名值为标准化后的分数 返回: (总得分, 各中间节点得分字典) detail {} def walk(node, name): children tree[node] if not children: # 叶节点直接取分数 return scores[node] vals [walk(c, c) for c in children] w np.array(weights[name], dtypefloat) s float(np.dot(w, vals)) # 加权求和 detail[node] s # 回溯用保留每个中间节点 return s total walk(综合性能, 综合性能) return total, detailtree里None表示该节点没有子节点代码用空字典判断更稳妥weights的列表顺序必须和tree中子节点的书写顺序严格一致否则权重会串位——这种错误不会报异常只会安静地给出一个错误结果属于最阴的一类 bug。detail字典是给评审用的任何一个中间节点的得分都能单独拎出来做柱状图对比。5. 避坑与排查这套指标落地时最容易翻车的五个地方5.1 现象两家供应商的数据放在一起完全没法比原因测试条件没有写死。A 家的最大速度是空载平路测的B 家是满载带风测的报表上只写了一个数字条件全丢了。解决强制测试条件台账每条数据挂条件编号条件字段为空的数据不进聚合。评审材料里凡是只有数值没有条件的条目一律退回补充。5.2 现象综合得分算出来第一名是个各项都平平的平台原因没做标准化就先加权。速度是几十的量级正确率是零点几的量级直接加权等于只看速度。解决先标准化再赋权顺序不能反。检查方法很土但有效——把所有叶节点的权重重排一遍如果总分排名几乎不变说明某一项在数值上垄断了整个结果。5.3 现象环境建模精度算出来恒等于 1 或者 0原因建图结果和真值地图的栅格分辨率不一致或者两者的概率定义不同一边是占据概率一边是二值占据标记。解决先把两张图重采样到同一栅格尺寸、同一坐标系原点再把真值图转成 0/1 概率图。做完这两步关联度才会落在合理区间。仿真环境里造真值图时务必把生成参数一起存下来。5.4 现象同一台平台两次测出来的自主性得分差了 30%原因人员依赖度这一项受操作员熟练度影响极大。换个新手来操控干预时间比例立刻翻倍。解决固定操作员样本至少 3 人每人重复 3 次以上取均值和标准差一起报。标准差超过均值 30% 的这个叶节点的数据判定为不可用回去查是不是任务场景设计得太难。5.5 现象权重分配完发现两个指标的得分曲线几乎重合原因叶节点之间强相关重复计权。最典型的是最大速度和最大爬坡度很多底盘上这两项同源。解决算一遍叶节点之间的相关系数矩阵绝对值超过 0.8 的成对指标要么合并成一个节点要么把其中一个权重压到 0.05 以下。这一步我在每个项目里都会做省下来的权重挪给真正有区分度的项。6. 进阶用法用灵敏度分析给指标体系做一次体检指标体系搭完、综合分算出来很多人就直接交差了。我一般还会多做一步——灵敏度分析看看这个排名到底稳不稳。做法不复杂把每个一级节点的权重依次上下扰动 20%重新跑一遍聚合观察被试平台的排名是否发生翻转。如果某个权重动一点点第一名就换人那这个结论就不能写进评审报告得先说明在某某权重假设下排名如此。具体操作上我会先固定叶节点分数不动只动权重向量生成一组扰动样本。对每一组扰动权重重新调用第 4 章的aggregate记录排名序列最后统计每个平台进入前三的频率。频率低于 60% 的平台基本可以判定为排名不稳健它的综合分和第一名之间的差距大概率被噪声吃掉了。扰动对象扰动幅度观察指标判定标准一级节点权重±20%排名翻转次数翻转超过 2 次则结论不稳健二级节点权重±20%得分变化幅度变化超过 0.1 需说明原因单个叶节点分数±10%综合分变化用于识别高杠杆指标这张表里最有价值的是最后一行。把某个叶节点的分数人为抬高 10%看综合分变化多少变化特别大的那几个就是高杠杆指标——它们是整个评价体系的命门测试时优先级最高数据质量控制也最严。反过来那些分数动 10% 综合分几乎不动的叶节点要么权重给低了要么这一项本来就没有区分度可以从试验大纲里砍掉省下来的测试资源投到高杠杆项上。还有一个容易被忽略的检查样本量。这套体系有 24 个叶节点如果只比较 2 台平台任何权重方案都能凑出你想要的结果评价本身没有意义。我的经验是参与横向比较的平台不少于 4 台低于这个数就退化成单机性能摸底只看各叶节点绝对值不排名。血泪经验是这么来的早些年我做过一次三方比价权重按常规配置给完第一名比第二名高出 0.03 分报告交上去被追问了一句这 0.03 是怎么来的当场答不上来。后来补做灵敏度分析才发现只要把续航权重从 0.11 调到 0.15排名就反过来了。从那以后我每次出综合排名之前都强制走一遍权重扰动把翻转区间写进报告附录宁可写得啰嗦一点也不给自己留坑。希望帮到你。本文还有配套的精品资源点击获取