ВУЗ:
Составители:
299
состояний Main будет использоваться целая переменная), а
в определении базового класса (уравнении Е1) по-
прежнему будет использоваться вещественный параметр
K.
В определении класса CSaturation можно обратиться к
параметру
K по имени superK. Такая трактовка замещения
элементов характерна для языков программирования.
Однако, в языке Omola целая переменная
K заменит
вещественный параметр
K и в базовом классе.
Второй путь состоит в переопределении элементов
базового класса. Элемент производного класса с тем же
идентификатором, что и некоторый элемент базового
класса, замещает его в базовом классе не только в
определении производного класса, но и в определении
базового класса. Например, в приведенном примере можно
не трогать карту
состояний, а переопределить формулу Е1
в непрерывном поведении main, заменив ее на другую:
Y =
if Х<Хmin then LowerLimit else Х>Хmax then
UpperLimit else K*X
Почти все пакеты, работающие с гибридными
системами, допускают подобного рода условные
выражения в правых частях дифференциальных уравнений
и формул. Формула другим способом задает ту же
модифицированную карту состояний, и при прогоне
модели переключения ветвей условного выражения будут
интерпретироваться как специальные дискретные события.
Для частного случая гибридной системы, когда состав
уравнений
не меняется, такой способ записи для
пользователя гораздо удобнее.
block class CSaturation extends CGain {
parameter Real UpperLimit = 1;
parameter Real LowerLimit = -UpperLimit;
Real Xmax =
if K>0 then UpperLimit/K else 0;
Real Xmin =
if K>0 then LowerLimit/K else 0;
overrit equation class main {
Страницы
- « первая
- ‹ предыдущая
- …
- 297
- 298
- 299
- 300
- 301
- …
- следующая ›
- последняя »