|
Система поддержки многометодных процедур оптимального управления
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Помощь : описание моделейназвание | паспорт | переменные | функции | ограниченияОпределение названияОсновополагающая операция при создании модели. Название модели (в дальнейшем просто модель) вбирает в себя все свойства описываемого объекта. Доступные операции: создать, удалить, переименовать (редактировать).
Заполнение паспортаВторой шаг при создании модели. Параметры паспорта могут меняться в зависимости от глубины проработки данного механизма, однако один из основных параметров, которые требуется указывать при создании модели -- ее принадлежность к классу конечномерных или функциональных задач. Обязательные для заполнения поля паспорта отмечены звездочкой (*). Данные паспорта используются при настройке алгоритмов и создании вычислений. Доступные операции: заполнить, изменить.
Создание переменныхДля каждой модели может быть указано произвольное количество переменных трех возможных типов: Скаляр, Вектор, Матрица. При этом каждая переменная может быть задана как изменяющаяся по времени, так и постоянная. Длительность переменной по времени определяет значение параметра 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) // - умножает данную матрицу и матрицу, // вектор или число } // ~ - метод не реализован Задание ограниченийФункциональность не реализована. |