Diseño y simulación PID

0

Estoy diseñando un regulador PID pero tengo dificultades en la simulación. Mi diseño es: Heelegidoelvalordeloselementospara:Ki=12ms,Kp=5,Kd=1.5ms

Aquíestáelresultadoqueobtengo: ¿Qué estoy haciendo mal?

    
pregunta atkristin

1 respuesta

6

Problemas

Creo que el problema main es que has proporcionado una entrada de error que no tiene sentido. Está utilizando un pulso que es \ $ 0 \: \ text {V} \ $ o bien \ $ 1 \: \ text {V} \ $. Nunca es negativo. Así que el integrador está integrando este error a lo largo del tiempo y está llevando el sistema a los rieles. Como debería.

Hay otro problema, creo. La especificación de entrada LM741 establece claramente que estas partes pueden tener una impedancia de entrada tan baja como \ $ 300 \: \ text {k} \ Omega \ $. Simularán a un valor más alto, probablemente establecido para el valor típico de \ $ 2 \: \ text {M} \ Omega \ $. Pero ese no es el punto. Necesitas diseñar para el peor de los casos. Tu opamp PI está usando valores de resistencia extremadamente altos y me preocuparía por el error y la oscilación. Debe reducir esos valores y colocarlos en un rango razonable para operar con un LM741.

Y hay otro problema, creo. La salida de cortocircuito del LM741 se especifica en algo así como \ $ 25 \: \ text {mA} \ $, a grandes rasgos. Debe mantenerse bien dentro de ese límite. El uso de \ $ 750 \: \ Omega \ $ y \ $ 1 \: \ text {k} \ Omega \ $ resistors está empujando las cosas demasiado lejos y creo que necesita retroceder un poco en esos valores.

Reescribir

Aquí está mi reescritura de su sistema, con adiciones y cambios que creo que es posible que deba permitir que realmente opere dentro de en un entorno razonable para que pueda ver que puede funcionar dentro de alguna expectativa razonable. Hice algunas divisiones por 10 y multiplico por 10 cosas para mantener sus constantes similares y aligeré la carga un poco. Ahora hay una "planta" y un cálculo del término de error.

simular este circuito : esquema creado usando CircuitLab

Tenga en cuenta que hay un término de error actual que se calcula ahora. También tenga en cuenta que he reducido su \ $ 500 \: \ text {k} \ Omega \ $ valor de resistencia, que era demasiado alto en general y ciertamente para el LM741, también. Y también he aumentado tus impedancias de D-term. Finalmente, también aumenté un poco la suma de las impedancias del nodo / inversor. Creo que esto lo mantendrá dentro de algunos límites sin que tenga que perder mucho tiempo leyendo la hoja de datos. "Se siente" mejor para mí, ahora.

Como dije anteriormente, solo conducías en \ $ 0 \: \ text {V} \ $ y \ $ 1 \: \ text {V} \ $ como entradas al controlador y todo lo que estaba haciendo era lo que debía hacer si el error está siempre en un lado de \ $ 0 \: \ text {V} \ $. Fue barandilla. No hay shock allí.

Para solucionar este problema, agregué la "planta" más simple que pude (RC simple) para que pudiera proporcionar algunos comentarios (cerrar el ciclo). También agregué algo para calcular un término de error. Un real término de error. Ahora se puede usar un punto de control y, con suerte, la "planta" lo rastreará.

Veamos.

Resultados de especias

Aquí hay una rápida simulación de LTspice:

YlosresultadosquecomparanelpuntodeajusteconlasalidadelRC:

Creoqueestotemuestraquemásomenoselmismocircuito,peroconlosvaloresadecuadosyconalgúntipodeerrorrealistafuncionabien.

Ahora,encimadelcircuitoconsutérminodeerror

AcontinuaciónsemuestraelcircuitoPIDtrabajoanteriorperoahorasinelcálculodeltérminodeerrorparacerrarelciclo.Estavez,encambio,dejeelbucleabiertoyusesuentradadetérminodeerror:

Enlasdospantallasacontinuación,vealapantalladeltérminoPI,eltérminoDyelresultadofinal.

EstaprimerasalidalepermiteaSpicerealizaruncálculodelpuntodeoperacióndeCC,loquepuede(amenudosí)precargarloscondensadores.

EstasegundasalidaevitaqueSpicerealicesucálculoinicialdelpuntodeoperacióndeCC.Asíqueloscondensadorescomienzancon\$0\:\text{V}\$atravésdeellos.

¿Teresultafamiliar?

Mismocircuito.Unaentradade"error de usuario" hace toda la diferencia.

(Hay algunas diferencias entre los dos. Pero no son importantes para demostrar el problema con su entrada de error).

    
respondido por el jonk

Lea otras preguntas en las etiquetas