tf2ss

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

Синтаксис

Описание

пример

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

Примеры

свернуть все

Считайте систему описанной передаточной функцией

H(s)=[2s+3s2+2s+1]s2+0.4s+1.

Преобразуйте его в форму пространства состояний с помощью tf2ss.

b = [0 2 3; 1 2 1];
a = [1 0.4 1];
[A,B,C,D] = tf2ss(b,a)
A = 2×2

   -0.4000   -1.0000
    1.0000         0

B = 2×1

     1
     0

C = 2×2

    2.0000    3.0000
    1.6000         0

D = 2×1

     0
     1

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

Сгенерируйте в 50 раз выборки. Задайте интервал выборки Δt=1/Fs.

Fs = 5;
dt = 1/Fs;
N = 50;
t = dt*(0:N-1);
u = [1 zeros(1,N-1)];

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

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,'o')
xlabel('t')

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

Найдите представление пространства состояний системы. Вычислите эволюцию времени, начинающую со все-нулевого начального состояния. Сравните его с предсказанием передаточной функции.

[A,B,C,D] = tf2ss(bf,af);

x = [0;0];
for k = 1:N
    y(k) = C*x + D*u(k);
    x = A*x + B*u(k);
end

hold on
stem(t,y,'*')
hold off
legend('tf','ss')

Figure contains an axes. The axes contains 2 objects of type stem. These objects represent tf, ss.

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

свернуть все

Коэффициенты числителя передаточной функции в виде вектора или матрицы. Если b матрица, затем каждая строка b соответствует выходу системы.

  • Для систем дискретного времени, b содержит коэффициенты в убывающих степенях z.

  • Для систем непрерывного времени, b содержит коэффициенты в убывающих степенях s.

Для систем дискретного времени, b должен иметь много столбцов, равных длине a. Если числа отличаются, заставьте их равняться путем дополнения нулей. Можно использовать функцию eqtflength выполнять это.

Коэффициенты знаменателя передаточной функции в виде вектора.

  • Для систем дискретного времени, a содержит коэффициенты в убывающих степенях z.

  • Для систем непрерывного времени, a содержит коэффициенты в убывающих степенях s.

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

свернуть все

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

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

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

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

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

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

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

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

Больше о

свернуть все

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

tf2ss преобразует параметры представления передаточной функции данной системы к тем из эквивалентного представления пространства состояний.

  • Для систем дискретного времени матрицы пространства состояний связывают вектор состояния 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+Bu,y=Cx+Du.

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

    H(s)=B(s)A(s)=b1sn1++bn1s+bna1sm1++am1s+am=C(sIA)1B+D.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

| | | | |

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