Làm thế nào để phân tích mạch bằng Matlab?


14

Tôi thường nghe nói về những người sử dụng Matlab để phân tích mạch, nhưng tôi chưa bao giờ thực sự tìm ra cách nó được thực hiện. Tôi giả định rằng có một cái gì đó cho nó nhiều hơn là chỉ thiết lập các phương trình bằng tay và giải chúng trong Matlab.

Tôi đang tìm kiếm một điểm khởi đầu tốt.


Bạn có hỏi về việc sử dụng Matlab như một "thay thế SPICE" để mô phỏng các thành phần RLC rời rạc, hoặc nhiều hơn dọc theo các dòng mô phỏng hệ thống?
W5VO

@ W5VO Cả hai, nhưng tập trung nhiều hơn vào SPICE. Tôi biết rằng mô phỏng hệ thống có thể được thực hiện với Simulink và điều đó không quá khó.
AndrejaKo

5
Việc giải các mạch chỉ là giải các phương trình vi phân phi tuyến nên có thể có trong Matlab. OTOH I vì SPICE thực sự không có gì khác hơn là một bộ giải phương trình vi phân phi tuyến nên tôi sẽ chỉ sử dụng Matlab nếu tôi gặp vấn đề thực sự lạ hoặc đặc biệt.
jpc

Câu trả lời:


6

Bạn có thể sử dụng hộp công cụ Matlab Simulink Simpowersystem để phân tích mạch. Nó bao gồm các thành phần RLC, công tắc, máy điện, v.v. Bạn có thể tạo thành phần của riêng mình và sửa đổi bất kỳ tham số nào của các thành phần thư viện. Vì bạn có thể kết hợp các mạch của mình với bất kỳ khối Simulink, bất kỳ bộ giải Simulink hoặc bất kỳ chức năng Matlab nào, công cụ này rất mạnh mẽ. Không cần phải giải các phương trình mạch trước vì bạn làm việc trong môi trường Simulink. Ban đầu nó được định hướng cho các hệ thống điện nhưng tôi nghĩ bạn có thể sử dụng nó cho bất kỳ mạch điện tử nào.


3
Câu trả lời của chúng tôi có thể đến hơi muộn nhưng cũng có SimElect Electronics cụ thể hơn là Simpowersystem (nhưng chia sẻ với vấn đề về giấy phép hộp công cụ đắt tiền)
Clement J.

Có một điều là tôi đã tìm thấy Simulink ngay cả với tất cả các hộp công cụ được thêm vào khá cồng kềnh. Chỉ cần nhìn vào những gì nó cần để có được một mạch RLC mô phỏng . Phức tạp hơn nhiều so với trong SPICE. Chỉ IMO đáng giá trong các trường hợp rất cụ thể khi bạn có các khối mã hành vi liên quan đến bộ điều khiển không thể được thực hiện trong SPICE theo bất kỳ cách hợp lý nào.
Fizz

Ngoài ra, để có được chức năng chuyển đổi biểu tượng, qsapecng là miễn phí và bạn chỉ cần vẽ mạch và nhấp vào một nút và thế là xong.
Fizz

14

Tôi sử dụng MATLAB khá nhiều để phân tích mạch. Đôi khi tôi thích nó làm gia vị, những lần khác tôi thích gia vị hơn, tùy thuộc vào tâm trạng và yêu cầu của tôi.

Đây là các bước sau:

  • 1: lấy biến đổi Laplace của mạch
  • 2: có được chức năng chuyển
  • 3: vẽ đồ thị / phân tích bằng các hàm MATLAB. bode, xung, freqresp và như vậy.

Phần khó nhất tôi tìm thấy là lấy biến đổi Laplace và rút ra phương trình hàm truyền của bạn.

Có rất nhiều ví dụ và sách giáo khoa về việc lấy Laplace trên Internet. Tóm lại mục đích ở đây là để có được phương trình ở dạng

H(s)=as2+bs+cds2+es+f

trong đó đến c là tử số và d đến f mẫu số trong ví dụ trình bày dưới đây.acdf

Để làm điều này chuyển đổi tất cả các yếu tố bạn thụ động thành trở kháng phức tạp. Đó là

  • C = 1 / sC
  • R = R
  • L = sL

Tiếp theo rút ra một phương trình cho mạch của bạn dưới dạng Vout / Vin.

Đối với bộ lọc thông thấp đơn giản ở dạng:

Vin -------R-------------- Vout
               |
               C
               |
------------------------------

điều này sẽ mang lại:

VoutVin=sCR+sC

Viết phương trình trên dưới dạng num và den cho MATLAB:

num = [C 0];
den = [C R];

Sau đó tiếp tục sử dụng bất kỳ hàm MATLAB nào bạn muốn để phân tích hàm truyền (bode), sơ đồ cực 0, v.v.

Dưới đây là một ví dụ về bộ lọc tôi mới chơi và cố gắng điều chỉnh các giá trị:

R1 = 20e3;
C1 = 235e-9;
R2 = 2e3;
C2 = 22e-9;
num = [2*R2*C1 0];
den = [C1*R1*C2*R2*2 (2*C1*R1 + C2*2*R2) 2];
g = tf(num,den);
P = bodeoptions; % Set phase visiblity to off and frequency units to Hz in options
P.FreqUnits = 'Hz'; % Create plot with the options specified by P
bode(g,P);
%[num,den] = eqtflength(num,den);      % Make lengths equal
%[z,p,k] = tf2zp(num,den)          % Obtain zero-pole-gain form

Bất kỳ cơ hội của một ví dụ với một lời giải thích tốt đẹp của từng bước?
AndrejaKo

tất nhiên - tôi sẽ thử và nêu chi tiết một ví dụ cho bạn vào cuối tuần!
smashtastic

Điều này là hoàn toàn chính xác, nhưng hoàn toàn vô nghĩa. Đừng phán xét tôi, tôi yêu thích biến đổi Laplace và Z ... :) .... Chỉ cần thử sử dụng phương pháp này để mô phỏng một bóng bán dẫn và bộ khuếch đại op-amp ... :)
Brethlosze

Tôi nghĩ bạn đã mắc lỗi khi viết hàm truyền cho bộ lọc thông thấp. Tôi nghĩ bạn có nghĩa là Vout / Vin = (1 / sC) / (R + (1 / sC))
Scott Lawson

6

Tôi đôi khi sử dụng scipy (một bộ công cụ số cho python) để phân tích mạch. Và vâng, điều đó thường liên quan đến việc giải các phương trình mạch bằng tay trước. Điều này chủ yếu hữu ích khi thực hiện phân tích dung sai và phân tích độ nhạy trên mạch.

Có một cuốn sách về chủ đề "Phân tích dung sai của mạch điện tử sử dụng MATLAB" cung cấp một số ví dụ về cách thực hiện phân tích điển hình trên một số mạch phổ biến. Nó không thực sự là một sự thay thế cho một cái gì đó như SPICE, nhưng rất hữu ích khi cố gắng thiết kế để có năng suất sản xuất tốt trên tất cả các dung sai thành phần, hoặc tính đến sự trôi dạt thành phần theo thời gian và nhiệt độ.


3
SciPy là miễn phí, không giống như Matlab, và làm rất nhiều thứ tương tự. scipy.org/NumPy_for_Matlab_Users Tôi nghĩ rằng nó khá tuyệt, bản thân tôi.
endolith

Một số SPICE có mô phỏng Monte Carlo và phân tích độ nhạy được thêm vào. SIMetrix nói riêng có phiên bản miễn phí ngay cả trong phiên bản giới thiệu / giới thiệu không hết hạn, nhưng chức năng sau không miễn phí. Cả Intersil (iSim: PE) và Thiết bị analog (ADIsimPE) hiện gửi SIMetrix dưới dạng SPICE của công ty, nhưng về cơ bản, đây là phiên bản giới thiệu với các thư viện chip bổ sung.
Fizz

Ngoài ra, sách giáo khoa bao gồm sai chính tả MATLAB là MAT H LAB ... khá thú vị và không truyền cảm hứng cho rất nhiều sự tự tin.
Fizz

1

đối với mạch RLC đơn giản với bất kỳ cấu trúc liên kết (chuỗi và song song), chúng ta có thể sử dụng "rlcdemo". Đó là gui tốt cho các bộ lọc phân tích (LPF-HPF-BPF-BSF)

 rlcdemo
 Analyzing the Response of an RLC Circuit
 This demo shows how to use the Control System Toolbox(TM) functions
 to analyze the time and frequency responses of common RLC circuits
 as a function of their physical parameters.

0

Bạn có thể sử dụng một chương trình được tạo trong Matlab có tên SCAM (phân tích mạch biểu tượng trong Matlab) và ở đây: https://www.swarthmore.edu/NatSci/echeeve1/Ref/mna/MNA6.html


Tại sao? chỉ cần sử dụng SimScape + SimElect Electronic vì nó có thể sử dụng các mô hình SPICE ...
JonRB

SimElect Electronics không cung cấp cho bạn các phương trình phân tích đôi khi rất hữu ích
JLo

0

Ngoài SCAM trong Matlab, còn có một công cụ phân tích mạch biểu tượng trực tuyến bóng bẩy tại CircuitNAV , sử dụng các tệp netlist (từ LTspice, Micro-Cap, TINA-TI, PSpice, v.v.) làm đầu vào và tạo ra giải pháp đại số cho từng tham số mạch .

CircuitNAV cũng cung cấp một bản demohướng dẫn .


-1

Cuốn sách pdf về các ví dụ của Spice và Matlab, http://www.elsevierdirect.com/companions/9780750659321/exercises/SpiceAndMatlab.pdf , một cuốn sách đồng hành để Giới thiệu về Phân tích và mô hình hóa tuyến tính của Moura & Darwazeh, có vẻ rất tốt cho tôi mục đích.


1
Trong khi điều này về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.