Як зробити аналіз схеми за допомогою Matlab?


14

Я часто чую, як люди використовують Matlab для аналізу схем, але я ніколи насправді не з'ясовував, як це робиться. Я припускаю, що в цьому є щось більше, ніж просто встановити рівняння вручну та розв’язати їх у Matlab.

Я шукаю гарну вихідну точку.


Ви запитуєте про використання Matlab в якості "заміни SPICE" для імітації дискретних компонентів RLC або більше за принципом моделювання системи?
W5VO

@ W5VO Обидва, але з більшою увагою на SPICE. Я знаю, що моделювання системи можна зробити за допомогою Simulink і що це не надто складно.
AndrejaKo

5
Розв’язування схем - це просто розв’язування нелінійних диференціальних рівнянь, тому це можливо в Matlab. ОТО я, оскільки СПІС - це не що інше, як нелінійне диференційоване рівняння, тоді я використовував би Matlab лише в тому випадку, якщо б у мене була справді дивна чи особлива проблема.
jpc

Відповіді:


6

Для аналізу схеми можна використовувати панель інструментів Matlab Simulink Simpowersystem . Вона включає компоненти RLC, комутатори, електричні машини тощо. Ви можете створити свій власний компонент та змінити будь-які параметри компонентів бібліотеки. Оскільки ви можете комбінувати схеми з будь-якими блоками Simulink, будь-яким рішенням Simulink або будь-якою функцією Matlab, цей інструмент є дуже потужним. Не потрібно спочатку вирішувати рівняння ланцюга, оскільки ви працюєте в середовищі Simulink. Він спочатку орієнтований на енергосистеми, але я думаю, ви можете використовувати його для будь-якої схеми електроніки.


3
Наші відповіді, можливо, приходять трохи пізно, але є також SimElectronics, яка є більш специфічною для Simpowersystem (але поділіться проблемою дорогої ліцензії на інструментарій)
Клемент Дж.

Річ у тім, що я знайшов Simulink навіть з усіма скриньками інструментів, доданими досить громіздкими. Подивіться, що потрібно для моделювання схеми RLC . Набагато складніше, ніж у СПІСІ. ІМО варто лише в дуже конкретних випадках, коли у вас є блоки поведінкового коду, пов'язані з контролером, які неможливо зробити в SPICE жодним розумним чином.
Фіз

Крім того, щоб просто отримати символічну функцію передачі, qsapecng безкоштовна, ви просто намалюєте схему і натисніть одну кнопку, і це зроблено.
Фіз

14

Я використовую MATLAB зовсім небагато для аналізу схем. Іноді я віддаю перевагу прянощі, інший раз віддаю перевагу прянощі, залежить від мого настрою та вимог.

Це такі дії:

  • 1: візьміть перетворення Лапласа схеми
  • 2: отримати функцію передачі
  • 3: графік / аналіз за допомогою функцій MATLAB. bode, імпульс, частота і так далі.

Найскладніша частина, яку я знаходжу, - це перетворення Лапласа і отримання рівняння функції передачі.

Існує безліч прикладів та підручників із використання Laplace в Інтернеті. Коротко мета тут - отримати рівняння у вигляді

Н(с)=ас2+бс+cгс2+ес+f

аcгf

Для цього перетворіть усі ваші пасивні елементи в складні опори. Це так

  • C = 1 / сС
  • R = R
  • L = sL

Далі виведіть рівняння для своєї схеми у вигляді Vout / Vin.

Для простого низькочастотного фільтра у вигляді:

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

це дасть:

VоутViн=сСR+сС

Напишіть вищевказане рівняння у вигляді числа та den для MATLAB:

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

Потім перейдіть за допомогою будь-якої функції matlab, яку ви хочете проаналізувати функцію передачі (bode), діаграму нуля полюса тощо.

Нижче наводиться приклад фільтра, з яким я нещодавно грав і намагався налаштувати значення:

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

Будь-який шанс прикладу з приємним поясненням кожного кроку?
AndrejaKo

звичайно - я спробую і деталізую приклад для вас у вихідні!
smashtastic

Це абсолютно правильно, але абсолютно безглуздо. Не судіть мене, я люблю перетворення Лапласа і Z ...:) .... Просто спробуйте використати такий підхід для імітації транзисторних та підсилювачів підсилювачів ... :)
Brethlosze

Думаю, ви помилилися, написавши функцію передачі для фільтра низьких частот. Я думаю, ти мав на увазі Vout / Vin = (1 / sC) / (R + (1 / sC))
Скотт Лоусон

6

Я деякий час використовую scipy (чисельний набір інструментів для python), щоб зробити схему аналізу. І так, це, як правило, спочатку розв'язує рівняння ланцюга вручну. Це в основному корисно при аналізі толерантності та аналізу чутливості в ланцюзі.

Існує книга на тему "Аналіз толерантності електронних схем за допомогою MATLAB", яка надає кілька прикладів того, як провести типовий аналіз за деякими загальними схемами. Це насправді не заміна чогось на кшталт SPICE, але корисна при спробі розробити хороший вихід виробництва за всі допуски компонентів або врахувати дрейф компонентів у часі та температурі.


3
SciPy безкоштовний, на відміну від Matlab, і робить багато тих же матеріалів. scipy.org/NumPy_for_Matlab_Users Я сам думаю, що це чудово.
ендоліт

Деякі SPICE також додають моделювання в Монте-Карло та аналіз чутливості. Зокрема, SIMetrix має перше безкоштовно навіть у демо-версії, що не закінчується, але остання функція не є безкоштовною. І Intersil (iSim: PE), і аналогові пристрої (ADIsimPE) тепер постачають SIMetrix як свою компанію SPICE, але це в основному інтро-версія з додатковими бібліотеками чіпів.
Фіз

Крім того, ця обкладинка підручника неправильно написана MATLAB як MAT H LAB ... досить забавна і не викликає великої довіри.
Фіз

1

для простої схеми RLC з будь-якою топологією (серії та паралелі) ми можемо використовувати "rlcdemo". Це добре для аналізу фільтрів (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

Ви можете використовувати програму, створену в Matlab під назвою SCAM (символічний аналіз ланцюга в Matlab), і тут: https://www.swarthmore.edu/NatSci/echeeve1/Ref/mna/MNA6.html


Чому? просто використовуйте SimScape + SimElectronics, оскільки вона може використовувати SPICE-моделі ...
JonRB

SimElectronics не дає вам аналітичних рівнянь, які іноді дуже корисні
JLo

0

Окрім SCAM в Matlab, в CircuitNAV також є гладкий онлайн-інструмент аналізу символічних схем , який використовує файли netlist (від LTspice, Micro-Cap, TINA-TI, PSpice тощо) як вхідні дані та генерує алгебраїчне рішення для кожного параметра ланцюга. .

CircuitNAV також пропонує демонстрацію та навчальний посібник .


-1

Книга pdf із прикладів спецій та Matlab, http://www.elsevierdirect.com/companions/9780750659321/exercises/SpiceAndMatlab.pdf , супутникова книга « Вступ до лінійного аналізу та моделювання ланцюгів» від Moura & Darwazeh, виглядає дуже добре для мого цілей.


1
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.