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.