1.原先程序启动后会先下发关闭位置,再开始闭环,现在启动后直接从当前阀门开度(默认全开)开始闭环。删除了safe_close相关的代码
2.新增open_loop.py进行开环控制,记录控流阀前后流量和压力数据,方便后面辨识拟合,以及观察动态特性。 3.新增README.md
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
示例:
|
||||
python main.py --target 50
|
||||
|
||||
程序启动后会先下发关闭位置,再开始闭环。Ctrl+C、控制故障或其他异常都会
|
||||
再次尝试关阀并断开 MT2-AM8。
|
||||
程序启动后直接从当前阀门开度(默认全开)开始闭环。Ctrl+C、控制故障或
|
||||
其他异常会断开 MT2-AM8;阀门不被驱动时默认回到全开。
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -156,14 +156,6 @@ def run(target_flow_slm):
|
||||
},
|
||||
)
|
||||
|
||||
if not controller.safe_close("STARTUP"):
|
||||
raise FlowControlFault(
|
||||
"SAFE_CLOSE_FAILED",
|
||||
"STARTUP",
|
||||
"启动前无法确认阀门关闭命令已成功写入",
|
||||
{"motor_closed_position": config.MOTOR_CLOSED_POSITION},
|
||||
)
|
||||
|
||||
# 控制前读取一次当前流量,作为超调量方向的基准。
|
||||
try:
|
||||
initial_flow_slm = hardware.get_flow(config.FLOW_INPUT_CHANNEL)
|
||||
@@ -181,7 +173,7 @@ def run(target_flow_slm):
|
||||
logger=logger,
|
||||
)
|
||||
|
||||
controller.start(initial_opening=0.0)
|
||||
controller.start(initial_opening=config.INITIAL_OPENING_PCT)
|
||||
recorder = FlowRunRecorder(
|
||||
Path(__file__).resolve().parent / config.DATA_DIRECTORY,
|
||||
plot_dpi=config.PLOT_DPI,
|
||||
@@ -216,13 +208,9 @@ def run(target_flow_slm):
|
||||
logger.critical("控制故障:%s", exc)
|
||||
except Exception:
|
||||
exit_code = 3
|
||||
logger.exception("未处理异常,系统将进入安全关闭")
|
||||
logger.exception("未处理异常,系统将退出")
|
||||
finally:
|
||||
if connected:
|
||||
close_ok = controller.safe_close("PROGRAM_EXIT")
|
||||
if not close_ok:
|
||||
exit_code = max(exit_code, 4)
|
||||
logger.critical("程序退出时安全关阀失败,请立即人工检查")
|
||||
try:
|
||||
hardware.disconnect()
|
||||
except Exception:
|
||||
|
||||
Reference in New Issue
Block a user