В этом примере показано, как оценить теплопроводность и коэффициент теплопередачи модели серого ящика непрерывного времени для системы горячего стержня.
Эта система состоит из хорошо изолированного металлического стержня длины L и коэффициента диффузии тепла . Вход к системе является нагревающейся степенью u (t), и измеренный выход y (t) является температурой в другом конце.
При идеальных условиях эта система описана уравнением диффузии тепла — который является дифференциальным уравнением с частными производными в пространстве и времени.
Чтобы получить модель в пространстве состояний непрерывного времени, можно представлять вторую производную с помощью следующего приближения различия:
Это преобразование производит модель в пространстве состояний порядка , где переменные состояния смешанные представления для для следующей области значений значений:
Размерность x зависит от пространственного размера сетки в приближении.
Уравнение диффузии тепла сопоставлено со следующей структурой модели в пространстве состояний непрерывного времени, чтобы идентифицировать матрицы пространства состояний:
Матрицы пространства состояний параметрируются коэффициентом диффузии тепла κ и коэффициентом теплопередачи в дальнем конце стержня htf. Выражения также зависят от размера сетки, Ngrid и длины стержня L. Начальные условия x0 являются функцией начальной комнатной температуры, обработанной как известное количество в этом примере.
Создайте файл MATLAB®.
Следующий код описывает уравнение пространства состояний для этой модели. Параметры являются κ и htf, в то время как вспомогательными переменными является Ngrid, L и начальная комнатная температура temp
. Размер сетки предоставляется как вспомогательная переменная так, чтобы функция ОДУ могла быть легко адаптирована к различным размерам сетки.
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
страница с описанием.