exponenta event banner

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

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

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

В двигателях постоянного тока, управляемых якорем, приложенное напряжение 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);

Конструктор открытых систем управления

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

controlSystemDesigner(sys)

С помощью конструктора систем управления можно спроектировать контроллер для номинальной модели завода, одновременно визуализируя эффект для других моделей завода, как показано ниже.

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

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

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

Контроллер проекта

С помощью инструментов конструктора систем управления спроектируйте следующий компенсатор для эталонного отслеживания.

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

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

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

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

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

Дополнительные сведения

Дополнительные сведения об использовании функций мультимодели конструктора систем управления см. в разделе Проектирование управления мультимоделями.

bdclose('scdDCMotor')