crear un archivo .dat
Publicado por theoretical (1 intervención) el 11/08/2014 14:28:33
Hola todos, estoy confrontando algunos problemas con este código fuente. El mismo muestra la solución numérica de un sistema de ecuaciones por medio del análisis modal. El programa corre perfectamente bien. El problema que presento y no puedo resolver es, que me gustaría crear un archivo de datos .dat que registre los valores que finalizan en la construcción del gráfico que aparece. El código es el siguiente:
% Código fuente: sistema_dos_amortiguado.m
% ***************************************************
% *** El código fuente determina los eigenvalores ***
% *** y eingenvectores de un sistema mecánico de ***
% *** dos grados de libertad. ***
% ***************************************************
clear all;
clc;
format short
global x;
name01 = input('Ingrese el nombre del archivo para la posicion:','s');
[pos,texto] = fopen(name01, 'w');
% ******************************
% *** Parámetros de entrada. ***
% ******************************
m1 = input('La masa combinada es: ');
m2 = input('La masa 2 es: ');
k1 = input('La primera constante elástica es: ');
k2 = input('La segunda constante elastica es: ');
c1 = input('El primer amortiguador es: ');
c2 = input('El segundo amortiguador es: ');
x2 = input('Condición inicial para x2: ');
% Identifica tanto la matriz de masa como la de rigidez.
M = [0,0,m1,0;0,0,0,m2;m1,0,c1,-c1;0,m2,-c1,c1+c2];
K = [-m1,0,0,0;0,-m2,0,0;0,0,k1,-k1;0,0,-k1,k1+k2];
% Cálculo de los eigenvalores y eigenvectores
C = inv(M) * K;
[V,D] = eig(C);
% Condiciones iniciales:
disp('Despliega condiciones iniciales:');
x0 = [x2;0;0;0]
disp('Despliega eigenvalores');
D
disp('Despliega eigenvectores');
V
disp('Despliega constante de integración.');
S = inv(V)*x0
tk = linspace(0,3,101);
% Evaluación de la respuesta en el tiempo.
for k = 1:101
t = tk(k);
for i = 3:4
x(k,i-2) = 0;
for j = 1:4
x(k,i-2)=x(k,i-2)+(real(S(j))*real(V(i,j))-imag(S(j))*imag(V(i,j)))*cos(imag(D(j,j))*t);
x(k,i-2)=x(k,i-2)+(imag(S(j))*real(V(i,j))-real(S(j))*imag(V(i,j)))*sin(imag(V(i,j))*t);
x(k,i-2)=x(k,i-2)*exp(-real(D(j,j))*t);
end
end
end
plot(tk,x(:,1),'-',tk,x(:,2),':')
title('Solucion del problema')
xlabel('tiempo(seg)')
ylabel('x(m)')
legend('x1(t)','x2(t)')
tk1 = linspace(0,3,101);
for k = 1:101
t = tk1(k);
fprintf('%4.1f ',t);
fprintf('%8.4i ',x(k,1));
fprintf('%8.4i\n ',x(k,2));
end
********************************
NO TENGO IDEA DE DONDE NI COMO COLOCAR LAS INSTRUCCIONES PARA HACER QUE ME GRAVE LOS DATOS DEL GRÁFICO QUE APARECE. LES AGRADECERÍA CUALQUIER AYUDA...
% Código fuente: sistema_dos_amortiguado.m
% ***************************************************
% *** El código fuente determina los eigenvalores ***
% *** y eingenvectores de un sistema mecánico de ***
% *** dos grados de libertad. ***
% ***************************************************
clear all;
clc;
format short
global x;
name01 = input('Ingrese el nombre del archivo para la posicion:','s');
[pos,texto] = fopen(name01, 'w');
% ******************************
% *** Parámetros de entrada. ***
% ******************************
m1 = input('La masa combinada es: ');
m2 = input('La masa 2 es: ');
k1 = input('La primera constante elástica es: ');
k2 = input('La segunda constante elastica es: ');
c1 = input('El primer amortiguador es: ');
c2 = input('El segundo amortiguador es: ');
x2 = input('Condición inicial para x2: ');
% Identifica tanto la matriz de masa como la de rigidez.
M = [0,0,m1,0;0,0,0,m2;m1,0,c1,-c1;0,m2,-c1,c1+c2];
K = [-m1,0,0,0;0,-m2,0,0;0,0,k1,-k1;0,0,-k1,k1+k2];
% Cálculo de los eigenvalores y eigenvectores
C = inv(M) * K;
[V,D] = eig(C);
% Condiciones iniciales:
disp('Despliega condiciones iniciales:');
x0 = [x2;0;0;0]
disp('Despliega eigenvalores');
D
disp('Despliega eigenvectores');
V
disp('Despliega constante de integración.');
S = inv(V)*x0
tk = linspace(0,3,101);
% Evaluación de la respuesta en el tiempo.
for k = 1:101
t = tk(k);
for i = 3:4
x(k,i-2) = 0;
for j = 1:4
x(k,i-2)=x(k,i-2)+(real(S(j))*real(V(i,j))-imag(S(j))*imag(V(i,j)))*cos(imag(D(j,j))*t);
x(k,i-2)=x(k,i-2)+(imag(S(j))*real(V(i,j))-real(S(j))*imag(V(i,j)))*sin(imag(V(i,j))*t);
x(k,i-2)=x(k,i-2)*exp(-real(D(j,j))*t);
end
end
end
plot(tk,x(:,1),'-',tk,x(:,2),':')
title('Solucion del problema')
xlabel('tiempo(seg)')
ylabel('x(m)')
legend('x1(t)','x2(t)')
tk1 = linspace(0,3,101);
for k = 1:101
t = tk1(k);
fprintf('%4.1f ',t);
fprintf('%8.4i ',x(k,1));
fprintf('%8.4i\n ',x(k,2));
end
********************************
NO TENGO IDEA DE DONDE NI COMO COLOCAR LAS INSTRUCCIONES PARA HACER QUE ME GRAVE LOS DATOS DEL GRÁFICO QUE APARECE. LES AGRADECERÍA CUALQUIER AYUDA...
Valora esta pregunta


0