Знакомство с Simulink

Matlab - это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической. Типичное использование MATLAB - это:

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

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

Simulink является достаточно самостоятельным инструментом MATLAB и при работе с ним совсем не требуется знать сам MATLAB и остальные его приложения. С другой стороны доступ к функциям MATLAB и другим его инструментам остается открытым и их можно использовать в Simulink. Часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink (например, LTI-Viewer приложения Control System Toolbox – пакета для разработки систем управления). Имеются также дополнительные библиотеки блоков для разных областей применения (например, Power System Blockset – моделирование электротехнических устройств, Digital Signal Processing Blockset – набор блоков для разработки цифровых устройств и т.д).

При работе с Simulink пользователь имеет возможность модернизировать библиотечные блоки, создавать свои собственные, а также составлять новые библиотеки блоков.

При моделировании пользователь может выбирать метод решения дифференциальных уравнений, а также способ изменения модельного времени (с фиксированным или переменным шагом). В ходе моделирования имеется возможность следить за процессами, происходящими в системе. Для этого используются специальные устройства наблюдения, входящие в состав библиотеки Simulink. Результаты моделирования могут быть представлены в виде графиков или таблиц.

Для запуска программы необходимо предварительно запустить пакет MATLAB. Основное окно пакета MATLAB показано на рисунке. Там же показана подсказка, появляющаяся в окне при наведении указателя мыши на ярлык Simulink в панели инструментов. Нажатие на ярлык Simulink в панели инструментов приводит к открытию окна обозревателя разделов библиотеки Simulink. Чтобы создать свою программу необходимо создать новый файл модели, расположить блоки в окне модели. Для этого необходимо открыть соответствующий раздел библиотеки. Далее, указав курсором на требуемый блок и нажав на левую клавишу “мыши” - “перетащить” блок в созданное окно.

Далее, если это требуется, нужно изменить параметры блока, установленные программой “по умолчанию”. Для этого необходимо дважды щелкнуть левой клавишей “мыши”, указав курсором на изображение блока. Откроется окно редактирования параметров данного блока. При задании численных параметров следует иметь в виду, что в качестве десятичного разделителя должна использоваться точка, а не запятая. После внесения изменений нужно закрыть окно кнопкой OK.

После установки на схеме всех блоков из требуемых библиотек нужно выполнить соединение элементов схемы. Для соединения блоков необходимо указать курсором на “выход” блока, а затем, нажать и, не отпуская левую клавишу “мыши”, провести линию к входу другого блока. После чего отпустить клавишу. В случае правильного соединения изображение стрелки на входе блока изменяет цвет. Для создания точки разветвления в соединительной линии нужно подвести курсор к предполагаемому узлу и, нажав правую клавишу “мыши”, протянуть линию. Для удаления линии требуется выбрать линию (так же, как это выполняется для блока), а затем нажать клавишу Delete на клавиатуре.


Окно обозревателя библиотеки блоков содержит следующие элементы:

  1. Заголовок, с названием окна – Simulink Library Browser.
  2. Меню, с командами File, Edit, View, Help.
  3. Панель инструментов, с ярлыками наиболее часто используемых команд.
  4. Окно комментария для вывода поясняющего сообщения о выбранном блоке.
  5. Список разделов библиотеки, реализованный в виде дерева.
  6. Окно содержимого раздела библиотеки (список вложенных разделов библиотеки или блоков)
  7. Строка состояния, содержащая подсказку по выполняемому действию.

Библиотека Simulink содержит следующие основные разделы:

  1. Continuous – библиотека непрерывных элементов (интегратор, дифференциатор, линейная система ОДУ и т.д.);
  2. Discrete – библиотека дискретных элементов (интегратор с дискретным временем, дискретный фильтр и т.д.);
  3. Functions & Tables – функции и таблицы (вызов функций Matlab, S-функции, блок, отображающий входной вектор в выходной (с использованием линейной интерполяции значений, определенных в параметрах блока) и т.д.);
  4. Math – математические функции (абсолютное значение, комбинаторная логика, выделение вещественной и мнимой составляющей комплексного числа и т.д.);
  5. Nonlinear – нелинейные элементы (релейное звено, переключатель и т.д. );
  6. Signals & Systems – сигналы и системы (составной блок, входной сигнал, выходной сигнал, мультиплексер, демультиплексер и т.д.);
  7. Sinks – средства отображения (временная диаграмма, вывод результатов в файл, остановка выполнения модели и т.д.);
  8. Sources – источники сигналов (генератор импульсных/синусоидальных сигналов, генератор случайных чисел, генератор пилообразных сигналов, часы и т.д.).
  9. Subsystems – блоки подсистем.

Список разделов библиотеки Simulink представлен в виде дерева, и правила работы с ним являются общими для списков такого вида:

Рассмотрим создание нескольких примеров

Графопостроитель ХУ Graph

Назначение:

Строит график одного сигнала в функции другого (график вида Y(X)).

Параметры:

x-min – Минимальное значение сигнала по оси X.

x-max – Максимальное значение сигнала по оси X

y-min – Минимальное значение сигнала по оси Y.

y-max – Максимальное значение сигнала по оси Y

Sample time – шаг модельного времени.

Блок имеет два входа. Верхний вход предназначен для подачи сигнала, который является аргументом (X), нижний – для подачи значений функции (Y).

На рисунке, в качестве примера использования графопостроителя, показано построение фазовой траектории колебательного звена.

Constantиз Commonly Used Blocks

Чтобы установить необходимые параметры блока необходимо дважды щелкнуть на блоке, в параметрах задать значение константы =1.

Transfer FcnContinuous. Представляет собой отношение степенных полиномов. В параметрах для нашего случая необходимо задать числитель: Numerator – [1], и знаменатель: Denominator – [1 0.5 1].

Derivative - Continuous. Блок вычисляет значение производной.

XY GraphSinks. Вывод результата на график в виде зависимости X от Y.

Блок алгебраического контура Algebraic Constraint

Назначение:

Выполняет поиск корней алгебраических уравнений.

Параметры:

Initial guess – Начальное значение выходного сигнала.

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

На рисунке показан пример решения системы нелинейных уравнений вида:

Поскольку данная система уравнений имеет два решения, то начальные значения блоков Algebraic Constraint заданы в виде векторов. Для первого (верхнего) блока начальное значение задано вектором [1 -1], а для второго (нижнего) блока – вектором [-1 1].

Рассмотрим блоки, которые не использовались в предыдущем примере.

Subtract – Math Operations. В параметрах в окошке List of Signs надо поставить те операции, которые необходимы( - +).

Math Function - Math Operations. В параметрах в окошке Function надо выбрать square( чтобы был квадрат значения).

Algebraic Constant - Math Operations. В параметрах в окошке Initial guess задать начальное значение вектором [1 -1] или [-1 1].

Display – Sinks. Выводит результат.

Примеры:

alg.mdl

xyGraph.mdl

 

Далее >>