Search
Write a publication
Pull to refresh

Символический анализ цепей переменного тока

Level of difficultyMedium
Reading time9 min
Views4.5K

В установившемся режиме

Попробуем провести анализ электрических схем по переменному току с использованием системы символьных вычислений Maxima. Представим себе произвольную схему, после чего:

  • добавляем источник синусоидальной ЭДС в общем виде A•sin(2•π•f•t+ψ)

  • имеем в виду что 2•π•f•t+ψ- это фаза, а ψ- начальная фаза

  • что f- циклическая частота [Гц], ω - круговая [рад•с⁻¹],

  • выбираем необходимые переменные состояния, обозначаем токи и напряжения

  • рисуем контуры так, чтобы на каждом элементе подключённого к двум ветвям контуры проходили хотя бы пару раз, обозначаем узлы с охватом всех ветвей

Схема в KiCAD с параметрами SPICE-модели
Схема в KiCAD с параметрами SPICE-модели

Символический анализ

Используем систему компьютерной алгебры Maxima. Для этого составляем первую систему уравнений. По умолчанию при составлении системы уравнений предполагается, что каждое значение в списке равно нулю. Знак равенства можно не использовать. a=b записать как
a-b=0 или просто a-b. Таким образом, можно обойтись без знака равенства, полагая результатом каждого выражения в книге ноль (может быть, поэтому, на самом деле похожи
- и =).

eq:[
/*Правило Кирхгофа для напряжений контуров*/
-E1 + iR1*R1+iL*p*L+iC/(p*C), /*Уравнение по первому контуру I*/
+iL*p*L-iR2*R2, /*Уравнение по второму контуру II*/
-iC/(p*C)+iR3*R3, /*Уравнение по третьему контуру III*/
/*Правило Кирхгофа для токов узлов*/    
 iR1-iR2-iL, /*Уравнение по первому узлу (1)*/   
 iL-iC-iR3, /*Уравнение по второму узлу (2)*/   
/*Вычисляемая переменная состояния - выход*/  
 Un=iR3*R3  
];

далее производится решение и выделение необходимой переменной состояния Un. Небольшая заметка

  • Если в Maxima имеется выражение V1:[a=1,b=x,c=...], то для того чтобы это подставить в некоторое выражение V2:a+b можно использовать конструкцию с оператором "запятая" V3:V2,V1 которая эквивалентна subst(V1,V2). В основном subst используется внутри функций, циклов и условий

/*решаем систему уравнений eq относительно переменных 
состояния с выбором Un в качестве ответа*/
sln:Un,solve(eq,[iR1,iR2,iR3,iC,iL,Un]);
Решение относительно переменных состояния iR1,iR2,iR3,iC,iL,Un
Решение относительно переменных состояния iR1,iR2,iR3,iC,iL,Un

Получается передаточная функция второго порядка. Следует уточнить, что в данном случае используется термин "передаточная функция" (как отношение выхода ко входу), несмотря на то что в выражении содержится входной сигнал E1. Для упрощения можно полагать этот сигнал как произвольный множитель, входящий в соотношение, в частности, равный единице или нормированный к номинальной величине. Переходная характеристика же содержит конкретный вид сигнала E1, в данном случае синусоидальную величину. Передаточная функция используется для частотного анализа, переходная характеристика - для последующего анализа во временной форме и для нахождения значения в установившемся режиме.

Переходная характеристика ПХ и передаточная функция ПФ
Переходная характеристика ПХ и передаточная функция ПФ

Запишем входные сигналы во времени для варианта постоянного (единичная ступенька) и переменного тока (синус, начинаемый с нуля), а также найдём их изображения по Лапласу:

/*Для постоянного тока - постоянный уровень U*/
V1:U;
/*Для переменного тока - синусоидальная величина с амплитудой A*/
V2:A*sin(2*%pi*f_0*t+ψ_0);
/*Преобразование Лапласа от постоянной*/
V3:laplace(V1,t,p);
/*Преобразование Лапласа от синуса*/
V4:laplace(V2,t,p);

В результате будет иметься следующее:

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

Нахождение значения в установившемся режиме при заданном входном сигнале
Нахождение значения в установившемся режиме при заданном входном сигнале

Код для получения формулы на рисунке выше

/*Магический коэффициент*/
V5:(p^2+4*%pi^2*f_0^2)/(2*%pi*f_0);
/*Произведение при заданной форме входного сигнала*/
V6:V5*V4;

Итак, необходимым для анализа коэффициентом является выражение, которое умножается на произведение заданной формы сигнала E1(p) в операторной форме на передаточную функцию системы W(p). Также коэффициент можно записать как (p²+ω²)/ω, ω= 2•π•f

"Магический" коэффициент для перехода в установившейся режим (выражение V5) и результат его умножения на входной синусоидальный сигнал (выражение V6)
"Магический" коэффициент для перехода в установившейся режим (выражение V5) и результат его умножения на входной синусоидальный сигнал (выражение V6)

Запишем переходную характеристику как результат умножения входного сигнала на передаточную функцию, в данном случае выполняется подстановка вместо E1:

/*Переходная характеристика*/
V7:sln,E1=V4;

Результатом будет выражение V7

Следует отметить, что подстановка в Maxima может быть выполнена как subst(x=2,x^2) так и с использованием оператора "запятая" в простых выражениях x^2,x=2
Следует отметить, что подстановка в Maxima может быть выполнена как subst(x=2,x^2) так и с использованием оператора "запятая" в простых выражениях x^2,x=2

Далее переходная характеристика умножается на "Магический коэффициент":

/*Переходная характеристика с коэффициентом*/
V8:factor(V7*V5);

Получается следующее выражение V8, равное

Как видно, "магический коэффициент" предназначен для устранения сингулярности в знаменателе, образованной преобразованием Лапласа от синусоидального входного сигнала. Так как если в p² + (2•π•f)² подставить p = j•2•π•f₀, то получится (j•2•π•f)² +(2•π•f)² = -(2•π•f)² +(2•π•f)² = 0 деление на ноль. Далее можно подставить значение p для перехода в комплексно-частотную область для заданной точки.

/*Значение оператора p в заданной точке и переход в КЧХ*/
V9:p=%i*2*%pi*f_0;
/*Значение выходного сигнла в заданной комплексно-частотной точке*/
V10:V8,V9;

Получается значение в установившемся режиме как комплексно-частотная точка

Значение оператора p для перехода к КЧХ (комлпесно-частотная характеристика). И непосредственно значение КЧХ в заданной частотной точке f₀
Значение оператора p для перехода к КЧХ (комлпесно-частотная характеристика). И непосредственно значение КЧХ в заданной частотной точке f

Итак, общая схема для нахождения значения в установившемся режиме представлена на рисунке

Структурная схема нахождения значения в уст. режиме
Структурная схема нахождения значения в уст. режиме

Для нахождения амплитуды и фазы выходного сигнала достаточно взять модуль и аргумент. Перед этим, также задав предположение о положительном значении величин, чтобы система символических вычислений могла оптимизировать корни. √x² = |x|, но √x² = x если x≥0

/*Предположение о неотрицательности параметров*/
assume(A>0,R1>0,R2>0,R3>0,f_0>0,C>0,L>0);
V10A:cabs(V10); /*Амплитуда выходного сигнала в заданной частотной точке*/
V10P:carg(V10); /*Фаза выходного сигнала в заданной частотной точке*/

В итоге получается следующий ответ

Амплитуда и фаза выходного сигнала в точке f₀
Амплитуда и фаза выходного сигнала в точке f

Подставим численные параметры в данные выражения и рассчитаем получившуюся амплитуду и фазу выходного синусоидального сигнала, например, на частоте 2 кГц f=2e3 и фазой входного сигнала -40 эл. град. Кратко входной сигнал можно записать как 1∠-40°

Для перевода в радианы умножим на π/180, чтобы выразить %pi значением используется команда float. Следует отметить что %pi в Maxima выглядит как π, но при этом имеет численный атрибут.

/*Задание численных параметров*/
Num:[R1=1,R2=100,R3=30,L=1e-3, C=10e-6,ψ_0=float(-40/180*%pi),A=1,f_0=2e3];
/*Получение значения амплитуды*/
V11A:float(V10A),Num;
/*Получение значения фазы*/
V11P:float(V10P),Num;
/*из радиан в градусы*/
float((V11P)*180/%pi);

В итоге получаются следующие значения: амплитуда (выражение V11A) 1.2736 В, величина в радианах составляет (выражение V11P) -3.06591, что соответствует в градусах -175.66°. Таким образом, выходное напряжение можно записать как 1.27∠-176°, что и является искомым ответом. Данный метод можно использовать для любой схемы или произвольной передаточной функции.

В целях проверки значения проведём дополнительное сравнительное моделирование.
В KiCAD проведём моделирование схемы с использованием Spice-модели, собранной как показано выше. Следует отметить, что обязательно использование символа GND и общей точки для решения без расхождения.

Переходной процесс значения курсора в амплитуде 1.14В
Переходной процесс значения курсора в амплитуде 1.14В
Частотная характеристика. Значение на целевой частоте (курсор) 2.01KHz : -123.169°
Частотная характеристика. Значение на целевой частоте (курсор) 2.01KHz : -123.169°


Построим теперь те же самые характеристики в Maxima.

/*Подставить численные значения в переходную характеристику*/
V12:V7,Num;
ratprint:false;/*чтобы избежать предупреждение о преобразовании в рациональные числа*/
/*Найти обратное преобразование Лапласа от переходной характеристики*/
V13:float(ilt(V12,p,t));
/*полюса передаточной функции - корни знаменателя*/
rectform(float(solve(denom(V12),p)));

Выводом будут следующие выражения. Обратить внимание что 1/2.718...^t это exp(-t)

Переходная характеристика, результат обратного преобразования Лапласа и корни знаменателя
Переходная характеристика, результат обратного преобразования Лапласа и корни знаменателя

Важно отметить, что если если p[i] - произвольный корень знаменателя (полюс), то:

  • 1/Re(p[i]) - постоянная времени составляющей переходного процесса (секунда) или величина обратная действительной части корня

  • Im(p[i]) - круговая частота переходного процесса (радиан•с⁻¹) или величина мнимой части корня, а Im(p[i])/(2π) - циклическая частота составляющей переходного процесса (Гц)

/*Подстановка численных значений во входной сигнал*/
V14:V2,Num;
/*Подстановка полученных значений амплитуды и начальной фазы в выходной сигнал*/
V15:V11A*sin(2*%pi*f_0*t+V11P),Num;

В итоге имеем два сигнала - входной 1∠-0.698 (радиан) и выходной 1.274∠-3.066, с подставленными и найденными ранее численными параметрами
1•sin(4000.0•π•t-0.6981317007977318) - вход, 1.2736•sin(4000.0•π•t-3.06591) - выход в установившемся режиме

/*построить график*/
wxplot2d([V13,V14,V15],[t,0,0.003],[legend,false]),wxplot_size=[480,320];
Переходной процесс, входной и выходной сигналы
Переходной процесс, входной и выходной сигналы

Далее построим частотные характеристики. Для этого необходимо подставить p = j•2•π•f в передаточную функцию для перехода к комплексно-частотной характеристики, содержащей мнимую и действительную части от варьируемой частоты.

/*Переход в комплексно-частотную область для любой частотной точки f*/
V16:p=%i*2*%pi*f;
/*Подстановка в подстановку: задаём ЭДС формально равное единице 
для получения передаточной функции*/;
V17:sln,[E1=A,V16];
/*Подстановка численных параметров*/
V18:V17,Num;
/*Модуль */
V18A:float(cabs(V18));
/*Аргумент*/
V18P:float((carg(V18))/%pi*180);
/*Построение графика АЧХ*/
wxplot2d(V18A,[f,1,100e3],[legend,false],[logx,true],[logy,true]),wxplot_size=[480,320];
/*Построение графика ФЧХ*/
wxplot2d(V18P,[f,1,100e3],[legend,false],[logx,true]),wxplot_size=[480,320];

В результате получаются следующие графики, чуть отличающиеся от моделирования в SPICE. Обратить внимание на количество точек "перегиба" и наклона графиков, соответствующих производным, а также асимптоты. По всей видимости, численная модель имеет некоторые особенности, что требует дальнейших исследований.

Амплитудная и фазо-частотные характеристики.
Амплитудная и фазо-частотные характеристики.

Напоследок чтобы проверить схему можно рассмотреть установившийся режим для передаточной функции на постоянном токе, подставляя p=0 в выражение sln командой factor(sln),p=0 можно получить E1•R3/(R3+R1) - выражение по правилу делителя, при этом индуктивность становится закороткой а ёмкость уходит в разрыв.
Общий скрипт

Скрытый текст
kill(all);
eq:[
/*Правило Кирхгофа для напряжений контуров*/
-E1 + iR1*R1+iL*p*L+iC/(p*C), /*Уравнение по первому контуру I*/
+iL*p*L-iR2*R2, /*Уравнение по второму контуру II*/
-iC/(p*C)+iR3*R3, /*Уравнение по третьему контуру III*/
/*Правило Кирхгофа для токов узлов*/    
 iR1-iR2-iL, /*Уравнение по первому узлу (1)*/   
 iL-iC-iR3, /*Уравнение по первому узлу (2)*/   
 Un=iR3*R3 /*Вычисляемая переменная состояния - выход*/   
];
/*решаем систему уравнений eq относительно выбранных переменных состояния*/
sln:Un,solve(eq,[iR1,iR2,iR3,iC,iL,Un]);
/*Для постоянного тока - постоянный уровень U*/
V1:U;
/*Для переменного тока - синусоидальная величина с амплитудой A*/
V2:A*sin(2*%pi*f_0*t+ψ_0);
/*Преобразование Лапласа от постоянной*/;
V3:laplace(V1,t,p);
/*Преобразование Лапласа от синуса*/
V4:laplace(V2,t,p);
/*Магический коэффициент*/
V5:(p^2+4*%pi^2*f_0^2)/(2*%pi*f_0);
/*Произведение при заданной форме входного сигнала*/
V6:V5*V4;
/*Переходная характеристика*/
V7:sln,E1=V4;
/*Переходная характеристика с коэффициентом*/
V8:factor(V7*V5);
/*Значение оператора p в заданной точке и переход в КЧХ*/
V9:p=%i*2*%pi*f_0;
/*Значение выходного сигнла в заданной комплексно-частотной точке*/
V10:V8,V9;
/*Предположение о неотрицательности параметров*/
assume(A>0,R1>0,R2>0,R3>0,f_0>0,C>0,L>0);
V10A:trigsimp(cabs(V10)); /*Амплитуда выходного сигнала в заданной частотной точке*/
V10P:carg(V10); /*Фаза выходного сигнала в заданной частотной точке*/
/*Задание численных параметров*/
Num:[R1=1,R2=100,R3=30,L=1e-3, C=10e-6,ψ_0=float(-40/180*%pi),A=1,f_0=2e3];
/*Получение значения амплитуды*/
V11A:float(V10A),Num;
/*Получение значения фазы*/
V11P:float(V10P),Num;
/*из радиан в градусы*/
float((V11P)*180/%pi);
/*Подставить численные значения в переходную характеристику*/
V12:V7,Num;
/*Найти обратное преобразование Лапласа от переходной характеристики*/
ratprint:false;/*чтобы избежать предупреждение о преобразовании в рациональные числа*/
V13:float(ilt(V12,p,t));
/*полюса передаточной функции - корни знаменателя*/
rectform(float(solve(denom(V12),p)));
/*Подстановка численных значений во входной сигнал*/
V14:V2,Num;
/*Подстановка полученных значений амплитуды и начальной фазы в выходной сигнал*/
V15:V11A*sin(2*%pi*f_0*t+V11P),Num;
wxplot2d([V13,V14,V15],[t,0,0.003],[legend,false]),wxplot_size=[480,320];
/*Переход в комплексно-частотную область для любой частотной точки f*/
V16:p=%i*2*%pi*f;
/*Подстановка в подстановку: задаём ЭДС формально равное единице 
для получения передаточной функции*/;
V17:sln,[E1=A,V16];
/*Подстановка численных параметров*/
V18:V17,Num;
/*Модуль */
V18A:float(cabs(V18));
/*Аргумент*/
V18P:float((carg(V18))/%pi*180);
/*Построение графика АЧХ*/
wxplot2d(V18A,[f,1,100e3],[legend,false],[logx,true],[logy,true]),wxplot_size=[480,320];
/*Построение графика ФЧХ*/
wxplot2d(V18P,[f,1,100e3],[legend,false],[logx,true]),wxplot_size=[480,320];
Tags:
Hubs:
+5
Comments10

Articles