% МАТЕРИАЛИ ОТ 'IEC751.PDF'
% Изчисляване на съпротивлението на температурни сензори от типа: ПЛАТИНА
% Pt100,  Pt500,  Pt1000
% TCR = 3850 PPM/°C (1385) и TCR = 3750 PPM/°C (1375)

% Основна формула Rt = Ro*[ 1 +a*T -bT^2 -c*T^3*(T-100)]
% Т  -> търсена температура
% Rt -> съпротивлението при търсената температура
% Ro -> съпротивление при 0°С
% a, b, c -> коефициенти съгласно таблицата
% таблица TCR = 3850 PPM/°C (1385) 
% T    |     < 0°C     |     >= 0°C    |
% a =  | 3.90830*10^-3 | 3.90830*10^-3 |
% b =  | 5.7750*10^-7  | 5.7750*10^-7  |
% c =  | 4.1830*10^-12 |      0        |
% таблица TCR = 3750 PPM/°C (1375)
% T    |     < 0°C     |     >= 0°C    |
% a =  | 3.81019*10^-3 | 3.81019*10^-3 |
% b =  | 6.01875*10^-7 | 6.01875*10^-7 |
% c =  | 6.14500*10^-12|      0        |
% ----------------------------------------

% Реализирана е функция за изчисляване на R на Pt100, Pt500, Pt1000
% извиква се с команда от типа ResTable_Pt(T, Pt, TCR ), където:
% T -> температура за която търсим R >> ( -50 <= Т <= 650 )
% Pt -> тип на платината >> ( Pt100, Pt500 или Pt1000 )
% TCR -> темп коеф с който ше работим >> ( TCR3850 или TCR3750 )
function Rt = ResTable_Pt( T, Pt, TCR )
disp (' Функция за изчисляване на R на Pt100, Pt500, Pt1000')
disp (' при зададена температура T и тип на сензора')
Temp = T;
if ( (Temp > -50) | (Temp < 650) )
    % --- избира типа на Pt-та
    switch lower(Pt)
        case 'pt500'
            Ro  = 500;
            disp(' Сензор: Pt500')
        case 'pt1000'
            Ro = 1000;
            disp(' Сензор: Pt1000')            
        otherwise
            Ro  = 100;
            disp(' Сензор: Pt100')
    end
    % --- изчислява ст-ста на R
    switch lower(TCR)
        % ---
        case 'tcr3750'
            disp (' Тип: TCR3750 ') 
            if T < 0
                % ако Т е < от 0
                a = 3.81019e-3*Temp;
                b = 6.01875e-7*Temp^2;
                c = 6.14500e-12*Temp^3;
                t = Temp-100;
                format long g
                Rt = Ro *( 1 +a -b -c*t );  
            else
                % ако Т е >= от 0 
                a = 3.81019e-3*Temp;
                b = 6.01875e-7*Temp^2;
                format long g
                Rt = Ro *( 1 +a -b );
            end %if
        % --- 
        otherwise
            disp (' Тип: TCR3850 ')
            if T < 0
                % ако Т е < от 0
                a = 3.90830e-3*Temp;
                b = 5.7750e-7*Temp^2;
                c = 4.1830e-12*Temp^3;
                t = Temp-100;
                format long g
                Rt = Ro *( 1 +a -b -c*t );
            else
                % ако Т е >= от 0 
                a = 3.90830e-3*Temp;
                b = 5.7750e-7*Temp^2;
                format long g
                Rt = Ro *( 1 +a -b );
            end %if
        % --- 
    end %switch
    disp ( ' При температура: ')
    disp ( T )
    disp ( 'Съпротивлението е: ')
    disp ( Rt )
else
    disp (' Грешка: Допустими температури -50 <= Т <= 650 ')
end %if
