Diseño de Compensadores de Adelanto por Cancelación Cero-Polo en MATLAB: Examen Resuelto de Control Automático

Matemáticas3,38 KB

Examen 11-1-2024

% Examen 11-1-2024

clear all
close all
clc
format long

Datos del enunciado

% Datos del enunciado

s=tf('s')
G=550*(s+15)/((s+0.6)*(s+6)*(s+12))
H=1;
ts=0.8
Mp=1.5/100

a) Diseño del compensador por cancelación cero-polo

% a) Diseñar el compensador más adecuado, cumpliendo las especificaciones y
% utilizando el método de cancelación cero-polo.

xi=sqrt(log(Mp)^2/(pi^2+log(Mp)^2))
wn=4/(xi*ts)

pd1=-xi*wn+wn*sqrt(1-xi^2)*1i
pd2=-xi*wn-wn*sqrt(1-xi^2)*1i

figure
rlocus(G*H)
sgrid(xi,wn)
hold on
plot([real(pd1) real(pd2)],[imag(pd1) imag(pd2)],'k*')

% Como se puede ver, pd no pertenece al LGR, por lo tanto necesitaremos
% diseñar un compensador de adelanto.

% Para el método de cancelación cero-polo, cancelamos el polo más cercano
% al origen
, sin que este sea cero, en este caso s=-0.6.

pd_re=abs(real(pd1))
pd_im=abs(imag(pd1))

theta1=180-atan2d(pd_im,pd_re-0.6)
theta2=atan2d(pd_im,6-pd_re)
theta3=atan2d(pd_im,12-pd_re)
theta4=atan2d(pd_im,15-pd_re)

AAC=-180+(theta1+theta2+theta3)-theta4

% AAC es positivo, por lo tanto hemos obtenido un compensador de adelanto.

% Ahora utilizamos el método de cancelación cero-polo.

b=0.6;
beta=theta1-AAC
y=pd_im/(tand(beta))
a=y+pd_re

Gc_sinK=(s+b)/(s+a)
[K,polos_lc]=rlocfind(Gc_sinK*G*H,pd1)
Gc=K*Gc_sinK

b) Sistema controlado

% b) Mostrar en una figura el sistema controlado.

figure
rlocus(Gc_sinK*G*H)
sgrid(xi,wn)
hold on
plot([real(pd1) real(pd2)],[imag(pd1) imag(pd2)],'k*')

e) Respuesta ante una entrada escalón

% e) Mostrar la respuesta ante una entrada escalón.

fdt_lc1=feedback(Gc*G,H)
fdt_lc2=feedback(Gc2*G,H)

figure
step(fdt_lc1) % también se puede step(fdt_lc1,fdt_lc2)
hold on
step(fdt_lc2)

% Se puede observar que ambas respuestas presentan un error, ya que no
% llegan a 1 respecto al MP; la fdt_lc1 presenta más error que la fdt_lc2.
% Para mejorar la respuesta obtenida, se podría diseñar un compensador de retraso
% o meter un integrador para eliminar el error.

f) Estabilidad relativa de ambos sistemas

% f) Analizar la estabilidad relativa de ambos sistemas.

figure
margin(Gc*G*H)
grid on
[MG,MF,wcg,wcf]=margin(Gc*G*H)
figure
margin(Gc2*G*H)
grid on
[MG2,MF2,wcg2,wcf2]=margin(Gc2*G*H)

figure
bode(fdt_lc1)
grid on
figure
bode(fdt_lc2)
grid on

% Ambos sistemas serán estables puesto que MG y MF son positivos y MG2 y
% MF2 también lo son.

c) Cancelación del polo situado en s=-6

% c) Ahora cancelamos el polo situado en s=-6.

b2=6;
gamma=theta2-AAC
y2=pd_im/(tand(gamma))
a2=y2+pd_re

Gc_sinK2=(s+b2)/(s+a2)
[K2,polos_lc2]=rlocfind(Gc_sinK2*G*H,pd1)
Gc2=K2*Gc_sinK2

d) Sistema controlado con cancelación en s=-6

% d) Mostrar en una nueva figura el sistema controlado.

figure
rlocus(Gc_sinK2*G*H)
sgrid(xi,wn)
hold on
plot([real(pd1) real(pd2)],[imag(pd1) imag(pd2)],'k*')

Descargar

PDF Word HTML