Замечание. Вычисляемое выражение должно давать только скалярное значение. Это ограничение снимается при использовании блокаMATLAB Fen
7. Блок MATLAB Fen позволяет применить к входному сигналу любую подпрограмму обработки, реализованную в виде М-файла. Это может быть как библиотечная функция пакета MATLAB, так и подпрограмма, созданная разработчиком S-модели. В первом случае использование блока MATLAB Fen аналогично использованию блока Fen. Вычисляемое выражение вводится в окне MATLABfunction. Если оно содержит только обращение к библиотечной функции, то ее аргумент можно явно не указывать. Например, для вычисления квадратного корня входного значения достаточно ввести имя функции sqrt. Другой, более существенной, особенностью блока MATLAB Fen является наличие второго параметра настройки — Outputwidth (Ширина выходного сигнала). Это означает, что результатом работы блока может быть не только скаляр, но и вектор. Число его элементов должно быть равно значению параметра Output width. 8. Блок Product позволяет выполнять умножение или деление нескольких входных сигналов (величин). В качестве параметров настройки могут указываться число входов блока и вид выполняемой операции. Задание значений этих параметров аналогично настройке блока Sum из раздела Линейные элементы. В качестве знака операции умножения используется символ «*», а для указания операции деления — символ «/». Если в качестве значения параметра настройки блока ввести «1», то будет вычисляться произведение элементов входного вектора (в этом случае на изображении блока выводится символ Р). Вторую группу образуют блоки, обеспечивающие логическую обработку входного сигнала. Наиболее важными и полезными из них являются следующие. 1. Блок Logical Operator содержит набор основных логических операций: AND (операция логического умножения «И»), ОR (логическое сложение «ИЛИ»), NAND («И-НЕ»), NOR («ИЛИ-НЕ»), XOR (сложение по модулю 2), NOТ (операция логического отрицания). Выбор требуемой функции выполняется с помощью «выпадающего» меню; имя функции отображается на иконке блока. Другим параметром настройки блока является число аргументов логической операции, то есть число входных портов блока (Number of inputports). Его значение вводится в строке редактирования и должно быть натуральным числом. Максимально допустимое число входов блока практически не ограничено. 2. Блок Relational Operator реализует операции отношения над двумя входными сигналами: >, <, >, <, = =(тождественно),!= (не равно). Конкретная операция выбирается при настройке параметров блока посредством «выпадающего» меню. Знак операции выводится на изображении блока. 3. Блок Combinatorial Logic обеспечивает преобразование входного сигнала в соответствии с заданной таблицей истинности. С его помощью можно описать на уровне «вход-выход» логику работы любого устройства или системы. Единственное ограничение заключается в том, что входные данные и результат должны быть представимы в форме булевых величин. Combinatorial Logic, можно сказать, что он представляет собой обобщенную модель конечного детерминированного автомата. Для такого автомата заранее известны все возможные значения выходного сигнала, и набор их ограничен. Причем каждое выходное значение однозначно соответствует определенному входному воздействию. На вход блока может подаваться как скалярный, так и векторный сигнал. Скаляр в данном случае интерпретируется как одна булева величина, а вектор — как их совокупность. При этом любое ненулевое значение входного сигнала соответствует значению «истина». Блок имеет единственный параметр настройки — Truth table (таблица истинности), который представляет собой список возможных выходных значений автомата. При задании таблицы истинности необходимо соблюдать два основных правила: 1) число строк таблицы должно быть равно 2n, где п — число элементов (размерность) входного сигнала; 2) входы таблицы считаются заданными. Например, если на вход блока Combinatorial Logic подается векторный сигнал с n=2, то параметр Truth table представляет собой список из четырех элементов например такой: [0;1;0;1]. Таким образом, параметр Tmth table описывает только значения выходного сигнала. Разрядность выходного сигнала, а также значение каждого его разряда выбираются пользователем на основе собственных представлений о логике работы создаваемой S-модели. Любое ненулевое значение сигнала в блоке Combinatorial Logic трактуется как «истина». Это относится и к входному, и к выходному сигналу. Сформированный выходной сигнал может быть или выведен в какое-либо «смотровое окно», или передан на другие блоки 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-го входа. Блок имеет единственный параметр настройки — Threshold (Порог). Он может задаваться либо как числовая константа, либо как вычисляемое выражение. Периодичность срабатывания блока Switch определяется значением параметра Sample time блока, подсоединенного к его управляющему входу. Необходимо иметь в виду, что при изменении направления передачи сигнала положение «перемычки» на иконке блока не изменяется. Блок Manual Switch не имеет параметров настройки и позволяет «вручную» выбирать один из двух входных портов, сигнал с которого будет передаваться на выход блока. Для перемещения «перемычки», соединяющей выходной порт блока Manual Switch с входным, необходимо дважды щелкнуть на изображении блока (предварительно, конечно, блок должен быть помещен в поле блок-диаграммы разрабатываемой модели). Блок Multiport Switch обеспечивает передачу на выход сигнала, поступающего на один из информационных входов. Номер коммутируемого входа равен значению сигнала, подаваемого на управляющий вход блока. Если это значение является дробным числом, то оно округляется до целого по стандартным арифметическим правилам. Исключение составляют 2 случая: если значение управляющего сигнала меньше 1, то оно считается равным 1; если значение управляющего сигнала превышает число информационных входов, то оно принимается явным наибольшему номеру (входы нумеруются сверху вниз). Блок имеет один параметр настройки — Number of inputs (Число входов), который устанавливает число информационных входов. Значение параметра может вводиться в форме числовой константы или в форме вычисляемого выражения. Блок Relay работает по аналогии с обычным реле: если входной сигнал превышает некоторое пороговое значение, то на выходе блока формируется «разрешающий» сигнал. Блок имеет 4 параметра настройки: ' Switch on point (Точка включения) — задает пороговое значение, при превышении которого происходит «включение» реле; Switch off point (Точка выключения) — задает уровень сигнала, при котором реле «выключается»; Outputwhen on (Выход при включенном состоянии) — определяет значение амплитуды «разрешающего» сигнала; Outputwhen off (Выход при выключенном состоянии) — уровень сигнала на выходе реле, когда оно находится в состоянии «выключено». Значения всех параметров блока могут вводиться либо в форме числовых констант, либо в форме вычисляемых выражений. Раздел Connections (Соединительные узлы) Большинство блоков данного раздела предназначено для разработки S-моделей, содержащих модели более низкого уровня (подсистемы). 1. Блоки In (Входной порт) и Out (Выходной порт) обеспечивают «линейную» связь между подсистемами модели по информации. 2. Блоки Goto Tag Visibility (Признак видимости), From (принять) и Goto (передать) используются совместно и предназначены для обмена данными между различными компонентами S-модели с учетом доступности (видимости) этих данных. 3. Блоки Data Store Memory (Память данных), Data Store Read (чтение данных) и Data Store Write (Запись данных) также используются совместно и обеспечивают не только передачу данных, но и их хранение на интервале моделирования. 4. Блоки Enable (Разрешить) и Trigger (в данном случае уместен буквальный перевод этого слова — защелка) предназначены для логического управления работой подсистем ^-модели. 5. Блок Subsystem (Подсистема) представляет собой «заготовку» для создания подсистемы. Подсистема — это достаточно самостоятельная S-модель более низкого уровня, которая, в свою очередь, может содержать подсистемы произвольного уровня вложенности. Наряду с перечисленными выше, раздел Connections содержит еще несколько элементов, которые имеют самостоятельное значение и могут оказаться весьма полезными при создании многих практических приложений: Блок Mux — выполняет объединение входных величин в один линейный вектор. При этом входные величины могут быть как скалярными, так и векторными. Размерность результирующего вектора равна суммарному количеству элементов, поступающих на входные порты блока. Блок Mux имеет один параметр настройки — Number of inputs (Число входов). Блок Demux (Разделитель) выполняет функции, противоположные функциям блока Mux: разделяет входной вектор на заданное число компонентов. Данный блок также имеет единственный параметр настройки, который называется Number of outputs (Число выходов). Поскольку соотношение между размерностью входного вектора и числом выходов блока может быть различным, то размерность компонентов выходного вектора разработчику модели необходимо определять заранее самому. При этом следует учитывать следующие особенности работы блока Demux. Если размерность входного вектора (М) равна значению параметра Number of outputs, т. е. числу выходов блока (N), то на всех выходах блока формируются скалярные величины — входной вектор просто распадается на отдельные элементы.Если размерность входного вектора превышает число выходов блока (M>N), то на первых (п-1)-ом выходах формируются векторы, размерность которых равна целой части отношения M/N, а размерность вектора на последнем выходе равна остатку от деления. Если M<N, то при запуске модели выдается сообщение об ошибке («несоответствие размерности портов»). Блоки Ground (Земля) и Terminator (Ограничитель) могут использоваться в качестве «заглушек» для тех портов, которые по какой-либо причине оказались не подключенными к другим блокам S-модели (например, на этане отладки модели). Блок Ground используется как «заглушка» для входных портов, а блок Terminator — для выходных. Применение указанных блоков позволяет избежать выдачи интерпретатором MATLABпредупреждения о том, что в S-модели имеются неподключенные порты. Блок IC (Initial Condition — начальное состояние) позволяет устанавливать произвольное начальное состояние входного сигнала. Длительность пребывания системы в этом состоянии равна длительности шага моделирования. Параметром настройки блока является величина Initial Value (Значение сигнала на момент входа в блок). Блок Width (Размер) вычисляет размерность сигнала, поступающего на его вход. Вычисленное значение выводится непосредственно на изображении блока. Параметров настройки он не имеет. Блок Selector (Селектор) выбирает во входном векторе и передает на выход только те элементы, номера которых указаны в параметрах настройки блока. Блок имеет два параметра настройки: • Elements (Элементы) — список номеров элементов входного вектора, подлежащих отбору; • luput port width (Размерность входного порта) — размерность входного вектора, который может быть «просеян» с помощью данного блока; значение этого параметра обязательно должно совпадать с числом элементов входного вектора. Если на вход блока подается матрица, то в спискеElements используется сквозная нумерация элементов, причем индекс изменяется построчно. Существенным достоинством блока является то, что значения его параметров настройки отображаются в графическом виде на иконке блока. Блок Merge (Слияние) выполняет объединение поступающих на его входы сигналов в один. Блок имеет два параметра настройки: Number of inputs (Количество входов), определяющий число входных сигналов, которое может быть подано на входы блока; для корректной работы блока все входные сигналы должны иметь одинаковую размерность (хотя при несоблюдении этого правила сообщение об ошибке не выдается); Initial output (Инициализация выхода) — задает сигнал, на основе которого должно выполняться объединение; если значение параметра не задано, то на выход блока просто выдается один из входных сигналов.
Дополнительные разделы библиотеки (Blocksets & Toolboxes) Раздел Blocksets &Toolboxes является единственным разделом, содержимое которого изменяется в зависимости от установленной на вашем компьютере конфигурации пакета MATLAB. Если из инструментальных средств пакета в рабочую конфигурацию включен только SIMULINK, то данный раздел содержит единственный подраздел — Simuhnk Extras (Дополнения к Simulink). Этот подраздел, в свою очередь, разбит на шесть частей: Additional Sinks (Дополнение к разделу Sinks) — включает дополнительные графические «смотровые окна»; четыре из них обеспечивают визуализацию спектрального анализа сигналов, другие два — отображение корреляционных характеристик сигналов. Для использования двух последних блоков требуется включить в состав конфигурации пакета инструментальные средства обработки сигналов (Signal Processing Toolbox); Additional Linear (Дополнение к разделу Linear) — блоки, входящие в эту часть библиотеки, предназначены для расчета характеристик линейных систем автоматического управления; Transformations (Преобразования) — содержит блоки, выполняющие различные преобразования числовых величин: • координат — из прямоугольной системы в полярную либо сферическую и обратно; • температуры — из шкалы Фаренгейта в шкалу Цельсия и обратно; • углов — из градусов в радианы и обратно. Flip Flop (Триггеры) — содержит блоки, моделирующие работу основных типов триггеров: • D-триггера, • 5-R-Tpnrrepa, • J-K-триггера; Кроме того, в эту часть библиотеки включен блок Clock (Часы), генерирующий дискретный временной сигнал. Параметром настройки этого блока является величина периода сигнала; Linearization (Линеаризация) — раздел содержит единственный блок, позволяющий вычислить производную входного сигнала по времени.
Доп. план 2004г., поз. 11
Лида Куандыковна Ибраева
ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB Методический практикум
Редактор В.В. Шилина
Подписано в печать 9.04.04. Формат 60х84 1/16 Тираж 50 экз. Бумага типографическая № 1 Объем 3,0 уч.-изд.л. Заказ 193. Цена 98 тг.
Копировально-множительное бюро Алматинского института энергетики и связи 480013 Алматы, Байтурсынова, 126 [1] Мустафин М.А., Жусипов С.С.. Специальный курс электрических машин. Исследование асинхронного двигателя в схеме асинхронного вентильного каскада на компьютерной модели. Методические указания к лабораторным работам (для студентов всех форм обучения по специальностям 330140, 330840) – Алматы: АИСЭ, 2003. – 16 с. [2] Богатырев А.Ф., Панченко С.В.,Стояк В.В. Моделирование и оптимизация теплотехнических процессов: Учебное пособие. – Алма-Ата:КазПТИ, 1989.
|