pasar un programa a GUI
Publicado por Fernando (2 intervenciones) el 12/12/2013 04:11:31
Buenas noches
Alguien podria ayudarme. estoy tratando de pasar un programa a GUI.
el programa es un sistema mecanico (masa, resorte, amortiguador)
este s el programa:
%Sistema Masa-Resorte-Amortiguador
%Constantes a utilizar
%M -> Masa del móvil
%K -> Constante Elástica del Resorte
%C -> Coeficiente de Amortiguamiento
%f(t) -> Fuerza aplicada al sistema
%y(t) -> Desplazamiento de la masa {Salida del Sistema}
%La ecuación que modela el sistema esta descrita por un sistema fisico en
%equilibrio
%f(t) = M*a(t) + C*v(t) + K*y(t)
%Donde
%a(t) = y''(t)
%v(t) = y'(t)
%Supondremos para este ejercicio que las condiciones iniciales del sistema
%son 0 para t = 0, es decir, se encuentran en reposo.
%Comienzo del Código de Matlab
display('Simulacion de la respuesta de un Sistema Masa-Resorte-Amortiguador')
%Variables Simbólicas
syms t
y = sym('y(t)');
y1 = sym('diff(y(t),t)');
y2 = diff(y1,t);
%Declaración de Constantes
display('Datos del Sistema')
M = input('Ingrese la masa del Móvil: ');
C = input('Ingrese el Coeficiente de Amortiguamiento: ');
K = input('Ingrese la Constante Elástica del Resorte: ');
%Declaración de la función
display('Función del Sistema')
f = M*y2 + C*y1 + K*y
%Transformada de Laplace
lf = laplace(f);
%Sustitución de Condiciones Iniciales
nf = subs(lf,{'D(y)(0)','y(0)'},{0,0});
display('Transformada F(s)')
Fs = subs(nf,{'laplace(y(t), t, s)'},{'Y(s)'})
Fs = collect(Fs,'Y(s)');
%Función de transferencia
Hs = 'Y(s)'/Fs;
[num den] = numden(Hs);
num = sym2poly(num);
den = sym2poly(den);
H = tf(num, den)
%Diagrama de Polos y Ceros
pzmap(H),title('Mapa de Polos - Ceros'), sgrid
damp (H);
if isstable(H)
display('El Sistema es Estable, sus Polos se encuentran del lado izquierdo')
else
display('El Sistema es Inestable Guapura')
end
display('Presiona cualquier tecla para continuar...')
pause
%Respuesta a un Escalon Unitario
display('Respuesta en Escalon Unitario')
display('Entrada del Sistema')
xt = heaviside (t)
display('Transforada de Laplace de la Entrada')
Xs = laplace(xt)
%Producto de Función de transferencia y Excitación
display('Salida del Sistema con Escalon Unitario')
Ys = Hs*Xs
[num den] = numden(Ys);
num = sym2poly(num);
den = sym2poly(den);
%Fracciones parciales
[r, p, k] = residue(num, den);
%Transformada Inversa de Laplace
display('Transformada Inversa')
yt = ilaplace(Ys)
%Respuesta en el Tiempo para Escalon Unitario
display('Salida del Sistema en el Dominio del Tiempo')
pretty(yt)
%Graficación de la Respuesta
%Linea de Tiempo
wn=sqrt(K/M);
t=linspace(0.5*(2*pi/wn),300);
%Función Escalon Unitario
fst=ones(size(t));
%Simulacion de la Respuesta del Sistema H, al estimulo fst
y=lsim(H,fst,t);
%Grafica de la Respuesta
figure,plot(t,y,'linewidth',2),title('Respuesta de Sistema a un Escalon Unitario')
GRACIAS!
Alguien podria ayudarme. estoy tratando de pasar un programa a GUI.
el programa es un sistema mecanico (masa, resorte, amortiguador)
este s el programa:
%Sistema Masa-Resorte-Amortiguador
%Constantes a utilizar
%M -> Masa del móvil
%K -> Constante Elástica del Resorte
%C -> Coeficiente de Amortiguamiento
%f(t) -> Fuerza aplicada al sistema
%y(t) -> Desplazamiento de la masa {Salida del Sistema}
%La ecuación que modela el sistema esta descrita por un sistema fisico en
%equilibrio
%f(t) = M*a(t) + C*v(t) + K*y(t)
%Donde
%a(t) = y''(t)
%v(t) = y'(t)
%Supondremos para este ejercicio que las condiciones iniciales del sistema
%son 0 para t = 0, es decir, se encuentran en reposo.
%Comienzo del Código de Matlab
display('Simulacion de la respuesta de un Sistema Masa-Resorte-Amortiguador')
%Variables Simbólicas
syms t
y = sym('y(t)');
y1 = sym('diff(y(t),t)');
y2 = diff(y1,t);
%Declaración de Constantes
display('Datos del Sistema')
M = input('Ingrese la masa del Móvil: ');
C = input('Ingrese el Coeficiente de Amortiguamiento: ');
K = input('Ingrese la Constante Elástica del Resorte: ');
%Declaración de la función
display('Función del Sistema')
f = M*y2 + C*y1 + K*y
%Transformada de Laplace
lf = laplace(f);
%Sustitución de Condiciones Iniciales
nf = subs(lf,{'D(y)(0)','y(0)'},{0,0});
display('Transformada F(s)')
Fs = subs(nf,{'laplace(y(t), t, s)'},{'Y(s)'})
Fs = collect(Fs,'Y(s)');
%Función de transferencia
Hs = 'Y(s)'/Fs;
[num den] = numden(Hs);
num = sym2poly(num);
den = sym2poly(den);
H = tf(num, den)
%Diagrama de Polos y Ceros
pzmap(H),title('Mapa de Polos - Ceros'), sgrid
damp (H);
if isstable(H)
display('El Sistema es Estable, sus Polos se encuentran del lado izquierdo')
else
display('El Sistema es Inestable Guapura')
end
display('Presiona cualquier tecla para continuar...')
pause
%Respuesta a un Escalon Unitario
display('Respuesta en Escalon Unitario')
display('Entrada del Sistema')
xt = heaviside (t)
display('Transforada de Laplace de la Entrada')
Xs = laplace(xt)
%Producto de Función de transferencia y Excitación
display('Salida del Sistema con Escalon Unitario')
Ys = Hs*Xs
[num den] = numden(Ys);
num = sym2poly(num);
den = sym2poly(den);
%Fracciones parciales
[r, p, k] = residue(num, den);
%Transformada Inversa de Laplace
display('Transformada Inversa')
yt = ilaplace(Ys)
%Respuesta en el Tiempo para Escalon Unitario
display('Salida del Sistema en el Dominio del Tiempo')
pretty(yt)
%Graficación de la Respuesta
%Linea de Tiempo
wn=sqrt(K/M);
t=linspace(0.5*(2*pi/wn),300);
%Función Escalon Unitario
fst=ones(size(t));
%Simulacion de la Respuesta del Sistema H, al estimulo fst
y=lsim(H,fst,t);
%Grafica de la Respuesta
figure,plot(t,y,'linewidth',2),title('Respuesta de Sistema a un Escalon Unitario')
GRACIAS!
Valora esta pregunta


0