Estoy diseñando un software de control PID. La lógica es casi definitiva, pero me pregunto cómo decido el valor de \ $ k_p \ $, \ $ k_i \ $ y \ $ k_d \ $. Además, necesito determinar el valor máximo y mínimo para el artículo Pterm y Dterm. ¿Cómo puedo hacer eso?. Además, estoy tratando de implementar el control inverso. Además, ¿voy por el camino correcto en el diseño del software PID? Además, si el tiempo integral y \ $ k_i \ $ ambos son iguales? El código que escribí hasta ahora se da a continuación.
Calculate_Error();
P_Term = Percnt_Error;
P_Term = KP * P_Term;
if(P_Term >= PMAX)
{
P_Term = PMAX;
}
else if(P_Term <= PMIN)
{
P_Term = PMIN;
}
// Integral calculation
if(Integraltime==1) // Take integration at every 1s
{
Integraltime = 0;
Error_Accum = Error_Accum + Percnt_Error; // Error Accumulation over time
if(Error_Accum >= MaxAccumError)
{
Error_Accum = MaxAccumError;
}
if(Error_Accum <= -MinAccumError)
{
Error_Accum = -MinAccumError;
}
I_Term = (Error_Accum)*KI;
if(I_Term >= IMAX)
{
I_Term = IMAX;
}
else if(I_Term <= IMIN)
{
I_Term = IMIN;
}
}