- •1.Общие сведения о matlab и Simulink
- •2. Описание библиотек
- •2.1. Источники сигналов
- •Icon shape – форма блока (окружность или прямоугольник);
- •3.2. Управление окончанием процесса моделирования
- •4. Использование подсистем
- •4.1. Интерфейс подсистем
- •4.2. Управление подсистемами
- •Основные понятия с м о:
- •Варианты заданий:
Icon shape – форма блока (окружность или прямоугольник);
List of signs (список знаков) – количество входов блока. В это поле можно вводить последовательность знаков + и – в зависимости от того с каким знаком используется слагаемое и разделительный символ | , чтобы отделить одну группу входов от другой. Если все слагаемые используются со знаком +, то в это поле вводится целая положительная константа большая 1. Ввод значения 1 означает вычисление суммы элементов входного вектора.
Флажок Saturate of integer overflow (подавлять переполнение для целых) дает возможность задать необходимость урезания результата сложения, если он превышает диапазон, установленный для целочисленных значений.
Блок Product позволяет выполнять умножение или деление нескольких входящих величин. Его работа аналогична работе блока Sum с той лишь разницей, что вместо знаков + и – используются * и /.
Блок Algebraic Constraint (алгебраический корень) предназначен для отыскания корней алгебраических уравнений. Совместное использование нескольких таких блоков обеспечивает решение системы алгебраических уравнений. Поиск выполняется методом последовательных приближений и носит итерационный характер. Переменная генерируется блоком с начальным значением, задаваемым в качестве значения параметра Initial guess (начальное приближение) в окне настройки блока.
Простейший вариант использования блока Algebraic Constraint для решения уравнения X+7 = 0 показан на рисунке 1.
Рис. 1.
Блок Combinatorial Logic обеспечивает преобразование входного сигнала в соответствии с заданной таблицей истинности. Блок имеет единственный параметр настройки Truth table (таблица истинности), который представляет собой список возможных выходных значений блока. На вход блока может подаваться как скалярных так и векторный сигнал. Скаляр интерпретируется как одна булева переменная, а вектор – как их совокупность. Строки таблицы истинности разделяются символом ; причем входы таблицы считаются заданными, а число строк должно быть равно 2n, где n – число элементов входного сигнала. Можно сказать, что этот блок представляет собой обобщенную модель конечного детерминированного автомата, для которого известны все возможные значения выходного сигнала и их набор ограничен. Для примера рассмотрим таблицу истинности некоторого автомата и значение поля Truth table, соответствующее ей.
Входной сигнал |
Выходной сигнал |
||
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
Значение поля Truth table: [01;11;00;00].
Модель подобного устройства представлена на рисунке 2.
Рис. 2.
2.5. Функции и таблицы
В этот раздел входят 5 блоков:
Fcn – универсальный «вычислительный» блок;
MATLAB Fcn – функция MATLAB;
S-function - S-функция;
Look-up Table – обеспечивает возможность табличного описания произвольной функции;
LookUp Table (2-D) – позволяет описать скалярную функцию 2-х аргументов;
2.6. Непрерывные системы
Этот раздел содержит универсальные блоки, которые могут быть использованы при построении моделей различных типов:
Dead Zone – пассивная зона;
Backlash – люфт;
Switch – переключатель;
Manual switch – ручной переключатель;
Multiport switch – многовходовый переключатель;
Relay – реле.
2.7. Сигналы и системы
Раздел содержит 30 блоков:
In – входной порт;
Out – выходной порт;
Bus Selector – выделяет из группы сигналов один заданный сигнал;
Mux – объединяет входные сигналы в один векторный сигнал;
Demux – противоположен блоку Mux;
Selector – выделяет из входного сигнала заданные элементы;
Merge – отбирает из входных сигналов один, значение которого было вычислено последним;
Hit Crossing – позволяет идентифицировать момент времени, когда входной сигнал пересекает некоторое значение;
SubSystem – заготовка для подсистемы;
Enable – выключатель (управление работой подсистем);
Triggter – триггер(управление работой подсистем);
Goto Tag Visibility, Goto, From – используются для обмена данными между различными компонентами модели;
Data Store Memory, Data Store Read, Data Store Write – передача и хранение данных;
Function-Call Generator – обеспечивает запуск подключенных к нему подсистем с заданной периодичностью;
Configurable Subsystem – реализует функции любого выбранного блока из указанной библиотеки;
IC – установка произвольного начального значения входного сигнала;
Width – вычисляет длительность сигнала, поступающего на его вход;
Probe – просмотр основных характеристик сигнала;
Data Type Conversion – обеспечивает приведение типа сигнала к требуемому;
Model Info – контроль информации по разработке модели.
Блок Mux объединяет входные величины в один линейный вектор. При этом входные величины могут быть как скалярными так и векторными. Этот блок имеет два параметра настройки:
Number of inputs – число входных портов блока (выходной всегда один);
Display option – определяет способ отображения блока.
2.8. Дискретные системы
Сюда входят блоки, с помощью которых в модели может быть описано поведение дискретных систем. Раздел содержит 8 блоков:
Unit Delay – задержка сигнала;
Discrete-Time Integrator – сумматор дискретного времени;
Zero-Order Hold – экстраполятор нулевого порядка;
First-Order Hold - экстраполятор первого порядка;
Discrete State-Space – блок формирования состояния системы;
Discrete Filter – дискретный фильтр;
Discrete Transfer Fcn – дискретная передаточная функция;
Discrete Zero-Pole – дискретная область перехода.
Блок Discrete-Time Integrator (сумматор дискретного времени) – выполняет суммирование входного сигнала, через определенные интервалы времени. Для этого блока можно задавать начальное состояние, получать очередное состояние блока, определять верхнюю и нижнюю границу суммирования, сбрасывать состояние блока при помощи внешнего сигнала. Discrete-Time Integrator может быть настроен на один из трех методов суммирования: прямой или обратный метод Эйлера и метод трапеций. По умолчанию используется прямой метод Эйлера при котором:
,
где k – шаг моделирования; y – выход блока; u – вход блока; T – эталонное время.
3. Управление временем
Во всех без исключения системах имитационного моделирования модельное время является важнейшим фактором, согласующим работу всех компонент модели. При подготовке каждого модельного эксперимента должны быть получены ответы на три вопроса:
1. Какой способ изменения (приращения) времени целесообразно использовать (с постоянным или с переменным шагом)?
2. С какой дискретностью следует изменять модельное время?
3. Какое событие будет служить признаком окончания эксперимента?
На вкладке Solver диалогового окна Parameters меню Simulation производится установка параметров расчета модели. Здесь присутствуют элементы настройки, позволяющие выбрать некоторые временные характеристики модели. К ним относятся интервал моделирования (по умолчанию равен 10 временным единицам), способ расчета модели, размер шага моделирования и т.д.
3.1. Выбор шага моделирования
Существует два основных способа изменения модельного времени: с постоянным шагом и по особым состояниям. Основную роль при выборе одного из методов играет тип моделируемой системы: для непрерывных систем (с непрерывной сменой состояний) по умолчанию используется переменный шаг приращения времени, а для дискретных систем следует устанавливать постоянный (фиксированный) шаг. Такой подход не всегда оправдывает себя, поскольку при моделировании непрерывных систем бывает удобнее определять очередное состояние системы как функцию времени, изменяющегося с заданной дискретностью. И, наоборот, при моделировании дискретных систем величина очередного приращения времени зачастую определяется прогнозируемым моментом изменения состояния системы; причем смена состояний происходит, как правило, нерегулярно. Поэтому необходимо знать каким образом при разработке моделей дискретных систем можно заставить модельное время изменяться по особым состояниям.
Для реализации механизма изменения модельного времени по особым состояниям можно использовать связку из двух блоков: Random Number и Discrete-Time Integrator. Блок Random Number обеспечивает формирование отрезков времени, длина которых распределена по нормальному закону, блок Discrete-Time Integrator, выполняет суммирование этих отрезков, то есть продвижение модельного времени. Для примера рассмотрим работу накопителя (рис. 3), на вход которого через случайные интервалы времени подается сообщение длиной 20 символов. Для упрощения будем считать, что запись информации на накопитель происходит мгновенно и величина приращения модельного времени определяется только промежутком времени до появления очередного сообщения.
Рис. 3.
При таком подходе к реализации механизма модельного времени собственный таймер Simulink играет роль тактового генератора. Он не определяет длительность интервала моделирования, а лишь фиксирует моменты наступления особых состояний. Как видно из рисунка сообщения в накопитель поступали 10 раз за время, равное 92.61, хотя внутренний таймер сделал только 10 шагов. Понятно, что блок Random Number может быть заменен другим блоком, генерирующим отрезки времени в соответствии с любой заданной пользователем функцией. Для сравнения рассмотрим пример моделирования с постоянным шагом (рис. 4).
Рис. 4.
В данном примере рассматривается движение самолета с постоянной скоростью равной 0.25 км/с и фиксируется момент времени, когда самолет пересечет некоторый рубеж равный 12.5 км. Данную систему можно рассматривать как непрерывную и удобнее всего ее будет моделировать с постоянным шагом, проверяя каждый раз пройденное самолетом расстояние. Выберем шаг приращения, равный 1с. Тогда для достижения самолетом рубежа в 12.5 км необходимо 50 шагов модельного времени, что соответствует 50-и секундам. В данном случае значение одного шага собственного таймера Simulink приравнивается к 1с модельного времени. Поэтому дополнительной системы, делающей расчет модельного времени как на рисунке 3 не требуется.
