sqrt, pow, reciprocal, hypot, rem, mod. Нужная функция выбирается с помощью выпадающего меню в окне настраивания. Блок Rounding Function содержит разнообразные функции округления, предусмотренные в MatLAB. Он осуществляет округление значений входного сигнала. Выбор конкретного метода округления осуществляется также с помощью выпадающего меню в окне настраивания. Блок MinMax осуществляет поиск минимального или максимального элемента входного вектора. Если входом является скалярная величина, то выходная величина совпадает с входной. Если входов несколько, ищется минимум или максимум среди входов. В число настроек входит выбор метода и количество входов блока. Блок Sign реализует нелинейность типа сигнум-функції. В нем нет параметров настраивания. Блок формирует исходный сигнал, который принимает только три возможных значения: "+1" - в случае, когда входной сигнал положителен, "-1" - при отрицательном входном сигнале и "0" при входном сигнале, равном нулю. Для указанных выше блоков имя выбранной функции выводится на графическом изображении блока. Следующую группу образуют блоки, которые обеспечивают логическую обработку входного сигнала. Общим для всех их является то, что выходная вели- чина в них является булевой, то есть может достигать лишь двух значений: "1" ("истина") или "0" ("ложь"). Во многих из них булевыми должны быть и все входные величины. Блок Relational Operator реализует операции отношения между двумя входными сигналами > < ≤ ≥ = = = , , , , ,
(соответственно: больше, меньше, меньше или равно, больше или равно, тождественно равно, не равно). Конкретная операция выбирается при настраивании параметров блока с помощью выпадающего меню. Знак операции выводится на изображении блока. Блок Logical Operator содержит набор основных логических операций. Входные величины должны быть булевими. Выбор необходимой логической операции осуществляется в окне настраивания блока с помощью выпадающего меню. Вторым параметром настраивания является количество входных величин (портов) блока (Number of input ports), то есть количество аргументов логической операции. Блок Combinatorial Logic обеспечивает преобразование входных булевых величин в выходную в соответствия с заданной таблицей истинности. Блок имеет единственный параметр настраивания - Truth table (таблица истинности). Четыре следующих блока осуществляют преобразование комплексного входного сигнала в один или два действительных выходных сигнала, которые являются мо- дулем, аргументом, действительной или мнимой частью входного сигнала (блоки 7.1. Общая характеристика пакета Simulink 345Complex to Magnitude-Angle и Complex to Real-Imag), а также один или два вход- ных действительных сигнала в комплексный выходный сигнал (блоки Magnitude-Angle to Complex и Real-Imag to Complex). Количество входов или выходов оп- ределяется в окне настраивания блока. 7.1.8. Раздел Functions & Tables В этот раздел входят две группы блоков (рис. 7.53): - два блока, осуществляющие линейную интерполяцию значений выходного сигнала по значениям входного сигнала, которые поступают в блок, в соответст- вии с заданной в окне настраивания таблицы соответствий; - три блока, которые являются заготовками, дающими пользователю воз- можность разработать собственные блоки программы, выполняющие необходи- мые ему преобразования сигналов. Рис. 7.53 Блок Look-upTable выполняет линейную интерполяцию входного сигнала в соответствии с табличной функцией, которая задается. Блок Look-upTable(2D) осуществляет двумерную линейную интерполяцию двух входных сигналов. Блок Fcn позволяет пользователю ввести любую скалярную функцию от одного (скалярного или векторного) аргумента, которая выражается через стандартные функции MatLAB. Выражение функции вводится в окне настраивания блока. Для обозначения входного сигнала (аргумента функции) используется символ u. Блок MATLAB Fcn позволяет применить к входному сигналу любую подпрограмму обработки, реализованную в виде М-файла. В отличие от предыдущего блока, здесь к числу параметров настраивания добавлен параметр Output width (Ширина выходного сигнала), который определяет количество элементов выходного вектора. Применение этого блока приводит к значительной потере быстродействия в выполнении (в сравнении с предыдущим блоком). С помощью блока S-function пользователь может реализовать в виде Simulink-блока любую программу обработки входного сигнала, включая 7.1. Общая характеристика пакета Simulink 346 интегрирование дифференциальных уравнений и обработку дискретных во времени сигналов. Более подробно работа с S-function изложена в п. 7.4.6. 7.1.9. Раздел Nonlinear Состав этого раздела приведен на рис. 7.54. Рис. 7.54 Здесь расположены 6 блоков, которые реализуют некоторые типовые нелинейные (кусочно-линейные) зависимости выходной величины от входной и 3 блока-переключателя. Блок RateLimiter (Ограничитель скорости) обеспечивает ограничивание сверху и снизу скорости изменения сигнала, проходящего через него. Окно настраивания содержит два параметра Rising slew rate и Falling slew rate. Блок ра- ботает по следующему алгоритму. Сначала рассчитывается скорость изменения сигнала, который проходит через блок по формуле ) 1 ( ) ( ) 1 ( ) ( − − − − = i t i t i y i u rate , где - значения входного сигнала в момент времени ) (i u ) (i t ; ) 1 ( − i y - значения выходного сигнала в момент ) 1 ( − i t . Далее, если вычисленное значение rate больше, чем Rising slew rate (R), выходная величина определяется по формуле t R i y i y ∆ ⋅ + − = ) 1 ( ) ( ; если rate меньше, чем Falling slew rate (F), то выход определяется так t F i y i y ∆ ⋅ + − = ) 1 ( ) ( Если же значения rate содержится между R и F, то исходная величина совпадает с входной
7.1. Общая характеристика пакета Simulink 347) ( ) ( iuiy= Блок Saturation ( Насыщение) реализует линейную зависимость с насыщением (ограничением). Выходная величина этого блока совпадает со входной, если последняя находится внутри указанного диапазона. Если же входная величина выходит за рамки диапазона, то выходный сигнал принимает значение ближайшей из границ. Значения границ диапазона устанавливаются в окне настраивания блока. Блок Quantizer (Квантователь) осуществляет дискретизацию входного сигнала по величине. Единственным параметром настраивания этого блока является Quantization interval - Интервал квантования - размер дискрета по уровню входного сигнала. Блок BackLash (Люфт) реализует нелинейность типа зазора. В нем предусмотрено два параметра настраивания: Deadband width - величина люфтаи Initial output - начальное значение выходной величины. Блок Dead Zone (Мертвая зона) реализует нелинейность типа зоны нечувствительности. Параметров настраивания здесь два - начало и конец зоны нечувствительности. Блок Relay (Реле) работает по аналогии с обычным реле: если входной сигнал превышает некоторое предельное значение, то на выходе блока формируется некоторый постоянный сигнал. Блок имеет 4 параметра настраивания (рис. 7.55): Switch on point (Точка включения) - задает предельное значение, при превышении которого происходит включение реле; Switch off point (Точка выключения) - определяет уровень входного сигнала, ниже которого реле выключается; Output when on (Выход при включенном состоянии) - устанавливает уровень выходной величины при включенном реле; Output when off (Выход при выключенном состоянии) - определяет уровень выходного сигнала при выключенном реле. 7.1. Общая характеристика пакета Simulink 348 Рис. 7.55 Блок Coulomb & Viscous Friction (Кулоново и вязкое трение) реализует нелинейную зависимость типа "линейная с натягом". Если вход положителен, то выход пропорционален входу с коэффициентом пропорциональности - "коэффициентом вязкого трения" - и увеличен на величину "натяга" ("кулонова, сухого трения"). Если вход отрицателен, то выход также пропорционален входу (с тем же коэффициентом пропорциональности) за вычетом величины "натяга". При входе равном нулю выход тоже равняется нулю. В параметры настраивания блока входят величины "кулонова трения" ("натяга") и коэффициента "вязкого трения". В завершение рассмотрим группу блоков-переключателей, которые руково- дят направлением передачи сигнала. Таких блоков три: Switch (Переключатель), Manual Switch (Ручной переключатель)и Multiport Switch (Многовходовый переключатель). Блок Switch имеет три вход: (два (1-й и 3-й) информационные и один (2-й) – управляющий) и один выход. Если величина управляющего сигнала, который по- ступает на 2-й вход, не меньше некоторого заданного граничного значения (параметр Threshold - Порог), то на выход блока передается сигнал с 1-го входа, в противном случае - сигнал с 3-го входа. Блок Manual Switch не имеет параметров настраивания. У него два входа и один выход. На изображении блока показано перемычкой, какой именно из двух входов подключен к выходу. Блок позволяет "вручную" переключать входы. Для этого необходимо дважды щелкнуть мышкой на изображении блока. При этом изменится и изображение блока - на нем выход уже будет соединен перемычкой с другим входом. Блок Multiport Switch имеет не меньше трех входов. Первый (верхний) из них является управляющим, другие - информационными. Блок имеет один
7.1. Общая характеристика пакета Simulink 349параметр настраивания Number of inputs (Количество входов), который определяет количество информационных входов. Номер входа, который соединяется с выходом, равняется значению управляющего сигнала, который поступает на верхний вход. Если это значение является дробным числом, то оно округляется до целого по обычным правилам. Если оно меньше единицы, то оно считается равным 1; если оно больше количества информационных входов, то оно принимается равным наибольшему номеру (входы нумеруются сверху вниз, кроме самого верхнего - управляющего). 7.1.10. Раздел Signals & Systems Раздел библиотеки Signals & Systems(сигналы и системы) предназначен для построения сложных S-моделей, которые состоят из других моделей более низкого уровня. Состав раздела приведен на рис. 7.56. Блоки In (Входной порт) и Out (Исходный порт) обеспечивают информационную связь между подсистемами модели и с рабочим пространством системы MatLAB. Блок Mux (Мультиплексор) выполняет объединение входных величин в единый выходной вектор. При этом входные величины могут быть как скалярными, так и векторными. Длина результирующего вектора равняется сумме длин всех векторов. Порядок элементов в векторе выхода определяется порядком входов (сверху вниз) и порядком расположения элементов внутри каждого входа. Блок имеет один параметр настраивания - Number of inputs (Количество входов). Блок Demux (Разделитель, Демультиплексор) выполняет обратную функцию - разделяет входной вектор на заданное количество компонентов. Он также имеет единственный параметр настраивания Number of outputs (Количество выходов). В случае, когда указанное число выходов (N) задается меньшим длины входного вектора (M), блок формирует исходные векторы следующим образом. Первые (N-1) выходов будут векторами одинаковой длины, равной целой части отношение M/(N-1). Последний выход будет иметь длину, равную остатку от деления. Блоки From (Принять от), Goto Tag Visibility (Признак видимости)и Goto (Передать к)используются совместно и предназначены для обмена данными между разнообразными частями S-модели с учетом досягаемости (видимости) этих данных. Блоки Data Store Read (Чтение данных), Data Store Memory (Запоминание данных) и Data Store Write (Запись данных) также используются совместно и обеспечивают не только передачу данных, но и их сохранение на протяжении моделирования. 7.1. Общая характеристика пакета Simulink 350 Рис. 7.56 Блоки Enable (Разрешить) и Trigger (Задвижка) предназначены для логического управления работой подсистем S-модели. Блоки Ground (Земля) и Terminator (Ограничитель) могут использоваться как "заглушки" для тех портов, которые по какой-либо причине оказались не подсоединенными к другим блокам S-модели. При этом блок Ground используется как заглушка для входных портов, а Terminator - для выходных портов. Блок IC (Initial Condition - начальное условие) позволяет установить произвольное начальное значение входного сигнала. Блок Subsystem (Подсистема) является "заготовкой" для создания подсистемы. Подсистема - эта довольно самостоятельная S-модель более низкого уровня, которая, в свою очередь, может содержать подсистемы произвольного уровня вложенности. Блок Selector выбирает в входном векторе и передает на выход только те элементы, номера которых указаны в одном из параметров настраивания блока. Существенным преимуществом блока является то, что значения параметров его настройки отображаются в графической форме в изображении блока.
7.1. Общая характеристика пакета Simulink 351Блок Width (Размер) определяет размерность сигнала, который поступает на его вход. Значения размерности выводится непосредственно на изображении блока. Параметров настраивания блок не имеет. Блок Merge(Слияния) выполняет объединение сигналов, которые поступа- ют в его входы, в единый сигнал. Блок Hit Crossing (Обнаружить пересечение) позволяет зафиксировать состояние, когда входной сигнал "пересекает" некоторое значение. При возникновении такой ситуации на выходе блока формируется единичный сигнал. Блок имеет 3 параметры настраивания (рис. 7.57): Hit crossing offset - определяет значения, пересечение которого необходимо идентифицировать; Hit crossing direction позволяет указать направление пересечения, при ко- тором это пересечение должно віявляться; значения этого параметра выбирается с помощью выпадающего меню, которое содержит три альтернативы: rising (восхождение), falling (спадание), either (в любом направлении); Show output port (указать порт выхода) - флажок, с помощью которого выбирается вид представления блока. Рис. 7.57 При одновременном выполнении условий, которые задаются параметрами Hit crossing offset и Hit crossing direction, на выходе блока формируется единичный сигнал. Его продолжительность определяется значением дискрета времени (параметр Sample time) блока, который предшествует в модели блоку Hit crossing. Если этот параметр отсутствует, то единичный сигнал на выходе блока сохраняется до его следующего срабатывания. 7.2. Построение блок-схем 352 7.2. Построение блок-схем Рассмотрим операции, которые позволяют образовывать блок-схемы слож- ных динамических систем. 7.2.1. Выделение объектов При создании и редактировании S-модели нужно выполнять такие опера- ции, как копирование или изъятие блоков и линий, для чего необходимо сначала выделить одних или несколько блоков и линий (объектов). Чтобы выделить отдельный объект, нужно щелкнуть на нем один раз. При этом появляются маленькие кружки по углам выделенного блока или в нача- ле и конце линии. При этом становятся невыделенными все другие перед этим выделенные объекты. Если щелкнуть по блоку второй раз, он становится невы- деленным. На рис. 7.58 справа приведен результат выделения блока Clock (сравните с рисунком слева). Рис. 7.58 Выделение нескольких объектов по одному осуществляется таким обра- зом: нажать клавишу и держать ее нажатой; щелкнуть на каждом из объектов, которые выделяются, не отпуская клавишу ; отпустить клавишу . Именно таким способом на рис. 7.59 выделены блоки Signal Generator, Constant и XYGraph. Выделить несколько объектов с помощью объединяющего бокса можно следующим чином: определить стартовый угол прямоугольника-бокса, который будет со- держать блоки, которые нужно выделить; нажать клавишу мыши в этой точке;
7.2. Построение блок-схем 353 не отпуская клавишу мыши, переставить ее курсор в противоположный угол бокса; при этом пунктирные линии должны окружить нужные блоки и линии; отпустить клавишу мыши; блоки и линии внутри бокса будут выделе- ны. На рис. 7.60 показан результат выделения боксом блоков |