Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1804

.pdf
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
2.24 Mб
Скачать

как их совокупность. При этом любое ненулевое значение входного сигнала соответствует значению «истина».

Блок имеет единственный параметр настройки — Truth table (таблица истинности), который представляет собой список возможных выходных значений автомата. При задании таблицы истинности необходимо соблюдать два основных правила:

число строк таблицы должно быть равно 2n, где п число элементов (размерность) входного сигнала;

входы таблицы считаются заданными.

Например, если на вход блока Combinatorial Logic подается векторный сигнал с п=2, то параметр Truth table представляет собой список из четырех элементов, например такой: [0;1;0;1].

Сформированный выходной сигнал может быть или выведен в какоелибо «смотровое окно», или передан на другие блоки S-модели.

Следующие четыре блока можно рассматривать как вариант модификации блока Combinatorial Logic для непрерывного входного сигнала.

Dead Zone (Мертвая зона) заменяет значение входного сигнала, лежащее в заданном диапазоне, нулем;

Look-up Table (Таблица поиска) выполняет линейную интерполяцию входного сигнала в соответствии с заданной табличной функцией.

Look-up Table(2D) производит линейную интерполяцию двумерного входного сигнала;

Hit Crossing (Обнаружено пересечение) позволяет идентифицировать момент времени, когда входной сигнал «пересекает» некоторое значение: при появлении такой ситуации на выходе блока формируется единичный сигнал.

Блок Hit Crossing во многих случаях оказывается весьма удобным средством управления логикой работы S-модели, поэтому остановимся на нем немного подробнее. Блок имеет три параметра настройки:

Hit crossing offset определяет значение, «пересечение» которого необходимо идентифицировать;

Hit crossing direction позволяет указать направление «пересечения», которое интересует разработчика модели; значение этого параметра выбирается с помощью «выпадающего» меню, которое содержит три пункта:

rising (возрастание), falling (убывание),

either (в обоих направлениях);

Show output port (показать выходной порт) флажок, с помощью которого можно выбрать формат использования блока.

При одновременном выполнении условий, задаваемых параметрами Hit crossing offset и Hit crossing direction, на выходе блока формируется единичный импульс. Его длительность определяется значением параметра Sample time блока, предшествующего в модели блоку Hit crossing. Если этот параметр

отсутствует, то единичный сигнал на выходе блока Hit crossing существует до его следующего срабатывания.

В третью группу можно объединить блоки, реализующие функцию задержки входного сигнала. Таких блоков в разделе Nonlinear три:

Memory (Память);

Transport Delay (Задержка передачи)

Variable Transport Delay (Изменяемая задержка передачи).

Блок Memory является наиболее «слабым» из них по своим возможностям. Он выполняет задержку входного сигнала только на один шаг модельного времени. Блок имеет два параметра настройки:

Initial condition (Начальное состояние) — задает значение амплитуды входного сигнала на момент инициализации блока; в большинстве случаев целесообразно принимать это значение равным нулю; флажок Inherit sample time (наследование шага времени) позволяет выбрать величину шага, на который будет производиться задержка сигнала:

если флажок снят, то используется минимальный шаг, равный 0.1 единицы модельного времени;

если флажок установлен, то величина шага определяется значением Sample time блока, предшествующего блоку Memory.

Блок Transport Delay обеспечивает задержку сигнала на заданное количество шагов модельного времени; причем необязательно целое. Настройка блока производится с помощью трех параметров:

Time delay (Время задержки) количество шагов модельного времени, на которое задерживается сигнал; может вводиться либо в числовой форме, либо в форме вычисляемого выражения;

Initial input (Начальный ввод) значение амплитуды входного сигнала в момент инициализации блока (по умолчанию равно 0);

Initial buffer size (Начальный размер буфера) объем памяти (в байтах),

выделяемой в рабочей области MATLAB для хранения параметров задержанного сигнала; значение параметра должно быть кратно 8 (по умолчанию 1024).

Блок Variable Transport Delay позволяет задавать управляемую извне величину задержки. С этой целью блок имеет дополнительный вход. Подаваемый на него сигнал определяет длительность задержки информационного сигнала, поступающего на основной вход блока.

Данный блок, как и предыдущий, имеет 3 параметра настройки:

Maximum delay (Максимальная задержка), Initial input и Buffer size.

Назначение двух последних параметров идентично назначению одноименных параметров блока Transport delay.

Параметр Maximum delay определяет наибольшую допустимую величину задержки информационного сигнала. Если величина задержки, определяемая

управляющим сигналом, превышает этот порог, то она принудительно устанавливается равной параметру Maximum delay. Его значение измеряется числом шагов модельного времени, может иметь дробное значение и вводиться либо в числовой форме, либо в форме вычисляемого выражения.

Четвертую группу образуют «блоки-переключатели», то есть блоки, управляющие направлением передачи сигнала. Таких блоков четыре:

Switch (Переключатель);

Manual Switch (Ручной переключатель);

Multiport Switch (Многовходовый переключатель)

Relay (Реле).

Блок Switch имеет три входа: два информационных (1-й и 3-й) и один управляющий (2-й). Логика работы блока состоит в следующем. Если амплитуда сигнала, поступающего на 2-й вход, не меньше заданного порогового значения то на выход блока передается сигнал с 1-го входа, в противном случае - сигнал с 3-го входа. Блок имеет единственный параметр настройки - (Порог) Он может задаваться либо как числовая константа, либо как вычисляемое выражение. Периодичность срабатывания блока Switch определяется значением параметра Sample time блока, подсоединенного к его управляющему входу.

На рис. 2.22 показан пример использования блока Switch (значение параметра Threshold равно 5).

Рис. 2.22

Необходимо иметь в виду, что при изменении направления передачи сигнала положение «перемычки» на иконке блока не изменяется.

Блок Manual Switch не имеет параметров настройки и позволяет «вручную» выбирать один из двух входных портов, сигнал с которого будет передаваться на выход блока. Для перемещения «перемычки», соединяющей выходной порт блока Manual Switch с входным, необходимо дважды щелкнуть ЛКМ на изображении блока (предварительно, конечно, блок должен быть помещен в поле блок-диаграммы разрабатываемой модели).

Блок Multiport Switch обеспечивает передачу на выход сигнала, поступающего на один из информационных входов. Номер коммутируемого входа равен значению сигнала, подаваемого на управляющий вход блока. Если это значение является дробным числом, то оно округляется до целого по

стандартным арифметическим правилам. Исключение составляют 2 случая: если значение управляющего сигнала меньше 1, то оно считается равным 1; если значение управляющего сигнала превышает число информационных входов, то оно принимается равным наибольшему номеру (входы нумеруются сверху вниз).

Блок имеет один параметр настройки Number of inputs (Число входов), который устанавливает число информационных входов. Значение параметра может вводиться в форме числовой константы или в форме вычисляемого выражения.

Блок-диаграмма, поясняющая работу блока, приведена на рис. 2.23.

Рис. 2.23

Блок Relay работает по аналогии с обычным реле: если входной сигнал превышает некоторое пороговое значение, то на выходе блока формируется «разрешающий» сигнал.

Блок имеет 4 параметра настройки:

Switch on point (Точка включения) задает пороговое значение, при превышении которого происходит «включение» реле;

Switch off point (Точка выключения) задает уровень сигнала, при котором реле «выключается»;

Output when on (Выход при включенном состоянии) определяет значение амплитуды «разрешающего» сигнала;

Output when off (Выход при выключенном состоянии) уровень сигнала на выходе реле, когда оно находится в состоянии «выключено».

Значения всех параметров блока могут вводиться либо в форме числовых констант, либо в форме вычисляемых выражений.

Остальные блоки раздела традиционно используются при моделировании систем автоматического регулирования и не требуют дополнительных пояснений.

Рис. 2.24

2.2.6. Раздел Connections (Соединительные узлы)

Большинство блоков данного раздела предназначено для разработки S- моделей, содержащих модели более низкого уровня (подсистемы). Состав блоков раздела показан на рис. 2.24.

Технология создания и использования подсистем будет описана ниже, поэтому пока ограничимся только краткой характеристикой блоков, относящихся к этой группе.

1.Блоки In (Входной порт) и Out (Выходной порт) обеспечивают

«линейную» связь между подсистемами модели по информации.

2.Блоки Goto Tag Visibility (Признак видимости), From (принять) и

Goto (передать) используются совместно и предназначены для обмена данными между различными компонентами S-модели с учетом доступности

(видимости) этих данных.

3.Блоки Data Store Memory (Память данных),'Data Store Read (чтение данных) и Data Store Write (Запись данных) также используются совместно и обеспечивают не только передачу данных, но и их хранение на интервале моделирования.

4.Блоки Enable (Разрешить) и Trigger

данном случае уместен буквальный перевод этого

слова защелка) предназначены для логического управления работой подсистем S-модели.

5. Блок Subsystem (Подсистема)

представляет собой «заготовку» для создания подсистемы. Подсистема это достаточно самостоятельная S-модель более низкого уровня, которая, в свою очередь, может содержать подсистемы произвольного уровня вложенности.

Наряду с перечисленными выше, раздел Connections содержит еще несколько элементов, которые имеют самостоятельное значение и могут оказаться весьма полезными при создании многих практических приложений.

Блок Mux выполняет объединение входных величин в один линейный вектор. При этом входные величины могут быть как скалярными, так и векторными. Размерность

результирующего вектора равна суммарному количеству элементов, поступающих на входные порты блока. Например, если на 1-й вход блока подается матрица размером 2Х2, содержащая четыре элемента:[[1,4],[6,7]], на

2-й и 3-й входы константы 2 и 3 соответственно, то выходной вектор будет выглядеть так: [146723].

Блок Mux имеет один параметр настройки Number of inputs (Число входов).

Блок Demux (Разделитель) выполняет функции, противоположные функциям блока Mux: разделяет входной вектор на заданное число компонентов. Данный блок также имеет единственный параметр настройки, который называется Number of outputs (Число выходов). Поскольку соотношение между размерностью входного вектора и числом выходов блока может быть различным, то размерность компонентов выходного вектора разработчику модели необходимо определять заранее самому. При этом следует учитывать следующие особенности работы блока Demux.

Если размерность входного вектора (М) равна значению параметра Number of outputs, т. е. числу выходов блока (N), то на всех выходах блока формируются скалярные величины входной вектор просто распадается на отдельные элементы.

Если размерность входного вектора превышает число выходов блока (M>N), то на первых (n-1)-ом выходах формируются векторы, размерность которых равна целой части отношения M/N, а размерность вектора на последнем выходе равна остатку от деления.

Если M<N, то при запуске модели выдается сообщение об ошибке («несоответствие размерности портов»).

Блоки Ground (Земля) и Terminator (Ограничитель) могут использоваться в качестве «заглушек» для тех портов, которые по какой-либо причине оказались не подключенными к другим блокам S-модели (например, на этапе отладки модели). Блок Ground используется как «заглушка» для входных портов, а блок Terminator для выходных. Применение указанных блоков позволяет избежать выдачи интерпретатором MATLAB предупреждения о том, что в 5-модели имеются неподключенные порты.

Блок IC (Initial Condition начальное состояние) позволяет устанавливать произвольное начальное состояние входного сигнала. Длительность пребывания системы в этом состоянии равна длительности шага моделирования. Параметром настройки блока является величина Initial Value

(Значение сигнала на момент входа в блок).

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

Блок Selector (Селектор) выбирает во входном векторе и передает на выход только те элементы, номера которых указаны в параметрах настройки блока.

Блок имеет два параметра настройки:

Elements (Элементы) список номеров элементов входного вектора, подлежащих отбору;

luput port width (Размерность входного порта) размерность входного вектора, который может быть «просеян» с помощью данного блока; значение этого параметра обязательно должно совпадать с числом элементов входного вектора.

Если на вход блока подается матрица, то в списке Elements используется сквозная нумерация элементов, причем индекс изменяется построчно.

Например, если на вход блока поступает матрица размером 3 4, то ее элементы будут иметь номера с 1-го по 12-й, причем номера 1...3 будут принадлежать

элементам первой строки, номера 4..6

элементам 2-й строки и т. д.

 

На рис. 2.25

показана работа

блока Selector,

выполняющего

«просеивание» входного массива, содержащего две строки (в первой

три

элемента, во второй

два). На выход блока, в соответствии с его параметрами

настройки (рис. 2.26), передаются только два элемента

первый и четвертый.

Существенным

достоинством

блока

является

то, что

значения

его

параметров настройки отображаются в графическом виде на иконке блока.

Рис. 2.25

Рис. 2.26

Блок Merge (Слияние) выполняет объединение поступающих на его входы сигналов в один. Блок имеет два параметра настройки:

Number of inputs оличество входов), определяющий число входных сигналов, которое может быть подано на входы блока; для корректной работы

блока все входные сигналы должны иметь одинаковую размерность (хотя при несоблюдении этого правила сообщение об ошибке не выдается);

Initial output (Инициализация выхода) задает сигнал, на основе которого должно выполняться объединение; если значение параметра не задано, то на выход блока просто выдается один из входных сигналов.

2.2.7. Дополнительные разделы библиотеки (Blocksets & Toolboxes)

Еще раз отметим, что раздел Blocksets &Toolboxes является единственным разделом, содержимое которого изменяется в зависимости от установленной на вашем компьютере конфигурации пакета MATLAB.

Если из инструментальных средств пакета в рабочую конфигурацию включен только SIMULINK, то данный раздел содержит единственный подраздел Simulink Extras (Дополнения к Simulink).

Этот подраздел, в свою очередь, разбит на шесть частей:

Additional Sinks (Дополнение к разделу Sinks) включает дополнительные графические «смотровые окна»; четыре из них обеспечивают визуализацию спектрального анализа сигналов, другие два отображение корреляционных характеристик сигналов. Для использования двух последних блоков требуется включить в состав конфигурации пакета инструментальные средства обработки сигналов (Signal Processing Toolbox);

Additional Linear (Дополнение к разделу Linear) блоки, входящие в эту часть библиотеки, предназначены для расчета характеристик линейных систем автоматического управления;

Transformations (Преобразования)

содержит блоки, выполняющие

различные преобразования числовых величин:

координат из прямоугольной системы в полярную либо сферическую и

обратно;

 

температуры из шкалы Фаренгейта в шкалу Цельсия и обратно;

 

углов из градусов в радианы и обратно.

Flip Flop (Триггеры) содержит блоки, моделирующие работу основных типов триггеров:

D-триггер;

S-R-триггер;

J-K-триггер.

Кроме того, в эту часть библиотеки включен блок Clock (Часы), генерирующий дискретный временной сигнал. Параметром настройки этого блока является величина периода сигнала;

Linearization (Линеаризация) раздел содержит единственный блок, позволяющий вычислить производную входного сигнала по времени.

На этом мы завершим знакомство с базовой библиотекой блоков SIMULINK. В заключение еще раз отметим, что основная цель приведенного краткого обзора разделов библиотеки дать читателю представление о потенциальных возможностях SIMULINK как инструмента визуального моделирования.

2.3. Меню пользователя

Если создается новая S-модель (как в нашем случае), то в первую очередь необходимо открыть новое (пустое) окно блок-диаграммы. Это можно сделать либо из командного окна MATLAB, либо из окна Library: Simulink, выбрав из меню последовательно команды File —> New —> Model. Новое окно блокдиаграммы имеет по умолчанию имя untitled (‘безымянное'), которое может быть изменено при записи файла модели на диск.

Меню окна блок-диаграммы (в дальнейшем для краткости будем называть его меню пользователя) содержит четыре основных раздела: File, Edit,

Simulation и Format.

2.3.1.Раздел File

Внего входят следующие пункты.

New создание нового окна блок-диаграммы; команда имеет два варианта: Model (открыть окно для создания S-модели) и Library (открыть окно для создания нового раздела библиотеки SIMULINK).

Open открыть mdl-файл; при выборе данного пункта открывается стандартное диалоговое окно файловой системы Windows, с помощью которого можно найти и открыть требуемый файл, имеющий расширение mdl.

Close закрыть окно блок-диаграммы (и соответствующий mdl-файл); если в блок-диаграмму вносились изменения, которые не были сохранены в файле на диске, то перед закрытием окна MATLAB запрашивает подтверждение на закрытие файла.

Save сохранить (записать на диск) mdl-файл; если данный файл записывается впервые, то при выборе этой команды открывается диалоговое окно, с помощью которого пользователь может выбрать новое имя файла (вместо untitled) и каталог, в котором будет производиться запись; если же файл уже записывался на диск ранее, то при выполнении команды Save он будет сохранен под прежним именем и в том же каталоге (при этом диалоговое окно не открывается).

Save as... сохранить как... (переписать) команда позволяет сохранить файл под новым именем или в другом каталоге; при ее выполнении открывается диалоговое окно файловой системы Windows.

Замечание: при выполнении команд Save as... и Save (при первой записи) mdl-файл при необходимости может быть сохранен в формате М- или МАТфайла. Этим разработчику предоставляется возможность корректировать текст программы модели с помощью встроенного отладчика MATLAB.

Show Browser вызов специального средства просмотра структуры S- модели (броузера). Основное назначение этого средства отображение в текстовой форме иерархической структуры модели. Его полезно использовать в том случае, если S-модель содержит подсистемы, относящиеся к различным уровням вложенности.

При запуске броузера открывается его диалоговое окно. Окно содержит два списка и элементы управления.

В левом списке выводятся имена подсистем, входящих в состав S-модели. Список может быть выстроен либо в соответствии с иерархией подсистем, либо в алфавитном порядке. Выбор способа упорядочения выполняется с помощью команды Display раздела Options меню броузера.

Для повышения наглядности при выводе списка подсистем используются специальные символы:

«+» подсистема содержит подсистемы более низкого уровня, которые не выведены в списке; чтобы «развернуть» список, необходимо дважды щелкнуть ЛКМ на строке, помеченной символом «+». После этого имена вложенных подсистем появятся в списке, а символ «+» будет заменен символом «-»;

[М] признак «маскированной» подсистемы; это означает, что непосредственно из блок-диаграммы содержимое такой подсистемы просмотреть нельзя;

 

[L] признак того, что подсистема взята из библиотеки и не подлежит

редактированию из окна блок-диаграммы;

 

 

 

 

[О] соответствующая подсистема представляет собой информационное

(справочное) окно;

 

 

 

 

 

[S] признак подсистемы типа State/low chart (Диаграмма состояний).

Такие

подсистемы

разрабатываются

с

помощью

специального

инструментального средства MATLAB Stateflow.

 

 

Если маскированная подсистема является в то же время и библиотечной, то ее имени предшествует символ [ML].

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

Двойной щелчок ЛКМ на имени блока в правом списке приводит к открытию окна настроек данного блока (т. е. это действие аналогично двойному щелчку ЛКМ на иконке блока в блок-диаграмме). Тот же результат дает и нажатие кнопки Open System, расположенной ниже,

Тип выбранного блока отображается под правым списком в строке Block Type. Информация о типе блока оказывается полезной в том случае, если разработчик S-модели использовал для обозначения блока в диаграмме «нестандартное» имя.