%Sensorik 
%Linearisierung eines Sensors
%M. Hess

clc;
clear;

%Konstanten
T=-55:25:125;
Tu=0;
To=100;
Tm=50;
anz_stuetzstellen=8;

Rsens=813.44+6.975*T+0.0195*T.^2;

%Plotten
figure('Name','Sensorlinearisierung','NumberTitle','off');
Subplot(2,2,1);
plot(T,Rsens,'b');
xlabel('Temperatur [°C]');
ylabel('Widerstandswert [\Omega]');
title('Widerstandskennlinie TSF102');
grid;
hold on;

%Darstellung der Tabellenwerte
Tabelle=[-55 489;-25 652;0 813;25 1000;50 1211;75 1446;100 1706;125 1990];
plot(Tabelle(:,1),Tabelle(:,2),'*');

%Darstellung der Abweichung
Tw=Tabelle(:,1);
Rw=813.44 + 6.975*Tw + 0.0195*Tw.^2;
subplot(2,2,2);
plot(Tw,Tabelle(:,2)-Rw);
grid;
title('Abweichung Tabelle-Funktion');
xlabel('Temperatur [°C]');
ylabel('Abweichung [\Omega]');

%ab hier created by MHe

T_bereich=linspace(Tu,To,anz_stuetzstellen);

%Sensorwiderstand bei Tu, Tm und To
RTu=813;
RTm=1211;
RTo=1706;

%Linearisierungswiderstand berechnen
Rlin=((RTm*(RTu+RTo)-(2*RTu*RTo))/(RTu+RTo-(2*RTm)))
Rres=1./((1/Rlin)+(1./Rsens));

%Idealer linearisierter Widerstand
RlinTu=1/((1/RTu)+(1/Rlin));
RlinTo=1/((1/RTo)+(1/Rlin));
Rideal=linspace(RlinTu,RlinTo,anz_stuetzstellen);

Ures=10.*(Rsens./(Rlin+Rsens));
Uideal=10.*(Rsens./(Rideal+Rsens));
%temperaturproportionale Spannung
subplot(2,2,3);
plot(T_bereich,Ures);
grid;
title('Temperaturprop. Spannung');
xlabel('Temperatur [°C]');
ylabel('UT [V]');

%Abweichung vom idealen Widerstand
subplot(2,2,4);
plot(T_bereich,(Ures-Uideal));
grid;
title('Abweichung: Linearisierter und Realer Widerstand');
xlabel('Temperatur [°C]');
ylabel('\Delta U');
