You are on page 1of 3

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

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)

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')

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.

You might also like