где , , , – токи и падения напряжения на сопротивлениях и . Исключив из (26) эти токи и напряжения получаем уравнение состояния. Выходным параметром является напряжение на конденсаторе. Уравнения состояния:
(27)
В диалоговом окне параметров блока State-Space вводим соответствующие матрицы из (27) рис. 9., а в командной строке задаём переменные
R1 = 1e3;
R2 = 1e4;
C = 1e-6;
Длительность прямоугольных и треугольных импульсов 0,01с.
Рис. 9 Параметры State-Space для системы с двумя входными параметрами.
Линейную систему, заданную с помощью четырёх матриц из (5) и (7), можно также задать с помощью передаточной функции (transfer function), если у системы несколько входов, то для каждого входа будет свой коэффициент передачи. В Matlab для того чтобы найти коэффициенты числителя и знаменателя передаточной функции есть функция ss2tf. Первые четыре аргумента – это матрицы A, B, C, D, пятый аргумент – номер входа, соответствующий номеру входного параметра.
Чтобы получить коэффициент передачи интересующего входа линейной системы, к уравнениям (27) применяем преобразование Лапласа:
(28)
где , , , Лаплас-образы соответствующих в (27) функций. Из второго уравнения в (28) выразим через и подставим в первое уравнение. Если, например, хотим получить коэффициент передачи для первого входа, то надо положить . Это равносильно тому, что мы подключили второй вход к общему проводу, то есть сопротивление оказалось включённым параллельно вместе с конденсатором. Аналогичные действия для нахождения второго коэффициента передачи. В результате получили два равенства:
(29)
В этих выражениях слагаемые с перенесём в левую часть и приведём подобные. По определению комплексный коэффициент передачи для первого и второго входа:
(30)
Пример применения функции ss2tf в Matlab для системы показанной на рис. 8, результат сравнивается с формулами (30):
Пример преобразования ss2tf |
clear, clc, close all R1 = 1e3; % сопротивление R1 R2 = 1e4; % сопротивление R2 C1 = 1e-6; % ёмкость конденсатора C % коэффициенты системы уравнений A = -(1/R1+1/R2)/C1; B = [1/R1, 1/R2]/C1; C = 1; D = [0, 0]; % коэффициенты числителя и знаменателя передаточной функции [b1, a1] = ss2tf(A, B, C, D, 1); [b2, a2] = ss2tf(A, B, C, D, 2); % значения частот в логарифмическом масштабе f = logspace(1, 4, 50); % значения передаточных функций на этих частотах h1 = freqs(b1, a1, 2*pi*f); h2 = freqs(b2, a2, 2*pi*f); % для сравнения вычисляем по формулам k1 = 1./(2*pi*i*f*R1*C1+1+R1/R2); k2 = 1./(2*pi*i*f*R2*C1+1+R2/R1); % АЧХ и ФЧХ с помощью ss2tf figure subplot(2,1,1), semilogx(f, abs(h1), 'b', f, abs(h2), 'g'), grid subplot(2,1,2), semilogx(f, angle(h2), 'b', f, angle(h2), 'g'), grid % АЧХ и ФЧХ по формулам figure subplot(2,1,1), semilogx(f, abs(k1), 'b', f, abs(k2), 'g'), grid subplot(2,1,2), semilogx(f, angle(k2), 'b', f, angle(k2), 'g'), grid |
Пример 4
Как уже отмечалось выше, с помощью пространства состояний могут быть описаны не только линейные системы, но и нелинейные, что значительно расширяет класс задач, для которых применим этот метод. В качестве примера рассмотрим амплитудный детектор рис. 10:
Рис. 10 Схема амплитудного детектора
Для простоты, диод будем считать идеальным ключом, то есть он размыкает цепь, когда на нём положительное напряжение, и замыкает, когда отрицательное. В качестве входного сигнала будем использовать отрезок синусоиды. В Simulink нет специального блока типа State-Space для решения нелинейных задач, поэтому придётся написать свою собственную подсистему, реализующую алгоритм метода. Для сравнения результатов найдём сигнал на выходе с помощью библиотеки SimPowerSystem рис. 11.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.