Предположим, что нам зачем-то понадобилась информация о значениях линейной скорости маятника и полном пройденном пути. Если это делать непосредственно в описании маятника, то понадобятся всего лишь дополнительные уравнения
, где - линейная скорость, - полный путь.
Однако, может оказаться, что такой определитель скорости и пути полезен не только для маятников, а для любых движущихся в плоскости объектов. Поэтому мы создадим новый класс «ИзмерительVS», функционирование которого определяется системой уравнений
, где - текущие координаты измеряемого объекта, - функция дифференцирования аргумента. Таким образом, новый блок также является чисто непрерывным.
Однако, он не может быть изолированной системой, точно так же, как и измеряемый объект – текущие координаты этого объекта как-то должны передаваться на блок измерения. Поэтому переменные и в блок «ИзмерительVS», и в блоке «Маятник» должны быть объявлены как внешние и между ними должны быть созданы связи. В данном случае направленность связей не вызывает сомнения: переменные должны быть объявлены как выходы в блоке «Маятник» (Рис 16а) и как входы в блоке «ИзмерительVS» (Рис 16б). Моделируемая система включает в себя по одному экземпляру того и другого блоков, соединенные двумя связями (Рис 16в).
|
|
а) б) в)
Рис 16
Временная диаграмма для скоростей показана на Рис 17.
Рис 17
Каким же образом функционирует компонентная модель? Блоки функционируют параллельно в модельном времени. Это означает, что их главные карты состояний выполняются как параллельные дискретные процессы, а текущие непрерывные поведения – системы уравнений – объединяются в одну глобальную систему уравнений с учетом связей, которые рассматриваются как дополнительные уравнения. В данном случае глобальная система уравнений получается простым механическим сложением системы уравнений движения маятника и системы уравнений измерителя, к которым добавляются два уравнения связей:
а) б)
Рис 18
Следует отметить, что функциональные связи – это всего лишь удобный и наглядный способ записи уравнений взаимодействия блоков. Вместо схемы на Рис 16в можно создать блок-контейнер класса «Измерительная_система» (Рис 18а), внутрь него поместить как локальные блоки маятник и измеритель безо всяких связей (Рис 18б), а в качестве непрерывного поведения блока-контейнера поместить те же уравнения связи
Это возможно, поскольку внешние переменные локальных блоков видимы в описании охватывающего блока-контейнера. Таким образом, локальные блоки могут взаимодействовать и помимо явных связей «по воздуху» - через уравнения блока-контейнера. Иногда это может быть удобно. Например, в задаче о взаимодействии заряженных частиц каждая частица связана с каждой, т.е. число связей пропорционально . При достаточно большом рисование функциональных связей становится затруднительным (мы полагаем, что постоянно, т.е. рассматривается система со статической структурой). В данном случае гораздо удобнее связать с охватывающим блоком-контейнером суммарное электрическое поле, напряженность которого в любой точке и будет вычисляться в зависимости от совокупного положения частиц в системе уравнений блока-контейнера.
|
|
Замечание.
Следует помнить, что глобальная система уравнений получается простым механическим сложением системы уравнений компонент только для ориентированных блоков. Для неориентированных блоков получение глобальной системы уравнений является в общем случае непростой задачей.
Объектный подход.
Взглянем еще раз на Рис 18. В описании класса «ИзмерительнаяСистема» появились экземпляры классов «Маятник» и «ИзмерительVS» с именами «Маятник_1» и «ИзмерительVS_1» соответственно. Их можно рассматривать как особые внутренние переменные типа «активный динамический объект». В описании класса «ИзмерительнаяСистема» будут видимы все внешние переменные этих объектов.
RS-триггер.
Данная модель как раз иллюстрирует принцип «разделения сложного на части»: не так-то просто правильно написать закон функционирования триггера, в то же время известна его схема, состоящая из двух схем ИЛИНЕ и двух фильтрующих повторителей. Каждый элемент этой схемы является достаточно простым и понятным устройством, а их совокупное поведение воспроизводится автоматически. Эта несложная модель иллюстрирует и еще один важный момент: в схеме находятся по два экземпляра одного и того же класса (два экземпляра класса ИЛИНЕ и два экземпляра класса ФП), причем экземпляры повторителей различаются значением параметра «Интервал_фильрации».
На этом же примере мы проиллюстрируем использование блочного подхода при оборудовании виртуального стенда: для «испытаний» созданного нами триггера мы создадим генератор тестовых сигналов и соединим его выходы со входами испытуемого триггера..