clear all

t = linspace(0,40,3000); % Zeit in ms
f = 0.05; %Frequenz in mHz
w = 2*pi*f; %Kreisfrequenz

%% ADC

DC_off_adc = 1.8; %DC-Offset des ADC-Wandlers in V

Ue_adc_min = 0.4
Ue_adc_max = DC_off_adc-Ue_adc_min+DC_off_adc

%% Sensor
Messwert_100mA = 0.0193428766;
Messwert_1A = 0.1933121145;
Messwert_5A = 0.967602253;

Amplitude_Sensor_100mA = sqrt(2)*Messwert_100mA; %Amplitude des Sensors in V
Amplitude_Sensor_1A = sqrt(2)*Messwert_1A; %Amplitude des Sensors in V
Amplitude_Sensor_5A = sqrt(2)*Messwert_5A; %Amplitude des Sensors in V

DC_off_Sensor = 2.5; %DC-Offset des Sensors in V

Us_100mA = linspace(-Amplitude_Sensor_100mA+DC_off_Sensor,Amplitude_Sensor_100mA+DC_off_Sensor,4);
Usmin_100mA = -Amplitude_Sensor_100mA+DC_off_Sensor;
Usmax_100mA = Amplitude_Sensor_100mA+DC_off_Sensor;

Us_1A = linspace(-Amplitude_Sensor_1A+DC_off_Sensor,Amplitude_Sensor_1A+DC_off_Sensor,4);
Usmin_1A = -Amplitude_Sensor_1A+DC_off_Sensor; 
Usmax_1A = Amplitude_Sensor_1A+DC_off_Sensor;

Us_5A = linspace(-Amplitude_Sensor_5A+DC_off_Sensor,Amplitude_Sensor_5A+DC_off_Sensor,4);
Usmin_5A = -Amplitude_Sensor_5A+DC_off_Sensor; 
Usmax_5A = Amplitude_Sensor_5A+DC_off_Sensor;

%% 1-Verstärkerstufe. Senkt den DC-Offset auf 1,8V. Verstärkung =1

Uref = 3.6;

R1 = 3.3 % in kOhm
R2 = R1*(DC_off_Sensor-DC_off_adc)/Uref
K2 = R2/R1;
K1 = 1;
R3 = 10 % in kOhm
R4 = (K1*R3/(R2/R1+1))*((R2/R1+1)/(R2/R1+1-K1)) % in kOhm

Uh_100mA = Us_100mA*K1-Uref*K2;
Uh_min_100mA = Usmin_100mA*K1-Uref*K2;
Uh_max_100mA = Usmax_100mA*K1-Uref*K2;

Uh_1A = Us_1A*K1-Uref*K2;
Uh_min_1A = Usmin_1A*K1-Uref*K2;
Uh_max_1A = Usmax_1A*K1-Uref*K2;

Uh_5A = Us_5A*K1-Uref*K2;
Uh_min_5A = Usmin_5A*K1-Uref*K2;
Uh_max_5A = Usmax_5A*K1-Uref*K2;
%% 2-Verstärkerstufe 0...0,1A
Ua1_min = Ue_adc_min;
Ua1_max = Ue_adc_max;

K3 = (Ua1_max-Ua1_min)/(Uh_max_100mA-Uh_min_100mA);
K4 = (DC_off_adc*K3-DC_off_adc)/Uref;

R5 = 10 % in kOhm

R7 = K4*R5 % in kOhm
R6 = R7/(K3-R7/R5-1)  % in kOhm

Ua1 = Uh_100mA*K3-Uref*K4;

%% 3-Verstärkerstufe 0...1A
Ua2_min = Ue_adc_min;
Ua2_max = Ue_adc_max;

K5 = (Ua2_max-Ua2_min)/(Uh_max_1A-Uh_min_1A);
K6 = (DC_off_adc*K5-DC_off_adc)/Uref;

R8 = 10 % in kOhm

R10 = K6*R8 % in kOhm
R9 = R10/(K5-R10/R8-1)  % in kOhm

Ua2 = Uh_1A*K5-Uref*K6;

%% 4-Verstärkerstufe 0...5A
Ua3_min = Ue_adc_min;
Ua3_max = Ue_adc_max;

K7 = (Ua3_max-Ua3_min)/(Uh_max_5A-Uh_min_5A);
K8 = (DC_off_adc*K7-DC_off_adc)/Uref;

R11 = 10 % in kOhm

R13 = K8*R11 % in kOhm
R12 = R13/(K7-R13/R11-1)  % in kOhm

Ua3 = Uh_5A*K7-Uref*K8;

%% Graphen erzeugen


plot(Us_5A,Us_5A,Us_5A,Ua3,Us_1A,Us_1A,Us_1A,Ua2,Us_100mA,Us_100mA,Us_100mA,Ua1); grid
legend('Ausgangsspannung Sensor 5A','Eingangsspannung AD-Wandler 5A','Ausgangsspannung Sensor 1A','Eingangsspannung AD-Wandler 1A','Ausgangsspannung Sensor 100mA','Eingangsspannung AD-Wandler 100mA');
xlabel('Ausgangsspannung Sensor','FontSize',12), ylabel('Spannung/V','FontSize',12)
title('Signalaufbereitung','FontSize',16)
axis([1,4,0,4]);
text(1.1,3.3,'3,2 V','FontSize',12)
text(1.1,2.6,'2,5 V','FontSize',12)
text(1.1,1.9,'1,8 V','FontSize',12)
text(1.1,0.3,'0,4 V','FontSize',12)

axx = [0 1];
ayy = [2 3];
[line1x,line1y] = dsxy2figxy(gca, axx, ayy);

annotation('line',line1x,line1y,'Color','k','LineStyle','-');
%annotation('line',line2x,line2y,'Color','k','LineStyle','-');

