Моделирование систем в MATLAB
Что такое MATLAB
Программное обеспечение MathWorks MATLAB представляет собой высокоуровневый язык технических расчетов, интерактивную среду разработки алгоритмов и современный инструмент анализа данных. MathWorks MATLAB по сравнению с традиционными языками программирования (C/C++, Java, Pascal, FORTRAN) позволяет на порядок сократить время решения типовых задач, что значительно упрощает разработку новой техники и алгоритмов.
MathWorks MATLAB представляет собой основу всего семейства продуктов MathWorks и является главным инструментом для решения широкого спектра научных и прикладных задач, в таких областях как: моделирование объектов и разработка систем управления, проектирование коммуникационных систем, обработка сигналов и изображений, измерение сигналов и тестирование, финансовое моделирование, вычислительная биология и другие.
Сейчас MATLAB - это основной инструмент инженера-разработчика систем управления. В мире насчитывается более 1 млн. зарегистрированных пользователей этого программного пакета. MATLAB вошел в стандартную практику инженерных расчетов во многом благодаря огромной и уникальной библиотеке функций и инструментальных средств, предназначенных для различных областей науки и техники.
MATLAB - это интегрированное средство разработки, моделирования, аппаратной реализации и тестирования систем управления, которое ассистирует инженеру на всех этапах проектной деятельности (рисунок 2.1).

Рисунок 2.1. Задачи по проектированию систем управления, решаемые в MATLAB: Design - разработка моделей объекта управления и регуляторов, Implementation - реализация алгоритмов управления в железе, Test and verification - проверка корректности работы и качества управления
Разработка систем управления начинается с моделирования. Динамика объекта управления может быть описана различным образом с применением инструментов MathWorks: в виде дифференциальных уравнений, дискретных разностных уравнений, цифровых автоматов и алгоритмов, написанных на формальных языках. Любая модель может быть представлена визуально в виде схемы из составных блоков в среде Simulink, что позволяет использовать наиболее подходящий подход к моделированию каждой подсистемы объекта управления.
Если не известны физические принципы работы объекта управления, можно использовать средства для идентификации динамических систем в MATLAB, что позволяет строить модели по результатам измерений, полученных от реального объекта. Идентификация систем в MATLAB позволяет быстро и визуально получить модели объектов управления без детального знания их структуры и принципов работы.
Большинство объектов управления представляет собой физические системы, которые состоят из типовых элементов, связанных конструктивно и функционально. Среда Simulink в MATLAB поддерживает построение моделей систем на основе моделей стандартных механических, электрических, электромагнитных, гидравлических, пневматических и теплотехнических компонентов (например, идеальной пружины, пневмоцилиндра, электродвигателя и т.д.). Такой подход позволяет эффективно создавать модели сложных систем, которые структурно и функционально соответствуют реальным объектам управления. В случае использования нестандартных компонентов есть возможность дополнить библиотеку физических компонентов новыми элементами, которые могут быть заданы в виде системы дифференциальных уравнений и соединением других компонентов.
Модели физических объектов в библиотеке компонентов содержат такие физические параметры, например как масса, электрическое сопротивление, сечение трубопровода и т.д.. Эти параметры могут быть не известны для конкретных компонентов в объекте управления. В Simulink встроено средство Simulink Design Optimization, которое позволяет по экспериментальным данным, полученным в результате измерений реального объекта, подобрать физические параметры модели для согласования результатов моделирования и измерений.
Моделирование воздействия окружающей среды, например атмосферы, силы тяжести, ветра, и магнитного поля Земли, возможно с
Simulink и Aerospace Blockset. Можено создавать пользовательские экологические модели из блоков Simulink и на основе табличных данных.
Как только точная модель объекта управления создана, разработчик анализирует и разрабатывает регуляторы с обратной связью и стратегии управления с разомкнутой обратной связью, используя инструменты MathWorks MATLAB.
На каждом этапе проектирования важно знать насколько разрабатываемый объект соответствует требуемым спецификациям качества и корректности функционирования. Для этого в MATLAB Simulink встроены средства критического анализа систем управления и верификации, которые позволяют:
- • оценивать ключевые эксплуатационные параметры, такие как перерегулирование, время переходного процесса и устойчивость;
- • линеаризовать и определять частотные характеристики нелинейных моделей Simulink;
- • моделировать и анализировать эффекты параметрической неопределенности на производительности и устойчивости систем управления.
Встроенное средство Simulink Control Design избавляет от необходимости ручного подбора параметров и многократного повторения моделирования, обеспечивая систематический метод настройки одноконтурных и многоконтурных системы управления в среде Simulink. Ключевые функции:
- • автоматическая настройка ПИД-регуляторов,
- • интерактивные методы классической линейной теории управления: метод корневого годографа, диаграммы Боде, [1]
С помощью средства Simulink Optimization можно улучшить производительность системы управления и оптимизировать другие ее характеристики, осуществляя параметрическую настройку в соответствии с введенными критериями оптимальности. Например, можно оптимизировать коэффициенты усиления регулятора, чтобы удовлетворить ограничениями на время переходного процесса и величину перерегулирования. Или совместно оптимизировать физические и алгоритмические параметры объекта управления и регулятора, чтобы максимизировать качество работы системы в целом.
Средство Stateflow позволяет разрабатывать и моделировать дискретную логику работы систем управления: алгоритмы и циклограммы, а также контролирующую логику, обеспечивающую переключение режимов работы регулятора, обработку исключительных ситуаций, а также обнаружение неисправностей, их изоляцию и восстановление (fault detection, isolation, and recovery - FDIR).
После того, как система управления разработана и протестирована на моделях, имеется возможность модифицировать ее для реализации в оборудовании. Например, можно указать формат данных каждого сигнала в системе для программной реализации с использованием арифметики с фиксированной точкой [15].
Разработанную в MATLAB модель системы управления можно реализовать на встраиваемом контроллере (на основе микроконтроллера или ПЛК) посредством автоматической генерации программного кода. С этим подходом разработчик может получить очень эффективный код для своего контроллера и избежать ошибок, которые могут произойти при интерпретации функционала модели MATLAB во время ручного написания программы, реализующей систему управления в реальном аппаратном обеспечении. Имеется возможность транслировать функционал модели системы управления в следующее представление:
• ANSI/ISO С и C++ код для микропроцессоров и микроконтроллеров; [2]
логических контроллеров (ПЛК, PLC) и программируемых контроллеров автоматизации (РАС);
• Verilog и VHDL код для цифровых программируемых логических интегральных схем (ПЛИС, FPGA).
MATLAB предоставляет инструменты для всестороннего тестирования систем управления, используя моделирование, тестирование в реальном времени и методы формальной верификации.
Тестирование алгоритмов управления позволяет найти проектные ошибки прежде, чем создать аппаратные средства и создать производственное программное обеспечение. Такое тестирование на ранних стадии уменьшает потребность в дорогих и труднодоступных прототипах, а также экспериментах с реальным объектом управления. Чтобы выполнить тестирование при моделировании необходимо объединить модель объект управления и алгоритм управления в одну модель и проверить поведение системы с обратной связью. Для эффективной проверки можно разработать модель объекта управления большей точности, используя дополнительные экспериментальные данные или используя сторонние модели, предоставляемые в рамках программы MathWorks Connections Program.
Если моделирование в реальном времени или физический прототип системы доступны, можно выполнить тестирование алгоритма управления в реальном времени. Возможные варианты для этого:
- • реализация системы управления на встраиваемом контроллере (или его макете) и тестирование с прототипом объекта управления (часто это называется быстрое прототипирование систем управления); [3]
- • моделирование системы управления и части объекта управления в реальном масштабе времени, синхронно с работой физических прототипов отдельных частей объекта управления - все также в рамках HIL-тестирования.
MATLAB обеспечивает дополнительные инструменты для верификации и тестирования разработанных систем управления, которые включают контроль выполнения алгоритмов управления:
- • запуск тестовых ситуаций (test cases) при моделировании системы управления и анализ покрытия кода, включая покрытие по веткам/условиям (MC/DC);
- • использование методов формальной верификации для автоматического построения тестов, которые обеспечивают 100 % покрытие кода управляющей логики;
- • отладка кода в аппаратном обеспечении, реализующем функции регулятора, с выводом диагностических сообщений и трассировкой ошибок.
- [1] поддержка усовершенствованных стратегий управления, такихкак рабастное управление, управление по прогнозирующей модели и нечеткая логика.
- [2] IEC 61131 структурированный текст (ST) для программируемых
- [3] моделирование системы управления в реальном масштабе времени, синхронно с работой физического объекта управления, осуществляя взаимодействие модели с датчиками и актуатарами через специальное аппаратное обеспечение - такой подход называется hardware-in-the-loop (HIL) тестирование;