Решение алгебраических уравнений и систем solve 1 страница
Для решения систем алгебраических уравнений и одиночных уравнений служит функция solve:
Синтаксис:
solve(expr1, expr2,..., exprN, var1, var2,..., varN)
Описание:
Функция solveвозвращает значения переменных var1, при которых соблюдаются равенства, заданные выражениями expr1. Если в выражениях не используются знаки равенства, то полагается expr1=0.
Результат решения возможен в следующих формах:
- для одного уравнения и одной переменной решение возвращается в виде одномерного или многомерного массива ячеек;
- при одинаковом числе уравнений и переменных решение возвращается в упорядоченном по именам переменных виде;
Функция solveпозволяет найти не только вещественные, но и комплексные корни систем алгебраических уравнений и одиночных уравнений.
Пример решить уравнение:
x3 - 1=0 (8)
Решение:
>> syms x
>> y=x^3-1;
>> S=solve(y,x)
S =
[ 1]
[ -1/2+1/2*i*3^(1/2)]
[ -1/2-1/2*i*3^(1/2)]
Получили три корня x1, x2, x3, которые хранятся соответственно в элементах S(1), S(2), S(3) массива S.
3.4 Дифференцирование функций diff
Matlab позволяет производить точное дифференцирование в символьном виде, используя следующие функции:
- diff(S) дифференцирует символьное выражение S по свободной переменной;
- diff(S, ‘v’) дифференцирует символьное выражение S по v;
- diff(S, n) и diff(S, ‘v’, n) дифференцирует n раз символьное выражение S;
- diff без аргументов дифференцирует предшествующее выражение.
Пример:
Дифференцирование функций одной переменной — diff.
Найти производную функции по переменной х:
» y6=sin(x+h);
» diff(y6)
ans =
cos(x+h)
3.5 Решение дифференциальных уравнений в символьном виде dsolve
Решатель дифференциальных уравнений может быть использован, если решение существует в аналитическом виде. Практически это означает, что решателем dsolveможно пользоваться только при поиске решения линейного дифференциального уравнения (или системы линейных уравнений).
Решить дифференциальное уравнение с начальным условием Построить график решения в интервале [-0.5, 7].
% Создадим следующий сценарий под именем sdif1:
%Решение дифференциального уравнения в символьном виде
x1=dsolve('Dx=-0.5*x','x(0)=10')
ezplot(x1,[-0.5,7]), grid, title('Диф.уравнение')
% Область построения графика решения можно задавать без квадратных скобок
Решить систему однородных дифференциальных уравнений с начальными условиями построить график решения в интервале [-0.5, 13].
% Создадим следующий сценарий под именем sdif2:
[x1,x2]=dsolve('Dx1=-.5*x2','Dx2=3*x1','x1(0)=0','x2(0)=1');
ezplot(x1,0,13), grid, hold on, ezplot(x2,[0,13]), title ('Однородная система 2-х уравнений')
3.6 Интегрирование функции одной переменной int
Для вычисления интегралов в символьном виде используется функция int, имеющая следующий синтаксис: int (f), int (f, [u]), int (f, [u , a, b ]),
где f - символьная подынтегральная функция, необязательные переменные:
u - переменная интегрирования,
а - нижний предел интегрирования,
b - верхний предел интегрирования.
Вычисление неопределенного интеграла:
% Вычислить интеграл :
» int(x^2)
ans =
1/3*x^3
Вычисление определенного интеграла:
% Вычислить определенный интеграл :
» y7=int(x^2*sin(x),1,2*pi)
» vpa(y7,5)
ans =
-39.702
4 Модели линейных динамических систем
4.1 Описание линейных динамических систем
Для описания линейных систем могут применяться несколько способов:
· дифференциальные уравнения
· модели в пространстве состояний
· передаточные функции
· модели вида «нули-полюса»
Первые два способа называются временныَми, поскольку описывают поведение системы во временной области и отражают внутренние связи между сигналами. Передаточные функции и модели вида «нули-полюса» относятся к частотным способам описания, так как непосредственно связаны с частотными характеристиками системы и отражают только входные и выходные свойства (то есть, описывают динамику не полностью).
Частотные методы позволяют применять для анализа и синтеза алгебраические методы, что часто упрощает расчеты. С другой стороны, для автоматических вычислений более пригодны методы, основанные на моделях в пространстве состояний, поскольку они используют вычислительно устойчивые алгоритмы линейной алгебры.
Исходные уравнения динамики объектов, которые строятся на основе законов физики, имеют вид нелинейных дифференциальных уравнений. Для приближенного анализа и синтеза обычно проводят их линеаризацию в окрестности установившегося режима и получают линейные дифференциальные уравнения.
Линейное уравнение можно записать в операторной форме
или (9)
где – входной сигнал, – сигнал выхода, – оператор дифференцирования, и – операторные полиномы.
Передаточная функция линейной стационарной системы от комплексной переменной определяется как отношение преобразования Лапласа выхода к преобразованию Лапласа входа при нулевых начальных условиях [6]:
(10)
Передаточная функция звена, которое описывается приведенным выше уравнением, равна:
, (11)
Передаточная функция в среде Matlab вводится в виде отношения двух многочленов (полиномов) от при замене комплексной переменной на . Полиномы хранятся как массивы коэффициентов, записанных по убыванию степеней. Например, передаточная функция
(12)
вводится следующим образом:
>> n = [2 4]
n =
2 4
>> d = [1 1.5 1.5 1]
d =
1.0000 1.5000 1.5000 1.0000
>> f = tf ( n, d )
Transfer function:
2 s + 4
-------------------------
s^3 + 1.5 s^2 + 1.5 s + 1
или сразу, без предварительного построения числителя и знаменателя:
>> f = tf ( [2 4], [1 1.5 1.5 1] );
В памяти создается объект класса tf, описывающий передаточную функцию. Точка с запятой в конце команды подавляет вывод на экран.
По передаточной функции можно легко построить модель в форме «нули-полюса»
>> f_zpk = zpk(f)
Zero/pole/gain:
2 (s+2)
-----------------------
(s+1) (s^2 + 0.5s + 1)
Нулями называются корни числителя, полюсами – корни знаменателя. Эта функция имеет один нуль в точке и три полюса в точках и . Паре комплексных полюсов соответствует квадратный трехчлен.
Модель в пространстве состояний связана с записью дифференциальных уравнений в стандартной форме Коши (в виде системы уравнений первого порядка) [6]:
(13)
Здесь – вектор переменных состояния размера , – вектор входных сигналов (вектор управления) размера и – вектор выходных сигналов размера . Кроме того, и – постоянные матрицы. Согласно правилам матричных вычислений, матрица должна быть квадратной размера , матрица имеет размер , матрица – и матрица – . Для систем с одним входом и одним выходом матрица – скалярная величина.
Для преобразования передаточной функции в модель в пространстве состояний используется команда
>> f_ss = ss ( f )
a =
x1 x2 x3
x1 -1.5 -0.1875 -0.03125
x2 8 0 0
x3 0 4 0
b =
u1
x1 0.5
x2 0
x3 0
c =
x1 x2 x3
y1 0 0.5 0.25
d =
u1
y1 0
Это означает, что матрицы модели имеют вид
, , , .
Модель в пространстве состояний можно построить не для всех передаточных функций, а только для правильных, у которых степень числителя не выше, чем степень знаменателя. Например, передаточная функция
(14)
– неправильная, она не может быть преобразована в модель в пространстве состояний.
Используют также понятие строго правильной функции, у которой степень числителя меньше, чем степень знаменателя. Если построить модель в пространстве состояний для такой функции, матрица будет равна нулю, то есть, прямая передача с входа на выход отсутствует (при скачкообразном изменении входа сигнал на выходе будет непрерывным).
Коэффициент усиления в установившемся режиме
Одна из важнейших характеристик линейной системы – коэффициент усиления в установившемся режиме или статический коэффициент усилении (static gain, DC-gain). Его можно определить как установившееся значение сигнала выхода при постоянном входном сигнале, равном единице. Размерность этой величины равна отношению размерностей сигналов выхода и выхода.
Рассмотрим дифференциальное уравнение
. (15)
Полагая все производные (в установившемся режиме) равными нулю, получаем
. (16)
Статический коэффициент усиления равен .
Если задана передаточная функции, для вычисления надо подставить в нее , поскольку переменная соответствует оператору дифференцирования. Рассмотренному выше уравнению можно сопоставить передаточную функцию:
. (17)
Тогда:
. (18)
Если система содержит интегрирующее звено (передаточная функция имеет полюс в точке ), этот предел равен бесконечности, то есть, при постоянном сигнале выход бесконечно увеличивается или уменьшается, не достигая установившегося режима.
Тот же результат можно получить с помощью эквивалентной модели в пространстве состояний. С помощью среды Matlab находим
.
Полагая , получаем модель, определяющую установившийся режим:
, (19)
откуда следует
. (20)
Для нашей системы, как и раньше, получаем . Заметьте, что для того, чтобы статический коэффициент усиления был конечен, требуется обратимость матрицы , то есть, отсутствие интегрирующих звеньев.
Чтобы найти статический коэффициент усиления модели f в Matlab, используется команда
>> k = dcgain ( f )
Импульсная характеристика
Импульсной характеристикой (весовой функцией) называется реакция системы на единичный бесконечный импульс (дельта-функцию или функцию Дирака) при нулевых начальных условиях. Дельта-функция определяется равенствами [6]:
, . (21)
Это обобщенная функция – математический объект, представляющий собой идеальный сигнал, никакое реальное устройство не способно его воспроизвести. Дельта-функцию можно рассматривать как предел прямоугольного импульса единичной площади с центром в точке при стремлении ширины импульса к нулю. (Рисунок 12)
Рисунок 12 - Дельта-функция
Второе название – весовая функция – связано с тем, что для произвольного входного сигнала выход системы вычисляется как свертка [6]:
. (22)
Здесь функция как бы «взвешивает» входной сигнал в подынтегральном выражении.
Импульсная характеристика отражает лишь вход- выходные соотношения при нулевых начальных условиях, то есть, не может полностью описывать динамику системы.
Переходная характеристика
Переходной характеристикой (переходной функцией) называется реакция системы (при нулевых начальных условиях) на единичный ступенчатый сигнал (единичный скачок) (Рисунок 13) [6]:
. (23)
Импульсная и переходная функции связаны выражениями:
, . (24)
Для систем без интеграторов переходная характеристика стремится к постоянному значению. Переходная характеристика системы с дифференцирующим звеном (числитель передаточной функции имеет нуль в точке ) стремится к нулю.
Рисунок 13 – Переходная характеристика
По определению предельное значение переходной функции при есть статический коэффициент усиления:
. (25)
Эта величина имеет смысл только для устойчивых систем, поскольку при неустойчивости переходный процесс не сходится к конечному значению.
По переходной характеристике можно найти важнейшие показатели качества системы – перерегулирование (overshoot) и время переходного процесса (settling time). (Рисунок 14)
Перерегулирование определяется как:
, (26)
где – максимальное значение функции , а – установившееся значение выхода.
Время переходного процесса – это время, после которого сигнал выхода отличается от установившегося значения не более, чем на заданную малую величину (в среде Matlab по умолчанию используется точность 2%).
Рисунок 14 – Определение времени переходного процесса и перерегулирования
Частотная характеристика
При подаче на вход линейной системы гармонического (синусоидального) сигнала с частотой (она измеряется в радианах в секунду), на выходе будет также гармонический сигнал той же частоты, но другой амплитуды и фазы , где – амплитуда и – сдвиг фазы.
Частотная характеристика определяется как реакция системы на комплексный экспоненциальный сигнал . Для ее построения надо использовать подстановку в передаточной функции . Выражение называется частотной передаточной функцией или амплитудно-фазовой частотной характеристикой системы (АФЧХ).
Зависимость модуля величины от частоты называется амплитудной частотной характеристикой (АЧХ) (Рисунок 15), а зависимость аргумента комплексного числа (фазы) от частоты – фазовой частотной характеристикой (ФЧХ) [6]:
. (27)
АЧХ показывает, насколько усиливается амплитуда сигналов разных частот после прохождения через систему, а ФЧХ характеризует сдвиг фазы сигнала.
|
Рисунок 15– Амплитудно – частотная характеристика
Реальные объекты имеют строго правильную передаточную функцию, поэтому их АЧХ убывает с ростом частоты и асимптотически стремится к нулю. Говорят, что такой объект обладает свойством фильтра – фильтрует (не пропускает) высокочастотные сигналы (помехи, шумы измерений). Это свойство служит основой для использования метода гармонического баланса.
Частота, после которой значение АЧХ уменьшается ниже 0 дБ (коэффициент усиления меньше 1, сигнал ослабляется), называется частотой среза системы .
Частота, после которой значение АЧХ падает ниже -3 дБ (коэффициент усиления меньше, чем 0.708), называется полосой пропускания системы . Для ее вычисления используют команду:
>> b = bandwidth ( f )
Максимум АЧХ соответствует частоте, на которой усиление наибольшее. Значение АЧХ при равно усилению при постоянном сигнале, то есть, статическому коэффициенту усиления . Это следует и из равенства:
. (28)
Для систем с интегрирующими звеньями частотная характеристика стремится к бесконечности при . Это значит, что их выход бесконечно увеличивается или уменьшается при постоянном входном сигнале.
Чтобы построить частотные характеристики в Matlab, надо сначала создать массив частот в нужном диапазоне. Для этого можно использовать функции linspace (равномерное распределение точек по линейной шкале) и logspace (равномерное распределение точек по логарифмической шкале). Команда:
>> w = linspace (0, 10, 100);
строит массив из 100 точек с равномерным шагом в интервале от 0 до 10, а команда
>> w = logspace (-1, 2, 100);
– массив из 100 точек с равномерным шагом по логарифмической шкале в интервале от до .
Частотная характеристика на сетке w для линейной модели f(заданной как передаточная функция, модель в пространстве состояний или в форме «нули-полюса») вычисляется с помощью функции freqresp:
>> r = freqresp(f, w);
Функция freqrespвозвращает трехмерный массив. Это связано с тем, что она применима и для многомерных моделей (с несколькими входами и выходами), передаточная функция которых представляет собой матрицу. Первые два индекса обозначают строку и столбец в этой матрице, а третий – номер точки частотной характеристики. Для системы с одним входом и одним выходом удобно преобразовать трехмерный массив в одномерный командой
>> r = r(:);
Для вывода графика АЧХ на экран можно использовать команды Matlab
>> plot ( w, abs(r) );
>> semilogx ( w, abs(r) );
>> loglog ( w, abs(r) );
В первом случае масштаб обеих осей координат – линейный, во втором случае используется логарифмический масштаб по оси абсцисс (частот), в последнем – логарифмический масштаб по обеим осям. Для вычисления фазы (в градусах) используется команда:
>> phi = angle(r)*180/pi;
после чего можно строить ФЧХ, например:
>> semilogx ( w, phi );
Полюса и нули
Многие динамические свойства системы (например, быстродействие, перерегулирование) определяются полюсами передаточной функции (или, что то же самое, собственными числами матрицы модели в пространстве состояний).
Передаточную функцию можно записать как произведение передаточных функций элементарных звеньев первого и второго порядков. Таким образом, множество полюсов передаточной функции устойчивой системы составляют полюса передаточных функций двух типов простейших звеньев: апериодических и колебательных.
Апериодическое звено с передаточной функцией вида имеет единственную характеристику – постоянную времени . Начиная примерно с частоты , АЧХ такого звена начинает убывать, приближаясь к нулю.
Колебательное звено имеет передаточную функцию , где – постоянная времени и . Частота называется собственной частотой (natural frequency), а параметр – параметром затухания или коэффициентом демпфирования (damping factor). При уменьшении импульсная и переходная функции приобретают ярко выраженный колебательный характер, а на АЧХ появляется «горб» в районе частоты . В предельном случае при колебания становятся незатухающими, а звено называется консервативным. С другой стороны при корни знаменателя становятся вещественными, и звено превращается в апериодическое звено второго порядка.