В этом примере показано, как создать массив моделей LTI, которые представляют вариации установки системы управления из модели Simulink. Этот массив моделей используется в конструкторе систем управления для проектирования элементов управления.
В двигателях постоянного тока, управляемых якорем, приложенное напряжение Va управляет угловой скоростью
вала. Упрощенная модель двигателя постоянного тока показана ниже.

Откройте модель Simulink для двигателя постоянного тока.
mdl = 'scdDCMotor';
open_system(mdl)
![]()
Целью контроллера является обеспечение слежения за ступенчатыми изменениями опорной угловой скорости.
В этом примере физические константы для двигателя:
R = 2,0 +/- 10% Ом
L = 0,5 Henrys
Km = 0.1 Постоянная крутящего момента
Kb = 0.1 Постоянная обратного ЭДС
Kf = 0,2 Нмс
J = 0,02 +/- 0,01 кг м ^ 2/с ^ 2
Обратите внимание, что параметры R и J задаются как диапазон значений.
Для проектирования контроллера, который будет работать для всех значений физических параметров, создайте репрезентативный набор установок путем выборки этих значений.
Для параметров R и Jиспользуйте их номинальные, минимальные и максимальные значения.
R = [2,1.8,2.2]; J = [.02,.03,.01];
Чтобы создать массив LTI моделей завода, выполните пакетную линеаризацию моторного завода постоянного тока. Для каждой комбинации значений выборки R и J, линеаризацию модели Simulink. Для этого укажите входную точку линеаризации на выходе блока контроллера и выходную точку линеаризации с размыканием контура на выходе блока нагрузки, как показано в модели.
Получение точек анализа линеаризации, указанных в модели.
io = getlinio(mdl);
Изменение параметров установки R и J.
[R_grid,J_grid] = ndgrid(R,J); params(1).Name = 'R'; params(1).Value = R_grid; params(2).Name = 'J'; params(2).Value = J_grid;
Линеаризация модели для каждой комбинации значений параметров.
sys = linearize(mdl,io,params);
Откройте конструктор систем управления и импортируйте массив моделей растений. с помощью следующей команды.
controlSystemDesigner(sys)
С помощью конструктора систем управления можно спроектировать контроллер для номинальной модели завода, одновременно визуализируя эффект для других моделей завода, как показано ниже.

Редактор корневого локуса отображает корневой локус для номинальной модели и расположения полюсов с замкнутым контуром, связанные с другими моделями растений.
Редактор Bode отображает как номинальный отклик модели, так и отклики других моделей завода.
Ответы на шаги показывают, что контрольное отслеживание не достигнуто ни для одной из моделей завода.
С помощью инструментов конструктора систем управления спроектируйте следующий компенсатор для эталонного отслеживания.
![]()
Полученная конструкция показана ниже. Отклик на шаг с замкнутым контуром показывает, что цель эталонного отслеживания достигается с нулевой погрешностью установившегося состояния для всех моделей, определенных в наборе установок. Однако, если требуется нулевое процентное превышение, не все ответы удовлетворят этому требованию.

Чтобы экспортировать разработанный контроллер в рабочую область MATLAB, щелкните Экспорт (Export). В диалоговом окне «Экспорт модели» выберите «С» и нажмите «Экспорт». Запишите параметры контроллера в модель Simulink.
[Cnum,Cden] = tfdata(C,'v'); hws = get_param(mdl, 'modelworkspace'); assignin(hws,'Cnum',Cnum) assignin(hws,'Cden',Cden)
Дополнительные сведения об использовании функций мультимодели конструктора систем управления см. в разделе Проектирование управления мультимоделями.
bdclose('scdDCMotor')