Professional Documents
Culture Documents
Introduccin.
Un sistema lineal de segundo orden con una variable de entrada, " x(t )" , y una variable salida, " y(t )" se modela matemticamente con una ecuacin que en funcin de parmetros de significado dinmico se escribe en la siguiente forma:
d 2 y (t ) dy(t ) 2 y (t ) Kx(t ) 2 dt dt
(6.1)
Siendo, una constante de tiempo, el factor de amortiguamiento y K la ganancia en estado estacionario del sistema. Estos tres parmetros se calculan con ecuaciones en funcin de caractersticas fsicas del sistema. La constante de tiempo expresa un atraso dinmico, el valor del factor de amortiguamiento determina el tipo de respuesta del sistema y la ganancia tiene el mismo significado definido para los sistemas de primer orden La ecuacin anterior se escribe, usualmente, en trminos de las variables desviacin con respecto a sus valores en el estado inicial, es decir en la forma estndar para anlisis dinmico o de sistemas de control:
d 2Y (t ) dY (t ) 2 Y (t ) KX (t ) 2 dt dt
(6.2)
polinmica del mismo grado de la parte homognea de la ecuacin diferencial. Para la ecuacin (6.2), la ecuacin caracterstica es de segundo grado con la siguiente expresin, siendo " r" las races de la ecuacin caracterstica:
2 r 2 2 r 1 0
(6.3)
2 1
(6.4)
La ecuacin (6.4) muestra que la naturaleza de sus races depende del factor de amortiguamiento, lo que determina el tipo de respuesta que se obtiene para la ecuacin diferencial (6.2) o el comportamiento del sistema, de la siguiente manera:
Si 1 , las races son reales diferentes y negativas y la respuesta del sistema es una
suma de trminos exponenciales con signos negativos. Esto se define como un Comportamiento monotnico estable o Sobreamortiguado
Si 1 , las races son reales iguales y negativas y la respuesta del sistema es una
expresin exponencial con signo negativo. Esto muestra un Comportamiento monotnico estable crtico o Amortiguado crtico porque si se disminuye el valor del coeficiente de amortiguamiento la respuesta es de tipo subamortiguado y si, por lo contrario, se aumenta el sistema es ms sobreamortiguado
muestra un Comportamiento oscilatorio inestable o Subamortiguado inestable , es decir con oscilaciones de amplitud creciente
Si 1 , las races son reales positivos y la respuesta del sistema es una expresin
exponencial con signos positivos. Esto muestra un Comportamiento monotnico inestable o Sobreamortiguado inestable.
Y (t ) y (1)
dY (t ) dy(1) y (2) dt dt
d 2 Y (t ) dy(2) dt dt 2
En trminos de y(1), y(2), la ecuacin diferencial de segundo orden (6.2) se transforma en el siguiente sistema de ecuaciones diferenciales
dy(1) y ( 2) dt
(6.5)
(6.6)
Las soluciones a una ecuacin diferencial de segundo orden, para cambio paso, rampa y seno en la variable de entrada aparecen deducidas en la Leccin 4 del curso sobre Dinmica de Sistemas, al igual que los perfiles grficos que permiten visualizar algunas de las propiedades de cada una de ellas. En este punto se hace la respectiva referencia para su estudio y se continua con la explicacin de la construccin de una interfaz grfica con la cual se simule dicha simulacin.
1. Controles Axes: Se instalan dos controles de esta clase para desplegar imgenes. En el axes1 se despliega la imagen de la ecuacin diferencial de segundo orden lineal y en el axes2 se despliega la respuesta grfica a la solucin solicitada por el usuario. El cdigo para el axes1 se incluye de tal manera que la imagen se observe al desplegarse la interfaz para su ejecucin. 2. Controles Radio Button: Se instalan tres controles de esta clase para seleccionar el tipo de respuesta que se quiere simular. Se asignan las propiedades String con las leyendas que se observan en la Figura 6.1, es decir, Cambio Paso, Cambio Rampa y Cambio Seno. Para el botn Cambio Paso, la propiedad Value se asigna con el valor de uno y para los otros dos botones se asigna con el valor de cero. Esto hace que, por defecto, al desplegarse la interfaz el botn que aparezca como seleccionado sea el Cambio Paso 3. Controles Check Box: Se instala un control de esta clase para especificar si se quiere la respuesta con tiempo muerto. Se asigna la propiedad String con la leyenda Tiempo Muerto 4. Controles Static Text: Se instalan nueve controles de esta clase para anexar leyendas a los botones (Edit Text) donde se introducen datos requeridos para la solucin de la ecuacin diferencial. Se asignan las propiedades String con las leyendas que se observan en la Figura 6.1, es decir, Constante de Tiempo, Factor de Amortiguamiento, Ganancia Estacionaria, Condicin Inicial Y(0), Condicin Inicial Y(0), Tiempo Inicial, Tiempo Final, Cambio Paso, Frecuencia. Para el botn Frecuencia la propiedad Visible se ajusta al valor off. La propiedad Visible para los otros Static Text se deja en su valor por defecto, es decir, on. Esto quiere decir, que al desplegarse la interfaz el botn Frecuencia no se observa y se notara cuando se seleccione el radio botn Cambio Seno. El cdigo elaborado hace que cuando se seleccione el Radio Button denominado Cambio Rampa, la propiedad String del botn Cambio Paso cambie al valor Pendiente y cuando se seleccione el Radio Button denominado Cambio Seno, la propiedad String del botn Cambio Paso cambie al valor Amplitud 5. Controles Edit Text: Se instalan diez controles de esta clase para que el usuario introduzca los parmetros requeridos para la solucin de la ecuacin diferencial (constante de tiempo, factor de amortiguamiento, ganancia, condiciones iniciales, tiempo inicial, tiempo final, cambio paso y frecuencia). Se asigna a todos ellos la propiedad String con un valor de cero. La propiedad Visible de los botones donde se editan la frecuencia y el tiempo muerto se ajustan al valor off y se hacen visibles cuando se seleccionen el Radio Button Cambio Seno y el Check Box Tiempo Muerto, respectivamente.
6. Controles Push Button: Se instalan cuatro botones de esta clase para ejecutar, reiniciar, cancelar la simulacin y solicitar ayuda sobre la misma. Se asignan las propiedades String a los nombres Solucin, Reiniciar, Cancelar y Ayuda. Al presionar el botn Solucion se resuelve la ecuacin diferencial y se despliega la respuesta grafica en el control axes2. Al presionar el botn Reinicio todos los controles toman los valores iniciales asignados por defecto. Al presionar el bot Ayuda se despliega una ayuda dentro del escritorio de Matlab que muestra el cdigo construido para la elaboracin de la interfaz 7. Controles Panel: Se instalan cuatro botones de esta clase para encerrar los botones en cuadros separados para observarlos como dentro de un marco. Se asignan las propiedades String con los nombres Parmetros, Perturbacin, Entradas. Uno de los controles se deja sin propiedad String. La propiedad ForegroundColor se ajusta a color rojo y la propiedad TitlePosition a centertop Concluida la instalacin y distribucin de los componentes del GUI se procede a construir la codificacin para el funcionamiento de este programa. Para ello presione el botn M-File Editor de la barra de herramientas para acceder al cdigo hasta ahora construido por MatLab para su modificacin
set(handles.radiobutton2,'Value',0); set(handles.radiobutton3,'Value',0); set(handles.text8,'String','Cambio Paso'); set(handles.edit10,'Visible','on'); set(handles.text9,'Visible','off'); set(handles.edit11,'Visible','off'); Se deduce de los renglones anteriores, que se inactivan los otros dos radio botones denominados Cambio Rampa y Cambio Seno, se mantienen invisibles los controles text9 y edit11 y se ajusta la propiedad String del control text8 al valor Cambio Paso
set(handles.radiobutton1,'Value',0); set(handles.radiobutton2,'Value',0); set(handles.text8,'String','Amplitud'); set(handles.edit10,'Visible','on'); set(handles.text9,'Visible','on'); set(handles.edit11,'Visible','on'); En este caso, se inactivan los radio botones Cambio Paso y Cambio Rampa; la propiedad String del boton text8 se ajusta con el valor Amplitud y se hacen visible los botones edit10, text9 y edit11 con los valores por defecto de su propiedad String (cero, Frecuencia y cero, respectivamente).
La primera parte del lazo hace que sea visible el control edit9, si se verifica el cuadro de checkbox1 denominado Tiempo Muerto. Lo anterior, se logra mediante el ajuste de la propiedad Visible a un valor on. En caso contrario, es decir, si se desactiva el botn checkbox1, no se observan dicho control y la propiedad String del control edit9 se ajusta a cero
se resuelve la ecuacin diferencial para cada uno de los casos que incluye el diseo de la interfaz. Los resultados se muestran grficamente en el axes2 function pushbutton1_Callback(hObject, eventdata, handles) global K tau ro X w tspan I a b den h h1 to r A tau = str2double(get(handles.edit1,'String')); ro = str2double(get(handles.edit2,'String')); K = str2double(get(handles.edit3,'String')); I(1) = str2double(get(handles.edit4,'String')); I(2) = str2double(get(handles.edit5,'String')); tspan(1)= str2double(get(handles.edit7,'String')); tspan(2)= str2double(get(handles.edit8,'String')); axes(handles.axes2) if (get(handles.radiobutton1,'Value') == 1); cla; X = str2double(get(handles.edit10,'String')); [t,y] = ode45(@paso3,tspan,I); plot(t,y(:,1),'k'); xlabel('Tiempo','FontSize',12); ylabel('Respuesta','FontSize',12); title('Respuesta Paso','Fontsize',14); hold on if (get(handles.checkbox1,'Value') == 1) to = str2double(get(handles.edit9,'String')); h = tf([K*X],[tau^2 2*ro*tau 1],'inputdelay',to); [y1,t] = step(h,tspan(2)); plot(t,y1(:,1),'r'); xlabel('Tiempo','FontSize',12); ylabel('Respuesta','FontSize',12); title('Respuesta Paso','Fontsize',14); legend('Sin Tiempo Muerto','Con Tiempo Muerto',4); end end if (get(handles.radiobutton2,'Value') == 1); cla; r = str2double(get(handles.edit10,'String')); [t,y] = ode45(@rampa3,tspan,I);
plot(t,r*t,'r',t,y(:,1)/K,'k'); xlabel('Tiempo','FontSize',12); ylabel('Respuesta','FontSize',12); title('Respuesta Rampa','Fontsize',14); legend('Entrada','Sin Tiempo Muerto',4); hold on if (get(handles.checkbox1,'Value') == 1) to = str2double(get(handles.edit9,'String')); h = tf([r],[tau^2 2*ro*tau 1 0],'inputdelay',to); [y1,t] = step(h,tspan(2)); plot(t,y1(:,1),'b'); xlabel('Tiempo','FontSize',12); ylabel('Respuesta','FontSize',12); title('Respuesta Rampa','Fontsize',14); legend('Entrada','Sin Tiempo Muerto','Con Tiempo Muerto',4); end end if (get(handles.radiobutton3,'Value') == 1); cla; A = str2double(get(handles.edit10,'String')); w = str2double(get(handles.edit11,'String')); [t,y] = ode45(@seno3,tspan,I); plot(t,A*sin(w*t),'r',t,y(:,1),'k'); xlabel('Tiempo','FontSize',12); ylabel('Respuesta','FontSize',12); title('Respuesta Seno','Fontsize',14); legend('Entrada','Salida Sin Tiempo Muerto',4); hold on if (get(handles.checkbox1,'Value') == 1) to = str2double(get(handles.edit9,'String')); a = [1 0 w^2]; b = [tau^2 2*ro*tau 1]; den = conv(a,b); h = tf([K*A*w],den,'inputdelay',to); [y1,t] = impulse(h,tspan(2)); plot(t,y1(:,1),'b') xlabel('Tiempo','FontSize',12); ylabel('Respuesta','FontSize',12);
title('Respuesta Seno','Fontsize',14); legend('Entrada','Salida Sin Tiempo Muerto','Salida Con Tiempo Muerto',4); end end
figuras previo despliegue de un cuadro de dilogo modal para confirmar el cierre de la figura function pushbutton3_Callback(hObject, eventdata, handles) selection = questdlg(['Desea cerrar ' get(handles.figure1,'Name') '?'],... ['Cerrar ' get(handles.figure1,'Name') '...'],... 'Yes','No','No'); if strcmp(selection,'No') return; end clear, close all;
Se sugiere al usuario adicionar los controles que muestren algunas caractersticas de las respuestas, como por ejemplo en el caso observado en la Figura 6.3 el sobrepaso mximo, el tiempo de asentamiento, etc. De igual manera en otros tipos de respuestas paso con perfil sobreamortiguado, amortiguado crtico o oscilatorio sostenido La Figura 6.4 muestra la respuesta rampa para un factor de amortiguamiento de cero que incluye el perfil sin y con tiempo muerto. Se observa el comportamiento esperando en forma oscilatoria sostenida a travs de la rampa de entrada. La pendiente de la rampa de entrada es 3
Se sugiere al usuario hacer las simulaciones que muestren los diferentes perfiles de la respuesta rampa haciendo cambios en el valor asignado al Factor de Amortiguamiento de tal manera que se observen las respuestas sobreamortiguadas, subamortiguadas estables o inestables La Figura 6.5 muestra la respuesta seno para los parmetros y especificaciones observadas (Constante de tiempo = 2, Factor de amortiguamiento = 0.4, Ganancia Estacionaria = 3, Condicin Inicial = 0, Tiempo Inicial = 0, Tiempo Final = 50, Amplitud = 2, Frecuencia = 0.5, Tiempo Muerto = 3). El cdigo muestra la funcin seno de entrada y las respuestas sin y con tiempo muerto Se observa en la solucin grfica que la respuesta sin tiempo muerto (Color Negro) toma un perfil sinusoidal sostenido despus de un cierto tiempo y que es la misma respuesta con tiempo muerto con un atraso adicional (Color Azul). Se sugiere agregar algunos otros elementos que muestren algunas caractersticas de la respuesta como, en el caso de la respuesta seno, la amplitud, el atraso dinmico, por ejemplo. En forma similar, se sugiere al usuario hacer los cambios en el factor de amortiguamiento de tal manera que se observen los diferentes perfiles en el
comportamiento de la respuesta y ajustar los controles agregados para visualizar parmetros caractersticos de las respuestas en cada caso.