Главы     1     2     3     4     5     6     7     8     9     10     11     12     13     14     15     16     17     18   

Основы моделирования в Simulink

Глава 12 Subsystem – подсистемы



Подсистема это фрагмент Simulink-модели, оформленный в виде отдельного блока. Использование подсистем при составлении модели имеет следующие положительные стороны:

Уменьшает количество одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).

Позволяет создавать и отлаживать фрагменты модели по отдельности, что повышает технологичность создания модели.

Позволяет создавать собственные библиотеки.

Дает возможность синхронизации параллельно работающих подсистем.

Позволяет включать в модель собственные справочные средства.

Дает возможность связывать подсистему с каким-либо mфайлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы). Использование подсистем и механизма их блоков позволяет

создавать блоки, не уступающие стандартным по своему оформлению (собственное окно параметров блока, пиктограмма, справка ит.п.).

Количество подсистем в модели не ограничено, кроме того подсистемы могут включать в себя другие подсистемы. Уровень вложенности подсистем друг в друга также не ограничен.

Связь подсистемы с моделью (или подсистемой верхнего уровня иерархии) выполняется с помощью входных (блок Inport библиотеки Sources) и выходных (блок Outport библиотеки Sinks) портов. Добавление в подсистему входного или выходного порта приводит к появлению на изображении подсистемы метки порта, с помощью которой внешние сигналы передаются внутрь подсистемы или выводятся в основную модель. Переименование блоков Inport или Outport позволяет изменить метки портов, отображаемые на пиктограмме подсистемы со стандартных (In и Out) на те, которые нужны пользователю.

Подсистемы могут быть виртуальными (Subsystem) и монолитными (Atomic Subsystem). Отличие этих видов подсистем заключается в порядке выполнения блоков во время расчета. Если подсистема является виртуальной, то Simulink игнорирует наличие границ отделяющих такую подсистему от модели при определении порядка расчета блоков. Иными словами в виртуальной системе сначала могут быть рассчитаны выходные сигналы нескольких блоков, затем выполнен расчет блоков в основной модели, а затем вновь выполнен расчет блоков входящих в подсистему. Монолитная подсистема считается единым (неделимым) блоком и Simulink выполняет расчет всех блоков в такой подсистеме, не переключаясь на расчеты других блоков в основной модели. Изображение монолитной подсистемы имеет более толстую рамку по сравнению с виртуальной подсистемой.

Подсистемы могут быть также управляемыми или неуправляемыми. Управляемые подсистемы всегда являются монолитными. Управляемые подсистемы имеют дополнительные (управляющие) входы, на которые поступают сигналы активизирующие данную подсистему. Управляющие входы расположены сверху или снизу подсистемы. Когда управляемая подсистема активизирована – она выполняет вычисления. В том случае если управляемая подсистема пассивна, то она не выполняет вычисления, а значения сигналов на ее выходах определяются настройками выходных портов.

Для создания в модели подсистемы можно воспользоваться двумя способами:

Скопировать нужную подсистему из библиотеки Subsystem в модель.

Выделить с помощью мыши нужный фрагмент модели и выполнить команду Create Subsystem из меню Edit окна модели. Выделенный фрагмент будет помещен в подсистему, а входы и выходы подсистемы будут снабжены соответствующими портами. Данный способ позволяет создать виртуальную неуправляемую подсистему. В дальнейшем, если это необходимо, можно сделать подсистему монолитной, изменив ее параметры, или управляемой, добавив управляющий элемент из нужной подсистемы находящейся в библиотеке. Отменить группировку блоков в подсистему можно командой Undo.

    Subsystem – подсистемы 2
    Рисунок 9.9.1 иллюстрирует процесс создания подсистемы вторым способом. На рисунке 9.9.2 показан результат этого процесса. В примере использована модель управляемого функционального генератора....
    Subsystem – подсистемы 3
    Виртуальная и монолитная подсистемы Subsystem и Atomic Subsystem
    Доступ к окну параметров подсистемы осуществляется через меню Edit командой Block Parameters… Параметры: Show port labels – Показать метки портов. Treat as atomic unit (флажок) – Считать подсистем...
    Управляемая уровнем сигнала подсистема Enabled Subsystem
    Подсистема Enabled Subsystem (в дальнейшем Eподсистема) активизируется при наличии положительного сигнала на управляющем входе. Если входной сигнал векторный, то подсистема активизируется, если хо...
    Управляемая уровнем сигнала подсистема Enabled Subsystem 2
    Пример на рисунке 9.9.4 отличается от предыдущего настройкой блока Enable подсистемы. В данном примере параметр States when enabling блока Enable имеет значение reset. На временных диаграммах видн...
    Управляемая фронтом сигнала подсистема Triggered Subsystem
    Подсистема Triggered Subsystem (в дальнейшем Tподсистема) включается фронтом (перепадом уровня) управляющего сигнала и выполняет вычисления только на том шаге моделирования, где произошло это изме...
    Управляемая уровнем и фронтом сигнала подсистема Enabled and Triggered Subsystem
    Подсистема Enabled and Triggered Subsystem (в дальнейшем ET-подсистема) включается фронтом сигнала поступающего на Tвход системы при наличии положительного сигнала на E-входе системы. Так же как и...
    Управляемая S-функцией подсистема Function-call subsystem
    Function-call subsystem (в дальнейшем FC-подсистема) является T-подсистемой, предназначенной для использования совместно с S-функцией написанной на языке C. Используя специальные средства, можно о...
    Блок условного оператора If
    Назначение: Обеспечивает формирование управляющих сигналов для подсистем If Action Subsystem. Блок является аналогом оператора if-else языка программирования C. Параметры: Number of inputs – Колич...
    Блок условного оператора If 2
    На рисунке 9.9.7 показан пример использования блока If совместно с подсистемами If Action Subsystem. В примере первая подсистема пропускает через себя входной сигнал если входной сигал блока If бо...
    Блок переключателя Switch Case
    Назначение: Обеспечивает формирование управляющих сигналов для подсистем Case Action Subsystem. Блок является аналогом оператора Switch языка программирования C. Параметры: Case conditions – Списо...
    Управляемая по условию подсистема Action Subsystem
    Подсистема предназначена для работы под управлением блоков If или Switch Case. В первом случае она называется If Action Subsystem, а во втором Switch Case Action Subsystem. Параметры подсистемы оп...
    Управляемая подсистема For Iterator Subsystem
    Управляемая подсистема For Iterator Subsystem представляет собой подсистему, которая выполняется неоднократно в течение одного такта моделирования. Количество повторений должно быть известно заран...
    Управляемая подсистема While Iterator Subsystem
    Управляемая подсистема While Iterator Subsystem представляет собой подсистему, которая выполняется неоднократно в течение одного такта моделирования. Количество повторений заранее не известно. Цик...
    Управляемая подсистема While Iterator Subsystem 2
    Параметры: Maximum number of iterations – Максимальное количество итераций. Если значение параметра равно -1 (минус один), то количество итераций не ограничивается. While loop type (флажок) – Тип...
    Конфигурируемая подсистема Configurable Subsystem
    Блок Configurable Subsystem позволяет создавать подсистему, обеспечивающую выбор конфигурации этой подсистемы. Например, в систему управления каким-либо объектом можно поставить конфигурируемую по...
    Конфигурируемая подсистема Configurable Subsystem 2
    Поместить в окно модели блок Configurable Subsystem из только что созданной библиотеки. С помощью команды контекстного меню (вызывается нажатием правой клавиши мыши на объекте) Block choice (вариа...
    Конфигурируемая подсистема Configurable Subsystem 3
    Пример модели, использующей конфигурируемую подсистему, и библиотека конфигурируемой подсистемы показаны на рисунке 9.9.12. В примере конфигурируемая подсистема состоит из апериодического и колеба...