Попытка найти функцию передачи от дискретной системы ниже - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь решить систему ниже в Matlab. Эта система является дискретной системой. Мне нужно преобразовать в систему моделей пространства состояний, чтобы извлечь 4 матрицы. Затем найдите передаточную функцию.

y(k+2) + 4y(k+1) + 5y(k)= u(k+2)+2u(k+1)+u(k). 

Я решил это вручную и нашел четыре матрицы:

A=[0,1:-5,-4]
B=[-2;4]
C=[1,0,0]
D=[1]

Моя проблема заключается в том, что при попытке запустить приведенный ниже код я получил эту ошибку:

Ошибка при использовании ss2tf (строка 26) Матрицы A и C должны иметь одинаковое количество столбцов.

Ошибка в №1 (строка 5)

[N1,D1]=ss2tf(A,B,C,D,1);

Мой код Matlab:

A=[0,1;-5,-4];
B=[-2;4];
C=[1,0,0];
D=[1];
[N1,D1]=ss2tf(A,B,C,D,1);
H=tf(N1,D1)

Я ожидаю получить передаточную функцию

1 Ответ

1 голос
/ 12 апреля 2019

Не забывайте, что вы имеете дело с системой с дискретным временем (добавьте 1 в качестве третьего аргумента к ss2tf). Если вы исправите матрицу C, как уже было отмечено в комментарии, то следующий код сделает то, что вы хотите:

A = [0,1;-5,-4];
B = [-2;4];
C = [1,0];
D = 1;
[N1,D1] = ss2tf(A,B,C,D);
H = tf(N1,D1,1)
H =

  z^2 + 2 z + 1
  -------------
  z^2 + 4 z + 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...