ss2tf

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

Описание

пример

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

пример

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

Примеры

свернуть все

Одномерное дискретное время колеблющаяся система состоит из модульной массы, 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')

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

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

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

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

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

Идеальная одномерная колеблющаяся система состоит из двух модульных масс, 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- масса th. Входной вектор 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

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

[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

Система сбрасывается к ее начальной настройке. Теперь другая масса, 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

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

[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

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

свернуть все

Матрица состояния в виде матрицы. Если система имеет входные параметры 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 (n + 1) для каждого входа. Коэффициенты возвращены в убывающих степенях s или z.

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

Больше о

свернуть все

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

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

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

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

    H(z)=C(zIA)1B+D.

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

    x˙=Ax+Buy=Cx+Du.

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

    H(s)=C(sIA)1B+D.

Смотрите также

(Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox) | (Signal Processing Toolbox)

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте