hlp:上次的压力调整算法提交

This commit is contained in:
kite_lucs
2026-10-17 08:34:03 +08:00
parent 16f1448c58
commit e533ea8e0b
+10 -10
View File
@@ -926,14 +926,14 @@ void InkJetPrinter::handleStartingState(int err, int actual, int target)
{ {
const int STARTING_TO_RUNNING_RANGE = 30; // 进入目标±50范围转到运行状态 const int STARTING_TO_RUNNING_RANGE = 30; // 进入目标±50范围转到运行状态
const float MAX_WORKING_SPEED = 350.0f; // 最大工作转速 const float MAX_WORKING_SPEED = 350.0f; // 最大工作转速
const float START_SPEED_STEP_LARGE = 40.0f; const float START_SPEED_STEP_LARGE = 30.0f;
const float START_SPEED_STEP_MED = 30.0f; const float START_SPEED_STEP_MED = 20.0f;
const float START_SPEED_STEP_SMALL = 20.0f; const float START_SPEED_STEP_SMALL = 15.0f;
m_adjSkip++; m_adjSkip++;
// 每800ms调整一次(8个100ms周期) // 每1500ms调整一次(15个100ms周期)
if(m_adjSkip < 8) { if(m_adjSkip < 15) {
sysPara->para.gearPumpValue = (unsigned short)(int)u; sysPara->para.gearPumpValue = (unsigned short)(int)u;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
return; return;
@@ -995,9 +995,9 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
return; return;
} }
// === 增量式微调控制(每200ms调整一次)=== // === 增量式微调控制(每500ms调整一次)===
m_adjSkip++; m_adjSkip++;
if(m_adjSkip < 2) { if(m_adjSkip < 5) {
sysPara->para.gearPumpValue = (unsigned short)(int)u; sysPara->para.gearPumpValue = (unsigned short)(int)u;
sysPara->devOp->WriteMoterPump(); sysPara->devOp->WriteMoterPump();
return; return;
@@ -1037,9 +1037,9 @@ void InkJetPrinter::handleRunningState(int err, bool canSwitch)
// 分级限幅(根据误差大小限制调节幅度) // 分级限幅(根据误差大小限制调节幅度)
float maxDelta; float maxDelta;
if(absErr > 30.0f) maxDelta = 1.0f; if(absErr > 30.0f) maxDelta = 0.8f;
else if(absErr > 10.0f) maxDelta = 0.6f; else if(absErr > 10.0f) maxDelta = 0.4f;
else maxDelta = 0.3f; else maxDelta = 0.2f;
if(delta_u > maxDelta) delta_u = maxDelta; if(delta_u > maxDelta) delta_u = maxDelta;
if(delta_u < -maxDelta) delta_u = -maxDelta; if(delta_u < -maxDelta) delta_u = -maxDelta;