Отслеживание уставки двигателя постоянного тока с изменениями параметра

В этом примере показано, как сгенерировать массив моделей LTI, которые представляют изменения объекта системы управления из модели Simulink. Этот массив моделей используется в Control System Designer для системы управления.

Модель электродвигателя постоянного тока

В управляемых якорем двигателях постоянного тока приложенное напряжение Va управляет скоростью вращения$\omega$ вала. Упрощенная модель двигателя постоянного тока показана ниже.

Откройте модель 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);

Откройте Control System Designer

Откройте Control System Designer и импортируйте массив моделей объекта управления. с помощью следующей команды.

controlSystemDesigner(sys)

Используя Control System Designer, можно спроектировать контроллер для номинальной модели объекта управления, одновременно визуализируя эффект на других моделях объекта управления, как показано ниже.

Корневой годограф отображает корневой годограф для номинальной модели и местоположения полюса с обратной связью, сопоставленные с другими моделями объекта управления.

Редактор Bode отображает и номинальный ответ модели, и отклики других моделей объекта управления.

Эти переходные характеристики показывают, что отслеживание уставки не достигается ни для одного из моделей объекта управления.

Проект контроллера

Используя инструменты Control System Designer, спроектируйте следующий компенсатор для отслеживания уставки.

$$ C(s) = 1.19 \frac{(s+2.1)}{s} $$

Получившийся проект показан ниже. Замкнутая переходная характеристика показывает, что цель отслеживания уставки достигается с нулем установившейся ошибкой для всех моделей, определенных в наборе объектов. Однако, если требуется нулевой процент перерегулирования, не все ответы удовлетворяют этому требованию.

Экспорт проекта и валидация в модели Simulink

Чтобы экспортировать разработанный контроллер в рабочее пространство MATLAB, нажмите кнопку Экспорт. В диалоговом окне Экспорт модели (Export Model) выберите C и нажмите кнопку Экспорт (Export). Запишите параметры контроллера в модель Simulink.

[Cnum,Cden] = tfdata(C,'v');
hws = get_param(mdl, 'modelworkspace');
assignin(hws,'Cnum',Cnum)
assignin(hws,'Cden',Cden)

Дополнительная информация

Для получения дополнительной информации об использовании мультимодельных функций Control System Designer, смотрите Multimodel Control Design.

bdclose('scdDCMotor')