Monografía Control

34
UNIVERSIDAD NACIONAL DE CORDOBA FACULTAD DE CIENCIAS EXACTAS, FISICAS Y NATURALES. ASIGNATURA Sistemas De Control I CARRERA INGENIERIA EN COMPUTACION Monografía Final Integrantes: Bustos, Maximiliano. Gleria, Martin. Docente Clases Teóricas: Ing. AGÜERO, Adrián C. Docente Clases Prácticas: Ing. BAUMGARTNER, ose! AÑO LECTIVO: 2013 Segundo Cuatrimestre

description

Sistemas de Control I

Transcript of Monografía Control

UNIVERSIDAD NACIONAL DE CORDOBA

FACULTAD DE CIENCIAS EXACTAS, FISICAS Y NATURALES.

ASIGNATURASistemas De Control I

CARRERAINGENIERIA EN COMPUTACION

Monografa FinalIntegrantes:Bustos, Maximiliano.Gleria, Martin.

Docente Clases Tericas:Ing. AGERO, Adrin C.Docente Clases Prcticas:Ing. BAUMGARTNER, Josef

AO LECTIVO: 2013Segundo CuatrimestreResumen: Se quiere controlar la temperatura de un Switch haciendo variar las RPM de un ventilador proporcionalmente a la variacin de temperatura del gabinete, utilizando tambin para este fin un disipador de calor. La temperatura de trabajo pretende ser de 40C, y su lmite superior es de 80C, ya que los componentes electrnicos soportan aproximadamente 90C (segn hoja de datos), razn por la cual nos tomamos un margen de 10C por seguridad.Introduccin El problema consiste en el control de temperatura del gabinete de un Switch, lo cual se hara regulando automticamente la velocidad de giro de un cooler y conjuntamente con la accin de un disipador. Con el objeto de mantener la temperatura constante o lejos de temperaturas crticas que pueden daar los componentes internos del equipo, atenuando el efecto de perturbaciones externas como podran ser las altas temperaturas ambientales, la presencia de suciedad en el gabinete, la mayor generacin de calor de los componentes al ser exigidos. Para lograr este objetivo, el modelo compara constantemente una entrada de referencia, fijada en 40C que representa la temperatura deseada de trabajo, con la temperatura medida por el sensor. De esta diferencia surge la velocidad de rotacin del cooler, derivando en un flujo de aire que en accin conjunta con el disipador, regulan la temperatura del gabinete del Switch.

Consideraciones: Se eligi como sensor un LM35, cuya hoja de datos se encuentra adjunta al presente informe. El sensor registra la temperatura del equipo en forma de un voltaje analgico. El valor entregado por el sensor vara linealmente obedeciendo la relacin 10mV/C. La velocidad mxima del motor del cooler es 5800 RPM; este dato fue obtenido tras analizar el modelo de motor que ofrece el libro Sistemas De Control Automtico, Kuo y valindonos tambin de trabajos anteriores pudimos establecer un modelo simplificado del mismo. Tanto la salida como la entrada del sistema son temperaturas, pero internamente se trabajan como voltajes. Se simula el ingreso de la temperatura actual dentro del gabinete, siendo esta de 60C.

Modelo inicial

Entrada: Una seal constante (escaln) que representa la temperatura de referencia a la cual el dispositivo en cuestin puede operar de manera cmoda y sin complicaciones. En nuestro modelo representa una temperatura de 40C.Adaptador (1 y 2): Es una constante que permite transformar grados en voltios para que el sistema internamente trabaje de esta forma. De esta manera quedan ajustadas las respectivas escalas utilizando el valor de referencia de 40C.Cooler: El dispositivo elegido fue Brushless Flat DC-Micromotors Serie 2610 012B de la marca FAULHABER (hoja de datos adjuntada). Presenta un voltaje nominal de 12V, para el cual mediante un modelo de motor obtenido del libro de Sistemas de Control Automtico, Kuo, y la referencia de otros trabajos hemos determinado que operando a 12V el cooler es capaz de girar a 5800RPM, con un tiempo de establecimiento para llegar al 63% de 3 segundos.Sensor: Vamos a utilizar como referencia el sensor LM35, el cual tiene un rango de trabajo de 4 a 30V, produciendo como salida 10mV/C contando desde los 0C segn la configuracin utilizada. Este sensor medir la temperatura del gabinete del Switch. Si la temperatura es 80C presenta como salida 0.8V (800mV), con un tiempo de establecimiento para llegar al 63% de 3 segundos, segn la siguiente figura de la hoja de datos:Disipador: La funcin de transferencia de la disipacin de calor es la siguiente:

En donde 90C es la temperatura mxima que el sistema es capaz de disipar a una velocidad angular del cooler mxima de 5800RPM.Este bloque es una simplificacin de dos bloques que consideran el flujo mximo de caloras que el sistema es capaz de disipar a una velocidad angular de cooler mxima y, en segundo lugar, la temperatura mxima que es posible disipar para ese flujo.

Temperatura externa: Este bloque pretende simular el calor presente en el gabinete del Switch, el cual constantemente hace trabajar el sistema de refrigeracin. Cabe aclarar que en nuestro modelo este aspecto se encuentra simplificado, lo modelamos como una constante, cuando se sabe que es bastante ms complejo que eso. Pero a fin de cuentas es un valor que se aade a lo que el sistema trae de la comparacin entre la temperatura medida y la de referencia, para constituir la temperatura que ingresa al sensor LM35.Salida : La temperatura en grados Celcius.En base a lo expuesto hasta aqu, se confeccionaron las respectivas funciones de transferencias de cada bloque explicado, quedando como se muestran a continuacin.

Modelo con las funciones de transferencia

Las funciones de transferencia de cada uno de los componentes son:Disipador:Cooler:Sensor:Adaptador 1:Adaptador 2:

Funcin de transferencia a Lazo AbiertoSe llega a la funcin de transferencia de lazo abierto (LA) por algebra de diagrama de bloques, obteniendo la siguiente ecuacin:

Expresada en funcin de ceros, polos y ganancia (ZPK):

POLOS

-0.5

-0.33

-0,33

No existen ceros en la funcin de transferencia a lazo abierto.

Funcin de transferencia a Lazo Cerrado

La funcin de transferencia de lazo cerrado (LC) mediante diagramas de bloque, se obtiene de aplicar:

Expresada en funcin de ceros, polos y ganancia (ZPK):

Cuyo diagrama de ceros y polos en el plano s es:

Los ceros y polos se resumen en la siguiente tabla:

CEROSPOLOS

-0.33-0.6252

-0.27+0.18i

-0.27-0.18i

Regla de Mason:En un intento de verificar las funciones de transferencia obtenidas mediante algebra de diagramas, se procede a aplicar la regla de Mason en el afn de llegar a resultados equivalentes. A continuacin representaremos el sistema con nodos y trayectorias: Procedemos as a realizar la Regla de Mason, mediante la siguiente frmula: Siendo N el nmero total de caminos directos, Mk ganancia de la ruta directa k y = 1 ganancia de los lazos individuales + ganancia de los productos de todas las combinaciones posibles de dos lazos que no se toquen-Y por ltimo = con todos los lazos que tocan la ruta directa k igual a cero.

Entonces N=1 el nico camino directo es abcde y el nico lazo es bcdb. Por lo tanto los trminos son:

Luego calculamos la ganancia de los lazos simples:

El queda unitario debido a que quitamos todos los lazos adjuntos a M1. Por ltimo el determinante grfico sera:

Quedando as formada la ecuacin de Mason:

Quedando semejante a la misma funcin de transferencia calculada mediante lgebra de bloques para lazo cerrado, solo que difiere en algunos trminos por redondeo en los clculos.

Error en rgimen permanente

Con el propsito de analizar los diferentes comportamientos del sistema mediante las diferentes seales bsicas de entrada al sistema (step, rampa y parbola), observaremos los siguientes grficos que representan la relacin entre la seal de entrada y salida correspondientes: Empezaremos con la seal de entrada step, se pudo observar que la salida del sistema no llega al valor esperado, esto se debe a que existe un error de posicin el cual se calcula como: Luego calculamos (constante de error de posicin) mediante la frmula:

Luego el error en rgimen permanente es:

El cual indica una diferencia relativa del 45% entre el valor de la seal de entrada respecto a la de salida.A continuacin observamos en la figura el error calculado. Ingresamos con un Step de amplitud 40 y la salida se establece en aproximadamente 22. La forma de tratar este tipo de error en un sistema alimentado con un entrada escaln, es agregando un polo al origen, convirtiendo el sistema en uno de tipo 1, es decir, agregar un integrador a la funcin de transferencia.Para encontrar los valores de ganancia k con los que se puede trabajar en el sistema sin que este se vuelva inestable, aplicamos el criterio de Routh-Hurwitz, en la siguiente seccin.A modo de anlisis, agregamos a las imgenes ante las entradas de rampa y parbola:

Si observamos la funcin a lazo abierto notamos que no tiene ningn polo al origen por lo tanto el sistema es de TIPO 0 (sin el integrador).Teniendo en cuenta que para este tipo de sistemas:

Luego el error, calculado como siendo R(s) la entrada rampa o parbola y K la respectiva constante de error se vuelve infinito, para estas dos entradas.

Criterio de Routh-HurwitzLa ecuacin caracterstica, luego de agregar el integrador es:

Analizaremos para que valores de k el sistema se comportar de manera estable mediante el criterio de Routh-Hurwitz, para la cual utilizaremos la ecuacin caracterstica definida arriba.

S41881,2k

S32110

S27,141,2k0

S100

S01,2k00

Entonces analizamos el resultado de vemos que:

Este resultado deber ser mayor que cero para que no signifique un cambio de signo en la ecuacin y no haga el sistema inestable. Luego:

Por otro lado examinando el valor de 1.2k, concluimos que k deber ser mayor a cero, por el mismo motivo mencionado antes. Entonces: Por ltimo el intervalo de k para que nuestro sistema sea estable es:

Entonces, el compensador que elegimos para eliminar el error, manteniendo el estado estable del sistema de control es:

Lo que deja a nuestro sistema como se muestra a continuacin:

Produciendo una salida donde se observa la notoria correccin del error en rgimen permanente tras haber agregado el integrador respectivo.

Polos dominantesPara saber cules son los polos dominantes del sistema vamos a observar nuevamente las posiciones de los mismos:Los polos con su parte real ms cercana al eje imaginario tienen unos residuos mayores e influirn ms a la respuesta del sistema, a estos polos los denominamos polos dominantes. Esto es debido a que cuanto ms cerca del eje j est la parte real de un polo, mas influir este en la en la respuesta transitoria del sistema, volvindolo ms lento; por el contrario, mientras ms se alejan los polos del eje imaginario en el semiplano izquierdo de s, menos peso tienen sobre la respuesta transitoria, y segn algunos autores, si superan en 10 veces la magnitud de la parte real de los polos dominantes, estos polos pueden considerarse insignificantes en cuanto a la respuesta transitoria se refiere. Cuando se pretende mejorar la velocidad de establecimiento de un sistema, el anlisis de los polos dominantes puede ser una herramienta muy til.En nuestro caso el polo dominante es el que agrega el integrador para disminuir el error de rgimen permanente, produciendo as un nuevo lugar de races:

Lugar de races sin integrador Lugar de races con integradorLugar de RacesEn teora de control, el lugar de races (del ingls root locus) es el lugar geomtrico de los polos y ceros de una funcin de transferencia a medida que se vara la ganancia del sistema K en un determinado intervalo.El mtodo del lugar de races permite determinar la posicin de los polos de la funcin de transferencia a lazo cerrado para un determinado valor de ganancia K a partir de la funcin de transferencia a lazo abierto; esto constituye una herramienta muy til para analizar la estabilidad de sistemas dinmicos, valindonos del hecho que un sistema es estable si todos sus polos se encuentran en el semiplano izquierdo del plano s.El lugar de races para nuestro sistema es el siguiente:

Se puede ver de la captura anterior, que en el lmite con el eje imaginario, llegando desde el eje de abscisas negativo, donde tenemos el lmite terico de estabilidad, tenemos el valor mximo de k calculado a travs del criterio de Routh-Hurwitz, para el cual nuestro sistema sigue siendo estable. Compensacin Comment by Martin Gleria: Est bien que hayamos hecho los dos compensadores. Tenemos que justificar y entender debidamente porque uno es mejor que otro. Usar lugar de races para lo anterior.

Requerimientos: 10% del sobrepasoSobrepasoMax=4 Reducir el tiempo de establecimiento a menos de la mitad del actual25sTras ejecutar el comando stepinfo de MatLab a nuestro sistema, nos arroja el siguiente resultado:>> stepinfo(LC)RiseTime: 9.2407SettlingTime: 75.0805SettlingMin: 5.6705SettlingMax: 8.1996Overshoot: 31.1931Undershoot: 0Peak: 8.1996PeakTime: 23.2606

Pero el tiempo de establecimiento calculado por MatLab seguramente usa un criterio mas estricto que el que nosotros necesitamos. Para obtener el tiempo de establecimiento entonces, identificaremos aquel tiempo en el cual la repuesta al escaln queda estable dentro del 5% de la respuesta estable. En este caso, nuestro clculo basado en la observacin de la grfica mostrada en la pgina anterior, determina que el tiempo de establecimiento es de 54.3s, en vez de 75s segn el clculo de MatLab.Para el sobrepaso debemos trabajar con la siguiente frmula:

Siendo y , tenemos:

Por lo tanto el sobrepaso tiene un valor en nuestro sistema de 32.25%. Difiere muy poco respecto al arrojado por MatLab de 31.19%.Resumiendo, los parmetros iniciales a optimizar son: Tiempo de establecimiento Sobrepaso Ajustando el valor k del integrador agregado anteriormente podemos reducir notablemente el sobrepasamiento del sistema. Lo reducimos a la mitad quedando obteniendo una salida:Desde este punto, quisiramos ahora agregarle un compensador en adelanto de fase que mejore el tiempo de establecimiento para lograr el objetivo planteado.

Nuestra funcin de Lazo Abierto actual, luego de haberle agregado un integrador y tras modificarle el k, qued de la siguiente forma:

Cuyos polos son:

POLOS

0

-0.33

-0.33

-0.5

Ahora bien, establecemos un factor de amortiguamiento deseado de = 0.7 y ya habamos definido un tiempo de establecimiento de Segundos. Podemos calcular el valor de de la siguiente manera:Comment by Martin Gleria: Agregar una justificacin de esto diferenciando si el sistema es amortiguado, sub o sobre amortiguado.

Quedando entonces:

Con este valor procedemos a calcular el punto de diseo de la siguiente manera:Comment by Martin Gleria: entre amigos redondeamos a 0,2

Una forma alternativa, ms sencilla, de calcular el punto de trabajo es despejando de la ecuacin, quedando:

Siendo , nos queda:

Este ltimo valor representa la parte real del polo deseado o punto de trabajo para las especificaciones dadas; constituye entonces nuestro :

Emplearemos, en primera instancia, el mtodo de la bisectriz para el clculo del compensador. Los ngulos que cada uno de los polos conforma en relacin a son:Comment by Martin Gleria: Modificar desde aca

POLOSngulo

0-135

-0.33-56,4

-0.33-56,4

-0.5-33,7

Por lo tanto, el ngulo del compensador (en adelanto) se calcula como sigue:

Elegimos utilizar un compensador en adelanto ya que este hace el sistema ms rpido porque mejora la respuesta transitoria, un compensador en atraso mejorara el error en rgimen permanente, hecho que ya hemos corregido en nuestro sistema.Se procede entonces a calcular las posiciones del polo y el cero del compensador:

Grficamente

La funcin de transferencia del compensador sera entonces:

Y la funcin de transferencia de lazo abierto del sistema compensado sin ganancia expresada como zpk es:

Ahora, nos valemos del criterio del mdulo para calcular la ganancia del compensador:

Haciendo valer en la ecuacin anterior, obtenemos que:

El resultado de la funcin stepinfo habiendo agregado el compensador es:>> stepinfo(LC)RiseTime: 177.8099SettlingTime: 316.9404SettlingMin: 5.6254SettlingMax: 6.2459Overshoot: 0Undershoot: 0Peak: 6.2459PeakTime: 701.4006

Como se puede observar, el sistema con el compensador calculado se ha vuelto DEMASIADO lento. Tarda 5 minutos (300s aprox.) en entrar en rgimen. Obviamente este no es aceptable y est fuera de los parmetros que pretendemos.Encontramos una alternativa para calcular un compensador en adelanto de fase. Una funcin que utiliza algunas herramientas de MatLab y otras propias que tiene como parmetros de entrada los coeficientes del sistema, el sobrepaso deseado y el tiempo de establecimiento deseado. Esta funcin utiliza criterios diferentes para la ubicacin del polo y del cero del compensador, pero para nuestro sistema ha funcionado mejor en cuanto a los requerimientos solicitados. Adjuntamos el cdigo de la funcin al final del informe. El compensador calculado de esta forma es:

(Nota: La ganancia no es la que el presente mtodo arroja, sino la calculada con el criterio del mdulo y ajustada posteriormente para un menor sobrepaso)

Y la salida del sistema con este compensador resulta:Donde se observa que alcanza los 40 a los 22 segundos con un sobrepasamiento de 3.9, con un tiempo de establecimiento de unos 30 segundos aproximadamente.Comparacin de CompensadoresPara justificar la notable diferencia de los tiempos de establecimiento, recurrimos al lugar geomtrico de races una vez ms.Esta imagen muestra el lugar de races para el sistema con el compensador y el punto resaltado es donde se desplaza el polo del origen tras aplicarle la ganancia calculada. Este polo es MUY dominante al estar cerca del eje imaginario, por lo tanto es el causante de la LENTITUD del sistema provocando un tiempo de establecimiento muy largo.

Como vemos el compensador tiene un lugar de races ligeramente diferente debido a que el polo y el cero del mismo estn ubicados ms alejados del eje imaginario, por lo que producen que el polo al origen est ms alejado del eje para la ganancia planteada, con la desventaja que deja de tener parte imaginaria igual a cero, por lo que el sobrepasamiento aumenta ligeramente, pero queda dentro de los parmetros establecidos. El alejar el polo del eje j produce que el sistema pueda cumplir con las especificaciones de tiempo planteadas.El sistema por lo tanto queda conformado como sigue:

Y analizando la salida con una alteracin distinta de cero, aproximando a una situacin real donde la temperatura del gabinete del Switch sea 70C, nuestro sistema responde como sigue:Donde podemos observar que en poco ms de 25s baja la temperatura del gabinete por debajo de los 40, como pretendamos.

Repuesta en FrecuenciaComment by Martin Gleria: Falta justificar bien los valores obtenidos y expresarlos.Graficamos la fase y la magnitud de nuestra funcin a lazo abierto correspondiente a nuestro sistema, donde la primera imagen es sin compensacin y la segunda es utilizando el compensador calculado:Ganancia de Fase

Funcin LA sin compensar

Funcin LA compensada

Donde los polos de la funcin sin compensar son: 0, -0.5 y un polo doble en -0.33. Por otro lado los polos y ceros de la funcin compensada son: 0, -0.5, -0.418 y un polo doble en -0.33, aclaramos que el compensador en adelanto agrega un cero en -0.132.El criterio de estabilidad de Bode indica cmo establecer un mtodo racional de sintona de sistemas de control por retroalimentacin para evitar situaciones de inestabilidad. Elmargen de gananciase define como el cambio en la ganancia a lazo abierto necesario para inestabilizar el sistema. Los sistemas con mrgenes de ganancia grandes pueden tolerar mayores cambios en los parmetros del sistema antes de hacerse inestable a lazo cerrado.Lgicamente debe tomar valores por encima de la unidad para que el sistema sea estable.El margen de ganancia es una medida importante del sistema ya que:1. Constituye una medida de la proximidad del sistema de la zona de inestabilidad.2. Cuanto mayor de la unidad sea el margen de ganancia, ms seguro ser el sistema controlado.Utilizando matlab podemos observar cuales son los mrgenes de ganancia de fase y amplitud:Ganancia de AmplitudGanancia de Fase

Funcin LA sin compensar

Ganancia de AmplitudGanancia de Fase

Funcin LA compensadaClaramente observamos que la ganancia con el compensador es mayor, logrando as que el sistema necesite un Kc mayor para que se inestabilice.

ConclusionesComment by Martin Gleria: Aca me gustara poner que quizs con la primera compensacin que hicimos hubiera sido suficiente. Agregar un compensador supongo que era complejizar el circuito, por lo tanto gastar ms dinero. Por lo tanto, flexibilizando un poco las especificaciones, el sistema con el integrador hubiera sido suficiente. Y No se si algo ms.

AnexoComment by Martin Gleria: Presentar mejor estom-file clear allclcCooler=tf([5800/12],[3 1]);Disip=tf([90/5800],[2 1]);Sens=tf([0.4/40],[3 1]); Adap1=6.4/40;Adap2=6.4/0.4;%En el modelo Simulink se tiene configurado como entrada un Step de %amplitud 40 con un adaptador que provoca que sea 6.4V. Por lo tanto Adap1%no tendra efecto en este contexto.opt = stepDataOptions('StepAmplitude',6.4);Integrador=tf([0.1],[1 0]);%Este fue el compensador calculado con la metodologia aprendida en clase. % El cual decidimos reemplazar por otro calculado segn se explica en el% informe. % Compensador=tf([1 0.132],[1 0.418]); % K=1.32;Compensador=tf([1 0.5928],[1 0.6937]);K=0.90572; G=Integrador*Cooler*Disip;H=Sens*Adap2; LA=G*H;LAzpk=zpk(LA);LC=feedback(G,H);LCzpk=zpk(LC);disp('La funcin lazo abierto del sistema es: ') LAdisp('En formato ZPK: ') LAzpkdisp('La funcin lazo cerrado del sistema es: ') LCdisp('En formato ZPK: ') LCzpk figurestep(LC,opt)title('Salida del Sistema SIN Compensador')stepinfo(LC) G=K*Compensador*Integrador*Cooler*Disip;H=Sens*Adap2; LA=G*H;LAzpk=zpk(LA); LC=feedback(G,H);LCzpk=zpk(LC); figurestep(LC,opt)title('Salida del Sistema CON Compensador')stepinfo(LC)

Funcin para calcular el compensador% Este Programa Calcula el compensador de adelanto y de atraso para% un sistema en "s" la funcion trabaja de la siguiente manera:%% PID(numerador, denominador, sobreimpulso, tiempo de estabilizacion)% Ejemplo:% num= [1 3 4]% den= [3 2 5 3]% leadlag(num,den,10,2)% El compensador de adelanto es % newnum =% 20.33126550103975 57.98484070119527% newdenom =% 1.00000000000000 2.87111370360492 % Zero/pole/gain:% 20.3313 (s+2.852)% -----------------% (s+2.871)%% Tener cuidado de no escribir letras en los espacios del spbrimpulso y% el tiempo de estabilizacion% El tiempo de estabilizacion esta calculado por la formula:% ts=3/(chi*wn) %% Para el compensador de adelanto se creo el criterio de ubicar la% parte real del punto a utilizar 0.5 a la izquierda de chi*wn% Para el compensador de atraso se creo el criterio de ubicar el% cero a utilizar 0.25 a la derecha del polo mas a la derecha % %function [sistema,atraso] = leadlag(numer, denom, M, ts) ni=nargin; algito=numer; algito1=denom; if (ni==4) warning off MATLAB:divideByZero sirve = isnumeric(M); sirve1 = isnumeric(ts) if (sirve == 1)%&&(sirve1 == 1) colum1=size(numer,2); colum2=size(denom,2); a=0; numerador=0; for a = 1:colum1 syms s; numerador=(numerador+numer(1,a)*s^(colum1-1)) colum1=colum1-1; end numer=inline(numerador); b=0; denominador=0; for b = 1:colum2 syms s; denominador=(denominador+denom(1,b)*s^(colum2-1)); colum2=colum2-1; end denom=inline(denominador); syms s; funtrans = numer(s)/denom(s); funcion = inline(funtrans); %%Compensador de Adelanto chi = sqrt((log(M/100))^2/(pi^2 + (log(M/100))^2)); wn = 3/(chi*ts); chiwn=-wn*chi; cita = acos(chi); x = chiwn-0.5; y = -chiwn*tan(cita); punto = complex(x,y) eval = funcion(punto); colocho = angle(eval); fi = pi-colocho; n=1; if (fi > (pi/2)) fi = fi/2; n = 2; if (fi >= pi) fi = fi/3; n=3; end end cita2 = pi-angle(punto); cero = -abs(punto)*(cos((cita2+fi)/2))/(cos((cita2-fi)/2)); polo = -abs(punto)*(cos((cita2-fi)/2))/(cos((cita2+fi)/2)); if (n==1) kc =1/abs(funcion(punto)*(cero-punto)/(polo-punto)); elseif(n==2) kc =1/abs(funcion(punto)*(cero-punto)^2/(polo-punto)^2); else kc =1/abs(funcion(punto)*(cero-punto)^3/(polo-punto)^3); end cero = -cero; polo = -polo; if ( n==1 ) disp(['El compensador de adelanto es ']) newnum=conv(kc,[1 cero]) newdenom=conv(1,[1 polo]) sistema = zpk(tf(newnum,newdenom)) else if (n==2) disp(['El compensador de adelanto es ']) newnum=conv([1 cero],conv([1 cero],kc)) newdenom=conv(conv([1 polo],1),[1 polo]) sistema = zpk(tf(newnum,newdenom)) else newnum=conv(conv([1 cero],[1 cero]),conv([1 cero],kc)) newdenom=conv(conv([1 polo],1),conv([1 polo],[1 polo])) sistema = zpk(tf(newnum,newdenom)) end end %%Compesador de Atraso p=input('Desea Calcular el compensador de atraso 1) si 2) no : ','s'); quiere=str2num(p); if (quiere == 1) resp = 0; c=input('Digite el ess en porcentaje: ','s'); ess=str2num(c); if (ess~=0) while (resp == 0) d=input('Escoja el tipo de entrada (1)[escalon], (2)[rampa], (3)[parabola]: ','s'); in=str2num(d); if (in ~= 1)&&(in~=2)&&(in~=3) resp=0; else resp=1; end end ess = ess/100; if (in ==1) kp=(1-ess)/ess; Z0lP0=kp/(funcion(0)*cero^n*kc/polo^n); syms s; zeros = solve(denom(s),s); zeros = double(zeros); if (max(zeros ~= -0.25 )) if (max(zeros) == 0) disp(['El sistema debe ser de tipo cero']) j=input('Desea intentar de nuevo: 1) Si 2) No:','s'); intente=str2num(j); if (intente==1) compensador2; else disp(['Fin de programa']) end else Z0=-(max(zeros)+0.25); P0=(Z0/Z0lP0); disp(['El compensador de atraso es ']) numatr=conv(1,[1 Z0]) denatr=conv(1,[1 P0]) atraso = tf(numatr,denatr) end end if (max(zeros == -0.25 )) Z0=-(max(zeros)+0.1); P0=(Z0/Z0lP0); disp(['El compensador de atraso es ']) numatr=conv(1,[1 Z0]) denatr=conv(1,[1 P0]) atraso = tf(numatr,denatr) end end if (in ==2) kv=1/ess; syms s; limite=kv/(s*funcion(s)*cero^n*kc/polo^n);%%Sirve para calcular lim G(s)*s limite=inline(limite); Z0lP0=limite(0); syms s; zeros = solve(denom(s),s); zeros = double(zeros); tamano=size(zeros,1); tipo =0; for p = 1:tamano if (zeros(p)==0) tipo=tipo+1; end end if (tipo == 1) if (max(zeros ~= -0.25 )) Z0=-(max(zeros)+0.25); end if (max(zeros == -0.25 )) Z0=-(max(zeros)+0.3); end P0=(Z0/Z0lP0); disp(['El compensador de atraso es ']) numatr=conv(1,[1 Z0]) denatr=conv(1,[1 P0]) atraso = tf(numatr,denatr) end if (tipo ~= 1) disp(['El sistema debe ser de tipo uno']) disp(['Fin de programa']) end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (in ==3) ka=1/ess; syms s; limite=ka/(s^2*funcion(s)*cero^n*kc/polo^n);%%Sirve para calcular lim G(s)*s limite=inline(limite); Z0lP0=limite(0); syms s; zeros = solve(denom(s),s); zeros = double(zeros); tamano=size(zeros,1); tipo =0; for p = 1:tamano if (zeros(p)==0) tipo=tipo+1; end end if (tipo == 2) if (max(zeros ~= -0.25 )) Z0=-(max(zeros)+0.25); end if (max(zeros == -0.25 )) Z0=-(max(zeros)+0.3); end P0=(Z0/Z0lP0); disp(['El compensador de atraso es ']) numatr=conv(1,[1 Z0]) denatr=conv(1,[1 P0]) atraso = tf(numatr,denatr) end if (tipo ~= 2) disp(['El sistema debe ser de tipo dos']) disp(['Fin de programa']) end end else disp(['Para este caso es necesario un compensador filtro de muesca']) disp(['Fin de programa']) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end if (quiere~=1) disp(['Fin de Programa']) end else disp(['Error en la introduccion de M o ts. Estos deben ser numeros']) end else disp(['Faltan parametros']) end

Datasheets LM35Brushless Flat DC-Micromotors