% Simulation des Schaltnetzteils in Aufgabe 10 % ============================================ clear; UV = 5; % Versorgungsspannung in V L = 0.1; % Induktivitaet in H UF = 0.7; % Flussspannung der Diode in V RL = 2.2E3;% Lastwiderstand in Ohm RM = 1E2; % Messwiderstand in Ohm RiL= 120; % Innenwiderstand der Spule C = 1E-6; % Kapazitaet Glaettungskondensator in F eta= 0.344;% relative Pulsbreite Tastverhaeltnis tP = 50E-6;% Periodendauer in s N = 200; % Abtastpunkte je Periode NP = 30; % Anzahl der zu simulierenden Perioden dt = tP/N; % Dauer eines Zeitschritts in s % Erzeugen des Schaltsignals N1 = floor(N*eta); % Anzahl der '1' je Periode xP = [ones(1,N1) zeros(1,N-N1)]; % Folge einer Periode x = []; % Aneinanderreihung von NP for idx=1:NP % Perioden x = [x xP]; end; % Anfangswerte iL(1)= 0; % Strom durch die Induktivitaet in A uA(1)= 0; % Spannung ueber der Kapazitaet in V % Simulation for n=1:length(x) % Betriebszustand 1 (PMOS-Transistor eingeschaltet) if x(n) == 0 iL(n+1) = iL(n)+dt/L*(UV-(RM+RiL)*iL(n)); uA(n+1) = (1-dt/(RL*C))*uA(n); % Verhinderung einer Maximumsueberschreitung von iL if iL(n+1)>UV/(RiL+RM) iL(n+1) = UV/(RiL+RM); end; % Betriebszustand 2 (PMOS-Transistor ausgeschaltet) else iL(n+1) = iL(n)+dt/L*(uA(n)-UF-iL(n)*(RiL+RM)); uA(n+1) = uA(n)-dt/C*(iL(n)+uA(n)/RL); % Verhinderung einer Minimumsunterschreitung von iL if iL(n+1)<0 iL(n+1) = 0; end; end; end; t = (0:length(x)-1)*dt; subplot(3,1,1); plot(1000*t,5*x, 'y'); xlabel('t in ms'); ylabel('ux in V'); title('Brueckengleichrichter mit Glaettungskapazitaet'); subplot(3,1,2); plot(1000*t,1000*iL(1:length(x)), 'r'); xlabel('t in ms'); ylabel('iL in mA'); subplot(3,1,3); plot(1000*t, uA(1:length(x))); xlabel('t in ms'); ylabel('ux in V');