Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Matlab - Controlador PID

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Controlador PID
Autor:Pedrote (21 intervenciones)
Fecha:07/11/2007 15:50:36
Buenas, actualmente tengo un controlador proporcional para el control de una variable que llamo air, mi problema está en que necesito un control proporcional derivativo e integral, a continuación os paso la funcion de control

function aireacion = Actualiza_Air(So);

RefSo=2;
ganancia=7500;
LimMax=200000;
error=RefSo-So;
if error<=0,
air=0;
else
air=min(ganancia*error,LimMax);
end
aireacion=air;

Si alguién me da una idea, basicamente lo que hay que hacer integrar y derivar la señal error, eso es lo que tengo que hacer, pero no se plasmarlo en MATLAB
Responder Subir
información
Otras secciones de LWP con contenido similar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Controlador PID
Autor:Raúl Santiago (211 intervenciones)
Fecha:08/11/2007 09:30:24
Url:
Para implementar algoritmos digitales, solo tienes que ir a las bases de matemáticas, es decir mira las definiciones para la derivada, y para la integral, es decir, la pendiente y el área bajo la curva respectivamente.

Por tanto, para la derivada es la diferencia entre el dato actual y el anterior sobre el delta de tiempo. Para la integral cambia en como lo definas, lo normal es el área de un trapecio, donde las bases serán los datos y la altura el delta de tiempo.

Lo mejor es cálcular cada efecto por separado y luego sumarlos, esto por que puedes poner condiciones, es decir como el integral facilmente se satura poner un antiwindup y para el derivativo, poder por ejm ponerlo antes de calcular el error que despues, el efecto sería igual, solo que poniendolo antes filtraria entradas de tipo escalón.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Controlador PID
Autor:Raúl Santiago (211 intervenciones)
Fecha:08/11/2007 09:30:24
Url:
Para implementar algoritmos digitales, solo tienes que ir a las bases de matemáticas, es decir mira las definiciones para la derivada, y para la integral, es decir, la pendiente y el área bajo la curva respectivamente.

Por tanto, para la derivada es la diferencia entre el dato actual y el anterior sobre el delta de tiempo. Para la integral cambia en como lo definas, lo normal es el área de un trapecio, donde las bases serán los datos y la altura el delta de tiempo.

Lo mejor es cálcular cada efecto por separado y luego sumarlos, esto por que puedes poner condiciones, es decir como el integral facilmente se satura poner un antiwindup y para el derivativo, poder por ejm ponerlo antes de calcular el error que despues, el efecto sería igual, solo que poniendolo antes filtraria entradas de tipo escalón.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Controlador PID
Autor:pedrote (21 intervenciones)
Fecha:08/11/2007 10:06:35
Gracias por la respuesta, asi lo había pensado, con la definición, mi problema estaba en que no sabia como implementarlo en matlab, me podrías ayudar con un ejemplo?

Gracias
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Controlador PID
Autor:Raúl Santiago (211 intervenciones)
Fecha:09/11/2007 09:32:48
Url:
Esta sería una forma sencilla, pero pueden haber muchas otras maneras de hacerlo, recursivas, hacer diferente el antiwindup, etc. Esta es de la más sencillas, por tanto no tan robustaz, pero te puede dar ideas para que la cambies un poco.

error=ref-sal;

P=Kp*error;
D=Kd*(sal-salant)/DT;
I=Iant+Ki*(error+errorant)*DT/2;
if abs(I)>limite
I=0
end

C=P+D+I;

if C>.....
.....


errorant=error;
Iant=I;
...

....

...
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Controlador PID
Autor:pedrote (21 intervenciones)
Fecha:09/11/2007 09:49:08
Muchas Gracais Raul, me sirve para empezar, si puedieras facilitarme alguna dirección con información de PID digitales y programcion en MATLAB me ayudarias mucho.

Gracias de nuevo
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:RE:Controlador PID
Autor:Raúl Santiago (211 intervenciones)
Fecha:09/11/2007 11:02:44
Url:
Para eso es mejor ir a los libros clásicos de control digital, para empezar el de Ogata está bien
Comentar Subir