2016-07-12 11 views
0

Хотелось бы узнать, может ли кто-нибудь сказать мне, как реализовать передаточную функцию a1s + a2/(b1s + b2), используя Matlab, что означает, что для цикла в дискретной форме не используется tf ([a1 a2 ], [b1 b2]). Например, если я хочу, чтобы реализовать a1/с Я знаю, что я хотел бы сделать что-то вроде:реализация общей функции передачи с использованием Matlab

value(n)=value(n-1)+a1*fx*Ts; 

где Ts является частота дискретизации и FX является функция, которая должна быть интегрирована. для a3 * с Я хотел бы сделать следующее:

output=value(n)-lastvalue(n); 
    lastvalue(n)=value(n); 

Но мне интересно, как я могу реализовать общие (a1 * S + a2)/(b1 * s + b2)

Благодарности

ответ

0

Во-первых, согласитесь, как вы хотите преобразовать из домена s в домен z (дискретный). Используя билинейное преобразование, замените s на

2/T * (z-1)/(z+1). 

Это билинейная трансформация. Решите уравнение и разделите на самый высокий порядок z. Для z^-n, это предыдущая «n» выборка.

+0

Спасибо, что я знал о билинейной трансформации, но здесь T - частота дискретизации вправо? как вы его выбираете? потому что кажется, что цикл для вычисления значений итеративно должен умножаться на 2/Т каждый раз, и это явно меняет ответ. – justin

+0

И что вы делаете с производным термином, так как оно также зависит от начального условия – justin

 Смежные вопросы

  • Нет связанных вопросов^_^