ss2tf

Преобразуйте представление пространства состояний в передаточную функцию

Описание

пример

[b,a] = ss2tf(A,B,C,D) преобразует представление системы в пространстве состояний в эквивалентную передаточную функцию. ss2tf возвращает передаточную функцию Преобразования Лапласа для систем непрерывного времени и передаточную функцию Z-преобразования для систем дискретного времени.

пример

[b,a] = ss2tf(A,B,C,D,ni) возвращает передаточную функцию, которая возникает, когда niпервый вход системы с несколькими входами возбуждается модулем импульсом.

Примеры

свернуть все

Одномерное дискретное время система состоит из модуля массы, m, прикрепленный к стене пружиной модуль упругой константы. Датчик дискретизирует ускорение, a, массы при Fs=5 Гц.

Сгенерируйте 50 временных выборок. Определите интервал дискретизации Δt=1/Fs.

Fs = 5;
dt = 1/Fs;
N = 50;
t = dt*(0:N-1);

Генератор может быть описан уравнениями пространства состояний

x(k+1)=Ax(k)+Bu(k),y(k)=Cx(k)+Du(k),

где x=(rv)T - вектор состояния, r и v являются соответственно положением и скоростью массы и матриц

A=(cosΔtsinΔt-sinΔtcosΔt),B=(1-cosΔtsinΔt),C=(-10),D=(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')

Figure contains an axes. The axes contains an object of type stem.

Вычислите зависящее от времени ускорение с помощью передаточной функции H (z), чтобы фильтровать вход. Постройте график результата.

[b,a] = ss2tf(A,B,C,D);
yt = filter(b,a,u);
stem(t,yt,'filled')
xlabel('t')

Figure contains an axes. The axes contains an object of type stem.

Передаточная функция системы имеет аналитическое выражение:

H(z)=1-z-1(1+cosΔt)+z-2cosΔt1-2z-1cosΔt+z-2.

Используйте выражение для фильтрации входов. Постройте график отклика.

bf = [1 -(1+cos(dt)) cos(dt)];
af = [1 -2*cos(dt) 1];
yf = filter(bf,af,u);
stem(t,yf,'filled')
xlabel('t')

Figure contains an axes. The axes contains an object of type stem.

Результат один и тот же во всех трех случаях.

Идеальная одномерная колебательная система состоит из двух единичных масс, m1 и m2, ограниченный между двумя стенками. Каждая масса крепится к ближайшей стенке пружиной модуля упругой постоянной. Другая такая пружина соединяет две массы. Выборка датчиков a1 и a2, ускорения масс, при Fs=16 Гц.

Задайте общее время измерения 16 с. Задайте интервал дискретизации Δt=1/Fs.

Fs = 16;
dt = 1/Fs;
N = 257;
t = dt*(0:N-1);

Система может быть описана моделью пространства состояний

x(n+1)=Ax(n)+Bu(n),y(n)=Cx(n)+Du(n),

где x=(r1v1r2v2)T является вектором состояния и ri и vi являются соответственно местоположением и скоростью i-я масса. Вектор входа u=(u1u2)T и вектор выхода y=(a1a2)T. Матрицы пространства состояний

A=exp(AcΔt),B=Ac-1(A-I)Bc,C=(-201010-20),D=I,

матрицы пространства состояний в непрерывном времени

Ac=(0100-2010000110-20),Bc=(00100001),

и I обозначает тождества матрицу соответствующего размера.

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);

Первая масса, m1, получает модуль импульс в положительном направлении.

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

Figure contains an axes. The axes with title Mass 1 Excited contains 2 objects of type stem. These objects represent a_1, a_2.

Преобразуйте систему в представление передаточной функции. Найдите ответ системы на положительное единичное импульсное возбуждение на первой массе.

[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

Figure contains an axes. The axes with title Mass 1 Excited contains 2 objects of type stem. These objects represent a_1, a_2.

Система устанавливается в исходное строение. Теперь другая масса, m2, получает модуль импульс в положительном направлении. Вычислите эволюцию системы во времени.

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

Figure contains an axes. The axes with title Mass 2 Excited contains 2 objects of type stem. These objects represent a_1, a_2.

Найдите ответ системы на положительное единичное импульсное возбуждение на второй массе.

[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

Figure contains an axes. The axes with title Mass 2 Excited contains 2 objects of type stem. These objects represent a_1, a_2.

Входные параметры

свернуть все

Матрица состояний, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то A n -by - n.

Типы данных: single | double

Матрица ввода в состояние, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то B n -by - p.

Типы данных: single | double

Матрица состояние-выход, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то C q -by - n.

Типы данных: single | double

Исходная матрица, заданная как матрица. Если система имеет p входов и q выходов и описывается n переменными состояния, то D q -by - p.

Типы данных: single | double

Входной индекс, заданный как целочисленный скаляр. Если система имеет p входов, используйте ss2tf с конечным аргументом ni = 1, ... , p для вычисления отклика на единичный импульс, приложенный к nith-й вход.

Типы данных: single | double

Выходные аргументы

свернуть все

Коэффициенты числителя передаточных функций, возвращенные в виде вектора или матрицы. Если система имеет p входов и q выходов и описывается n переменными состояния, то b q -by-  (n + 1) для каждого входа. Коэффициенты возвращаются в нисходящих степенях s или z.

Коэффициенты знаменателя передаточной функции, возвращенные как вектор. Если система имеет p входов и q выходов и описывается n переменными состояния, то a 1-by- ( n + 1) для каждого входа. Коэффициенты возвращаются в нисходящих степенях s или z.

Подробнее о

свернуть все

Передаточная функция

  • Для систем в дискретном времени матрицы пространства состояний связывают вектор x состояний, входную u и выходную y через

    x(k+1)=Ax(k)+Bu(k)y(k)=Cx(k)+Du(k).

    Передаточная функция является Z-преобразованием импульсной характеристики системы. Он может быть выражен в терминах матриц пространства состояний как

    H(z)= C(zЯA)1B+D.

  • Для систем в непрерывном времени матрицы пространства состояний связывают вектор x состояний, входную u и выходную y через

    x˙=Ax+Buy=Cx+Du.

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

    H(s)=C(sЯA)1B+D.

См. также

(Набор Signal Processing Toolbox) | (Набор Signal Processing Toolbox) | (Набор Signal Processing Toolbox) | (Набор Signal Processing Toolbox) | (Набор Signal Processing Toolbox) | (Набор Signal Processing Toolbox)

Представлено до R2006a