Как сделать анализ цепи с использованием Matlab?


14

Я часто слышу о людях, использующих Matlab для анализа цепей, но я так и не понял, как это делается. Я предполагаю, что в этом есть нечто большее, чем просто создание уравнений вручную и их решение в Matlab.

Я ищу хорошую отправную точку.


Вы спрашиваете об использовании Matlab в качестве «замены SPICE» для симуляции дискретных компонентов RLC или более по принципу симуляции системы?
W5VO

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

5
Решение цепей - это просто решение нелинейных дифференциальных уравнений, поэтому это возможно в Matlab. OTOH, поскольку SPICE на самом деле не более, чем решатель нелинейных дифференциальных уравнений, я бы использовал Matlab, только если бы у меня была действительно странная или особая проблема.
jpc

Ответы:


6

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


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

Дело в том, что я нашел Simulink даже со всеми добавленными наборами инструментов, довольно громоздкими. Достаточно взглянуть на то, что требуется для симуляции схемы RLC . Гораздо сложнее, чем в SPICE. Полезно только для IMO в очень специфических случаях, когда у вас есть связанные с контроллером блоки поведенческого кода, которые нельзя сделать в SPICE любым разумным способом.
Fizz

Кроме того, чтобы получить символьную передаточную функцию, qsapecng бесплатен, вы просто рисуете схему и нажимаете одну кнопку, и все готово.
Fizz

14

Я использую MATLAB совсем немного для анализа цепей. Иногда я предпочитаю это специи, иногда я предпочитаю специи, зависит от моего настроения и потребностей.

Это следующие шаги:

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

Самая хитрая часть, которую я нахожу, - это взять преобразование Лапласа и вывести уравнение передаточной функции.

В Интернете есть много примеров и учебников о взятии Лапласа. Вкратце цель здесь состоит в том, чтобы получить уравнение в виде

ЧАС(s)знак равноas2+бs+сds2+еs+е

aсdе

Для этого преобразуйте все пассивные элементы в сложные импедансы. Вот это

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

Затем выведите уравнение для вашей схемы в форме Vout / Vin.

Для простого фильтра нижних частот в виде:

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

это даст:

ВоUTВяNзнак равноsСр+sС

Запишите вышеприведенное уравнение в форме num и 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), и Analog Devices (ADIsimPE) теперь поставляют SIMetrix в качестве SPICE своей компании, но в основном это ознакомительная версия с дополнительными библиотеками чипов.
Fizz

Также эта обложка учебника написана с ошибкой MATLAB как MAT H LAB ... довольно забавно и не внушает особого доверия.
Fizz

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 , который использует файлы списков соединений (из LTspice, Micro-Cap, TINA-TI, PSpice и т. Д.) В качестве входных данных и генерирует алгебраическое решение для каждого параметра схемы. ,

CircuitNAV также предоставляет демо и учебник .


-1

PDF-книга с примерами Spice и Matlab, http://www.elsevierdirect.com/companions/9780750659321/exercises/SpiceAndMatlab.pdf , компаньон для Moura & Darwazeh по введению в анализ и моделирование линейных цепей , выглядит очень хорошо для меня цели.


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