Está en la página 1de 4

UNIVERSIDAD ESTATAL DE MILAGRO

CARRERA
Ingeniería en sistemas

TEMA
Termistor.

INTEGRANTES
Carlos Caña V.

DOCENTE
Ing. Johnny Ortiz.

SEMESTRE
7mo
%% Temperature and Voltage Data
Tdata = -40:5:85;
Vdata = 1.026E-1 + -1.125E-4 * Tdata + 1.125E-5 * Tdata.^2;

%% Plot the Desired Curve


plot(Tdata,Vdata,'-*');
title('Target Curve','FontSize',12);
xlabel('Temperature (^oC)'); ylabel('Voltage (V)')

Se crean dos variables para poder administrar los valores tanto de temperatura y de voltajes,
una vez realizado se procede a graficar esos datos con la ayuda de la instrucción plot, se le
agrega un título tanto principal como a sus ejes (x/Y).

%% Load in Standard Component Values


load ('StandardComponentValues.mat')

Aquí se pedirá que cargue los valores a utilizar dentro del programa, estos valores se
encuentran almacenado en un paquete denominado StandardComponentValues.mat.

%% Inspect first 15 Resistor Values


disp('Sample of Available Resistor Sizes:')
disp(Res(1:15));

En estas sentencias se mostrara los 15 valores de resistencias adquiridos, se presentaran


mediante la utilización de un bucle.

%% Sample Temperature Curve for arbitrary indices


Vnew = voltageCurve (Tdata, [2 2 2 2 1 1], Res, ThVal, ThBeta);
%% Add New Curve to Plot
hold on; plot(Tdata, Vnew,'-or');

Declaro una variable llamada Vnew, esta tendrá como labor de ejecutar el llamado de una
función denominada voltageCurve, dicha función se encuentra en el mismo paquete del
programa pero se encuentra programada en otro archivo, prácticamente esta función recibe
los datos de la temperatura, un arreglo con valores, los valores de la resistencia, thval, thbeta,
en si la función voltageCurve mediante una matriz de resistencia extrae los valores de la
componente, por otra parte también realiza un cálculo a la curva de temperatura para un
conjunto particular de componentes, esta operación lo realiza usando una función
denominada tempCompCurve.

Luego se procede a graficar una nueva curva donde recibirá los parámetros de la temperatura
y de la función voltageCurve.
%% Bounds on our Vector of Indices
lb = [1 1 1 1 1 1];
ub = [70 70 70 70 9 9];

%% Constrain All 6 Variables to be Integers


intCon = 1:6;

En resumen al inicio lo que se hace es dar limites a nuestro vector de indices mientras que
en la variable intCon restringe para que las 6 variables sean enteros.

%% Create Handle to Custom Output Function


custOutput =
@(a1,a2,a3)ThOptimPlot(a1,a2,a3,Tdata,Vdata,Res,ThVal,ThBeta);

Se crea un controlador de salida personalizada eso se obtiene usando una variable


declarada custOutput donde se llamaran determinados parámetros y una función
denominada thOptimPlot que en resumen realiza o traza la mejor curva de temperatura en
cada iteración. Todos los parámetros establecidos se encuentran alojados en el paquete de
valores llamados StandarComponentValues.

%% Set Options for Optimization


options = gaoptimset('CrossoverFrac',0.5,'PopulationSize',500,...
'StallGen',125,'Generations',200,...
'PlotFcns', @gaplotbestf,'OutputFcns',custOutput);

A continuación se establecerá opciones para la debida optimización, para ello se declara una
variable options, dentro de ella se llamara una función de tipo gaoptimset ella pedirá una
serie de argumentos entre ellos el tipo de cruce, tamaño de población, generaciones,
manejador de funciones (OutputFcns),función que traza los datos calculados por el
algoritmo (PlotFcns)

%% Run the Genetic Algorithm


[xOpt,fVal] =
ga(@(x)objectiveFunction(x,Res,ThVal,ThBeta,Tdata,Vdata),...
6,[],[],[],[],lb,ub,[],intCon,options);

%% Inspect the Solution Vector to see that All Values are Integers
disp('Integer Solution Returned by GA:')
disp(xOpt)

Se correrá el algoritmo genético para ello se declara un arreglo donde reciba los parámetros
de xOpt y fVal de tal manera para que este funcione se tendrá que realizar un llamado a la
función objetivo, esta función está diseñada para el problema del termistor, esta declaración
recibe parámetros del paquete ya mencionado anteriormente, también recibe la variable
intCon que restringe a los valores a que sean solo enteros y como parámetro final options
para su optimización, finalmente se grafica la solución.
Respuestas en grafica

También podría gustarte