%Aufgabe  : Belastetes Potentiometer
%Filename : Potentiometer.m
%Es wird die Nichtlinearität infolge Belastung eines Potentiometers untersucht
%Ersteller: H. Müller 11. März 2000
%------------------------------------------

% Konstanten + Variablen
Us = 10;                            % Spannung am Potetniometer in Volt
Rp = 10;                            % Widerstandswert des Potentiometers in kOhm
RL = [inf; 10*Rp; 5*Rp; Rp; 0.5*Rp; 0.1*Rp; 0.01*Rp]; % Lastwiderstand am Potentiometer
Alphamin = 0;						   	% Potentiometer Winkelwert im linken Anschlag (cw)
Alphamax = 270;                 	   % Potentiometer  Drehwinkelwert im rechten Anschlag (cw)
Alpha = 0:1:Alphamax;           	   % Zahlenarray des Drehwinkels
 

% Berechnung der allgemeinen Grössen  
Ra = Rp*Alpha/270;
Rv = Rp - Ra;
Ua_unbel = Us* Ra/Rp;


%Festlegung für das Grafikfenster
Farben = ['y', 'g', 'm', 'b', 'c', 'r', 'k']; % Farben definiert als Character Array
clf                                 % Löscht ein eventuell vorhandenes Grafikfenster

subplot(2, 1, 1);
hold on; grid								% Verhinderung Löschen; Gitternetzlinien ein
title ('Spannungsteiler mit verschiedenen Lastwiderständen');
xlabel('Drehwinkel [Grad]')
ylabel ('Ausgangsspannung [V]');
axis ([0 Alphamax 0 Us]);
text(80,9,['Rpot = ',num2str(Rp),' kOhm'])
plot(Alpha,Ua_unbel,'y')

subplot(2, 1, 2);
hold on; grid
title ('Linearitätsabweichung');
ylabel ('Maximale Abweichung [V]');
xlabel('Drehwinkel [Grad]')
axis ([0 Alphamax 0 Us]);


% Berechnen und Aufzeichnen der verschiedenen Belastungsfälle
for i = 1:length(RL)
   subplot(2, 1, 1)
	Rpar = Ra * RL(i)./(Ra + RL(i)); % Rpar ist die Parallelschaltung Ra //RL
	Ua = Us* Rpar./ (Rv + Rpar);
   plot(Alpha, Ua, Farben(i));
   
   [UaD,AlphaD]=max(Ua_unbel - Ua);	
	Uadiff(i) = UaD; 			% UaD ist die maximale Abweichung vom unbel. Spg Teiler
	Alphadiff(i) = AlphaD;	% AlphaD ist der Winkel bei dem UaD auftritt
   subplot(2,1,2);
   plot(AlphaD, UaD, strcat(Farben(i), '*-')) % strings concatenate = verknüpfen
end;

plot(Alphadiff, Uadiff)	% Punkte mit Linie verbinden
legend(num2str(RL), 0);	% Legende mit RL-Werten
text(80,9,'Legende: RL in kOhm')

