% Sistema de primer orden: un termómetro % En X están las variables de estado. % En Y deben ir las variables que se requieren en las ODEs o que se quieren graficar. clear all; close all; clc; %=============== Modelo ================= % ODEs function dX = ODEs(t,X) % En dX devuelve el vector columna de derivadas % Recupera variables X [y] = num2cell(X'){1,:}; % Recupera variables Y Y = AEs(t,X); [tau u] = num2cell(Y){1,:}; % Ecuaciones diferenciales dy = (u - y)/tau; dX = [dy]'; % vector columna endfunction % ODEs %--------------------------------------- % AEs function Y = AEs(t,X) % En Y devuelve el vector fila de variables requeridas por ODEs o a graficar. % Recupera variables X [y] = num2cell(X'){1,:}; % Parámetros tau = 1; % s u0 = 1; % °C % Ecuaciones algebraicas if t < 0 u = 0; else u = u0; endif Y = [tau u]; endfunction % AEs %--------------------------------------- % Inicialización function [tfin dt Xini LX LY] = inicializacion % Inicializa la simulación % Parámetros de simulación tfin = 10; % tiempo final dt = 0.01; % paso temporal % Inicialización yini = 0; Xini = [yini]; % Inicializa la variable de estado % Leyendas LX = {'y'}; % Leyendas de las variables X LY = {'tau' 'u'}; % Leyendas de las variables Y endfunction % inicializar %--------------------------------------- % Análisis function analizar(LX,LY,tpts,X,Y) % Análisis de resultados. Funciones disponibles: % exportar('resultados.csv',[{leyendas}]) % graficar({leyendas}, 'título', 'rótulo x', 'rótulo y', [limitesy]) % vector(leyenda) exportar('resultados.csv'); graficar({'y' 'u'}, 'Señales vs. tiempo', 's', '°C'); endfunction % analizar %======================================= % Llama al resolverdor resolvedor;