Jump to content

ПРОПТ

ПРОПТ
Разработчик(и) Томлаб Оптимизация Инк.
Стабильная версия
7,8 / 16 декабря 2011 г. ( 2011-12-16 )
Операционная система ТОМЛАБ — Поддержка ОС
Тип Технические вычисления
Лицензия Собственный
Веб-сайт Страница продукта ПРОПТ

ПРОПТ [1] Программное обеспечение MATLAB Optimal Control — это платформа нового поколения для решения задач прикладного оптимального управления (с ОДУ или ДАУ формулировкой ) и оценки параметров .

Платформа была разработана победителем конкурса программирования MATLAB Пером Рутквистом в 2008 году. Самая последняя версия поддерживает двоичные и целочисленные переменные, а также модуль автоматического масштабирования.

Описание

[ редактировать ]

PROPT — это комбинированный механизм моделирования , компиляции и решателя, созданный на основе класса моделирования TomSym и предназначенный для генерации очень сложных задач оптимального управления. PROPT использует псевдоспектральный метод коллокации (с точками Гаусса или Чебышева) для решения задач оптимального управления. Это означает, что решение принимает форму Polynomial , DAE и пути и этот полином удовлетворяет ограничениям в точках коллокации.

В целом PROPT имеет следующие основные функции:

  • Вычисление постоянных матриц, используемых для дифференцирования и интегрирования полиномов, используемых для аппроксимации решения задачи оптимизации траектории .
  • Преобразование источника для преобразования введенных пользователем выражений в код MATLAB для функции стоимости. и функция ограничения которые передаются решателю нелинейного программирования в TOMLAB . Пакет преобразования исходного кода TomSym автоматически генерирует производные первого и второго порядка.
  • Функционал для построения и расчета разнообразной информации для решения задачи.
  • Автоматическое обнаружение следующего:
    • Линейная и квадратичная цель.
    • Простые границы, линейные и нелинейные ограничения.
    • Неоптимизированные выражения.
  • Интегрированная поддержка негладких [2] (гибридные) задачи оптимального управления.
  • Модуль для автоматического масштабирования сложных пространственных задач.
  • Поддержка двоичных и целочисленных переменных, элементов управления или состояний.

Моделирование

[ редактировать ]

Система PROPT использует механизм преобразования символических источников TomSym для моделирования задач оптимального управления. Можно определить независимые переменные, зависимые функции, скаляры и постоянные параметры:

 toms tf
 toms t
 p = tomPhase('p', t, 0, tf, 30);
 x0 = {tf == 20};
 cbox = {10 <= tf <= 40};

 toms z1
 cbox = {cbox; 0 <= z1 <= 500};
 x0 = {x0; z1 == 0};

 ki0 = [1e3; 1e7; 10; 1e-3];

Состояния и элементы управления

[ редактировать ]

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

 tomStates x1
 x0 = {icollocate({x1 == 0})};

 tomControls u1
 cbox = {-2 <= collocate(u1) <= 1};
 x0 = {x0; collocate(u1 == -0.01)};

Границы, пути, события и интегральные ограничения

[ редактировать ]

Ниже показаны различные граничные, траекторные, событийные и интегральные ограничения:

 cbnd = initial(x1 == 1);       % Starting point for x1
 cbnd = final(x1 == 1);         % End point for x1
 cbnd = final(x2 == 2);         % End point for x2
 pathc = collocate(x3 >= 0.5);  % Path constraint for x3
 intc  = {integrate(x2) == 1};  % Integral constraint for x2
 cbnd = final(x3 >= 0.5);       % Final event constraint for x3
 cbnd = initial(x1 <= 2.0);     % Initial event constraint x1

Пример однофазного оптимального управления

[ редактировать ]

Van der Pol Oscillator [3]

Свернуть:

С учетом:

Для решения проблемы с PROPT можно использовать следующий код (с 60 точками коллокации):

toms t
p = tomPhase('p', t, 0, 5, 60);
setPhase(p);

tomStates x1 x2 x3
tomControls u

% Initial guess
x0 = {icollocate({x1 == 0; x2 == 1; x3 == 0})
    collocate(u == -0.01)};

% Box constraints
cbox = {-10  <= icollocate(x1) <= 10
    -10  <= icollocate(x2) <= 10
    -10  <= icollocate(x3) <= 10
    -0.3 <= collocate(u)   <= 1};

% Boundary constraints
cbnd = initial({x1 == 0; x2 == 1; x3 == 0});

% ODEs and path constraints
ceq = collocate({dot(x1) == (1-x2.^2).*x1-x2+u
    dot(x2) == x1; dot(x3) == x1.^2+x2.^2+u.^2});

% Objective
objective = final(x3);

% Solve the problem
options = struct;
options.name = 'Van Der Pol';
solution = ezsolve(objective, {cbox, cbnd, ceq}, x0, options);

Пример многофазного оптимального управления

[ редактировать ]

Одномерная ракета [4] со свободным временем окончания и неопределенным фазовым сдвигом

Свернуть:

С учетом:

Проблема решается с помощью PROPT путем создания двух фаз и их подключения:

toms t
toms tCut tp2
p1 = tomPhase('p1', t, 0, tCut, 20);
p2 = tomPhase('p2', t, tCut, tp2, 20);

tf = tCut+tp2;

x1p1 = tomState(p1,'x1p1');
x2p1 = tomState(p1,'x2p1');
x1p2 = tomState(p2,'x1p2');
x2p2 = tomState(p2,'x2p2');

% Initial guess
x0 = {tCut==10
    tf==15
    icollocate(p1,{x1p1 == 50*tCut/10;x2p1 == 0;})
    icollocate(p2,{x1p2 == 50+50*t/100;x2p2 == 0;})};

% Box constraints
cbox = {
    1  <= tCut <= tf-0.00001
    tf <= 100
    0  <= icollocate(p1,x1p1)
    0  <= icollocate(p1,x2p1)
    0  <= icollocate(p2,x1p2)
    0  <= icollocate(p2,x2p2)};

% Boundary constraints
cbnd = {initial(p1,{x1p1 == 0;x2p1 == 0;})
    final(p2,x1p2 == 100)};

% ODEs and path constraints
a = 2; g = 1;
ceq = {collocate(p1,{
    dot(p1,x1p1) == x2p1
    dot(p1,x2p1) == a-g})
    collocate(p2,{
    dot(p2,x1p2) == x2p2
    dot(p2,x2p2) == -g})};

% Objective
objective = tCut;

% Link phase
link = {final(p1,x1p1) == initial(p2,x1p2)
    final(p1,x2p1) == initial(p2,x2p2)};

%% Solve the problem
options = struct;
options.name = 'One Dim Rocket';
constr = {cbox, cbnd, ceq, link};
solution = ezsolve(objective, constr, x0, options);

Пример оценки параметров

[ редактировать ]

Проблема оценки параметров [5]

Свернуть:

С учетом:

В приведенном ниже коде проблема решена с помощью мелкой сетки (10 точек коллокации). Это решение впоследствии дорабатывается с использованием 40 точек коллокации:

toms t p1 p2
x1meas = [0.264;0.594;0.801;0.959];
tmeas  = [1;2;3;5];

% Box constraints
cbox = {-1.5 <= p1 <= 1.5
    -1.5 <= p2 <= 1.5};

%% Solve the problem, using a successively larger number collocation points
for n=[10 40]
    p = tomPhase('p', t, 0, 6, n);
    setPhase(p);
    tomStates x1 x2

    % Initial guess
    if n == 10
        x0 = {p1 == 0; p2 == 0};
    else
        x0 = {p1 == p1opt; p2 == p2opt
            icollocate({x1 == x1opt; x2 == x2opt})};
    end

    % Boundary constraints
    cbnd = initial({x1 == p1; x2 == p2});

    % ODEs and path constraints
    x1err = sum((atPoints(tmeas,x1) - x1meas).^2);
    ceq = collocate({dot(x1) == x2; dot(x2) == 1-2*x2-x1});

    % Objective
    objective = x1err;

    %% Solve the problem
    options = struct;
    options.name   = 'Parameter Estimation';
    options.solver = 'snopt';
    solution = ezsolve(objective, {cbox, cbnd, ceq}, x0, options);

    % Optimal x, p for starting point
    x1opt = subs(x1, solution);
    x2opt = subs(x2, solution);
    p1opt = subs(p1, solution);
    p2opt = subs(p2, solution);
end

Поддерживаются задачи оптимального управления

[ редактировать ]
  1. ^ Рутквист, Пер; М.М. Эдвалл (июнь 2008 г.). PROPT — Программное обеспечение оптимального управления Matlab (PDF) . Пулман, Вашингтон: Tomlab Optimization Inc.
  2. ^ Банга, младший; Бальса-Канто, Э.; Моулс, CG; Алонсо, А.А. (2003). «Динамическая оптимизация биопроцессов: эффективные и надежные численные стратегии». Журнал биотехнологии. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  3. ^ «Осциллятор Ван дер Поля — решение Matlab», домашняя страница PROPT, июнь 2008 г.
  4. ^ «Запуск одномерной ракеты (2 свободного времени)», домашняя страница PROPT , июнь 2008 г.
  5. ^ «Оценка динамических параметров Matlab с помощью PROPT», домашняя страница PROPT , июнь 2008 г.
  6. ^ Беттс, Дж. (2007). «SOCS Версия 6.5.0». КОМПАНИЯ БОИНГ. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  7. ^ Лян, Дж.; Мэн, М.; Чен, Ю.; Фуллмер, Р. (2003). «Решение сложных задач оптимального управления с помощью сетевого сервера оптимизации (NEOS)». Инженерный факультет Университета штата Юта, США, Китайский университет Гонконга, Китай. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  8. ^ Карраско, EF; Банга, младший (сентябрь 1998 г.). «ГИБРИДНЫЙ МЕТОД ОПТИМАЛЬНОГО УПРАВЛЕНИЯ ХИМИЧЕСКИМИ ПРОЦЕССАМИ». Уэльский университет, Суонси, Великобритания: Международная конференция UKACC по КОНТРОЛЮ 98. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  9. ^ Василиадис, В.С.; Банга, младший; Бальса-Канто, Э. (1999). «Чувствительность второго порядка общих динамических систем применительно к задачам оптимального управления». Химико-техническая наука . 54 (17): 3851–3860. Бибкод : 1999ЧЭнС..54.3851В . дои : 10.1016/S0009-2509(98)00432-1 .
  10. ^ Луус, Р. (2002). Итеративное динамическое программирование . Чепмен и Холл/CRC.
  11. ^ Фабьен, Британская Колумбия (1998). «Java-приложение для решения задач оптимального управления». Стивенс Уэй, а/я 352600 Сиэтл, Вашингтон, 98195, США: Машиностроение, Вашингтонский университет. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь ) CS1 maint: расположение ( ссылка )
  12. ^ Дженнингс, Л.С.; Фишер, Мэн (2002). «MISER3: Руководство пользователя Optimal Control Toolbox, бета-версия Matlab 2.0». Недлендс, Вашингтон, 6907, Австралия: факультет математики Университета Западной Австралии. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь ) CS1 maint: расположение ( ссылка )
  13. ^ Банга, младший; Сейдер, В.Д. (1996). Флудас, Калифорния; Пардалос, премьер-министр (ред.). Глобальная оптимизация химических процессов с использованием стохастических алгоритмов - современное состояние глобальной оптимизации: вычислительные методы и приложения . Дордрехт, Нидерланды: Kluwer Academic Publishers. стр. 563–583. ISBN  0-7923-3838-3 .
  14. ^ Долан, Эд; Подробнее, Джей-Джей (январь 2001 г.). «Бенчмаркинг программного обеспечения для оптимизации с помощью COPS». 9700 South Cass Avenue, Аргонн, Иллинойс 60439: АРГОННСКАЯ НАЦИОНАЛЬНАЯ ЛАБОРАТОРИЯ. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь ) CS1 maint: расположение ( ссылка )
[ редактировать ]
  • ТОМЛАБ - Разработчик и дистрибьютор программного обеспечения.
  • TomSym — механизм преобразования исходного кода, используемый в программном обеспечении.
  • ПРОПТ - Домашняя страница ПРОПТ.
  • SNOPT — решатель по умолчанию, используемый в PROPT.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 812c1c6ba9cee38c2dda0dd677692aee__1722747060
URL1:https://arc.ask3.ru/arc/aa/81/ee/812c1c6ba9cee38c2dda0dd677692aee.html
Заголовок, (Title) документа по адресу, URL1:
PROPT - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)