В
язык VHDL-AMS по сравнению с базовой версией
VHDL введен ряд дополнений, позволяющих использовать VHDL-AMS для многоаспектного моделирования непрерывных процессов.
Концепция
многоаспектного моделирования была сформулирована более двадцати лет тому назад. Она основана на аналогиях компонентных и топологических уравнений, составляющих
математические модели объектов во многих предметных областях на макроуровне. При этом под
макроуровнем моделирования понимается совокупность моделей с сосредоточенными параметрами (т.е. описываемых системами обыкновенных дифференциальных уравнений) и методов их решения. Зависимыми переменными в этих моделях являются
фазовые переменные, которые могут быть двух типов —
переменными типа потенциала или
переменными типа потока. В VHDL-AMS первые из них называются переменными
across quantity, вторые —
through quantity.
Компонентные уравнения выражают связи между
across и
through переменными в отдельных элементах моделируемых объектов, а
топологические уравнения — между однотипными фазовыми переменными разных элементов. Так, в случае электрических систем примерами компонентных уравнений могут быть уравнения закона Ома, а топологических — уравнения законов Кирхгофа. Фазовые переменные, используемые в моделях разных предметных областей (Energy domains), перечислены в табл. 1.
Таблица 1
Физическая система | across quantity | through quantity |
Электрическая (electrical) | Электрическое напряжение (voltage) | Электрический ток (current) |
Механическая поступательная (translational) | Перемещение (displacement) или скорость | Сила (force) |
Механическая вращательная (rotational) | Угол (angle) или угловая скорость | Вращательный момент (torque) |
Гидравлическая (fluidic) | Давление (pressure) | Объемный поток (flow rate) |
Тепловая (thermal) | Температура (temperature) | Тепловой поток (heat flux) |
Введение в язык VHDL-AMS средств аналогового, многоаспектного и
смешанного моделирования потребовало реализации следующих возможностей. Во-первых, это появление средств описания дифференциальных и алгебраических уравнений. При этом подразумевается наличие в интерпретаторе языка VHDL-AMS средств для численного решения уравнений, хотя сами методы решения в стандарте не определяются. Во-вторых, компоненты общей модели могут быть аналоговыми или дискретными, взаимодействие компонентов происходит через порты, а порты могут быть как дискретного, так и аналогового типов. В-третьих, предусматривается синхронизация событий в дискретной части с временными характеристиками процессов в непрерывной части модели. В-четвертых, имеется возможность моделирования не только во временной, но и в частотной областях.
Наряду с такими объектами, как компоненты, сигналы, константы в язык введены непрерывные переменные
quantity, имеющие тип
real. Производная

непрерывной переменной

обозначаются как X'
Dot, а интеграл от переменной

от 0 до текущего момента времени — X'
Integ.
Появляется новый тип операторов для записи уравнений (simultaneous statement), в которых фигурируют переменные quantity. Примером simultaneous statement может служить следующая запись:
x'dot == a*x + b*y;
Эти операторы могут появиться везде, где допускается запись операторов присваивания значений сигналам <=. Порядок записи этих операторов не имеет значения, т.е. они выполняются параллельно.
Указание природы приложения (energy domain) выполняется с помощью ссылки на запись общих для приложения свойств, которая должна быть сделана в специальном пакете (package). На каждое приложение составляется один пакет. В этом пакете, в частности, в конструкции nature вводятся идентификаторы для фазовых переменных типа потенциала и типа потока. Например, в пакете для электрических систем записывается
nature electrical is
voltage across
current through
electrical_ref reference;
voltage есть
переменная типа потенциала, а
current —
переменная типа потока. Последняя строка в этом фрагменте служит для указания физической природы системы. Для тепловой подсистемы идентификаторами для
across,
through и
reference соответственно будут
temperature,
heatflow,
termal_ref и т.п.
Каждому приложению при
многоаспектном моделировании конкретного объекта соответствует своя
эквивалентная схема, представленная в декларациях
entity своими внешними портами. Например, описания внешних портов в некоторой электрогидравлической системе могут выглядеть следующим образом:
entity unit is
port (terminal x1,x2: electrical;
terminal g1,g2,g3: fluidic);
end unit;
Здесь x1, x2 — узлы в электрической подсистеме; g1, g2, g3 — в гидравлической подсистеме.
Входными и/или выходными переменными в моделях, описывающих потоки сигналов, могут быть переменные quantity. Тогда описание портов может быть следующим:
port (quantity input: in real; quantity output: out real);
quantity v across i1, i2 through node_a to node_d;
Эта запись в электрической подсистеме означает, что переменная v есть разность потенциалов между узлами node_a и node_d эквивалентной схемы, а переменные i1 и i2 суть токи в ветвях, инцидентных этим узлам.
Начальные условия для переменных задаются в архитектурных телах с помощью оператора break.
Атрибутами некоторого узла T называют переменные T'Reference и T'Contribution. Переменная T'Reference есть across quantity относительно общего узла (ground). Переменная T'Contribution — сумма переменных through quantity в ветвях, инцидентных узлу T. При этом за положительное направление для T'Reference принято направление от узла T к общему узлу.
Поскольку численное решение является приближенным, то вводится понятие допусковой группы, каждая непрерывная величина и simultaneous statement принадлежат к определенной допусковой группе. Поэтому для переменных quantity наряду с записью их типа (real) обычно указывается допуск.