hlp:上次的压力调整算法提交
This commit is contained in:
+10
-10
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user