1

Есть ли у кого-то опыт в решении дифференциальных уравнений в AMPL? Я гугл много, но нет подходящих результатов ...Дифференциальные уравнения/оптимальное управление в AMPL

В Google группы я не нашел простой «ручной» пример, но он не работает ...

Таким образом, этот пример я найденный.

Рассмотрим этой оде:

x' = -ax + u, x(0) = 0. 

, где а = 0,2 является параметром; x = переменная состояния, между 0 и 9; и = входная переменная, в диапазоне от 0 до 5. Вы можете написать в AMPL следующим (с использованием учебника вперед Эйлера):

param N := 10; # no. of integration steps 
param dt := 0.01; # integration step size 
param a := 0.2; 
set kset ordered := 0..N; 
var x{kset}, >= 0, <= 9; 
var u{kset}, >= 0, <= 5; 
minimize obj: 0; 
subject to 
c1{k in 1..N}: (x[k] - x[k-1])/dt = -a*x[k-1] + u[k-1]; 
option solver ipopt; 
solve; 
display x, u; 

Решение дает мне нули для и и х ... Это не удивительно, из-за этой линии

свести к минимуму obj: 0;

Насколько я понял, нам нужно представить проблему как систему алгебраических уравнений, но какая будет функция цели в этом случае ???

Итак, может кто-нибудь дать какие-либо предложения или примеры?

Заранее спасибо.

ответ

1

Я боюсь, что AMPL не предназначен для использования в таких задачах. Как показывает ваш пример, вы можете захватить его, и он может даже решить несколько более простых проблем.

Modelica (Расширение языка Optimica) или аналогичные языки, скорее всего, будут адекватными для ваших целей.

 Смежные вопросы

  • Нет связанных вопросов^_^