Этот пример показывает, как получить ответ с обратной связью обратной связи MIMO тремя различными способами.
В этом примере вы получаете ответ от Azref
до Az
обратной связи MIMO следующей блок-схемы.
Можно вычислить ответ с обратной связью с помощью одного из следующих трех подходов:
Основанное на имени соединение с connect
Основанное на имени соединение с feedback
Основанное на индексе соединение с feedback
Можно использовать, какой бы ни из этих подходов является самым удобным для приложения.
Загрузите объект Aerodyn
и контроллер Autopilot
в рабочую область MATLAB®. Эти модели хранятся в файле данных MIMOfeedback.mat
.
load(fullfile(matlabroot,'examples','control','MIMOfeedback.mat'))
Aerodyn
является моделью (ss
) пространства состояний с 7 выводами, с 4 входами. Autopilot
является моделью ss
с 1 выводом, с 5 входами. Вводы и выводы обоих имен моделей появляются как показано в блок-схеме.
Вычислите ответ с обратной связью от Azref
до Az
с помощью connect
.
T1 = connect(Autopilot,Aerodyn,'Azref','Az');
Warning: The following block inputs are not used: Rho,a,Thrust.
Warning: The following block outputs are not used: Xe,Ze,Altitude.
Функция connect
комбинирует модели путем присоединения вводов и выводов, которые имеют соответствие с именами. Последние два аргумента к connect
задают сигналы ввода и вывода получившейся модели. Поэтому T1
является моделью в пространстве состояний с входом Azref
и выводом Az
. Функция connect
игнорирует другие вводы и выводы в Autopilot
и Aerodyn
.
Вычислите ответ с обратной связью от Azref
до Az
с помощью основанного на имени соединения с командой feedback
. Используйте имена входа и выхода модели, чтобы задать соединения между Aerodyn
и Autopilot
.
Когда вы используете функцию feedback
, думаете о системе с обратной связью как о соединении обратной связи между контроллером объекта разомкнутого цикла комбинация L
и диагональным элементом обратной связи усиления единицы K
. Следующая блок-схема показывает это соединение.
L = series(Autopilot,Aerodyn,'Fin'); FeedbackChannels = {'Alpha','Mach','Az','q'}; K = ss(eye(4),'InputName',FeedbackChannels,... 'OutputName',FeedbackChannels); T2 = feedback(L,K,'name',+1);
Модель T2
с обратной связью представляет соединение позитивных откликов L
и K
. Опция 'name'
заставляет feedback
соединять L
и K
путем соответствия с их именами ввода и вывода.
T2
является моделью в пространстве состояний с 7 выводами, с 5 входами. Ответом с обратной связью от Azref
до Az
является T2('Az','Azref')
.
Вычислите ответ с обратной связью от Azref
до Az
с помощью feedback
, с помощью индексов, чтобы задать соединения между Aerodyn
и Autopilot
.
L = series(Autopilot,Aerodyn,1,4); K = ss(eye(4)); T3 = feedback(L,K,[1 2 3 4],[4 3 6 5],+1);
[1 2 3 4]
векторов и [4 3 6 5]
задают, какие вводы и выводы, соответственно, завершают соединение обратной связи. Например, использование feedback
выводит 4 и вводит 1 из L
, чтобы создать первое соединение обратной связи. Функциональное использование выводит 3 и вводит 2, чтобы создать второе соединение и так далее.
T3
является моделью в пространстве состояний с 7 выводами, с 5 входами. Ответом с обратной связью от Azref
до Az
является T3(6,5)
.
Сравните переходной процесс от Azref
до Az
, чтобы подтвердить, что три подхода приводят к тем же результатам.
step(T1,T2('Az','Azref'),T3(6,5),2)