File size: 5,328 Bytes
a2ea0cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15511fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a2ea0cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
{
  "version": "v9c",
  "sprint": "A7c",
  "trained_at": "2026-03-28T17:30:02.968878+00:00",
  "backbone_source": "v8 (frozen \u2014 CMAPSS+SCANIA heads unchanged)",
  "vsn_rho_method": "perturbation_sensitivity",
  "domains": {
    "cmapss": {
      "rul_source": "supervised",
      "onnx": "tft_weights_v8_cmapss.onnx",
      "note": "Unchanged from v8"
    },
    "scania": {
      "rul_source": "supervised",
      "onnx": "tft_weights_v8_scania.onnx",
      "note": "Unchanged from v8"
    },
    "nist": {
      "rul_source": "synthetic_estimated",
      "onnx": "tft_weights_v9c_nist.onnx",
      "auc": 0.9276,
      "rmse": 0.6232,
      "vsn_rho": 0.5868,
      "vsn_validated": false,
      "nist_seed": 42
    },
    "femto": {
      "rul_source": "supervised",
      "onnx": "tft_weights_v10a_femto.onnx",
      "rmse_cycles": 78.5705,
      "rmse_normalised": 0.2568,
      "mae_cycles": 39.7257,
      "r2": -0.0452,
      "vsn_rho": 0.1341,
      "vsn_validated": false,
      "rul_cap": 306,
      "n_features": 14,
      "feature_names": [
        "H_rms",
        "H_kurt",
        "H_peak",
        "H_crest",
        "H_skew",
        "H_shape",
        "H_impulse",
        "V_rms",
        "V_kurt",
        "V_peak",
        "V_crest",
        "V_skew",
        "V_shape",
        "V_impulse"
      ],
      "backbone_frozen": true,
      "backbone_version": "v9c",
      "fpt_method": "H_rms > mean+3.0\u03c3 (healthy_pct=0.1)"
    },
    "nist_anomaly": {
      "rul_source": "none",
      "head_type": "anomaly_only",
      "onnx": "tft_weights_v11a_nist_anomaly.onnx",
      "auc": 0.9216,
      "vsn_rho": 0.5692,
      "auc_validated": true,
      "n_sensors": 14,
      "window_size": 30,
      "backbone_frozen": true,
      "backbone_version": "v9c",
      "training_data": "mds2-2361 nominal (nist_windows_v9c.npz cache)",
      "note": "ESTIMATED \u2014 synthetic anomaly labels from A7c cache."
    },
    "cnc": {
      "rul_source": "supervised",
      "head_type": "rul_anomaly",
      "onnx": "tft_weights_v12a_cnc.onnx",
      "scaler": "cnc_scaler_v12a.pkl",
      "rmse_um": 36.6639,
      "rmse_normalised": 0.2444,
      "mae_um": 35.2722,
      "r2": -0.4361,
      "vsn_rho": 0.3495,
      "vsn_validated": false,
      "vb_cap": 150.0,
      "vb_fpt": 50.0,
      "n_features": 14,
      "feature_names": [
        "mean",
        "std",
        "rms",
        "kurtosis",
        "peak",
        "crest_factor",
        "skewness",
        "shape_factor",
        "impulse_factor",
        "variance",
        "peak_to_peak",
        "mav",
        "zero_crossing_rate",
        "waveform_length"
      ],
      "train_cutter": "c4",
      "val_cutter": "c6",
      "backbone_frozen": true,
      "backbone_version": "v9c",
      "dataset": "PHM 2010 (C4 train, C6 validate)",
      "note": "ESTIMATED if rho < 0.75. C1 not in mirror \u2014 C4/C6 only."
    },
    "cnc_nuaa": {
      "onnx_path": "tft_weights_v15a_cnc_nuaa.onnx",
      "scaler_path": "cnc_nuaa_scaler_v15a.pkl",
      "rul_cap": 0.3,
      "rul_cap_unit": "mm",
      "vb_cap_mm": 0.3,
      "signals": [
        "bending_moment_x",
        "bending_moment_y",
        "torsion",
        "axial_force",
        "spindle_power",
        "spindle_current"
      ],
      "n_stats": 7,
      "seq_len": 5,
      "input_dim": 42,
      "nrmse": 0.6785,
      "r2": -2.0818,
      "vsn_rho": 0.0746,
      "badge": "ESTIMATED",
      "dataset": "NUAA Ideahouse (IEEE DataPort DOI:10.21227/3aa1-5e83)",
      "opc_ua_proxy": "bending_moment+torsion+spindle ~ /Nck/Spindle/driveLoad"
    }
  },
  "product_classifier": {
    "version": "v1",
    "onnx": "product_classifier_v1.onnx",
    "scaler": "product_classifier_scaler_v1.pkl",
    "labels": "product_classifier_labels_v1.pkl",
    "n_features": 14,
    "feature_names": [
      "Total_running_time_NC_program",
      "Tool_number_Magazine_9998_Place_1",
      "Spindle_position_error",
      "Z-axis_position_MCS",
      "X-axis_position_MCS",
      "Spindle_angular_velocity",
      "Spindle_speed",
      "Spindle_smoothed_speed",
      "X-axis_position_WCS",
      "Z-axis_position_WCS",
      "ToolChange_smoothed_current_value",
      "ToolChange_smoothed_torque",
      "Net_running_time_program",
      "Tool_number_Magazine_Place_6"
    ],
    "product_labels": [
      1.0,
      2.0,
      3.0
    ],
    "n_classes": 3,
    "window_size": 30,
    "conf_threshold": 0.7,
    "val_accuracy": 0.9993,
    "dataset": "TUAWS (Zenodo 15735480)"
  },
  "wear_multipliers": {
    "version": "v1",
    "source": "UC Berkeley Milling Dataset (NASA)",
    "method": "linear_regression_VB_vs_run_per_case",
    "nominal_condition": "cast_iron_avg",
    "nominal_rate_um_per_cut": 0.0512,
    "multipliers": {
      "1": 1.0,
      "2": 2.189,
      "3": 2.406
    },
    "product_mapping": {
      "1": "Product A \u2014 nominal (cast iron average)",
      "2": "Product B \u2014 steel average (2.189x nominal)",
      "3": "Product C \u2014 most aggressive condition (2.406x nominal)"
    },
    "note": "Derived from UC Berkeley milling dataset. Cast iron = nominal (1.0). Steel = material_2 avg rate / material_1 avg rate. Aggressive = max rate across all conditions / nominal. On a real cell, these would be replaced by calibration runs per product."
  }
}