Está en la página 1de 10

Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas.

Control On/Off y Control proporcional




ResumenExisten diferentes tipos de control, cada uno
aplicables a diferentes procesos siendo el ms utilizados a
lo largo de la electrnica el control PID. Aparte de estos,
los descritos en este informe sern controladores de tipo
on/off y control proporcional, realizando una comparacin
en respuestas de estos dos mtodos y explicando sus
diferencias.


Palabras claves Control ON/OFF, control
proporcional, estabilidad.
I. INTRODUCCIN
s de vital importancia en cualquier planta, el poder
controlar todas las variables que en esta influyen como
lo es tambin la respuesta final. En algunas ocasiones,
el trabajo para la bsqueda de esta respuesta puede ser del tipo
prueba y error, hecho necesario para asegurar el
funcionamiento adecuado de esta misma. En cuanto a las
tcnicas de control aplicables para el estudio de estas
respuestas, se estudian en este caso las de control On/off y
control proporcional, realizando una comparacin entre estos
dos sistemas.

El control tipo On/off, es un control de muy fcil
implementacin ya que su comportamiento es de un simple
interruptor, esto quiere decir que puede tambin presentar
cierto tipo de errores como lo son los de histresis y los de
zona muerta.
II. CONTROL ON/OFF CONTROL PROPORCIONAL

1) Control ON /OFF

Este sistema de control es de los ms sencillos de
implementacin entre los sistemas de control realimentado ya
que es un control de dos posiciones en el cual la respuesta
final de control solo se ocupa de una de esas dos posiciones.

Este mtodo al solo aceptar dos posiciones tiene dos
implicaciones en el actuador, un encendido (100%) y un
apagado (0%). La lgica en este funcionamiento es el tener un
punto de referencia, si la variable es mayor, el actuador asume
una posicin especfica, si el caso es contrario, en el que la
variable es menor, este se posiciona en la otra opcin.

Aparte de esto, el control ON /OFF es ampliamente utilizado
en la industria a pesar de que posee algunos problemas de
desempeo ya que no es aconsejable utilizarlo cuando se
necesita una gran precisin o cuando se realizan procesos de
alto riesgo.

El inconveniente ms marcado en este tipo de control, es la
falta de estabilidad en un punto dado ya que se observan
respuestas extremas para un determinado punto (como ya se
mencion un 100 o un 0% en respuesta) dependiendo de si el
error es negativo o positivo, es decir que es un controlador que
presenta valores elevados de ganancia los cuales pueden llegar
a desgastar el actuador.

2) Control proporcional.

El control proporcional, se podra modelar como un
amplificador de ganancia ajustable. La variable medida se
resta de la entrada (la cual es la variable deseada) para formar
una seal de error. Ya que esta funcin no depende del tiempo,
es necesario tener en cuenta una accin integrativa o
derivativa.

Enfticamente, el control proporcional consiste en el producto
entre una seal de error y una constante proporcional para que
se logre un error en estado estacionario aproximado a cero.

La frmula utilizada en este anlisis o formula de
proporcionalidad es la siguiente,

suI
=
p
()

En este tipo de control se puede obtener tiempos muy rpidos
de respuesta y errores muy pequeos en sistemas de primer
orden.





Informe III: Control ON/OFF y Control
proporcional
Cortes, Jonatan . Martnez, Andrs. Rodrguez, Andrs. Salinas, Edna
Universidad Nacional de Colombia, Bogot, Colombia.
Control. Grupo7.
jocortesf@unal.edu.co
anfmartinezme@unal.edu.co
anfrodriguezav@unal.edu.co
etsalinasf@unal.edu.co
E
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional

III. DESARROLLO DE LA PRCTICA

1) Control ON/OFF del motor LEGO (4.1)

Punto 1

Disee y simule un sistema de control ON/OFF de posicin
del motor LEGO. Use el modelo mostrado en la Figura 3. El
cdigo del controlador ON/OFF debera ser escrito dentro del
bloque llamado Matlab function.

Circuito utilizado para el desarrollo del sistema On/Off de
posicin:

Grafica 1-1.1) Diagrama de bloques.
Para este proceso se realiza un cdigo inicial determinando
por la referencia y la retro alimentacin, as entonces con una
referencia de 180 se vara el U en diferentes valores, sin
embargo con este primer cdigo no se tiene presente el error:

function u = fcn(Ref,y)
if (y > Ref)
u = -100;
else
u = 100;
end

SE determina entonces una variacin de U tomando valores de
100, 50 y 10 para observar el cambio respectivo. Recordando
que todas las simulaciones se realizaron con una referencia de
180 en todos los casos.

Obteniendo as las siguientes graficas con las variaciones de
U.

Grafica 1-1.2) U=100

Grafica 1-1.3) U=50

Grafica 1-1.4) U=10
Observando as en todas las tres opciones presentadas un
comportamiento comn de la seal del control ON/OFF la
cual demuestra la exigencia presentada durante el transcurso
del tiempo para mantener el control en la posicin de
referencia, (error de posicin = 0).

Punto 2

Analizar el error permanente, el esfuerzo de control y el
tiempo de estabilizacin en el lazo de control.

Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional

Para realizar el anlisis respectivo del error, se modifica el
bloque funcional en funcin de este, desarrollando el siguiente
cdigo para su posterior simulacin:

function u = fcn(ref,y)
error = ref - y;
if (error > 2)
u= 100;
elseif error < -2
u= -100;
else
u = 0;
end

Partiendo del esfuerzo del control ON/OFF mostrado en el
anterior punto, se observa el comportamiento de este,
aumentando el rango de error, manteniendo U fija.


Grfica 1-2.1) (-1 > error > 1)

Se observa inmediatamente como cambia el comportamiento
del sistema con control ON/OFF, con un pequeo cambio en
el error; dejando una mayor tolerancia de este se puede
realizar un cambio importantsimo sobre el control.

A continuacin se observa el comportamiento del sistema y la
seal de control con un mayor rango de error.



Grfica 1-2.2) (-2 > error > 2)

Grfica 1-2.3) (-5 > error > 5)


Grfica 1-2.4) (-10 > error > 10)

Se encuentra que por cada aumento de rango de error, o
aumento de error permanente la seal de control ON/OFF
ofrece menos esfuerzo para mantener el sistema estable, esto
es de vital importancia para control en aplicaciones de
refrigeracin; en este caso es preferible sacrificar unos grados
de ms o menos pero no estar a cada instante realizando un
esfuerzo de control, sin embargo estos fueron inicios de los
sistemas de control, un sistema ON/OFF ya no es utilizado
para estos fines, con la inclusin de compensadores por
dominio de frecuencia y otras tcnicas de mayor exigencia y
robustez.

Para el desarrollo de las grficas anteriores se utiliz el
siguiente programa:

%Acondicionamiento variables
p=size(referencia,1)-1;
k=2/p;
tiempo = [0:k:2]';
refere=referencia(:,1);

%Grficas de las funciones de
transferencias obtenidas
plot(tiempo,real(refere),'r')
hold on
grid on
plot(tiempo,sistema,'b')
hold on
grid on
plot(tiempo,control,'m')
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional

hold on
legend('Seal Referencia','Seal
Sistema,','Seal Control,')
grid on

Punto 3

Implementar el sistema de control ON/OFF de posicin en el
Bricx Command Center. Utilice como base para la
implementacin el archivo controlpos.nxc, y modifique el
cdigo en el BricxCC para que en cada experimento que se
realice con el motor LEGO, se almacene la variable
controlada(posicin), la referencia o setpoint del sistema de
control y la seal de control (porcentaje de voltaje aplicado al
motor LEGO).

Para la implementacin de este sistema se utiliz el siguiente
cdigo:

long Ref=100;
long posicion,e,k=100;

byte fileHandle;
string s;
short bytesWritten;
string write;

task main(){
DeleteFile("exp10.txt");
CreateFile("exp10.txt", 20000, fileHandle);
while(!ButtonPressed(BTNCENTER, false)){
posicion = MotorRotationCount(OUT_A);
TextOut(0, LCD_LINE2, StrCat("Posicin:
",NumToStr(posicion)));
TextOut(0, LCD_LINE1, StrCat("Setpoint:
",NumToStr(Ref)));

// Escriba aqui el algoritmo de Control de Posicin

e=Ref-posicion;
if(e>10)
OnFwd(OUT_A,k);
else
if(e<-10)
OnRev(OUT_A,k);
else
Off(OUT_A);
if(k>0)k=k-1;

// Fin del Algoritmo

s = NumToStr(posicion);
write = StrCat(s," ");
WriteLnString(fileHandle,write, bytesWritten);
Wait(7);
ClearScreen();
}
CloseFile(fileHandle);
}

Obteniendo as los datos en el archivo exp10.txt, observando
que realizamos la simulacin con un error estacionario de 10,
esto ya que se encontro que no tiene sentido realizar el
procedimiento con un error estacionario de 0, y exigir un
control ON/OFF que para aplicaciones de precisin no es
utilizado.

Luego se gener el cdigo:

clc
clear
load exp10.txt
k=1.8/202;
salida = exp10(:,1);
p=size(salida)-1;
tiempo = 0:k:1.791089109;

%Grficas de las funciones de
transferencias obtenidas al entrar una
plot(tiempo,salida)
hold on
legend('respuesta del motor LEGO')
grid on

Obteniendo la siguiente grfica del motor:

Grfica 1-3) respuesta del motor lego
Se observa cmo se presenta un error de posicin sin embargo
este sacrificio es en pro del esfuerzo de la seal de control,
como se demostramos en puntos anteriores.

Punto 4

Comparar en Simulink la seal de control y la variable
controlada del sistema de control ON/OFF de la simulacin
frente a los datos experimentales almacenados. Analizar y
encontrar las diferencias y posibles razones

Se presentan las dos graficas obtenidas en los puntos
anteriores, esto en un solo eje para observar y confrontar las
diferencias entre las dos.

Lnea Morada: Sistema Real
Lnea Azul: Respuesta Terica
Lnea Verde: Seal de control
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional


Grfica 1-4.1) comparacin de grficas.
Es claro que la salida del sistema real (lnea morada punteada)
sufre un delay respecto a la salida ideal, adems se observa
que mientras que la salida ideal tiende a lograr una
estabilizacin prxima a la referencia el sistema real no logra
tener esta misma proporcin en error estacionario.

Esto es debido a una diferencia entre polos en la funcin de
transferencia previamente obtenida en prcticas anteriores y la
funcin de transferencia del motor utilizado. Para esto se
observa como con un pequeo corrimiento del polo de la
funcin de transferencia se obtendra una grfica ms
aproximada a la real.

Lnea Morada: Sistema Real
Lnea Azul: Respuesta Terica
Lnea Verde: Seal de control


Grfica 1-4.2) comparacin de grficas con corrimiento de polo.
As bien con una segunda funcin de transferencia obtenida
Go=8.41/(0.066s+1) por medio de la herramienta de
identificacin de Matlab (Ident), se determina un estado
estacionario ms aproximado, sin embargo el sistema real
precede al sistema terico, con una respuesta mucho ms
rpida de la esperada.

2) Control proporcional del lego (4.2)
Punto 1
Con una referencia de 180 se plantea el siguiente diagrama de
bloques, arriba lazo cerrado, abajo lazo abierto.

Grafica 2-1.1) Diseo en simulink
Del cual se obtiene la siguiente grfica,

Grafica 2- 1.2) Respuesta lazo cerrado, Respuesta lazo abierto
Se analiza de los resultados que en un sistema de lazo abierto
el sistema total tiene una ganancia muy alta y no sigue para
nada a la referencia. Aunque no se hace inestable se genera un
error de ms del 700%.

En lazo cerrado se notan varias mejoras con respecto al
anterior. El error en estado estacionario baja
considerablemente y resulta ser de aproximadamente 10%.
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional

Adems la respuesta del sistema se hace ms rpida, su tiempo
de subida se vuelve notoriamente ms rpido.

Punto 2

Con el siguiente cdigo implementado para el motor de LEGO
se planea obtener la funcin de transferencia de la posicin del
motor:

long Ref=180;
long posicion=0;
byte fileHandle;
string s;
short bytesWritten;
string write;
long e;
long u=0;
long k=1;
task main(){
DeleteFile("datosk1.txt");
CreateFile("datosk1.txt", 20000, fileHandle);
while(!ButtonPressed(BTNCENTER, false)){
posicion = MotorRotationCount(OUT_A);
TextOut(0, LCD_LINE2, StrCat("Posicion:
",NumToStr(posicion)));
TextOut(0, LCD_LINE1, StrCat("Setpoint:
",NumToStr(Ref)));
TextOut(0, LCD_LINE3, StrCat("Control:
",NumToStr(u)));
// Escriba aqui el algoritmo de Control de Posicin
e=Ref-posicion;
u=e*k;
if(u>10)
u=100;
else if(u<-10)
u=-100;
if(u>=0)
OnFwd(OUT_A,u);
else if(u<0)
OnRev(OUT_A,-u);
// Fin del Algoritmo
s = NumToStr(posicion);
write = StrCat(s," ");
WriteLnString(fileHandle,write, bytesWritten);
Wait(7);
ClearScreen();
}
CloseFile(fileHandle);
}

Con este algoritmo se gener un archivo cuyos valores se
graficaron y se obtuvo la siguiente representacin:


Grafica 2-2) Respuesta del motor lego al algoritmo de posicin

Ac se observa claramente que con el control que se le realiza
por cdigo al motor, se genera un sobre pico y se genera un
error de posicin, pequeo pero se debe hacer notar. El valor
final es de 182, y el valor pico es de 192. Esto nos dice que el
error de estado estacionario es de 1.11 % y un sobre pico de
6.66 %.


Punto 3

Como requerimiento de diseo, se pide obtener una respuesta
que sea dos veces ms rpida que el sistema en lazo abierto.

Para ello se implementa un control proporcional, de nuevo se
us la funcin de transferencia de velocidad obtenida en la
prctica 2 y se retroaliment obteniendo lo que se tiene en la
ecuacin:

moto
=
8.267S
u.u44S8S +1 + 8.267S


Para disminuir a la mitad el tiempo de estabilizacin del motor
LEGO, es necesario que la constante de proporcionalidad K
multiplicada por 8.2673 sea igual a 1, ya que con esto la
constante disminuye a la mitad.

1 = 8.267S
= u.121

Grafica 2-3.1) Diagrama de bloques en Simulink

Con este nuevo valor de q se obtiene la siguiente grfica:

Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional


Grfica 2-3.2) Respuesta a un control de velocidad, con K=0.1209,
ref=180
Punto 4

Se requiere disear un sistema de control que permita obtener
un error del 10% en la salida de estado estacionario de la
velocidad de un servomotor. El sistema de control a disear
debe ser un control proporcional.

La funcin de transferencia que caracteriza al motor,
realizando una aproximacin a una funcin de transferencia de
primer orden, es

moto
=
8.267S
u.u44S8S +1


La salida en lazo abierto que se obtiene es la ilustrada en la
siguiente grfica,


Grfica 2-4.1). Salida en lazo abierto de la velocidad del motor.

Se tiene una funcin de transferencia de la forma:

=

0
+
0


Suponiendo que es estable, para una entrada paso se tiene que
el error de estado estable es:

ss
= 1 (u)

ss
= 1

0
u +
0

ss
= 1

0

0


Como se debe tener un error de estado estacionario de 10%:

1 u.1 =

0

0


La funcin de transferencia total del sistema de lazo cerrado
es:

cI
=
8.267S
u.u44S8S + 1 + 8.267S


Por lo que se dice que:

0
= u.u44S8S +(1 +8.267S)

0
= 8.267S

Reemplazando estos valores en la ecuacin del error se tiene
el valor de la constante del control proporcional:

u.9 =
8.267S
1 + 8.267S

(1 +8.267S) u.9 = 8.267S
u.9 = (8.267S 7.44u6)
= 1.u886

La siguiente grfica muestra el diagrama de bloques del
sistema de control implementado.

Grfica 2-4.2). Diagrama de bloques del sistema de control de
velocidad con un error de 10%.

La salida obtenida es la que se ilustra en la grfica 2-4.3).


Grfica 2-4.3) Salida seal de velocidad con un error de 10% en
estado estacionario.

Teniendo este control proporcional calculado, se procedi a
implementar el control en el Bricx Command Center,
utilizando el cdigo control controlpvel.nxc.
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional


% Se declaran variables
long Ref=600; // Seal de referencia
float vel; // Velocidad del servomotor
float u,e,k=1.0886; // u es la seal de control, e es el error
entre la referencia y la salida, k es la constante del control
proporcional
long dt;
long prev_tick;
long prev_deg = 0;
byte fileHandle;
string s;
short bytesWritten;
string write;
string speed_meter(){
dt = CurrentTick() - prev_tick;
long deg = MotorRotationCount(OUT_A) - prev_deg;
vel = deg * 1000.0 / dt;
prev_deg = MotorRotationCount(OUT_A);
prev_tick = CurrentTick();
return FormatNum("Vel: %5.2f g/s", vel);
}

task main(){
DeleteFile("controlpvel.txt");
CreateFile("controlpvel.txt", 20000, fileHandle);
while(!ButtonPressed(BTNCENTER, false)){
TextOut(0, LCD_LINE2, speed_meter());
TextOut(0, LCD_LINE1, StrCat("Ref:
",NumToStr(Ref)));
// Escriba aqu el algoritmo de Control de Velocidad
e=Ref-vel; // El error es la referencia que se debe
seguir menos la seal de salida.
u=e*k; // Por operacin de diagrama de bloques la
seal de control es el error por el control p.
// Establece las condiciones para que el
servomotor no llegue a su estado de saturacin.
if(u>100)
u=100;
else if(u<-100)
u=-100;
// Seal de salida del control.
if(u>=0)
OnFwd(OUT_A,u);
else
OnRev(OUT_A,-u);

// Fin del Algoritmo
s = NumToStr(vel);
write = StrCat(s," ");
WriteLnString(fileHandle,write, bytesWritten);
Wait(7);
ClearScreen();
}
CloseFile(fileHandle);

La grfica2-4.4) muestra la salida obtenida al implementar la
seal de control.


Grfica 2-4.4). Velocidad del servomotor.

La seal de referencia que deba seguir era de 600, en
promedio la seal de salida es 523,3474, lo que implica un
error de 12,8333%. No se logr un 10% de error de estado
estacionario exacto porque el modelo que se tom del
servomotor es una aproximacin de primer orden.

Punto 5:

Se requiere un control proporcional para la posicin del
servomotor que se estabilice en 2 segundos.

Se parte del hecho de que la funcin de transferencia del
servomotor para la posicin es:

moto
=
8.267S
u.u44S8S` +


En lazo cerrado, la funcin de transferencia del sistema es:

sstcmu
=
8.267S
(u.u44S9)
2
+ + 8.267S


Para hallar la constante proporcional k se realiz el siguiente
anlisis:

Se hace una aproximacin a un sistema de primer orden, lo
cual es correcto por su comportamiento que es parecido, un
sistema de primer orden es de la forma:

=

+ 1


Por lo que el polo ser:
=
1



Se supondr que el sistema llegar a su estado estacionario en
3, y el tiempo de estabilizacin es de 2 segundos, motivo por
el cual:
=
2
S

=
S
2
= 2.S

Ahora se sustituye este polo en el denominador de la funcin
de transferencia de segundo orden y se iguala a cero:
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional


(u.u44S9)
2
+ + 8.267S = u
(u.u44S9)(2.S)
2
+(2.S) +8.267S = u
2.221S + 8.267S = u
=
2.21S
8.267S

= u.2687

La figura 2-5.1) muestra el diagrama de bloques utilizado en
Simulink,


Figura 2-5.1) Diagrama de bloques sistema de posicin del
servomotor.

A partir de esto se obtiene la grfica 2-5.2) que es la
correspondiente a la salida de la posicin segn la simulacin.


Grfica 2-5.2) Simulacin posicin con tiempo de estabilizacin de 2
segundos.

Se implement en el LEGO mediante el Bricx Command
Center utilizando el siguiente cdigo:

// Se definen las variables
long Ref=180;
long posicion=0;
byte fileHandle;
string s;
short bytesWritten;
string write;
float t=0, e, u, k=0.2523;
task main(){
DeleteFile("controlpos2.txt");
CreateFile("controlpos2.txt", 20000, fileHandle);
while(!ButtonPressed(BTNCENTER, false)){
posicion = MotorRotationCount(OUT_A);
TextOut(0, LCD_LINE2, StrCat("Posicion:
",NumToStr(posicion)));
TextOut(0, LCD_LINE1, StrCat("Setpoint:
",NumToStr(Ref)));
TextOut(0, LCD_LINE3, StrCat("Control:
",NumToStr(u)));
TextOut(0, LCD_LINE4, StrCat("Tiempo:
",NumToStr(t)));
// Escriba aqu el algoritmo de Control de Posicin
e=Ref-posicion; // Seal que entra al control P, es el
error entre la referencia y la salida.
u=e*k; // Seal de control obtenida por operacin
de diagrama de bloques
t=t+0.01;
if(u>100) // Para evitar saturaciones
u=100;
else if(u<-100)
u=-100;
if(u<5 && u>0) u=5; // Cuando la velocidad del
servomotor es menor al 5% no logra vencer la inercia del
servomotor, por lo que se establece un valor mnimo
else if(u>-5 && u<0) u=-5;
if(u>=0)
OnFwd(OUT_A,u);
else if(u<0)
OnRev(OUT_A,-u);
// Fin del Algoritmo
s = NumToStr(posicion);
write = StrCat(s," ");
WriteLnString(fileHandle,write, bytesWritten);
Wait(7);
ClearScreen();
}
CloseFile(fileHandle);
}

Al implementarlo inicialmente sin la restriccin de u<5, se
obtuvo la salida de la grfica 2-5.3).


Grfica 2-5.3). Salida de la posicin del servomotor.

A partir de estos datos del sistema se obtuvo:

s
= 2
Universidad Nacional de Colombia. Cortes, Martnez, Rodrguez, Salinas. Control On/Off y Control proporcional

= 8.267S = 2.22
= 8.SSS%
= u%

Punto 6

El servomotor cuando tiene una seal de velocidad para que
gire su rtor, pero si esta seal es menor o igual al 4% de su
velocidad mxima no logra vencer la inercia del servomotor,
por lo que entra a una zona muerta, elemento que se puede
simular con la herramienta de Simulink llamada Dead Zone,
la grfica 2-6.1) muestra el diagrama de bloques incluyendo la
zona muerta.

Grfica 2-6.1). Diagrama de bloques del motor en posicin
incluyendo la zona muerta.

Se estableci que la zona muerta est entre -4 y 4, al simular,
se obtiene la grfica 2-6.2).


Grfica 2-6.2). Posicin del servomotor con zona muerta.

ss
cxpcrimcntcl
= 16S

ss
simulccicn
= 16S.u1

Esto nos da un error permanente aproximado de 8.33%.


IV. CONCLUSIONES
Como se define en el control on/off, podemos
encontrar una ganancia muy grande pero con los
problemas inherentes al tener una ganancia tan alta.

No se puede contemplar clculos exactos a la hora de
referirse al modelo de control de una planta ya que se
est trabajando es con aproximaciones en ciertos
rangos y niveles dependiente de los resultados.

Se puede arriesgar un poco la ganancia de los
controladores on /off as sean de fcil
implementacin, para poder asegurar un poco ms de
estabilidad en el sistema.

La retroalimentacin genera que el tiempo de
estabilizacin de la planta en cuanto a la referencia
sea menor.

El control P es de fcil manejo y adaptabilidad puesto
que este permite escoger la ganancia adecuada de una
planta. En si esto significa que si la planta presenta
algn cambio al nivel fsico rutinario, se puede
utilizar el mismo sistema de control.


V. BIBLIOGRAFA


Gua de laboratorio No. 3 laboratorio de control,
Modelamiento e identificacin.

Documento en lnea,
http://www.slideshare.net/shuaranca/sistema-control-
onoff

Documento en lnea,
http://www.ecured.cu/index.php/Control_proporciona
l

También podría gustarte