|
|
Система поддержки многометодных процедур оптимального управления
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Помощь : описание моделейназвание | паспорт | переменные | функции | ограниченияОпределение названияОсновополагающая операция при создании модели. Название модели (в дальнейшем просто модель) вбирает в себя все свойства описываемого объекта. Доступные операции: создать, удалить, переименовать (редактировать).
Заполнение паспортаВторой шаг при создании модели. Параметры паспорта могут меняться в зависимости от глубины проработки данного механизма, однако один из основных параметров, которые требуется указывать при создании модели -- ее принадлежность к классу конечномерных или функциональных задач. Обязательные для заполнения поля паспорта отмечены звездочкой (*). Данные паспорта используются при настройке алгоритмов и создании вычислений. Доступные операции: заполнить, изменить.
Создание переменныхДля каждой модели может быть указано произвольное количество переменных трех возможных типов: Скаляр, Вектор, Матрица. При этом каждая переменная может быть задана как изменяющаяся по времени, так и постоянная. Длительность переменной по времени определяет значение параметра t (время). Указанный параметр доступен для переменных лишь в случае, если в паспорте модели указана ее принадлежность к функциональным задачам. Формат заполнения структур данных:
Доступные операции: создать, удалить, редактировать, тестировать.
Создание функций
Определение функций происходит в два этапа: на первом этапе задается название функции и ее описание, на втором -- тело функции.
В системе существует два зарезервированных имени функции, которые создаются автоматически и не могут быть удалены, это: main(t,x,u) и functional(x).
x(t+1) = main(t,x,u) Функция functional(x) возвращает число, соответсвующее значению функционала. functional есть конечная улучшаемая функция. Возможно описание любых других функций и использование их теле в указанных.
Функции задаются на языке JavaScript. При описании тела функции можно использовать ранее определенные для данной модели переменные и функции.
В качестве результата своей работы функция должна возвращать значение при помощи оператора return.
var t = main.arguments[0]; var x = main.arguments[1]; var u = main.arguments[2]; Доступные операции: создать, удалить, редактировать, тестировать.
Описание используемых структур данных:
///////////// CLASS VECTOR ////////////////////////////////////////////
class Vector
{
Vector(size, data_string);
// поля///////////
length // - размерность вектора
type // - тип ("вектор")
// методы/////////
String toString() // - перевод в строку
Vector roundVector(Number) // - округление до указанной точности
String toScript() // - преобразование в строку типа
// "Vector(size, data_string)"
Vector copy() // - возвращает копию вектора
Vector put(place, Number) // - помещает в указанную коорд. значение
Number get(place) // - получает из указанной коорд. значение
Vector plus(Vector| Number, place)
// - складывает данный вектор с вектором
// или числом, находящимся по указанной
// координате place
Vector minus(Vector | Number, place)
// - вычитает из данного вектора вектор
// или число, находящееся по указанной
// координате place
Vector mult(Vector | Number)// - умножает данный вектор на переданный
// вектор или число
}
///////////// CLASS TIMEVECTOR ////////////////////////////////////////
class TimeVector
{
TimeVector(size, time, data_string);
// поля///////////
length // - длина массива векторов по времени
xdim // - размерность вектора в массиве
type // - тип ("временной вектор")
// методы/////////
String toString() // - перевод в строку
TimeVector roundVector(Number)
// - округление до указанной точности
String toScript() // - преобразование в строку типа
// "TimeVector(size, time, data_string)"
TimeVector copy() // - возвращает копию временного вектора
TimeVector put(place, Vector)
// - помещает в указанный адрес
// передаваемый вектор
Vector get(place) // - получает из указанного адреса вектор
TimeVector plus(Vector| TimeVector)
// - складывает данный массив векторов с
// переданным вектором или с массивом
// векторов поэлементно
}
///////////// CLASS MATRIX ///////////////////////////////////////////
class Matrix
{
Matrix(col, row, data_string);
// поля///////////
col // - количество строк
row // - количество столбцов
type // - тип ("матрица")
// методы/////////
String toString() // - перевод в строку
~Matrix roundMatrix(Number) // - округление до указанной точности
String toScript() // - преобразование в строку типа
// "Matrix(col, row, data_string)"
Matrix copy() // - возвращает копию матрицы
Matrix put(col, row, Number)// - помещает в указанные коорд. значение
Number | Vector get(col, row)
// - получает из указанной коорд. число,
// если row указано и вектор, если указано
~Matrix plus(Matrix) // - складывает данную матрицу с переданной
~Matrix minus(Matrix) // - вычитает из данной матрицы переданную
~Matrix mult(Vector | Matrix | Number)
// - умножает данную матрицу и матрицу,
// вектор или число
}
// ~ - метод не реализован
Задание ограниченийФункциональность не реализована. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||