Неверная настройка для параметра «Усиление» - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь создать простой контроллер, но продолжаю получать сообщение об ошибке для блока усиления, в котором говорится, что существует неопределенная переменная 'u'.Я плохо понимаю Simulink, и сейчас я просто пытаюсь повторить старую домашнюю задачу.Приведенный здесь код был представлен в качестве решения, но я все еще получаю сообщение об ошибке, когда пытаюсь его запустить.Есть какие-то идеи относительно того, что может происходить?

I= 10; Wl= 5; k= 2; J= 1; 
%set initial conditions
thetaIC= 0; phiIC= 0; x0= zeros(4,1); 
%fix theta= 0, check output
[xe, ue]= trim('Ex3_System',x0,0,x0,1)  
[A,B,~,~]= linmod('Ex3_System', xe, ue) 
%choose your desired poles 
p= linspace(-1.2,-1.5,4) 
%recall the minus sign
K= -acker(A,B,p) 
%perturb initial condition 
thetaIC= deg2rad(5); 
sim('Ex3_Controller');

enter image description here enter image description here

Неверная настройка в 'Ex3_Controller / Gain 'для параметра' Gain '.Причина: Ошибка при использовании hw12 (строка 57) Ошибка при оценке параметра «Gain» в «Ex3_Controller / Gain» Ошибка при использовании hw12 (строка 57) Неопределенная функция или переменная «u».Ошибка при использовании hw12 (строка 57). Переменная 'u' не существует.Предлагаемые действия: • Загрузить файл в «Базовое рабочее пространство».- Исправлено • Создать новую переменную.- Исправление

Обновление: после удаления члена u из блока gain я получил другую ошибку:

Ошибка при использовании hw12 (строка 57) Ошибкав ширину порта или размеры.Выходной порт 1 для Ex3_Controller / Gain - это одномерный вектор с 4 элементами.Ошибка при использовании hw12 (строка 57) Ошибка в ширине или размерах порта.Входной порт 1 'Ex3_Controller / Model1' является одномерным вектором с 1 элементом.

1 Ответ

0 голосов
/ 28 ноября 2018

Блок Gain принимает значение входного сигнала и умножает его на значение усиления.В вашем случае коэффициент усиления равен K, и это все, что вам нужно поместить в блок усиления (т. Е. Удалить *u, Simulink обрабатывает это для вас.)

Как только это будет сделано, ошибка измерениявы получаете это потому, что ваш контроллер требует u, чтобы быть скаляром, но вы подаете в него 4 элемента вектора.Вам нужно изменить соответствующий параметр блока Gain, чтобы он умножал матрицу, беря матрицу 4 на 1 K и (матрицу) умножая ее на сигнал 4 элемента "out", чтобы получить скаляр.

...