You are on page 1of 6

EXAMEN DE LABORATORIO DE CONTROL 2

1) Definimos la funcin a la cual queremos llegar:

2) Ingresamos a MATLAB y desarrollamos el programa en el cual primero definimos


las variables de la funcin:

2 + +
3) Ahora definimos el rango en el cual estar nuestras variables:
%El valor de K esta entre [20:100]
%El valor de a esta entre [1:10]
%El valor de T esta entre [0.05:0.5]
4) Ahora indicamos en la programacin que nos de nmeros al azar que luego
sern probados para hallar la solucin:
K=1+(50-1).*rand(100,1);
a=0.1+(5-0.1).*rand(100,1);
T=0.01+(0.2-0.01).*rand(100,1);
5) Luego con el comando for indicamos la cantidad de valores que probar,
despus con la funcin if indicamos el error entre que valores se encontrar,
esto hacemos para cada una de las variables:
t=K-49;
for n=1:100
if t(n,1)<=1 && t(n,1)>=0 %El error debe estar entre 0 y 1
Kn=K(n,1);
end
end

u=a-4.9;
for n=1:100
if u(n,1)<=0.1 && u(n,1)>= 0 %El error debe estar entre 0 y 0.1
an=a(n,1);
end
end
v=T-0.19;
for n=1:100
if v(n,1)<=0.01 && v(n,1)>=0 %El error debe estar entre 0 y 0.01
Tn=T(n,1);
end
end

6) Ahora indicamos la funcin de transferencia a la cual queremos llegar y la que


obtuvimos con los valores al azar:
num=Kn;
den=[1 an Tn];
disp('Funcion de tranferencia que estamos hallando:')
fun1=tf(num,den)
%La funcion de transferencia a la cual queremos llegar
num1=50;
den1=[1 5 0.2];
disp('Funcion de tranferencia a la cual queremos llegar:')
fun2=tf(num1,den1)

7) Ahora ploteamos la funcin a la que queremos llegar, de color negro, y la


comparamos con la que obtuvimos con los valores al azar, de color rojo:
fun2=tf(num1,den1)
figure(1)
G1=step(num1,den1);
plot(G1,'k')
hold on
G2=step(num,den);
plot(G2,'r')

8) Corriendo el programa obtenemos lo siguiente:


Funcion de tranferencia que estamos hallando, ya que toma el mayor valor:

Los valores obtenidos son:


K=49.3326
a=4.9313
T=0.1914
Funcion de tranferencia que estamos hallando:

La programacin final es la siguiente:


clc
clear all
format short
%El valor de K esta entre [20:100]
%El valor de a esta entre [1:10]
%El valor de T esta entre [0.05:0.5]
K=1+(50-1).*rand(20,1);
a=0.1+(5-0.1).*rand(20,1);
T=0.01+(0.2-0.01).*rand(20,1);
p=[1:1:20];
res=[p' K a T];
fprintf('Iteracion K a T\n')
fprintf(' %i %.4f %.4f %.4f\n',res')
t=K-49;
for n=1:20
if t(n,1)<=1 && t(n,1)>=0 %El error debe estar entre 0 y 1
Kn=K(n,1);
end
end

u=a-4.9;
for n=1:20
if u(n,1)<=0.1 && u(n,1)>= 0 %El error debe estar entre 0 y 0.1
an=a(n,1);
end
end

v=T-0.19;
for n=1:20
if v(n,1)<=0.01 && v(n,1)>=0 %El error debe estar entre 0 y 0.01
Tn=T(n,1);
end
end
%La funcion de transferencia que estamos hallando
num=Kn;
den=[1 an Tn];
disp('Funcion de tranferencia que estamos hallando:')
fun1=tf(num,den)
%La funcion de transferencia a la cual queremos llegar
num1=50;
den1=[1 5 0.2];
disp('Funcion de tranferencia a la cual queremos llegar:')
fun2=tf(num1,den1)
figure(1)
G1=step(num1,den1);
plot(G1,'k')
hold on
G2=step(num,den);
plot(G2,'r')

Iteracion K a T
1 42.0030 3.9492 0.1755
2 8.9894 4.6316 0.1778
3 10.9623 2.8648 0.0752
4 17.8550 2.3258 0.1912
5 13.2074 3.9883 0.0688
6 17.9394 1.4905 0.1870
7 49.3326 4.9613 0.0408
8 31.5736 4.9313 0.1911
9 30.2170 2.7273 0.1769
10 29.2873 4.4826 0.1064
11 20.7487 1.2542 0.0135
12 27.7269 2.4447 0.1578
13 39.0938 4.5471 0.0783
14 24.0498 3.3523 0.1712
15 5.3310 2.2352 0.0923
16 46.7613 4.2845 0.1251
17 3.1363 2.0406 0.0817
18 32.7861 2.3962 0.1471
19 36.9181 2.3050 0.0701
20 5.5680 1.6875 0.1904
Funcion de tranferencia que estamos hallando:

fun1 =

49.33
----------------------
s^2 + 4.931 s + 0.1904

Continuous-time transfer function.

Funcion de tranferencia a la cual queremos llegar:

fun2 =

50
---------------
s^2 + 5 s + 0.2

Continuous-time transfer function.

9) Ahora estos valores obtenidos los introducimos y corremos en Simulink:

Ahora hallando la funcin objetivo de esta funcin:


>> FO=sum(Yreal(:,2)-Ymodelo(:,2))^2
FO =
0.2130

You might also like