aeshnik


Уменьшая скорость роста энтропии вселенной


Previous Entry Share Next Entry
Как работает Simulink: от модели объекта до разработки алгоритмов
aeshnik
В предыдущем посте я рассказал о том, как работает Simulink, сославшись на физическое (акаузальное) моделирование, коротко описанное в отдельном посте. Последнему я посвящу отдельно несколько постов позже. Сейчас мы поговорим о разработке алгоритмов и, в итоге, программного обеспечения.

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

Раз мы разрабатываем программу, давайте посмотрим на V-диаграмму. Это фундаментальная диаграмма, применимая также и к разработке систем (но не только к разработке ПО).
Рис. 1. V-диаграмма.
Рис. 1. V-диаграмма.

Давайте разберемся. По горизонтали, как видно, отмечено время. Наша работа начинается с левой верхней части. Мы постепенно спускаемся вниз от стадии получения запросов и преобразования их в требования, разработки архитектуры системы к реализации разработки, проходя этапы разбиения большой задачи на подзадачи и детальной проработки компонентов. Мы в самом низу: у нас есть проработанные компоненты (описанный объект с подсистемами, алгоритмы управления). Настало время верифицировать эти компоненты (проверить, соответствуют ли они требованиям: учли ли мы, что у велосипеда диаметр колес должен быть таким-то), собрать их в единую систему, верифицировать ее и провести ее валидацию (проверить, поедет ли велосипед).

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

Вспомним, что я в прошлом посте упомянул, что в Simulink можно описывать дискретные, импульсные, нелинейные системы. Это значит, что в рамках одной модели могут сосуществовать существенно различные по поведению компоненты. Значит, и алгоритм управления (даже код, написанный на C\C++) может вычисляться (исполняться - англичане употребляют слово simulate) в единой среде. Это одно из важных преимуществ Simulink: в нем мы не только описываем объект управления, состоящий из разных подсистем, но и разрабатываем алгоритм, проверяя общую систему (замкнутую систему) в любой момент времени.

Это важный пост для последующих этапов. Но, чтобы быть верным традициям, я покажу что-то интересное и неочевидное в нем тоже. В Simulink есть блок под названием PID Controller. С его помощью можно реализовать самый популярный в промышленности алгоритм управления - ПИД-регулятор. Задача настройки ПИД-регулятора в общем случае сводится к подбору трех коэффициентов усиления. Это можно делать методом проб и ошибок, а можно использовать Simulink Control Design для автоматической линеаризации и подбора параметров, задавая, например, желаемое быстродействие системы. Давайте посмотрим видео.

Видео 1. Настройка ПИД-рекулятора.

В замкнутой системе слежения есть нелинейный объект и блок PID Controller. Желаемое значение сигнала отображается красным на графике. То, что мы получаем с объекта - синим. Настройка параметров ПИД-регулятора происходит автоматически при помощи Simulink Control Design (при этом происходит линеаризация объекта управления). После настройки регулятор применяется к исходной нелинейной системе и дает удовлетворительный результат.

Источники дополнительной информации:
  1. документация по Simulink Control Design;
  2. раздел документации Simulink Control Design по автоматической настройке параметров ПИД регулятора;
  3. интерактивный курс по настройке систем управления;
  4. тренинг "MATLAB и Simulink для быстрой разработки систем управления".
  5. лекции Анатолия Левенчука ailev по системной инженерии.

?

Log in

No account? Create an account