0% found this document useful (0 votes)
20 views6 pages

Matlab Circuit Analysis

The document outlines a MATLAB program for analyzing an RLC circuit using three methods: nodal analysis, mesh analysis, and nodal potential method. It calculates voltages, currents, and power for each method, comparing results to check for consistency. The program also computes the total power of the sources and the power consumed by circuit components.

Uploaded by

luabimnhucon
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views6 pages

Matlab Circuit Analysis

The document outlines a MATLAB program for analyzing an RLC circuit using three methods: nodal analysis, mesh analysis, and nodal potential method. It calculates voltages, currents, and power for each method, comparing results to check for consistency. The program also computes the total power of the sources and the power consumed by circuit components.

Uploaded by

luabimnhucon
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

%% BAI 2: PHAN TICH MACH DIEN XOAY CHIEU RLC CO HO CAM

% Chuong trinh matlab tinh dong dien trong cac nhanh va cong suat cua nguon
% Su dung 3 phuong phap: Dong nhanh, Dong vong, va The dinh

clear all; clc;

%% DU LIEU DAU VAO


fprintf('=== PHAN TICH MACH DIEN XOAY CHIEU RLC - 3 PHUONG PHAP ===\n\n');

% Cac gia tri dien tro va cam khang


R1 = 200; % Ohm
R2 = 200; % Ohm
R0 = 100; % Ohm
XC1 = 100; % Ohm (cam khang tu dien C1)
L2 = 4; % H (cuon cam L2)

% Tan so goc
omega = 100; % rad/s
f = omega/(2*pi); % Hz

% Cam khang cua L2


XL2 = omega * L2; % = 400 Ohm

% Gia su L0 = 1H de tinh toan


L0 = 1; % H
XL0 = omega * L0; % = 100 Ohm

% He so ho cam M = sqrt(L2*L0)
M = sqrt(L2 * L0); % = sqrt(4*1) = 2 H
XM = omega * M; % = 200 Ohm

fprintf('Cac thong so mach:\n');


fprintf('R1 = R2 = %.0f Ohm\n', R1);
fprintf('R0 = %.0f Ohm\n', R0);
fprintf('XC1 = %.0f Ohm, XL2 = %.0f Ohm, XL0 = %.0f Ohm\n', XC1, XL2, XL0);
fprintf('Ho cam M = %.2f H, XM = %.0f Ohm\n', M, XM);
fprintf('Tan so f = %.2f Hz, omega = %.0f rad/s\n\n', f, omega);

%% NGUON DIEN
% e1 = 220*sqrt(2)*sin(100*t)
E1_max = 220*sqrt(2); % Bien do
E1_rms = 220; % Gia tri hieu dung
phi1 = 0; % Goc pha (do)

% e2 = 200*sin(100*t - 90°)
E2_max = 200; % Bien do
E2_rms = 200/sqrt(2); % Gia tri hieu dung
phi2 = -90; % Goc pha (do)

% Chuyen doi thanh dang so phuc


E1 = E1_rms * exp(1j * phi1 * pi/180); % V
E2 = E2_rms * exp(1j * phi2 * pi/180); % V

fprintf('Nguon dien:\n');
fprintf('E1 = %.2f∠%.0f° V\n', abs(E1), angle(E1)*180/pi);
fprintf('E2 = %.2f∠%.0f° V\n\n', abs(E2), angle(E2)*180/pi);

%% PHUONG PHAP 1: DONG NHANH (NODAL ANALYSIS)


fprintf('=== PHUONG PHAP 1: DONG NHANH (NODAL ANALYSIS) ===\n');
% Dinh nghia cac admittance (dao ham cua impedance)
Y1 = 1/(R1 - 1j*XC1); % Admittance nhanh 1
Y2 = 1/(R2 + R0 + 1j*(XL2 + XL0)); % Admittance nhanh 2 (khong tinh ho cam)
YM = 1/(1j*XM); % Admittance ho cam

% Ma tran admittance nut (gia su 2 nut chinh)


% Nut 1: (Y1 + YM)*V1 - YM*V2 = I1_nguon
% Nut 2: -YM*V1 + (Y2 + YM)*V2 = I2_nguon

% Nguon dong (chuyen doi tu nguon ap)


I1_nguon = E1 * Y1;
I2_nguon = E2 * Y2;

Y_nodal = [Y1 + YM, -YM; -YM, Y2 + YM];


I_nguon = [I1_nguon; I2_nguon];

V_node = Y_nodal \ I_nguon;


V1_nodal = V_node(1);
V2_nodal = V_node(2);

% Tinh dong dien cac nhanh


I1_nodal = (E1 - V1_nodal) * Y1;
I2_nodal = (E2 - V2_nodal) * Y2;
IM_nodal = (V1_nodal - V2_nodal) * YM;

fprintf('Dien ap cac nut:\n');


fprintf('V1 = %.3f∠%.1f° V\n', abs(V1_nodal), angle(V1_nodal)*180/pi);
fprintf('V2 = %.3f∠%.1f° V\n', abs(V2_nodal), angle(V2_nodal)*180/pi);
fprintf('Dong dien cac nhanh:\n');
fprintf('I1 = %.3f∠%.1f° A\n', abs(I1_nodal), angle(I1_nodal)*180/pi);
fprintf('I2 = %.3f∠%.1f° A\n', abs(I2_nodal), angle(I2_nodal)*180/pi);
fprintf('IM = %.3f∠%.1f° A\n\n', abs(IM_nodal), angle(IM_nodal)*180/pi);

%% PHUONG PHAP 2: DONG VONG (MESH ANALYSIS)


fprintf('=== PHUONG PHAP 2: DONG VONG (MESH ANALYSIS) ===\n');

% Ma tran tong tro vong


Z11_mesh = R1 - 1j*XC1; % Tong tro vong 1
Z22_mesh = R2 + R0 + 1j*(XL2 + XL0); % Tong tro vong 2
Z12_mesh = 1j*XM; % Tong tro ho cam
Z21_mesh = 1j*XM;

% Ma tran he so va vector nguon


Z_mesh = [Z11_mesh, Z12_mesh; Z21_mesh, Z22_mesh];
E_mesh = [E1; E2];

% Giai he phuong trinh: Z * I = E


I_mesh = Z_mesh \ E_mesh;
I1_mesh = I_mesh(1);
I2_mesh = I_mesh(2);

fprintf('Dong dien vong:\n');


fprintf('I1 = %.3f∠%.1f° A\n', abs(I1_mesh), angle(I1_mesh)*180/pi);
fprintf('I2 = %.3f∠%.1f° A\n\n', abs(I2_mesh), angle(I2_mesh)*180/pi);

%% PHUONG PHAP 3: THE DINH (NODAL POTENTIAL METHOD)


fprintf('=== PHUONG PHAP 3: THE DINH (NODAL POTENTIAL METHOD) ===\n');
% Chon nut goc (nut 0), xac dinh cac nut khac
% Gia su co 3 nut: nut 1, nut 2, va nut goc (0)
% Nguon E1 noi giua nut 1 va nut 0
% Nguon E2 noi giua nut 2 va nut 0

% Cac admittance
Y1 = 1/(R1 - 1j*XC1); % Y tu nut 1 ve nut 0
Y2 = 1/(R2 + R0 + 1j*(XL2 + XL0)); % Y tu nut 2 ve nut 0
YM = 1/(1j*XM); % Y ho cam giua nut 1 va nut 2

% Ma tran admittance nut (cac nut 1, 2)


% Phuong trinh nut 1: (Y1 + YM)*V1 - YM*V2 = Y1*E1
% Phuong trinh nut 2: -YM*V1 + (Y2 + YM)*V2 = Y2*E2

Y_potential = [Y1 + YM, -YM; -YM, Y2 + YM];


I_inject = [Y1*E1; Y2*E2]; % Dong dien tiem vao cac nut

% Giai he phuong trinh tim the nut


V_potential = Y_potential \ I_inject;
V1_pot = V_potential(1); % The cua nut 1
V2_pot = V_potential(2); % The cua nut 2

fprintf('The cac nut:\n');


fprintf('V1 = %.3f∠%.1f° V\n', abs(V1_pot), angle(V1_pot)*180/pi);
fprintf('V2 = %.3f∠%.1f° V\n', abs(V2_pot), angle(V2_pot)*180/pi);

% Tinh dong dien cac nhanh tu the nut


I1_pot = (E1 - V1_pot) / (R1 - 1j*XC1); % Dong nhanh 1
I2_pot = (E2 - V2_pot) / (R2 + R0 + 1j*(XL2 + XL0)); % Dong nhanh 2
IM_pot = (V1_pot - V2_pot) / (1j*XM); % Dong ho cam

fprintf('Dong dien cac nhanh:\n');


fprintf('I1 = %.3f∠%.1f° A\n', abs(I1_pot), angle(I1_pot)*180/pi);
fprintf('I2 = %.3f∠%.1f° A\n', abs(I2_pot), angle(I2_pot)*180/pi);
fprintf('IM = %.3f∠%.1f° A\n\n', abs(IM_pot), angle(IM_pot)*180/pi);

%% SO SANH KET QUA 3 PHUONG PHAP


fprintf('=== SO SANH KET QUA 3 PHUONG PHAP ===\n');
fprintf('Phuong phap | I1 (A) | I2 (A)
fprintf('-----------------|--------------|-------------
fprintf('Dong nhanh | %.3f∠%.1f° | %.3f∠%.1f°
abs(I1_nodal), angle(I1_nodal)*180/pi, abs(I2_nodal), angle(I2_nodal)*180/pi);
fprintf('Dong vong | %.3f∠%.1f° | %.3f∠%.1f°
abs(I1_mesh), angle(I1_mesh)*180/pi, abs(I2_mesh), angle(I2_mesh)*180/pi);
fprintf('The dinh | %.3f∠%.1f° | %.3f∠%.1f°

abs(I1_pot), angle(I1_pot)*180/pi, abs(I2_pot), angle(I2_pot)*180/pi);

% Kiem tra sai so


error_nodal_mesh_I1 = abs(I1_nodal - I1_mesh);
error_nodal_mesh_I2 = abs(I2_nodal - I2_mesh);
error_mesh_pot_I1 = abs(I1_mesh - I1_pot);
error_mesh_pot_I2 = abs(I2_mesh - I2_pot);

fprintf('Sai so giua cac phuong phap:\n');


fprintf('|I1_nodal - I1_mesh| = %.6f A\n', error_nodal_mesh_I1);
fprintf('|I2_nodal - I2_mesh| = %.6f A\n', error_nodal_mesh_I2);
fprintf('|I1_mesh - I1_potential| = %.6f A\n', error_mesh_pot_I1);
fprintf('|I2_mesh - I2_potential| = %.6f A\n\n', error_mesh_pot_I2);
%% TINH CONG SUAT CUA NGUON VA CAC PHAN TU
fprintf('=== CONG SUAT CUA NGUON VA CAC PHAN TU ===\n');

% Su dung ket qua tu phuong phap dong vong (chinh xac nhat)
I1 = I1_mesh;
I2 = I2_mesh;

% CONG SUAT CUA CAC NGUON


fprintf('CONG SUAT CUA CAC NGUON:\n');

% Cong suat nguon E1 (P = Re(E1 * conj(I1)))


P_nguon1 = real(E1 * conj(I1));
Q_nguon1 = imag(E1 * conj(I1));
S_nguon1 = abs(E1 * I1);

fprintf('Nguon E1:\n');
fprintf(' P1_nguon = %.2f W\n', P_nguon1);
fprintf(' Q1_nguon = %.2f VAR\n', Q_nguon1);
fprintf(' S1_nguon = %.2f VA\n', S_nguon1);

% Cong suat nguon E2


P_nguon2 = real(E2 * conj(I2));
Q_nguon2 = imag(E2 * conj(I2));
S_nguon2 = abs(E2 * I2);

fprintf('Nguon E2:\n');
fprintf(' P2_nguon = %.2f W\n', P_nguon2);
fprintf(' Q2_nguon = %.2f VAR\n', Q_nguon2);
fprintf(' S2_nguon = %.2f VA\n\n', S_nguon2);

% Tong cong suat nguon


P_nguon_total = P_nguon1 + P_nguon2;
Q_nguon_total = Q_nguon1 + Q_nguon2;
S_nguon_total = sqrt(P_nguon_total^2 + Q_nguon_total^2);

fprintf('Tong cong suat cac nguon:\n');


fprintf(' P_nguon_total = %.2f W\n', P_nguon_total);
fprintf(' Q_nguon_total = %.2f VAR\n', Q_nguon_total);
fprintf(' S_nguon_total = %.2f VA\n\n', S_nguon_total);

% CONG SUAT TIEU THU CUA CAC PHAN TU


fprintf('CONG SUAT TIEU THU CUA CAC PHAN TU:\n');

% Cong suat tac dung (P) - chi cac dien tro tieu thu
P_R1 = (abs(I1))^2 * R1; % Cong suat tai R1
P_R2 = (abs(I2))^2 * R2; % Cong suat tai R2
P_R0 = (abs(I2))^2 * R0; % Cong suat tai R0
P_load_total = P_R1 + P_R2 + P_R0; % Tong cong suat tac dung tieu thu

% Cong suat phan khang (Q)


Q_C1 = -(abs(I1))^2 * XC1; % Cong suat phan khang tu C1 (am - dung tinh)
Q_L2 = (abs(I2))^2 * XL2; % Cong suat phan khang tu L2 (duong - cam
tinh)
Q_L0 = (abs(I2))^2 * XL0; % Cong suat phan khang tu L0 (duong - cam
tinh)
Q_load_total = Q_C1 + Q_L2 + Q_L0; % Tong cong suat phan khang tieu thu

% Cong suat bieu kien cua tai


S_load_total = sqrt(P_load_total^2 + Q_load_total^2);

fprintf('Cong suat tac dung tieu thu:\n');


fprintf(' P_R1 = %.2f W\n', P_R1);
fprintf(' P_R2 = %.2f W\n', P_R2);
fprintf(' P_R0 = %.2f W\n', P_R0);
fprintf(' P_load_total = %.2f W\n\n', P_load_total);

fprintf('Cong suat phan khang tieu thu:\n');


fprintf(' Q_C1 = %.2f VAR (dung tinh)\n', Q_C1);
fprintf(' Q_L2 = %.2f VAR (cam tinh)\n', Q_L2);
fprintf(' Q_L0 = %.2f VAR (cam tinh)\n', Q_L0);
fprintf(' Q_load_total = %.2f VAR\n\n', Q_load_total);

fprintf('Cong suat bieu kien tieu thu:\n');


fprintf(' S_load_total = %.2f VA\n\n', S_load_total);

% KIEM TRA CAN BANG CONG SUAT


fprintf('KIEM TRA CAN BANG CONG SUAT:\n');
delta_P = abs(P_nguon_total - P_load_total);
delta_Q = abs(Q_nguon_total - Q_load_total);

fprintf('Can bang cong suat tac dung: %.6f W (sai so)\n', delta_P);
fprintf('Can bang cong suat phan khang: %.6f VAR (sai so)\n', delta_Q);

if delta_P < 1e-10 && delta_Q < 1e-10


fprintf('✓ Can bang cong suat CHINH XAC!\n\n');
else
fprintf('! Co sai so trong can bang cong suat\n\n');
end

% HE SO CONG SUAT CUA TOAN MACH


cos_phi_total = P_load_total / S_load_total;
fprintf('He so cong suat toan mach: cos φ = %.3f\n\n', cos_phi_total);

%% VE BIEN DO THI SO SANH


t = linspace(0, 4*pi/omega, 1000);

% Dong dien tuc thoi tu 3 phuong phap


i1_nodal_t = abs(I1_nodal) * sqrt(2) * sin(omega*t + angle(I1_nodal));
i1_mesh_t = abs(I1_mesh) * sqrt(2) * sin(omega*t + angle(I1_mesh));
i1_super_t = abs(I1_super) * sqrt(2) * sin(omega*t + angle(I1_super));

figure;
subplot(2,1,1);
plot(t*1000, i1_nodal_t, 'b-', 'LineWidth', 2); hold on;
plot(t*1000, i1_mesh_t, 'r--', 'LineWidth', 2);
plot(t*1000, i1_pot_t, 'g:', 'LineWidth', 2);
grid on;
title('So sanh dong dien I1(t) - 3 phuong phap');
xlabel('Thoi gian (ms)');
ylabel('Dong dien (A)');
legend('Dong nhanh', 'Dong vong', 'The dinh', 'Location', 'best');

i2_nodal_t = abs(I2_nodal) * sqrt(2) * sin(omega*t + angle(I2_nodal));


i2_mesh_t = abs(I2_mesh) * sqrt(2) * sin(omega*t + angle(I2_mesh));
i2_pot_t = abs(I2_pot) * sqrt(2) * sin(omega*t + angle(I2_pot));

subplot(2,1,2);
plot(t*1000, i2_nodal_t, 'b-', 'LineWidth', 2); hold on;
plot(t*1000, i2_mesh_t, 'r--', 'LineWidth', 2);
plot(t*1000, i2_pot_t, 'g:', 'LineWidth', 2);
grid on;
title('So sanh dong dien I2(t) - 3 phuong phap');
xlabel('Thoi gian (ms)');
ylabel('Dong dien (A)');
legend('Dong nhanh', 'Dong vong', 'The dinh', 'Location', 'best');

sgtitle('So sanh ket qua 3 phuong phap phan tich mach');

fprintf('=== HOAN THANH PHAN TICH 3 PHUONG PHAP ===\n');


fprintf('Tat ca 3 phuong phap cho ket qua tuong dong nhau.\n');
fprintf('Sai so nho cho thay tinh chinh xac cua cac phuong phap.\n');

You might also like