fix: restore simulated pressure model and fast prescan

This commit is contained in:
rangang
2026-08-04 10:04:48 +08:00
parent 9185591a6d
commit 8d6534b96e
3 changed files with 67 additions and 17 deletions
+28
View File
@@ -108,6 +108,34 @@ class IdentificationManager:
This is an independent pre-scan. It does not replace or modify the
subsequent PRBS collection performed by ``collect_data_with_prbs``.
"""
if getattr(conn_mgr, "simulation", False):
stable_pressure_records = [
{"distance": 1000, "pressure": 400},
{"distance": 900, "pressure": 361},
{"distance": 800, "pressure": 322},
{"distance": 700, "pressure": 283},
{"distance": 600, "pressure": 244},
{"distance": 500, "pressure": 205},
{"distance": 400, "pressure": 166},
{"distance": 300, "pressure": 127},
{"distance": 200, "pressure": 88},
{"distance": 100, "pressure": 49},
{"distance": 0, "pressure": 10},
]
timestamp = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
filename = f"travel_stability_pressures_{timestamp}.json"
payload = {"stable_pressures": stable_pressure_records}
uploaded = self._upload_to_server(
json.dumps(payload, ensure_ascii=False, indent=2),
filename,
f"{the_folder}/ind_data",
)
if uploaded:
self.log("行程稳态压力 JSON 上传成功,继续执行 PRBS 辨识")
else:
self.log("行程稳态压力 JSON 上传失败,继续执行 PRBS 辨识")
return payload
distances = list(range(1000, -1, -100))
settings = {
"min_wait_time": 5.0,
+4 -4
View File
@@ -39,10 +39,10 @@ class SimulatedDevice:
if not self.connected or dt == 0:
return
# MT2AM8 的行程控制在当前程序中是反向阀位:较小行程表示更大
# 进气。模型因此让压力向由行程决定的目标值缓慢靠近
opening = max(0.0, min(1.0, 1.0 - self.position / 1000.0))
target_pressure = self.pressure_range * opening
# 行程与阀门开度反向:行程越大,阀门开度越小。阀门开度减小
# 时系统压力升高;默认量程下行程 0/1000 分别对应 10/400 kPa
travel_ratio = max(0.0, min(1.0, self.position / 1000.0))
target_pressure = 10.0 + (self.pressure_range - 10.0) * travel_ratio
response = min(1.0, dt / 8.0)
self.pressure += (target_pressure - self.pressure) * response