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