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

информатика / MathCad и MatLab / Расчеты и моделирование на ЭВМ

.pdf
Скачиваний:
36
Добавлен:
06.02.2016
Размер:
716.92 Кб
Скачать

Первую группу образуют блоки, реализующие элементарные математические функции. К таким блокам относятся:

1.Блок Abs – формирует абсолютное значение входного сигнала (этот блок не имеет параметров настройки).

2.Блок Trigonometric Function обеспечивает преобразование входного сигнала с помощью одной из тригонометрических функций; выбор требуемой функции производится в окне настройки параметров блока с помощью "выпадающего" меню (оно становится доступным только после перемещения блока в поле блок-диаграммы).

3.Блок Math Function позволяет использовать для преобразования входного сигнала элементарные нетригонометрические функции (вычисление экспоненты, натурального и десятичного логарифмов, возведение в степень, извлечение квадратного корня и т. д.). Нужная функция выбирается с помощью "выпадающего" меню.

4.Блок Rounding Function содержит различные функции округления значения амплитуды входного сигнала; выбор конкретного метода округления выполняется также с помощью "выпадающего" меню.

5.Блок MinMax обеспечивает поиск минимального или максимального элемента входного вектора. Цель поиска задается в окне настроек блока. Второй параметр настройки – число входов блока.

Для блоков 2...5 имя выбранной функции выводится на графическом изображении блока.

6.Блок Fcn – это универсальный "вычислительный" блок; в качестве параметра настройки блока можно ввести любое вычисляемое выражение, аргументом которого является значение входного сигнала; особенность этого блока состоит в том, что аргумент выражения должен быть указан явно. Для обозначения входного сигнала используется символ u. Если входной сигнал является вектором, то для операций, выполняемых над отдельными его элементами, аргумент также должен быть задан явно. Например, сложение двух элементов входного сигнала должно быть записано в таком виде: u(1) + u(2) (рисунок 30).

Замечание. Вычисляемое выражение должно давать только скалярное значение. Это ограничение снимается при использовании блока MATLAB Fcn.

7.Блок Product позволяет выполнять умножение или деление нескольких входных сигналов (величин). В качестве параметров настройки могут указываться число входов блока и вид выполняемой операции.

61

Задание значений этих параметров аналогично настройке блока Sum из раздела Linear. В качестве знака операции умножения используется символ "*", а для указания операции деления – символ "/".

Рисунок 30 – Окно настроек блока Fcn

Если в качестве значения параметра настройки блока ввести "1", то будет вычисляться произведение элементов входного вектора (в этом случае на изображении блока выводится символ Р).

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

1.Блок Logical Operator содержит набор основных логических операций: AND (операция логического умножениям "И"), OR (логическое сложение "ИЛИ"), NAND ("И-НЕ"), NOR ("ИЛИ-НЕ"), XOR (сложение по модулю 2), NOT (операция логического отрицания). Выбор требуемой функции выполняется с помощью "выпадающего" меню; имя функции отображается на иконке блока.

Другим параметром настройки блока является число аргументов логической операции, то есть число входных портов блока (Number of input ports). Его значение вводится в строке редактирования и должно быть натуральным числом. Максимально допустимое число входов блока практически не ограничено.

2.Блок Relational Operator реализует операции отношения над двумя входными сигналами: >,<, ³ , £ , = = (тождественно), != (не равно). Конкретная операция выбирается при настройке параметров блока посредством "выпадающего" меню. Знак операции выводится на изображении блока.

3.Блок Combinatorial Logic обеспечивает преобразование входного сигнала

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

62

ограничение заключается в том, что входные данные и результат должны быть представимы в форме булевых величин. Напомним, что булева величина принимает только два значения: "1" ("истина") или "0" ("ложь"). На самом деле это очень "мягкое" ограничение, так как любое действие, утверждение или результат можно оценить по двухбалльной шкале: если действие произошло (или если некоторое утверждение нам нравится) – ставим ему "I", если же нет – оно получает оценку"0".

Например, включение настольной лампы можно описать с помощью законов физики, а можно – с помощью булевых величин:

"нажал выключатель" ("1") – "лампа зажглась" ("1"); "не нажал выключатель" ("0") – "лампа не зажглась" ("0"), или "нажал

выключатель" ("1") – "лампа не зажглась" ("0").

Последний вариант возможен, если лампа неисправна.

При таком подходе описываемое устройство рассматривается как "черный ящик", который при поступлении входного сигнала формирует некоторый выходной сигнал.

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

На вход блока может подаваться как скалярный, так и векторный сигнал. Скаляр в данном случае интерпретируется как одна булева величина, а вектор – как их совокупность. При этом любое ненулевое значение входного сигнала соответствует значению "истина".

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

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

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

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

63

Рисунок 31 – Настройки параметров блока Combinatorial Logic

Для приведенного примера полная таблица истинности будет выглядеть следующим образом (таблица 11):

Таблица 11 – Пример полной таблицы

истинности для блока

 

Combinatorial Logic

 

 

 

 

 

 

Входной сигнал

 

Выходной сигнал

1-й элемент

 

2-й элемент

 

 

 

 

 

 

 

 

 

0

 

0

 

0

 

 

 

 

 

0

 

1

 

1

 

 

 

 

 

1

 

0

 

0

 

 

 

 

 

1

 

1

 

1

 

 

 

 

 

Таким образом, параметр Truth table описывает только значения выходного сигнала.

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

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

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

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

64

лежащее в заданном диапазоне, нулем.

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

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

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

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

Блок имеет три параметра настройки (рисунок 32):

Рисунок 32 – Окно настроек блока Hit Crossing

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

Hit crossing direction – позволяет указать направление "пересечения", которое интересует разработчика модели; значение этого параметра выбирается

спомощью "выпадающего" меню, которое содержит три пункта:

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

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

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

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

65

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

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

Memory (Память);

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

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

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

Initial condition (Начальное состояние) – задает значение амплитуды входного сигнала на момент инициализации блока; в большинстве случаев целесообразно принимать это значение равным нулю;

флажок Inherit sample time (наследование шага времени) позволяет выбрать величину шага, на который будет производиться задержка сигнала:

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

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

Рисунок 33 – Окно настроек блока Memory

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

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

Initial input (Начальный ввод) значение амплитуды входного сигнала

вмомент инициализации блока (по умолчанию равно 0);

66

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

Рисунок 34 – Окно настроек блока Transport Delay

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

Данный блок, как и предыдущий, имеет 3 параметра настройки: Maximum delay (Максимальная задержка), Initial input и Buffer size. Назначение двух последних параметров идентично назначению одноименных параметров блока

Transport delay.

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

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

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

Manual Switch (Ручной переключатель); Multipоrt Switch (Многовходовый переключатель);

Relay (Реле).

67

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

– сигнал с 3-го входа. Блок имеет единственный параметр настройки – Threshold (Порог). Он может задаваться либо как числовая константа, либо как вычисляемое выражение. Периодичность срабатывания блока Switch определяется значением параметра Sample time блока, подсоединенного к его управляющему входу.

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

Рисунок 35 – Пример использования блока Switch

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

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

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

68

сверху вниз).

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

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

Рисунок 36 – Пример использования блока Multipоrt Switch

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

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

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

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

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

Рисунок 37 – Окно настроек блока Relay

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

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

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

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

70