12 (1 2) (1 2) (cos 1 cos 2) (sin 1 sin 2)
2.2.2. Bài toán Ví dụ 1:
Ví dụ 1:
Xét mạch điện ở trên như sau:
Nhập bảng mô tả mạch điện dưới đây vào Mfile trong Matlab và lưu thành một file có đuôi mở rộng là .cir với một tên tùy ý (ví dụ đặt tên là vidu1.cir).
V1 1 0 12R1 1 2 1000 R1 1 2 1000 R2 2 0 2000 R3 2 0 2000
Sau đó muốn xem có file đó đã được lưu chưa chỉ cần đánh dir vào dấu nhắc của Matlab như sau:
>> dir
. .. scam.asv scam.m vidu1.cir
Để chạy chương trình chỉ việc đánh tên fname=’vidu1.cir’ ; vào dấu nhắc của Matlab và scam như sau:
>> fname='vidu1.cir'; >> scam
Started -- please be patient.
Netlist V1 1 0 12 R1 1 2 1000 R2 2 0 2000 R3 2 0 2000 Solved variables: [ v_1] [ v_2] [ I_V1]
Muốn hiển thị quan hệ điện áp nút 2 theo các phần tử và điện áp nguồn của mạch chỉ việc đánh V_2 vào dấu nhắc như sau:
>> v_2
v_2 = 1/(R2*R3+R1*R3+R1*R2)*R2*R3*V1
Hoặc dòng điện qua nguồn V1 chỉ việc đánh như sau: >> I_V1
I_V1 = (-R3-R2)/(R2*R3+R1*R3+R1*R2)*V1
Để xem giá trị của các đại lượng dòng, áp hoặc giá trị các phần tử…Ví dụ để biết điện áp nguồn V1 hay điện trở R1 chỉ việc làm như sau:
>> V1 V1 = 12 >> R1 R1 = 1000
Để hiển thị các giá trị chưa biết trước (các giá trị cần tính toán) thì chỉ việc nhập eval(tên biến cần tìm) như sau:
>> eval(v_2) ans = 6
>> eval(I_V1) ans = -0.0060
Như vậy ta đã biết được điện áp tại điểm nút 2 là 6 volt, dòng điện qua nguồn V1 là -6 mA.
Ví dụ 2: Tính dòng điện
Vấn đề ở chỗ nếu chúng ta muốn biết dòng điện qua điện trở R2 thì phải biết điện áp ở 2 đầu điểm nút của R2 (nút 2 và nút o). Vậy dòng điện qua R2 bằng điện áp V_2 chia cho R2:
>> I2=v_2/R2
I2 = 1/2000/(R2*R3+R1*R3+R1*R2)*R2*R3*V1>> eval(I2) >> eval(I2)
ans = 0.0030
Còn dòng điện qua R1 chính là dòng đi từ nút 1 đến nút 2 và bằng điện áp trên hai đầu R1 chia cho R1:
>>I1= (v_1-v_2)/R1
I1 = 1/1000*V1-1/1000/(R2*R3+R1*R3+R1*R2)*R2*R3*V1>> eval(I1) >> eval(I1)
ans = 0.0060
Chẳng hạn: muốn tính tỉ số truyền đạt áp từ nguồn sang điện trở R2 thì: >> v_2/V1
ans = 1/12/(R2*R3+R1*R3+R1*R2)*R2*R3*V1 >> eval(ans)
ans = 0.5000
Ví dụ 3: Thành lập phương trình mạch điện bằng phương pháp MNA
Chương trình SCAM luôn định nghĩa được 3 ma trận A, X và Z từ phương pháp MNA như sau:
>> A A = [ 1/R1, -1/R1, 1] [ -1/R1, 1/R1+1/R2+1/R3, 0] [ 1, 0, 0] >> X X = [ v_1] [ v_2]
[ I_V1]>> Z >> Z Z = [ 0] [ 0] [ V1]
Chúng ta có thể sử dụng các biến của mạch điện để xây dựng phương trình cho các nút của mạch điện như sau:
>> A*X
ans = [ 1/R1*v_1-1/R1*v_2+I_V1] [ -1/R1*v_1+(1/R1+1/R2+1/R3)*v_2] [ v_1]
Hoặc có thể viết ở dạng sau cho dễ nhìn: >> pretty(A*X) [ v_1 v_2 ] [ --- - --- + I_V1 ] [ R1 R1 ] [ ] [ v_1 / 1 1 1 \ ] [- --- + |---- + ---- + ----| v_2] [ R1 \ R1 R2 R3 / ] [ ] [ v_1 ]
Kích thước của ma trận Z như sau: Z =
[ 0][ 0] [ 0] [ V1]
Như vậy ta có thể sử dụng phương trình dạng MNA để viết phương trình cho điểm nút trên mạch điện, ví dụ xây dựng phương trình cho điểm nút 2 như sau:
1 2 2 1 1 2 3 1 1 1 0 v v R R R R − + + + ÷ = hoặc 2 1 2 2 1 2 3 0 v v v v R R R − + + = ÷
Ví dụ 4: Mô tả cho mạch điện có nhiều nhánh nhiều nút như sau:
Tương tự như hai ví dụ 3 và 4, ta phân tích mạch điện như hình vẽ. Từ đó đi xây dựng được một bảng mô tả mạch điện trên như sau:
Vg 1 0 4 Vx 3 2 6 R1 1 2 1 R2 2 0 4 R3 3 0 2 It 1 2 1
Lưu file nhập nội dung bảng trên với tên vidu4.cir . Sau đó gọi file với lệnh sau để bắt đầu làm việc.
>> fname='vidu4.cir'; >> scam
Started -- please be patient.
Netlist Vg 1 0 4 Vx 3 2 6 R1 1 2 1 R2 2 0 4 R3 3 0 2 It 1 2 1 Solved variables: [ v_1] [ v_2] [ v_3] [ I_Vg] [ I_Vx]
Gọi phương trình và giá trị điện áp nút 2 với lệnh sau: >> v_2
v_2 = R2*(It*R1*R3+Vg*R3-Vx*R1)/(R2*R3+R1*R3+R1*R2) >> eval(v_2)
ans = 1.1429
Phương trình và giá trị của dòng điện qua R1: >> (v_1-v_2)/R1
ans = Vg-R2*(It*R1*R3+Vg*R3-Vx*R1)/(R2*R3+R1*R3+R1*R2) >> eval(ans)
ans = 2.8571
Phương trình cho điểm nút 2 theo phương pháp MNA: >> q=A*X q = [ 1/R1*v_1-1/R1*v_2+I_Vg] [ -1/R1*v_1+(1/R1+1/R2)*v_2-I_Vx] [ 1/R3*v_3+I_Vx] [ v_1] [ -v_2+v_3] >> pretty(q(2))
v_1 / 1 1 \
- --- + |---- + ----| v_2 - I_Vx R1 \ R1 R2 / R1 \ R1 R2 /
>> Z(2) ans = It
Hoặc có thể viết dạng sau: 1 2 1 1 2 1 1 Vx t v v I I R R R − + + ÷ − = hoặc 2 1 2 1 2 Vx t v v v I I R R − + − = ÷
Kể cả chúng ta chưa biết trước giá trị của các phần tử trong mạch mà chỉ coi như các biến hay ký hiệu (thì các phần tử được khai báo ở cột giá trị là symbolic). Thì vẫn có thể xây dựng được các phương trình cho mạch điện. Ví dụ xác định tỉ số giữa điện áp nguồn với điện áp ra trên nút 2 như sau:
>> fname='vidu5.cir'; >> scam
Started -- please be patient.
Done! Elapsed time = 1.633 seconds. Netlist Vin 3 0 Symbolic R1 1 3 Symbolic R2 2 1 Symbolic OAmp 0 1 2 Solved variables: [ v_1] [ v_2] [ v_3] [ I_Vin] [ I_OAmp]
ans = -1/R1*R2
Ví dụ 5: Chuyển đổi từ phương trình mạch điện sang toán tử để mô phỏng trên Matlab.
Tương tự như các ví dụ trên ta đi xét một mạch điện gồm các phần tử nguồn, điện trở, điện cảm, điện dung như sau:
Sơ đồ mạch Bảng thông số mô tả mạch
Vin 3 0 Symbolic R2 3 2 1000 R1 1 0 1000 C1 1 0 1E-6 C2 2 1 10E-6 L1 1 0 0.001
Lưu file với tên vidu5.cir. Gọi hàm fname để bắt đầu chương trình >> fname='Example6.cir';
>> scam
Started -- please be patient.
Done! Elapsed time = 1.583 seconds. Netlist Vin 3 0 Symbolic R2 3 2 1000 R1 1 0 1000 C1 1 0 1E-6 C2 2 1 10E-6