Cuestion 3 S.POTENCIA 2012 09 S2 (Caldeo por induccion)


Resolucion:

La respuesta es la c). Uno de los fenomenos que se puede dar en el caldeo por induccion es el efecto pelicular. El material es sometido a un flujo magnetico variable. El calentamiento depende de la frecuencia de trabajo. La principal causa de calentamiento son las corrientes de Foucault






















‹ Cuestion 1 S.POTENCIA 2012 09 S2 (Cicloconvertidor)arribaParte practica S.POTENCIA 2012 09 S2 (Bobina nucleo magnetico) ›

Obtener las metaetiquetas de una pagina web con PHP


Codigo en PHP para obtener las metaetiquetas de una pagina web:
<?php
// Suponemos que las etiquetas estan en http://cachivaches.cajael.com
$wo = get_meta_tags('http://cachivaches.cajael.com/');
foreach($wo as $node) {
    echo ($node);
}
  
?>

Resultado:


9tI6FluMuPrEbCcLFJsq2VoSxcNdofEMYOAWfM68Uy4Cachivaches, Cosas, electronica, software, mercados y bolsa..Cachivaches, Cosas, electronica, software, mercados y bolsa..summary@cachivaches52469004338@cachivaches52469004338http://cachivaches.cajael.com/nodeCachivaches, Cosas, electronica, software, mercados y bolsa..cachivaches.cajael.comCachivaches, Cosas, electronica, software, mercados y bolsa..Texthttp://cachivaches.cajael.com/text/htmlwidthtruewidth=device-width, initial-scale=1.0

















‹ PhparribaSAGE Software de matematicas

Cuestion 3 S.POTENCIA 2014 09 S2 (Variable de salida)


 

Resolucion:

Los tres cambios de variable de salida en un sistema controlado se explican en el apartado 18.5 del libro
















‹ Cuestion 2 S.POTENCIA 2014 09 S2 (Cicloconvertidor)arribaCuestion 5 S.POTENCIA 2014 09 S2 (Curvas fotovoltaica) ›

Parte practica S.POTENCIA 2013 09 S1 (Tranformador de impulso)


Parametros circuito equivalente de alta frecuencia.

Parametros circuito equivalente de baja frecuencia.



Operaciones matematicas del tranformador de impulsos con el programa matematico SAGE:
Sage: r1=4.5
Sage:  r2=4.5
Sage:  ld1=5*10^(-6)
Sage: ld2=5*10^(-6)
Sage: c1=1.2*10^(-9)
Sage: c2=1.2*10^(-9)
Sage: ca=0.1*10^(-9)
Sage: cc=10*10^(-9)#condensador de la carga
Sage: rc=120 #resistencia de la carga
Sage: lm=10*10^(-3)
Sage: rp=1*10^3
Sage: r=r1+r2*(1/rt)^2
Sage: l=ld1+ld2*(1/rt)^2
Sage: c=c1+c2*rt^2+(ca/3)*(1+rt+rt^2)
Sage: ct=c+cc
Sage: rt1=(rc*rp)/(rc+rp)
Sage: fa=rt1/(rt1+r)#factor de amplificacion
Sage: T=2*pi*sqrt(l*ct*fa)#periodo de oscilacion
Sage: r.n(),l.n(),c.n(),ct.n(), rt1.n(), fa.n(), T.n()
Resultados:
(10.0000000000000,
 0.0000100000000000000,
 2.10000000000000e-9,
 1.21000000000000e-8,
 90.9090909090909,
 0.900900900900901,
 2.07448865513765e-6)









‹ Parte Teorica S.POTENCIA 2013 Sept S1 (Fiabildad)arribaParte practica S.POTENCIA 2013 09 S1 (Tranformador de impulso, Parametros circuito equivalente de alta frecuencia.) ›

Parte practica S.POTENCIA 2013 09 S1 (Tranformador de impulso, Parametros circuito equivalente de alta frecuencia.)


Resultado:

La resistencia del circuito equivalente en alta frecuencia viene dada por:
[tex]R=R_1\cdot+R_2\cdot (\frac{N_1}{N_2})^2=[/tex]  [tex]=4.5\cdot+4.5\cdot (1)^2=9\,\Omega[/tex]

La inductancia del circuito equivalente en alta frecuencia viene dada por:

[tex]L=L_{d1}\cdot+L_{d2}\cdot (\frac{N_1}{N_2})^2=[/tex]
[tex]=5\cdot 10^{-6}\cdot+5\cdot 10^{-6}\cdot (1)^2=10\,\mu H[/tex]


Parte practica S.POTENCIA 2013 09 S1 (Parametros circuito equivalente de baja frecuencia, Tranformador de impulso)


Respuesta:

La resistencia del circuito equivalente en baja frecuencia viene dada por:

[tex]R=R_1\cdot+R_2\cdot (\frac{N_1}{N_2})^2=[/tex]  [tex]=4.5\cdot+4.5\cdot (1)^2=9\,\Omega[/tex]

La inductancia magnetizante en baja frecuencia es la misma:

[tex]L_{mg}=10\,mH[/tex]

La resistencia de perdidas en el nucleo en el primario en baja frecuencia es la misma:

[tex]R_{p1}=1\,K \Omega[/tex]

Parte practica S.POTENCIA 2013 09 S1 (Capacidad total para alta frecuencia,Tranformador de impulso)


Resultado:

La capacidad total del circuito equivalente en alta frecuencia viene dada por:
 [tex]C'=C_c+C=10\cdot 10^{-9}+2.5\cdot 10^{-9}[/tex][tex]=12.5\cdot 10^{-9} \,F[/tex]



















‹ Parte practica S.POTENCIA 2013 09 S1 (Parametros circuito equivalente de baja frecuencia, Tranformador de impulso)arribaParte practica S.POTENCIA 2013 09 S1 (Resistencia equivalente,Tranformador de impulso) ›

Parte practica S.POTENCIA 2013 09 S1 (Resistencia equivalente,Tranformador de impulso)


Resultado:

La resistencia en el tranformador de impulsos:

\frac{10\cdot 10^3\cdot 120}{10\cdot 10^3+120}=107.14\,\Omega R'=\frac{R_c\cdot R_{p1}}{R_c+R_{p1}}=













‹ Parte practica S.POTENCIA 2013 09 S1 (Capacidad total para alta frecuencia,Tranformador de impulso)arribaParte practica S.POTENCIA 2013 09 S1 (Factor de amplificacion y periodo de oscilacion,Tranformador de impulso) ›









Parte practica S.POTENCIA 2013 09 S1 (Factor de amplificacion y periodo de oscilacion,Tranformador de impulso)


Resultado:

El factor de amplificacion de tranformador de impulsos viene dada por:
[tex]a=\frac{R'}{R+R'}=[/tex]  [tex]=\frac{107.14}{9+107.14}=0.9 \,Omega[/tex]
El periodo de oscilacion del transformador de impulsos viene dado por:

Parte Teorica S.POTENCIA 2012 09 S1 (Cadena abierta, cadena cerrada; Variables de salida)


Resolucion:

Control en cadena abierta y en cadena cerrada viene en el apartado 18.4 del Libro.
Modos de cambio de variable de salida: Control todo o nada, cambio de estados discretos y regulacion continua vienen en el apartado 18.5 del libro.

Calcular densidad fluido (gas) con el programa matematico SAGE


Funcion para calcular la densidad de un fluido (gas) a partir de la temperatura en grados centigrados y la presion en pascales con el programa / software matematico Sage. Como ejemplos el hidrogeno, el oxigeno y el vapor de agua
El programa en el software matematico Sage para obtener la densidad:
def densidadfluido(P,Matom,T):
r=P*Matom/(101325*0.082*(273+T))
return(r)
Matom_O2=16*2 # Masa atomica del oxigeno O2
T_O2=27       # Temperatura en grados centigrados del oxigeno O2
P_O2=1.5*10^5 # Presion en pascales del oxigeno O2
Matom_H2=1*2 # Masa atomica del hidrogeno H2
T_H2=27       # Temperatura en grados centigrados del hidrogeno H2
P_H2=1.5*10^5 # Presion en pascales del hidrogeno H2
Matom_H2O=1*2+16 # Masa atomica del vapor de agua H2
T_H2O=200       # Temperatura en grados centigrados del vapor de agua H2O
P_H2O=10^5 # Presion en pascales del vapor de agua H2O
densidadfluido(P_O2,Matom_O2,T_O2),densidadfluido(P_H2,Matom_H2,T_H2),densidadfluido(P_H2O,Matom_H2O,T_H2O)

Resultado:

(1.92570393505563, 0.120356495940977, 0.458016263623169)

Calcular densidad fluido (gas) con el programa matematico SAGE


Funcion para calcular la densidad de un fluido (gas) a partir de la temperatura en grados centigrados y la presion en pascales con el programa / software matematico Sage. Como ejemplos el hidrogeno, el oxigeno y el vapor de agua
El programa en el software matematico Sage para obtener la densidad:
def densidadfluido(P,Matom,T):
r=P*Matom/(101325*0.082*(273+T))
return(r)
Matom_O2=16*2 # Masa atomica del oxigeno O2
T_O2=27       # Temperatura en grados centigrados del oxigeno O2
P_O2=1.5*10^5 # Presion en pascales del oxigeno O2
Matom_H2=1*2 # Masa atomica del hidrogeno H2
T_H2=27       # Temperatura en grados centigrados del hidrogeno H2
P_H2=1.5*10^5 # Presion en pascales del hidrogeno H2
Matom_H2O=1*2+16 # Masa atomica del vapor de agua H2
T_H2O=200       # Temperatura en grados centigrados del vapor de agua H2O
P_H2O=10^5 # Presion en pascales del vapor de agua H2O
densidadfluido(P_O2,Matom_O2,T_O2),densidadfluido(P_H2,Matom_H2,T_H2),densidadfluido(P_H2O,Matom_H2O,T_H2O)

Resultado:

(1.92570393505563, 0.120356495940977, 0.458016263623169)

Control predictivo


Esquema control predictivoControl predictivo  Control predictivo Salida Control predictivo


‹ CONTROL ADAPTATIVOarribaCatalogos de Regulacion Automatica ›

SOLDADURA


Comienzos con soldadura en arco



















arribaComienzos con soldadura en arco ›

Comienzos con soldadura en arco

























1 Soldadura horizontal con arco


Video de soldadura con arco piezas en horizontal mediante media luna, picado del electrodo, angulos de soldado.












‹ Comienzos con soldadura en arcoarriba2 Soldadura en angulo con arco 

2 Soldadura en angulo con arco


Video de soldadura con arco de dos piezas en angulo mediante L, angulos de soldado.























‹ 1 Soldadura horizontal con arcoarriba3 Soldadura con arco en horizontal en pared ›

3 Soldadura con arco en horizontal en pared


Video de soldadura en horizonta en pared de dos piezas en con dibujo en muelle o e, angulos de soldado.

Concatenar / unir vectores con Scilab


Vamos a unir o concatenar dos vectores con Scilab
-->u1=zeros(1,3);
-->u2=ones(1,4);
-->u=[u1,u2];
-->u
 u  =
         column 1 to 6
    0.    0.    0.    1.    1.    1.  
         column 7
    1.  

Obtener las filas y columnas de una matriz con Scilab


Para obtener las filas de una matriz E=[2,3;1,0] con Scilab
-> E=[2,3;1,0]
 -> E  =
    2.    3.  
    1.    0.  
-> E(1,:) // Primera fila
-> ans  =
    2.    3. 
->E(2,:) /// Segunda fila
 ->ans  =
    1.    0. 
Para obtener las columnas de una matriz E=[2,3;1,0] con Scilab
->E(:,1) // Primera columna
 ans  =
    2.  
    1.  
->E(:,2)  // Segunda columna
 ans  =
    3.  
    0.  

Estrategia basica de control predictivo con Scilab

Simulaciones de la estrategia basica de control predictivo con scilab y(k)=y(k-1)-0.25*y(k-2)+0.333*u(k-1)+0.1666*u(k-2)
El proceso normal
salida normal del proceso y(k)=y(k-1)-0.25*y(k-2)+0.333*u(k-1)+0.1666*u(k-2)
El proceso con control predictivo:


El proceso con control predictivo:
Estrategia Control predictivo adaptativo
El proceso con control predictivo:
Control predictivo adaptativo
Comparacion para los distintod valores de la salida deseada del control predictivo
Salida deseada del control predictivo
Comparacion para los distintod valores de la salidas obtenidas del control predictivo
Salidas del proceso con el control predictivo

Programa en Scilab de la simulacion de la estrategia de control predictivo
clear();
alfa1a=[0.95,0];
beta1a=[0.05,0];
a=[1,-0.25];
b=[0.333,0.1666];
u=[0,zeros(1,29),ones(1,40),zeros(1,131)] //entrada escalon en k=31 y vuelve a 0 en  k=71
y=zeros(1,201);
ysp=[zeros(1,130),ones(1,40),zeros(1,31)] //Comienzo control predictivo consigna valor 0 en k=101, consigna a 1 en k=131 y vuelve a 0 en  k=171
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:201
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)');
subplot(2,1,2)
plot(u);
xtitle('u(k)');
yda=zeros(1,201);
y2a=y;
u2a=u;
yda(100)=y(100);
yda(99)=y(99);
for kt=101:201
    yda(kt+1)=alfa1a(1)*yda(kt)+alfa1a(2)*yda(kt-1)+beta1a(1)*ysp(kt)+beta1a(2)*ysp(kt-1); //Trayectoria deseada
    u2a(1,kt)=(yda(kt+1)-a(1)*y2a(kt)-a(2)*y2a(kt-1)-b(2)*u2a(1,kt-1))/b(1)// Control adaptativo
    y2a(kt)=a(1)*y2a(kt-1)+a(2)*y2a(kt-2)+b(1)*u2a(kt-1)+b(2)*u2a(kt-2)
end
scf(2);
clf(2);
subplot(4,1,1)
plot(y2a);
xtitle('y(k) alfa1=0.95 Beta1=0.05');
subplot(4,1,2)
plot(yda(1,:));
xtitle('yd(k+1/k) alfa1=0.95 Beta1=0.05');
subplot(4,1,3)
plot(u2a);
xtitle('u1(k) alfa1=0.95 Beta1=0.05');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');
alfa1b=[0.9,0];
beta1b=[0.1,0];
a=[1,-0.25];
b=[0.333,0.1666];
u=[0,zeros(1,29),ones(1,40),zeros(1,131)] //entrada escalon en k=31 y vuelve a 0 en  k=71
y=zeros(1,201);
ysp=[zeros(1,130),ones(1,40),zeros(1,31)] //Comienzo control predictivo consigna valor 0 en k=101, consigna a 1 en k=131 y vuelve a 0 en  k=171
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:201
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)');
subplot(2,1,2)
plot(u);
xtitle('u(k)');
ydb=zeros(1,201);
y2b=y;
u2b=u;
ydb(100)=y(100);
ydb(99)=y(99);
for kt=101:201
    ydb(kt+1)=alfa1b(1)*ydb(kt)+alfa1b(2)*ydb(kt-1)+beta1b(1)*ysp(kt)+beta1b(2)*ysp(kt-1); //Trayectoria deseada
    u2b(1,kt)=(ydb(kt+1)-a(1)*y2b(kt)-a(2)*y2b(kt-1)-b(2)*u2b(1,kt-1))/b(1)// Control adaptativo
    y2b(kt)=a(1)*y2b(kt-1)+a(2)*y2b(kt-2)+b(1)*u2b(kt-1)+b(2)*u2b(kt-2)
end
scf(3);
clf(3);
subplot(4,1,1)
plot(y2b);
xtitle('y(k) alfa1=0.9 Beta1=0.1');
subplot(4,1,2)
plot(ydb(1,:));
xtitle('yd(k+1/k) alfa1=0.9 Beta1=0.1');
subplot(4,1,3)
plot(u2b);
xtitle('u1(k) alfa1=0.9 Beta1=0.1');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');
alfa1c=[0.8,0];
beta1c=[0.1,0];
a=[1,-0.25];
b=[0.333,0.1666];
u=[0,zeros(1,29),ones(1,40),zeros(1,131)] //entrada escalon en k=31 y vuelve a 0 en  k=71
y=zeros(1,201);
ysp=[zeros(1,130),ones(1,40),zeros(1,31)] //Comienzo control predictivo consigna valor 0 en k=101, consigna a 1 en k=131 y vuelve a 0 en  k=171
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:201
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)=y(k-1)-0.25*y(k-2)+0.333*u(k-1)+0.1666*u(k-2)');
subplot(2,1,2)
plot(u);
xtitle('u(k)');
ydc=zeros(1,201);
y2c=y;
u2c=u;
ydc(100)=y(100);
ydc(99)=y(99);
for kt=101:201
    ydc(kt+1)=alfa1c(1)*ydc(kt)+alfa1c(2)*ydc(kt-1)+beta1c(1)*ysp(kt)+beta1c(2)*ysp(kt-1); //Trayectoria deseada
    u2c(1,kt)=(ydc(kt+1)-a(1)*y2c(kt)-a(2)*y2c(kt-1)-b(2)*u2c(1,kt-1))/b(1)// Control adaptativo
    y2c(kt)=a(1)*y2c(kt-1)+a(2)*y2c(kt-2)+b(1)*u2c(kt-1)+b(2)*u2c(kt-2)
end
scf(4);
clf(4);
subplot(4,1,1)
plot(y2c);
xtitle('y(k) alfa1=0.8 Beta1=0.1');
subplot(4,1,2)
plot(ydc(1,:));
xtitle('yd(k+1/k) alfa1=0.8 Beta1=0.1');
subplot(4,1,3)
plot(u2c);
xtitle('u(k) alfa1=0.8 Beta1=0.1');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');
scf(5);
clf(5);
x=1:202;
plot(x,yda,'ro-');
plot(x,ydb,'bs:');
plot(x,ydc,'g');
legend(["yd alfa1=0.95 beta=0.05";"yd alfa1=0.9 beta=0.1";"yd alfa1=0.8 beta=0.1"],opt=3);
scf(6);
clf(6);
plot(x,ydb),'b';
scf(6);
clf(6);
x=1:201;
plot(x,y2a,'ro-');
plot(x,y2b,'bs:');
plot(x,y2c,'g');
legend(["y(k) alfa1=0.95 beta=0.05";"y(k) alfa1=0.9 beta=0.1";"y(k) alfa1=0.8 beta=0.1"],opt=2);

Estrategia basica de control predictivo con Scilab y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2)

Lugar de las raices de la transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.6)
 Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.6)

Salida del proceso  y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2);  ante  un escalon


El proceso con control predictivo dado los polos y ceros de la transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.6)
Proceso control predictivo


Programa en Scilab de la simulacion de la estrategia de control predictivo
clear();
z=%z;
num1=z+1; // Numerador transformada z funcion de tranferencia de la trayectoria deseada
den1=(z-0.2)*(z-0.6); // Denominador transformada z funcion de tranferencia de la trayectoria deseada
gd=syslin('d',num1/den1);
scf(3);
clf(3);
evans(gd); // Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.6)
xgrid;
v=[-4 2 -2 2];
mtlb_axis(v);
xgrid
xtitle('Lugar de las raices Transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.6)')
cden=coeff(den1);
cnum=coeff(num1);
alfa1a=[-cden(2),-cden(1)];
beta1a=[cnum(2),cnum(1)];
a=[1,-0.21];
b=[0.105,0.105];
u=[0,ones(1,60)] //entrada escalon 
y=zeros(1,61);
ysp=[ones(1,61)] //Comienzo control predictivo consigna valor 1 en k=1 
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:61
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Salida ante un escalon');
subplot(2,1,2)
plot(u);
xtitle('u(k) siendo un escalon');
yda=zeros(1,61);
y2a=y;
u2a=u;
yda(2)=y(2);
yda(1)=y(1);
for kt=3:61
    yda(kt+1)=alfa1a(1)*y2a(kt)+alfa1a(2)*y2a(kt-1)+beta1a(1)*ysp(kt)+beta1a(2)*ysp(kt-1); //Trayectoria deseada
    u2a(1,kt)=(yda(kt+1)-a(1)*y2a(kt)-a(2)*y2a(kt-1)-b(2)*u2a(1,kt-1))/b(1)// Control adaptativo
    y2a(kt)=a(1)*y2a(kt-1)+a(2)*y2a(kt-2)+b(1)*u2a(kt-1)+b(2)*u2a(kt-2) //Salida con control adaptativo
end
scf(2);
clf(2);
subplot(4,1,1)
plot(y2a);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.2)*(z-0.6)');
subplot(4,1,2)
plot(yda(1,:));
xtitle('yd(k+1/k) Gd(z)=(z+1)/((z-0.2)*(z-0.6)');
subplot(4,1,3)
plot(u2a);
xtitle('u1(k) Gd(z)=(z+1)/((z-0.2)*(z-0.6)');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');

Lugar de las raices de la transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.7)
 Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.7)
Salida del proceso  y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2);  ante  un escalon


El proceso con control predictivo dado los polos y ceros de la transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.7)
Proceso con control predictivo adaptativo y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.2)*(z-0.7)


Programa en Scilab de la simulacion de la estrategia de control predictivo
clear();
z=%z;
num1=z+1; // Numerador transformada z funcion de tranferencia de la trayectoria deseada
den1=(z-0.2)*(z-0.7); // Denominador transformada z funcion de tranferencia de la trayectoria deseada
gd=syslin('d',num1/den1);
scf(3);
clf(3);
evans(gd); // Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.7))
xgrid;
v=[-4 2 -2 2];
mtlb_axis(v);
xgrid
xtitle('Lugar de las raices Transformada z Gd(z)=(z+1)/((z-0.2)*(z-0.7)')
cden=coeff(den1);
cnum=coeff(num1);
alfa1a=[-cden(2),-cden(1)];
beta1a=[cnum(2),cnum(1)];
a=[1,-0.21];
b=[0.105,0.105];
u=[0,ones(1,60)] //entrada escalon 
y=zeros(1,61);
ysp=[ones(1,61)] //Comienzo control predictivo consigna valor 1 en k=1 
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:201
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Salida ante un escalon');
subplot(2,1,2)
plot(u);
xtitle('u(k) siendo un escalon');
yda=zeros(1,61);
y2a=y;
u2a=u;
yda(2)=y(2);
yda(1)=y(1);
for kt=3:61
    yda(kt+1)=alfa1a(1)*y2a(kt)+alfa1a(2)*y2a(kt-1)+beta1a(1)*ysp(kt)+beta1a(2)*ysp(kt-1); //Trayectoria deseada
    u2a(1,kt)=(yda(kt+1)-a(1)*y2a(kt)-a(2)*y2a(kt-1)-b(2)*u2a(1,kt-1))/b(1)// Control adaptativo
    y2a(kt)=a(1)*y2a(kt-1)+a(2)*y2a(kt-2)+b(1)*u2a(kt-1)+b(2)*u2a(kt-2) //Salida con control adaptativo
end
scf(2);
clf(2);
subplot(4,1,1)
plot(y2a);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.2)*(z-0.7)');
subplot(4,1,2)
plot(yda(1,:));
xtitle('yd(k+1/k) Gd(z)=(z+1)/((z-0.2)*(z-0.7)');
subplot(4,1,3)
plot(u2a);
xtitle('u1(k) Gd(z)=(z+1)/((z-0.2)*(z-0.7)');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');

Lugar de las raices de la transformada z Gd(z)=(z+1)/((z-0.3)*(z-0.7)
 Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.3)*(z-0.7)
Salida del proceso  y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2);  ante  un escalon


El proceso con control predictivo dado los polos y ceros de la transformada z Gd(z)=(z+1)/((z-0.3)*(z-0.7)
Proceso con control predictivo adaptativo y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.3)*(z-0.7)


Programa en Scilab de la simulacion de la estrategia de control predictivo
clear();
z=%z;
num1=z+1; // Numerador transformada z funcion de tranferencia de la trayectoria deseada
den1=(z-0.3)*(z-0.7); // Denominador transformada z funcion de tranferencia de la trayectoria deseada
gd=syslin('d',num1/den1);
scf(3);
clf(3);
evans(gd); // Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.3)*(z-0.7))
xgrid;
v=[-4 2 -2 2];
mtlb_axis(v);
xgrid
xtitle('Lugar de las raices Transformada z Gd(z)=(z+1)/((z-0.3)*(z-0.7)')
cden=coeff(den1);
cnum=coeff(num1);
alfa1a=[-cden(2),-cden(1)];
beta1a=[cnum(1),cnum(1)];
a=[1,-0.21];
b=[0.105,0.105];
u=[0,ones(1,60)] //entrada escalon 
y=zeros(1,61);
ysp=[ones(1,61)] //Comienzo control predictivo consigna valor 1 en k=1 
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:61
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Salida ante un escalon');
subplot(2,1,2)
plot(u);
xtitle('u(k) siendo un escalon');
yda=zeros(1,61);
y2a=y;
u2a=u;
yda(2)=y(2);
yda(1)=y(1);
for kt=3:61
    yda(kt+1)=alfa1a(1)*y2a(kt)+alfa1a(2)*y2a(kt-1)+beta1a(1)*ysp(kt)+beta1a(2)*ysp(kt-1); //Trayectoria deseada
    u2a(1,kt)=(yda(kt+1)-a(1)*y2a(kt)-a(2)*y2a(kt-1)-b(2)*u2a(1,kt-1))/b(1);// Control adaptativo
    y2a(kt)=a(1)*y2a(kt-1)+a(2)*y2a(kt-2)+b(1)*u2a(kt-1)+b(2)*u2a(kt-2); //Salida con control adaptativo
end
scf(2);
clf(2);
subplot(4,1,1)
plot(y2a);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.3)*(z-0.7)');
subplot(4,1,2)
plot(yda(1,:));
xtitle('yd(k+1/k) Gd(z)=(z+1)/((z-0.3)*(z-0.7)');
subplot(4,1,3)
plot(u2a);
xtitle('u1(k) Gd(z)=(z+1)/((z-0.3)*(z-0.7)');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');

Lugar de las raices de la transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.7)
 Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.7)
Salida del proceso  y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2);  ante  un escalon


El proceso con control predictivo dado los polos y ceros de la transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.7)
Proceso con control predictivo adaptativo y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.4)*(z-0.7)


Programa en Scilab de la simulacion de la estrategia de control predictivo
clear();
z=%z;
num1=z+1; // Numerador transformada z funcion de tranferencia de la trayectoria deseada
den1=(z-0.4)*(z-0.7); // Denominador transformada z funcion de tranferencia de la trayectoria deseada
gd=syslin('d',num1/den1);
scf(3);
clf(3);
evans(gd); // Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.7))
xgrid;
v=[-4 2 -2 2];
mtlb_axis(v);
xgrid
xtitle('Lugar de las raices Transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.7)')
cden=coeff(den1);
cnum=coeff(num1);
alfa1a=[-cden(2),-cden(1)];
beta1a=[cnum(1),cnum(1)];
a=[1,-0.21];
b=[0.105,0.105];
u=[0,ones(1,60)] //entrada escalon 
y=zeros(1,61);
ysp=[ones(1,61)] //Comienzo control predictivo consigna valor 1 en k=1 
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:61
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Salida ante un escalon');
subplot(2,1,2)
plot(u);
xtitle('u(k) siendo un escalon');
yda=zeros(1,61);
y2a=y;
u2a=u;
yda(2)=y(2);
yda(1)=y(1);
for kt=3:61
    yda(kt+1)=alfa1a(1)*y2a(kt)+alfa1a(2)*y2a(kt-1)+beta1a(1)*ysp(kt)+beta1a(2)*ysp(kt-1); //Trayectoria deseada
    u2a(1,kt)=(yda(kt+1)-a(1)*y2a(kt)-a(2)*y2a(kt-1)-b(2)*u2a(1,kt-1))/b(1);// Control adaptativo
    y2a(kt)=a(1)*y2a(kt-1)+a(2)*y2a(kt-2)+b(1)*u2a(kt-1)+b(2)*u2a(kt-2); //Salida con control adaptativo
end
scf(2);
clf(2);
subplot(4,1,1)
plot(y2a);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.4)*(z-0.7)');
subplot(4,1,2)
plot(yda(1,:));
xtitle('yd(k+1/k) Gd(z)=(z+1)/((z-0.4)*(z-0.7)');
subplot(4,1,3)
plot(u2a);
xtitle('u1(k) Gd(z)=(z+1)/((z-0.4)*(z-0.7)');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');

Lugar de las raices de la transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.8)
 Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.8)
Salida del proceso  y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2);  ante  un escalon


El proceso con control predictivo dado los polos y ceros de la transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.8)
Proceso con control predictivo adaptativo y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.4)*(z-0.8)


Programa en Scilab de la simulacion de la estrategia de control predictivo
clear();
z=%z;
num1=z+1; // Numerador transformada z funcion de tranferencia de la trayectoria deseada
den1=(z-0.4)*(z-0.8); // Denominador transformada z funcion de tranferencia de la trayectoria deseada
gd=syslin('d',num1/den1);
scf(3);
clf(3);
evans(gd); // Lugar de las raices de la Transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.8))
xgrid;
v=[-4 2 -2 2];
mtlb_axis(v);
xgrid
xtitle('Lugar de las raices Transformada z Gd(z)=(z+1)/((z-0.4)*(z-0.8)')
cden=coeff(den1);
cnum=coeff(num1);
alfa1a=[-cden(2),-cden(1)];
beta1a=[cnum(2),cnum(1)];
a=[1,-0.21];
b=[0.105,0.105];
u=[0,ones(1,60)] //entrada escalon 
y=zeros(1,61);
ysp=[ones(1,61)] //Comienzo control predictivo consigna valor 1 en k=1 
y(1)=0;
u(1)=0;
y(2)=0;
for k=3:61
    y(k)=a(1)*y(k-1)+a(2)*y(k-2)+b(1)*u(k-1)+b(2)*u(k-2); //Salida del proceso
end
y
scf(1);
clf(1);
subplot(2,1,1)
plot(y);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Salida ante un escalon');
subplot(2,1,2)
plot(u);
xtitle('u(k) siendo un escalon');
yda=zeros(1,61);
y2a=y;
u2a=u;
yda(2)=y(2);
yda(1)=y(1);
for kt=3:61
    yda(kt+1)=alfa1a(1)*y2a(kt)+alfa1a(2)*y2a(kt-1)+beta1a(1)*ysp(kt)+beta1a(2)*ysp(kt-1); //Trayectoria deseada
    u2a(1,kt)=(yda(kt+1)-a(1)*y2a(kt)-a(2)*y2a(kt-1)-b(2)*u2a(1,kt-1))/b(1);// Control adaptativo
    y2a(kt)=a(1)*y2a(kt-1)+a(2)*y2a(kt-2)+b(1)*u2a(kt-1)+b(2)*u2a(kt-2); //Salida con control adaptativo
end
scf(2);
clf(2);
subplot(4,1,1)
plot(y2a);
xtitle('y(k)=y(k-1)-0.21*y(k-2)+0.105*u(k-1)+0.105*u(k-2); Gd(z)=(z+1)/((z-0.4)*(z-0.8)');
subplot(4,1,2)
plot(yda(1,:));
xtitle('yd(k+1/k) Gd(z)=(z+1)/((z-0.4)*(z-0.8)');
subplot(4,1,3)
plot(u2a);
xtitle('u1(k) Gd(z)=(z+1)/((z-0.4)*(z-0.8)');
subplot(4,1,4)
plot(ysp);
xtitle('ysp(k)');

Crear ruido blanco con Scilab


Vamos a crear ruido blanco gaussiano con Scilab para 400 valores con media 0 y desviacion estandard 2.


Programa en Scilab
n=400
media=0
desviacionestandard=2
x=desviacionestandard*rand(n,1,"normal")+media
plot(x)
xtitle("Ruido blanco de media 0 y desviacion estandard 2")
Ruido blanco con Scilab
Ruido blanco gaussiano de media 0 y desviacion estandard 2