Преобразуйте представление пространства состояний в передаточную функцию
Одномерное дискретное время система состоит из модуля массы, , прикрепленный к стене пружиной модуль упругой константы. Датчик дискретизирует ускорение, , массы при Гц.
Сгенерируйте 50 временных выборок. Определите интервал дискретизации .
Fs = 5; dt = 1/Fs; N = 50; t = dt*(0:N-1);
Генератор может быть описан уравнениями пространства состояний
где - вектор состояния, и являются соответственно положением и скоростью массы и матриц
A = [cos(dt) sin(dt);-sin(dt) cos(dt)]; B = [1-cos(dt);sin(dt)]; C = [-1 0]; D = 1;
Система возбуждается модулем импульсом в положительном направлении. Используйте модель пространства состояний, чтобы вычислить временную эволюцию системы, начиная с полностью нулевого начального состояния.
u = [1 zeros(1,N-1)]; x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end
Постройте график ускорения массы как функции времени.
stem(t,y,'filled') xlabel('t')
Вычислите зависящее от времени ускорение с помощью передаточной функции H (z), чтобы фильтровать вход. Постройте график результата.
[b,a] = ss2tf(A,B,C,D); yt = filter(b,a,u); stem(t,yt,'filled') xlabel('t')
Передаточная функция системы имеет аналитическое выражение:
Используйте выражение для фильтрации входов. Постройте график отклика.
bf = [1 -(1+cos(dt)) cos(dt)]; af = [1 -2*cos(dt) 1]; yf = filter(bf,af,u); stem(t,yf,'filled') xlabel('t')
Результат один и тот же во всех трех случаях.
Идеальная одномерная колебательная система состоит из двух единичных масс, и , ограниченный между двумя стенками. Каждая масса крепится к ближайшей стенке пружиной модуля упругой постоянной. Другая такая пружина соединяет две массы. Выборка датчиков и , ускорения масс, при Гц.
Задайте общее время измерения 16 с. Задайте интервал дискретизации .
Fs = 16; dt = 1/Fs; N = 257; t = dt*(0:N-1);
Система может быть описана моделью пространства состояний
где является вектором состояния и и являются соответственно местоположением и скоростью -я масса. Вектор входа и вектор выхода . Матрицы пространства состояний
матрицы пространства состояний в непрерывном времени
и обозначает тождества матрицу соответствующего размера.
Ac = [0 1 0 0;-2 0 1 0;0 0 0 1;1 0 -2 0]; A = expm(Ac*dt); Bc = [0 0;1 0;0 0;0 1]; B = Ac\(A-eye(4))*Bc; C = [-2 0 1 0;1 0 -2 0]; D = eye(2);
Первая масса, , получает модуль импульс в положительном направлении.
ux = [1 zeros(1,N-1)]; u0 = zeros(1,N); u = [ux;u0];
Используйте модель, чтобы вычислить эволюцию системы во времени, начиная с полностью нулевого начального состояния.
x = [0;0;0;0]; for k = 1:N y(:,k) = C*x + D*u(:,k); x = A*x + B*u(:,k); end
Постройте график ускорений двух масс как функций времени.
stem(t,y','.') xlabel('t') legend('a_1','a_2') title('Mass 1 Excited') grid
Преобразуйте систему в представление передаточной функции. Найдите ответ системы на положительное единичное импульсное возбуждение на первой массе.
[b1,a1] = ss2tf(A,B,C,D,1); y1u1 = filter(b1(1,:),a1,ux); y1u2 = filter(b1(2,:),a1,ux);
Постройте график результата. Передаточная функция дает тот же ответ, что и модель пространства состояний.
stem(t,[y1u1;y1u2]','.') xlabel('t') legend('a_1','a_2') title('Mass 1 Excited') grid
Система устанавливается в исходное строение. Теперь другая масса, , получает модуль импульс в положительном направлении. Вычислите эволюцию системы во времени.
u = [u0;ux]; x = [0;0;0;0]; for k = 1:N y(:,k) = C*x + D*u(:,k); x = A*x + B*u(:,k); end
Постройте график ускорений. Отклики отдельных масс переключаются.
stem(t,y','.') xlabel('t') legend('a_1','a_2') title('Mass 2 Excited') grid
Найдите ответ системы на положительное единичное импульсное возбуждение на второй массе.
[b2,a2] = ss2tf(A,B,C,D,2); y2u1 = filter(b2(1,:),a2,ux); y2u2 = filter(b2(2,:),a2,ux);
Постройте график результата. Передаточная функция дает тот же ответ, что и модель пространства состояний.
stem(t,[y2u1;y2u2]','.') xlabel('t') legend('a_1','a_2') title('Mass 2 Excited') grid
A
- Матрица состоянийМатрица состояний, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то A
n -by - n.
Типы данных: single
| double
B
- Матрица ввода в состояниеМатрица ввода в состояние, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то B
n -by - p.
Типы данных: single
| double
C
- Матрица «состояние-выход»Матрица состояние-выход, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то C
q -by - n.
Типы данных: single
| double
D
- Исходная матрицаИсходная матрица, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то D
q -by - p.
Типы данных: single
| double
ni
- Входной индексВходной индекс, заданный как целочисленный скаляр. Если система имеет p входов, используйте ss2tf
с конечным аргументом ni
= 1, ... , p для вычисления отклика на единичный импульс, приложенный к ni
th-й вход.
Типы данных: single
| double
b
- Коэффициенты числителя передаточных функцийКоэффициенты числителя передаточных функций, возвращенные в виде вектора или матрицы. Если система имеет p входов и q выходов и описывается n переменными состояния, то b
q -by- (n + 1) для каждого входа. Коэффициенты возвращаются в нисходящих степенях s или z.
a
- Коэффициенты знаменателя передаточной функцииКоэффициенты знаменателя передаточной функции, возвращенные как вектор. Если система имеет p входов и q выходов и описывается n переменными состояния, то a
1-by- ( n + 1) для каждого входа. Коэффициенты возвращаются в нисходящих степенях s или z.
Для систем в дискретном времени матрицы пространства состояний связывают вектор x состояний, входную u и выходную y через
Передаточная функция является Z-преобразованием импульсной характеристики системы. Он может быть выражен в терминах матриц пространства состояний как
Для систем в непрерывном времени матрицы пространства состояний связывают вектор x состояний, входную u и выходную y через
Передаточная функция является преобразованием Лапласа импульсной характеристики системы. Он может быть выражен в терминах матриц пространства состояний как
latc2tf
(Набор Signal Processing Toolbox) | sos2tf
(Набор Signal Processing Toolbox) | ss2sos
(Набор Signal Processing Toolbox) | ss2zp
(Набор Signal Processing Toolbox) | tf2ss
(Набор Signal Processing Toolbox) | zp2tf
(Набор Signal Processing Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.