Этот пример показывает, как оценить теплопроводность и коэффициент теплопередачи модели серого ящика в непрерывном времени для нагреваемой стержневой системы.
Эта система состоит из хорошо изолированного металлического стержня длины L и коэффициента диффузии тепла . Входом для системы является степень нагрева u (t), и измеренный выход y (t) является температурой на другом конце.
В идеальных условиях эта система описывается теплодиффузионным уравнением - которое является дифференциальным уравнением с частными производными в пространстве и времени.
Чтобы получить модель пространства состояний в непрерывном времени, можно представлять вторую производную с помощью следующего дифференциального приближения:
Это преобразование создает модель порядка в пространстве состояний , где переменные состояния являются объединенными представлениями для для следующей области значений значений:
Размерность x зависит от пространственного размера сетки в приближении.
Уравнение тепловой диффузии преобразуется в следующую структуру модели пространства состояний в непрерывном времени, чтобы идентифицировать матрицы пространства состояний:
Матрицы пространства состояний параметризованы коэффициентом диффузии тепла и коэффициентом теплопередачи на дальнем конце штокового htf. Выражения также зависят от размера сетки, Ngrid и длины L стержня. Начальные условия, x0 являются функцией от начальной комнатной температуры, обработанной как известное количество в этом примере.
Создайте MATLAB® файл.
Следующий код описывает уравнение пространства состояний для этой модели. Параметрами являются, и htf, в то время как вспомогательные переменные являются Ngrid, L и начальной комнатной температурой temp
. Размер сетки поставляется как вспомогательная переменная, так что функция ODE может быть легко адаптирована для различных размеров сетки.
function [A,B,C,D,K,x0] = heatd(kappa,htf,T,Ngrid,L,temp) % ODE file parameterizing the heat diffusion model % kappa (first parameter) - heat diffusion coefficient % htf (second parameter) - heat transfer coefficient % at the far end of rod % Auxiliary variables for computing state-space matrices: % Ngrid: Number of points in the space-discretization % L: Length of the rod % temp: Initial room temperature (uniform) % Compute space interval deltaL = L/Ngrid; % A matrix A = zeros(Ngrid,Ngrid); for kk = 2:Ngrid-1 A(kk,kk-1) = 1; A(kk,kk) = -2; A(kk,kk+1) = 1; end % Boundary condition on insulated end A(1,1) = -1; A(1,2) = 1; A(Ngrid,Ngrid-1) = 1; A(Ngrid,Ngrid) = -1; A = A*kappa/deltaL/deltaL; % B matrix B = zeros(Ngrid,1); B(Ngrid,1) = htf/deltaL; % C matrix C = zeros(1,Ngrid); C(1,1) = 1; % D matrix (fixed to zero) D = 0; % K matrix: fixed to zero K = zeros(Ngrid,1); % Initial states: fixed to room temperature x0 = temp*ones(Ngrid,1);
Используйте следующий синтаксис, чтобы задать idgrey
объект модели на основе heatd
файл кода:
m = idgrey('heatd',{0.27 1},'c',{10,1,22});
Эта команда задает вспомогательные параметры как входы функции, включите порядок модели (размер сетки) 10
, длина стержня 1 метр и начальная температура 22
степени Цельсия. Команда также задает начальные значения теплопроводности следующим 0.27
, и для коэффициента теплопередачи как 1
.
Для заданных data
, вы можете использовать greyest
для оценки значений параметров серого ящика:
me = greyest(data,m)
Следующая команда показывает, как можно задать, чтобы оценить новую модель с различными вспомогательными переменными:
m.Structure.ExtraArguments = {20,1,22}; me = greyest(data,m);
Этот синтаксис использует ExtraArguments
атрибут структуры модели для задания более мелкой сетки с помощью большего значения для Ngrid
. Для получения дополнительной информации о линейных свойствах модели серый ящик см. idgrey
страница с описанием.