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

В этом примере показано, как сгенерировать массив моделей 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 Nms

  • J = 0.02 +/-.01 кг m^2/s^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, можно спроектировать контроллер для номинальной модели объекта управления, одновременно визуализируя эффект на других моделях объекта управления как показано ниже.

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

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

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

Спроектируйте контроллер

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

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

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

Экспортируйте проект и подтвердите в модели Simulink

Чтобы экспортировать спроектированный контроллер в рабочее пространство MATLAB, нажмите Export. В диалоговом окне 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 смотрите Систему управления Мультимодели.

bdclose('scdDCMotor')
Для просмотра документации необходимо авторизоваться на сайте