修复厚度偏差曲线

This commit is contained in:
2026-06-11 15:10:56 +08:00
parent e1bb9e5431
commit 2148a068f8

View File

@@ -664,29 +664,34 @@ export default {
return parseFloat((100 + v).toFixed(3))
})
const extras = []
// 目标值恒为 100%
// 目标值恒为 100%(各通道相对各自设定值)
const refLine = rows.map(r => {
const rv = getRowVal(r, refCol)
return (rv != null && rv !== 0) ? 100 : null
})
// TOPLIMIT/BOTLIMIT 同为偏差限百分比,且逐行变化
// (头尾加减速段约 ±2.5%,稳态段收紧到约 ±1%),不是 mm 偏差量
const upData = rows.map(r => {
const rv = getRowVal(r, refCol)
const tl = getRowVal(r, 'TOPLIMIT')
if (rv == null || rv === 0) return null
return parseFloat((100 + (tl ?? 3)).toFixed(3))
})
const loData = rows.map(r => {
const rv = getRowVal(r, refCol)
const bl = getRowVal(r, 'BOTLIMIT')
if (rv == null || rv === 0) return null
return parseFloat((100 + (bl ?? -3)).toFixed(3))
})
if (refLine.some(v => v != null)) extras.push({ name: '目标值(100%)', data: refLine, color: '#909399', dash: false })
if (upData.some(v => v != null)) extras.push({ name: '上限', data: upData, color: '#F56C6C', dash: true })
if (loData.some(v => v != null)) extras.push({ name: '下限', data: loData, color: '#67C23A', dash: true })
const yRange = calcPercentRange(yData, [...refLine, ...upData, ...loData])
// TOPLIMIT/BOTLIMIT 是冷轧机出口厚度的 AGC 公差带(逐行变化,
// 头尾加减速段约 ±2.5%、稳态段收紧到约 ±1%),只约束出口厚度。
// 入口测厚仪测的是来料热卷,天然偏离名义值且不受此公差约束,
// 故公差带仅画在出口侧图上THICK1/THICK5入口图只画偏差曲线。
if (col !== 'THICK0') {
const upData = rows.map(r => {
const rv = getRowVal(r, refCol)
const tl = getRowVal(r, 'TOPLIMIT')
if (rv == null || rv === 0) return null
return parseFloat((100 + (tl ?? 3)).toFixed(3))
})
const loData = rows.map(r => {
const rv = getRowVal(r, refCol)
const bl = getRowVal(r, 'BOTLIMIT')
if (rv == null || rv === 0) return null
return parseFloat((100 + (bl ?? -3)).toFixed(3))
})
if (upData.some(v => v != null)) extras.push({ name: '上限', data: upData, color: '#F56C6C', dash: true })
if (loData.some(v => v != null)) extras.push({ name: '下限', data: loData, color: '#67C23A', dash: true })
}
const yRange = calcPercentRange(yData, extras.flatMap(e => e.data))
return this.makeChart(ref, makeLine(title, xData, yData, extras, '%', yRange))
} else {
// ── 速度等无参考值的图:保持原始单位 ──