Matlab - Obwody elektryczne - symulacje

Matlab - RC - obwod elektryczny (rozladowujemy kondensator)

%plik skrypt.m

C = 0.000003;
U0 = 225;
R = 12000;
t = [0:0.0001:0.2];
[Uc,I] = RC(R,U0,C,t);
subplot(2,1,1); plot(t,a); grid on;
subplot(2,1,2); plot(t,b); grid on;
t=0; %dla dowolnego czasu tu dla t==0
[Uc,I] = RC(R,U0,C,t)

%funkcja RC liczaca napiecie i naterzenie

function [Uc,I] = RC(R,U0,C,t)
    tal=R .* C;
    Uc=U0 .* exp(-t ./ tal);
    I=U0 .* exp(-t ./ tal) ./ R;

Matlab - Zmiany parametrów w ukladzie rlc dla zmiennej indukcyjnosci cewki

%plik skrypt.m

U0=24;
C=0.0000005;
L=[0.005 0.006 0.007 0.008 0.009];
R=100;
disp(' Dla jakiego parametru chcesz wykres ');
disp('Ic (1) Uc (2) Ul(3) Ur (4)'); 
wybor = input(' podaj: 1-4 --> ');
t = [0:0.0000001:0.001];
hold on;
if (wybor == 1)    
title('Wykres natezenia Ic');   disp('Wykres natezenia Ic');
[a,b,c,d] = rlc(U0,C,L(1),R,t);  plot(t,a,'r'); disp('L=5mH'); [t_min,w_min,t_max,w_max] = minmax(t,a)
[a,b,c,d] = rlc(U0,C,L(2),R,t);  plot(t,a,'g'); disp('L=6mH'); [t_min,w_min,t_max,w_max] = minmax(t,a)
[a,b,c,d] = rlc(U0,C,L(3),R,t);  plot(t,a,'b'); disp('L=7mH'); [t_min,w_min,t_max,w_max] = minmax(t,a) 
[a,b,c,d] = rlc(U0,C,L(4),R,t);  plot(t,a,'y'); disp('L=8mH'); [t_min,w_min,t_max,w_max] = minmax(t,a)
[a,b,c,d] = rlc(U0,C,L(5),R,t);  plot(t,a,'m'); disp('L=9mH'); [t_min,w_min,t_max,w_max] = minmax(t,a)

elseif (wybor == 2)
title('Wykres napiecia Uc');    disp('Wykres napiecia Uc');
[a,b,c,d] = rlc(U0,C,L(1),R,t);  plot(t,b,'r'); disp('L=5mH'); [t_min,w_min,t_max,w_max] = minmax(t,b)
[a,b,c,d] = rlc(U0,C,L(2),R,t);  plot(t,b,'g'); disp('L=6mH'); [t_min,w_min,t_max,w_max] = minmax(t,b)
[a,b,c,d] = rlc(U0,C,L(3),R,t);  plot(t,b,'b'); disp('L=7mH'); [t_min,w_min,t_max,w_max] = minmax(t,b)
[a,b,c,d] = rlc(U0,C,L(4),R,t);  plot(t,b,'y'); disp('L=8mH'); [t_min,w_min,t_max,w_max] = minmax(t,b)
[a,b,c,d] = rlc(U0,C,L(5),R,t);  plot(t,b,'m'); disp('L=9mH'); [t_min,w_min,t_max,w_max] = minmax(t,b)

elseif (wybor == 3)
title('Wykres napiecia Ul');    disp('Wykres napiecia Ul'); 
[a,b,c,d] = rlc(U0,C,L(1),R,t);  plot(t,c,'r'); disp('L=5mH'); [t_min,w_min,t_max,w_max] = minmax(t,c)
[a,b,c,d] = rlc(U0,C,L(2),R,t);  plot(t,c,'g'); disp('L=6mH'); [t_min,w_min,t_max,w_max] = minmax(t,c)
[a,b,c,d] = rlc(U0,C,L(3),R,t);  plot(t,c,'b'); disp('L=7mH'); [t_min,w_min,t_max,w_max] = minmax(t,c)
[a,b,c,d] = rlc(U0,C,L(4),R,t);  plot(t,c,'y'); disp('L=8mH'); [t_min,w_min,t_max,w_max] = minmax(t,c)
[a,b,c,d] = rlc(U0,C,L(5),R,t);  plot(t,c,'m'); disp('L=9mH'); [t_min,w_min,t_max,w_max] = minmax(t,c)

elseif (wybor == 4)
title('Wykres napiecia Ur');    disp('Wykres napiecia Ur');
[a,b,c,d] = rlc(U0,C,L(1),R,t);  plot(t,d,'r'); disp('L=5mH'); [t_min,w_min,t_max,w_max] = minmax(t,d)
[a,b,c,d] = rlc(U0,C,L(2),R,t);  plot(t,d,'g'); disp('L=6mH'); [t_min,w_min,t_max,w_max] = minmax(t,d)
[a,b,c,d] = rlc(U0,C,L(3),R,t);  plot(t,d,'b'); disp('L=7mH'); [t_min,w_min,t_max,w_max] = minmax(t,d)
[a,b,c,d] = rlc(U0,C,L(4),R,t);  plot(t,d,'y'); disp('L=8mH'); [t_min,w_min,t_max,w_max] = minmax(t,d)
[a,b,c,d] = rlc(U0,C,L(5),R,t);  plot(t,d,'m'); disp('L=9mH'); [t_min,w_min,t_max,w_max] = minmax(t,d)
end

legend('L=5mH','L=6mH','L=7mH','L=8mH','L=9mH');
%plik z funkcja: rlc.m

function [I,UC,UL,UR] = rlc(U0,C,L,R,t)
	e=2.7183;
	beta = R ./ (2.*L);
	om = (((1./(L.*C)) - (R.*R)./(4.*L.*L)))^0.5
	delta = atan(om./beta); 
	I  = (U0./(om.*L)) .* (e.^(-beta.*t)) .* sin(om .*t);
	UC = U0 .* (1 - ((e.^(-beta.*t))/(om.*((L.*C).^0.5))) .* sin(om.*t + delta));
	UL = (U0./(om.*((L.*C)^0.5))) .* (e.^(-beta.*t)) .* sin(om.*t - delta);
	UR = I .* R;
%plik z funkcja: minmax.m

function [min,wmin,max,wmax] = minmax(t,wartosc);
	N = length (t);
	min = 1; 
	max = 1;
	for i=2:N
		if (wartosc(i) > wartosc(max))
			max = i;
		elseif (wartosc(i) < wartosc(min))
			min = i;
		end
	end
	wmin = wartosc(min);
	wmax = wartosc(max);
	min = t(min);
	max = t(max);

2012.11.22 22:29:20.