Vous êtes sur la page 1sur 7

function varargout = pro(varargin)

% PRO MATLAB code for pro.fig


% PRO, by itself, creates a new PRO or raises the existing
% singleton*.
%
% H = PRO returns the handle to a new PRO or the handle to
% the existing singleton*.
%
% PRO('CALLBACK',h0bject,eventData,handles,...) calls the local
% function named CALLBACK in PRO.M with the given input arguments.
%
% PRO('Property', 'Value',...) creates a new PRO or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before pro_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to pro_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help pro

%Last Modified by GUIDE v2.5 27-Apr-2015 12:03:05

%Begin initialization code - DO NOT EDIT

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename,...

'gui_Singleton', gui_Singleton,...
'gui_OpeningFcn', @pro_OpeningFcn,...
'gui_OutputFcn', @pro_OutputFcn,...
'gui_LayoutFcn', [],...
'gui_Callback', [];
if nargin && ischar(carargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

% End initialization code - DO NOT EDIT

% --- Executes just before pro is made visible.

function pro_OpeningFcn(hObject, eventdata, handles, varargin)


% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to pro (see VARARGIN)
% ac se puede editar%%%%%%%%%
% Choose default command line output for pro
handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes pro wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = pro_OutputFcn(hObject, eventdata, handles)
% arargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;
function [q, g, h, r ] = boundaryFileThinPlate(p, e, u, time )
%
% [q, g, h, r ] = BOUNDARYFILETHINPLATE (p, e, u, time ) returns the
% Neumann BC (q, g) and Dirichlet BC (h, r) matrices for the
% heatTransferThinPlateExample example.
% p is the point matrix returned form INITMESH
% e is the edge matrix returned from INITMESH
% u is the solution vector (used only for nonlinear cases)

N = 1;
ne = size(e,2);
q = zeros(N^2,ne);
g = zeros (N, ne);
h = zeros (N^2, 2*ne);
r = zeros (N, 2*ne);
for i=1:ne
ei = e(5,i);

if(ei == 1)
% se establece la temperatura en cada uno de los vertices
h(1,i) = 1;
h(1,i+ne) = 1;
r(1,i) = 1000;
r(1,i+ne) = 1000;
end
end

% --- Executes on button press in estadoestacionario.


function estadoestacionario_Callback(hObject, eventdata, handles)
% hObject handle to estadoestacionario (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%Solucin en Estado Estable
%Este trabajo presenta el anlisis de un bloque rectangular de cobre
%Debe resolverse con derivadas parciales
% El plato est compuesto por cobre que sigue las siguientes propiedades
k = 400; % Conductividad trmica del cobre, w/(m-k)
rho = 8960; % Densidad del cobre, KG/m^3
specificHeat = 386; % Calor especfico del cobre, J/(Kg-K)
thick = 0.1; % Espesor del plato (m)
stefanBoltz = 5.670373e-8; % Constante de Boltzmann, w/(m^2-K^4)
hCoeff = 1; % Coeficiente de conveccin, w/(m^2-k)
% se asume que la temperatura ambiente es de 300 k.
ta = 300;
emiss = .5; % Emisividad del plato
% Las expresiones para los coeficientes requeridos por el PDE toolbox son
% definidas fcilmente por la comparacin de la ecuacin parablica escalar
c = thick*k;

a = sprintf('2*%g + 2*%g*%g*u.^3', hCoeff, emiss, stefanBoltz);


f = 2*hCoeff*ta + 2*emiss*stefanBoltz*ta^4;
d = thick*rho*specificHeat;
%Geometria
width = 1; height =1;
% Se define el cuadrado teniendo 4 posiciones de x, seguido por 4 posiciones
de y
gdmTrans = [3 4 0 width wodth 0 0 0 height height];
g = decsg(gdmTrans', 'S1' ('S1')');
% Se crea una malla triangular en el cuadro aproximado a 10 elementos en
cada direccin
hmax = .1; % Tamao de elemento
[p, e, t] = initmesh(g, 'Hmax', hmax);
% Condiciones de barrera
% El borde de barrera inferior se fija en 1000 Kelvin.
% Las condiciones de barrera se definen en la funcin referenciada
% en el PDE Toolbox.
% Tres de los bordes de la placa estn aislados. Debido a la condicin de
% Neumann
% Condicin igual a cero por defecto en la formulacin de elementos
% finitos.
% Las condiciones de barrera de estos bordes no necesitan establecerse de
% manera explicita
% La condicin Dirichlet se encuentra con todos los nodos en el borde
% inferior, borde 1.
b=@boundaryFileThinPlate;
%Solucin en estado estable
% Porque a y f son coeficientes de la funcin de temperatura, el Solver
% no lineal puede ser usada para obtener una solucin
u = pdenonlin(b,p,e,t,c,a,f, 'jacobian', 'lumped');

pdeplot(p, e, t, 'xydata', u, 'contour', 'on', 'colormap', 'jet');


title 'Temperatura en el plato, Solucin en estado estable'
xlabel 'Longitud, m'
ylabel 'Longitud, m'

% --- Executes on button press in transitorio.


function transitorio_Callback(hObject, eventdata, handles)
% hObject handle to transitorio (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Solucin en Estado Transitorio
k = 400; % Conductividad trmica del cobre, w/(m-K)
rho = 8960; % Densidad del cobre, Kg/m^3
specificHeat = 5.670373e-8; % Constante de Boltzmann, w/(m^2-K^4)
hCoeff = 1; % Coeficiente de conveccin, w/(m^2-K)
% Se asume que la temperatura ambiente es 300 K.
ta = 300;
emiss = .5; % Emisividad del plato
% Las expresiones para los coeficientes requeridos por el PDE toolbox son
% definidas fcilmente por la comparacin de la ecuacin parablica escalar
c = thick*k;
a = sprintf('2*%g + 2*%g*g*u.^3', hCoeff, emiss, stefanBoltz);
f = 2*hCoeff*ta + 2*emiss*stefanBoltz*ta^4;
d = thick*rho*specificHeat;
%Geometra
width = 1; height = 1;
% Se define el cuadrado teniendo 4 posiciones de x, seguido por 4 posiciones
de y
gdmTrans = [ 3 4 0 width width 0 0 0 height height];
g = decsg(gdmTrans', 'S1',('S1')');

% Se crea una malla triangular en el cuadrado aproximado a 10 elementos en


cada direccin
hmax = .1; % Tamao del elemento
[p, e, t] = initmesh(g, 'Hmax', hmax);
% Condiciones de barrera
% El borde de barrera inferior se fija en 1000 Kelvin.
% Las condiciones de barrera se definen en la funcin referenciada
% en el PDE Toolbox.
% Tres de los bordes de la placa estn aislados. Debido a la condicin de
% Neumann
% Condicin igual a cero por defecto en la formulacin de elementos
% finitos.
% Las condiciones de barrera de estos bordes no necesitan establecerse de
% manera explicita
% La condicin Dirichlet se encuentra con todos los nodos en el borde
% inferior, borde 1.
b=@boundaryFileThinPlate;
%Solucin en estado estable
% Porque a y f son coeficientes de la funcin de temperatura, el Solver
% no lineal puede ser usada para obtener una solucin
u = pdenonlin(b,p,e,t,c,a,f, 'jacobian', 'lumped');
pdeplot(p, e, t, 'xydata', u, 'contour', 'on', 'colormap', 'jet');
title 'Temperatura en el plato, Solucin en estado estable'
xlabel 'Longitud, m'
ylabel 'Longitud, m'