Red de conocimientos turísticos - Conocimientos sobre calendario chino - Preguntas del examen de programación de servos

Preguntas del examen de programación de servos

No sé mucho sobre el sistema de servocontrol del plato giratorio de tres ejes, pero sé un poco sobre PID.

La siguiente es una versión C# del controlador PID, que utilizo para controlar la velocidad de rastreo del rastreador web. Puedes traducirlo fácilmente al lenguaje C.

El uso se divide en dos pasos: el primer paso es la inicialización. 2. Mida los valores del sistema de control (como velocidad, temperatura, etc.) y sustitúyalos en el controlador PID para generar nuevos factores de control.

Inicialización: SpeedSetting es la velocidad de rastreo que desea configurar. Si es su sistema de control, es el valor de su sistema. IntervalTime es un factor de control. Lo uso como tiempo de espera después de leer una página web para controlar la velocidad del rastreador. Si es su sistema, es para controlar el valor del sistema a través de sus cambios. Código de inicialización:

PID_Con = nuevo controlador PID (configuración de velocidad, IntervalTime, -0.1f, -0.05f, 0.0f);

PID_Con LimitLow = 0.2f

.

PID_Con. limit high = 100.0 f;

Medición de tiempo: donde valor es el valor medido, que puede ser velocidad, temperatura, etc. , o la cantidad controlada por su sistema de control.

float value =(float)(URL count-LastUrlCount); //Calcula el número de páginas web rastreadas en el intervalo de tiempo actual.

IntervalTime = PID_Con. Valor observado (valor); //Trae el valor medido (o valor observado) al controlador PID para obtener un nuevo valor del factor de control.

LastUrlCount = UrlCount

En su sistema, se puede implementar por analogía.

PIDControler de clase pública

{

Tráfico de límite flotante público; //límite superior

El límite superior flotante público es alto //; límite inferior

Flotador privado Kp; //Coeficiente de diferencia

Flotador privado Ki; //Coeficiente integral

Float privado Kd; //Coeficiente de diferencia >

ControlParam flotante privado//Factor de control

Valor de configuración de punto flotante privado //Valor establecido

Último diferencial de punto flotante privado//Última diferencia

Punto flotante privado LastSumDiff//Integral de la última diferencia

PIDControler público (colección de punto flotante, inicialización de punto flotante, punto flotante p, punto flotante I, punto flotante d)

{

LimitLow = 0.0flimit high = 1000.0 f;

SettingValue = setsControlParam = init

KP = p ki = I;

LastDiff = 0.0fLastSumDiff = 0.0f

}

Observación flotante pública (valor flotante)

{

float diff= (valor establecido -valor);

if(math . ABS(diff/setting value)<0.01)//Controla el límite inferior de integración diferencial

LastSumDiff = 0.0f

else if(math . ABS(LastSumDiff)>SettingValue*2)//Controla el límite superior de la integral diferencial.

LastSumDiff/= 2.0f;

Otros

LastSumDiff+= diff; //Diferencia integral

control param+= Kp * diff+ Ki * LastSumDiff+Kd *(diff-last diff); //Calcular el factor de control

if(control param & lt; limit low)control param = limit low //Limitar el límite superior del control; factor

p>

if(control param & gt; limit high)control param = limit high //Limita el límite inferior del factor de control

LastDiff = diff

Return ControlParam //Factores de control de retorno

}

}