
- •Содержание
- •Введение
- •Взаимосвязь основных характеристик динамических систем
- •Частотные характеристики
- •Корневые методы анализа
- •Переходный процесс
- •Программа «sisOdesign tool»
- •Пакет визуального моделирования «Simulink»
- •Курсовое проектирование
- •Коррекция системы управления. Синтез регулятора
- •Литература
Пакет визуального моделирования «Simulink»
Знакомство с Simulink
Пакет Simulinkпозволяет осуществлять моделирование поведения динамических линейных и нелинейных систем путем сборки на экране схемы соединений элементарных стандартных или пользовательских звеньев.
Запустить Simulinkиз Matlabможно несколькими способами, самый простой – нажать кнопку запускаSimulinkна панели инструментов окнаMatlab(см. рис. 4.1). В результате на экране должно появиться окноSimulink Library Browser(Браузер библиотек Simulink). Это окно представлено на рис. 6.1.
На некоторых компьютерах возможны проблемы при сохранении и открытии моделей. В таком случае перед запуском Simulink нужно ввести следующую команду в окно команд Matlab: slCharacterEncoding('cp1252').
В левой половине окна приведен перечень библиотек блоков, внутри библиотеки блоки сгруппированы по разделам. Основная библиотека называется Simulink. В правой половине окна представлены блоки из текущего раздела, а в верхней части окна представлено краткое описание текущего блока.
Для того чтобы создать новую модель Simulink,можно воспользоваться соответствующей кнопкой на панели инструментов окнаSimulink Library Browserили воспользоваться менюFile->New->Model. Открыть ранее созданную модель можно аналогичным образом, воспользовавшись соответствующей кнопкой на панели инструментов или с помощью менюFile->Open.
Рис. 6.1. Окно Simulink Library Browser (Браузер библиотек Simulink)
После нажатия кнопки создания новой модели должно появиться окно модели, подобное представленному на рис. 6.2. Окно имеет строку меню, панель инструментов и рабочее поле.
Меню Fileсодержит команды, предназначенные для работы с файлами моделей; менюEdit– команды редактирования блок-схемы; менюView– команды изменения внешнего вида окна; менюSimulation– команды управления процессом моделирования; менюFormat– команды, позволяющие изменить внешний вид блоков и блок-схемы в целом. МенюToolsвключает дополнительные сервисные средства для работы с моделью.
На панели инструментов имеется кнопка запуска процесса моделирования, а также поле для ввода времени моделирования в секундах (сколько секунд модельного времени нужно обсчитать).
Для сборки модели из библиотечных блоков нужно расположить окно Simulink Library Browserи окно модели таким образом, чтобы они были одновременно видны. Затем с помощью мыши (удерживая левую кнопку) надо перетащить необходимые блоки из библиотеки в рабочее поле окна модели, расположить блоки в нужном порядке и соединить их связями.
Рис. 6.2. Окно редактируемой модели
Соединение блоков осуществляется следующим образом: указатель мыши подводят к определенному выходу нужного блока (при этом указатель должен приобрести форму крестика), нажимают левую кнопку и, не отпуская ее, перемещают указатель к нужному входу другого блока, а потом отпускают кнопку. Если соединение осуществлено верно, на входе последнего блока появится изображение черной стрелки, и линия, соединяющая блоки, будет также черной (как на рис. 6.2). Связь можно проводить не только от выхода ко входу, но и в обратном направлении, от входа к выходу.
Чтобы к уже существующей линии соединения блоков подключить еще один блок, нужно действовать следующим образом: указатель мыши подвести ко входу подключаемого блока, нажать левую кнопку мыши и, не отпуская, подвести указатель к уже имеющейся линии, затем отпустить кнопку мыши в точке присоединения линий связи. Так можно подключать к одному выходу сразу несколько блоков параллельно.
Другой способ соединения блоков – выделить выходной блок, щелкнув по нему левой кнопкой мыши, нажать и удерживать кнопку Ctrl, затем щелкнуть левой кнопкой по входному блоку и отпуститьCtrl.
Линию соединения можно создать и в несколько приемов, т. е. проводя ее сегментами. В этом случае линию не доводят до входа следующего блока и отпускают кнопку мыши в том месте, где закончится сегмент (не подсоединенная линия связи будет отображаться при этом красным пунктиром). Чтобы продолжить линию, указатель мыши подводят к концу незавершенной линии, нажимают левую кнопку и, не отпуская ее, ведут указатель ко входу блока или месту окончания очередного сегмента.
Для отсоединения блока от линии связи следует поместить указатель на изображении блока, нажать клавишу Shiftи, не отпуская ее, перетянуть блок в другое место.
Чтобы изменить ориентацию блока, нужно сделать следующее: выделить блок, который нужно повернуть, открыть меню Formatв окне блок-схемы и выбрать командуFlip Block для поворота блока на 180°илиRotate Blockдля поворота блока на 90°по часовой стрелке.
Для изменения размеров блока необходимо выделить нужный блок, установить указатель на одну из угловых меток блока (возле этой метки должен появиться указатель в виде двунаправленной стрелки, расположенной под углом 45°), захватить метку мышью и перетянуть в новое положение; противоположная метка при этом останется неподвижной.
Для удаления линии связи или блока надо выделить соответствующий элемент щелчком левой кнопки мыши, а затем нажать кнопку Delete.
Чтобы выделить группу элементов рамкой выделения, надо щелкнуть левой кнопкой мыши в точке, которая будет левым верхним углом рамки, и, не отпуская кнопку, вести указатель по диагонали, пока нужные элементы не будут охвачены рамкой, затем отпустить кнопку.
Отмена последнего действия с блок-схемой осуществляется при помощи комбинации клавиш Cltr+Z. Чтобы скопировать блок, уже находящийся в рабочем поле, нужно перетащить копируемый блок в новое место, зажав правую кнопку мыши; исходный блок при этом останется на прежнем месте.
Обзор библиотеки Simulink
Библиотека Simulinkсостоит из следующих основных разделов:
Sources– источники сигналов и воздействий;
Sinks– приемники (регистрирующие устройства);
Continuous– линейные блоки;
Discontinuities– типовые нелинейности;
Math– блоки математических операций;
Discrete– дискретные блоки;
Signal Routing– блоки для управления сигналами;
User Defined Functions– функции, определенные пользователем;
В состав библиотеки Simulinkвходят и другие разделы, в частности разделCommonly Used Blocks содержит наиболее часто используемые блоки из других разделов. В данном пособии приведено описание только самых основных блоков из библиотеки. С полным описанием библиотек блоков можно ознакомиться в руководстве пользователя или на сайтеhttp://www.exponenta.ru.
Большинство блоков перед использованием требуют настройки параметров. Окно параметров блока открывается двойным щелчком левой кнопкой мыши по блоку.
Раздел Sources
В разделе Sourcesсобраны блоки – источники входных воздействий. Наиболее часто используемые блоки (рис. 6.3):
Рис. 6.3. Блоки из раздела SourcesбиблиотекиSimulink
Constant– выдает на выход сигнал постоянного уровня (константу). Выходная величина задается параметромConstant Value;
In1– блок используется для обозначения входа в модель;
Ramp– выдает на выход линейно нарастающий сигнал. Параметры блока:Slope– коэффициент наклона,Start time– момент времени, с которого начнется нарастание сигнала,Initial output– начальное значение на выходе.
Sine Wave – генерирует синусоидальный сигнал. Параметры блока:Amplitude– амплитуда,Bias– смещение;Frequency – частота (рад/с);Phase– начальная фаза (рад). Выходной сигналO (t) вычисляется по формуле:
O (t) = Amplitude*SIN (Frequency*t+ Phase) + Bias;
Step– выдает на выход единичную ступенчатую функцию. Параметры блока:Step time– время скачка;Initial value– начальное значение (до скачка),Final value– значение после скачка.
Раздел Sinks
В разделе Sinks собраны блоки – приемники сигнала. Наиболее часто используемые блоки (рис. 6.4):
Рис. 6.4. Блоки из раздела SinksбиблиотекиSimulink
Out– используется для обозначения выхода модели;
Scope– осциллограф, строит график изменения сигнала во времени. По умолчанию количество отображаемых точек данных ограничено 5000. Для масштабирования сигнала, чтобы он был виден целиком, нужно нажать кнопку с изображением бинокля. Чтобы увеличить отдельный фрагмент сигнала можно воспользоваться лупой;
To Workspace– блок для переноса сигнала, полученного в результате моделирования из моделиSimulinkв рабочую областьMatlab. Основные параметры блока:Variable name– имя переменной в рабочей области, в которой будут сохранены отсчеты сигнала,Save format – формат переменной; для удобства работы надо заменитьStructure (по умолчанию) наArray. Следует учитывать, что в большинстве случаев отсчеты сигнала следуют с неравномерным интервалом, поэтому вMatlabдля построения графиков в командеplot следует указывать два параметра: и вектор времениtout,и имя переменной.
Раздел Continuous
Раздел Continuous содержит блоки для построения линейных систем. Наиболее часто используемые блоки (рис. 6.5):
Рис. 6.5. Блоки из раздела ContinuousбиблиотекиSimulink
Derivative– дифференцирующее звено. Единственный параметр – постоянная времени дифференциатора; для идеального дифференцирующего звена она равнаInf;
Integrator – интегрирующее звено. ПараметрInitial condition– начальное состояние на выходе интегратора;
State-Space– линейная система в форме пространства состояний. ПараметрыA ,B, C, D– для ввода коэффициентов соответствующих матриц состояния,Initial conditions– для ввода вектора начальных условий;
Transfer Fcn– линейная система в виде передаточной функции произвольного порядка, коэффициенты которой задаются в параметрах блока:Numerator coefficient(коэффициенты числителя) иDenominator coefficient(коэффициенты знаменателя). Коэффициенты указываются в порядке от старших степеней к младшим;
Zero-Pole– линейная система с передаточной функцией с разложением на простые множители (в виде нулей и полюсов). Параметры блока:Zeros– нули,Poles– полюсы,Gain– коэффициент усиления;
Transport Delay– звено чистого запаздывания. Параметры блока:Time delay– величина задержки в секундах,Initial output– начальное состояние.
Раздел Discontinuities
Раздел Discontinuities содержит блоки, реализующие типовые нелинейности. Наиболее часто используемые блоки (рис. 6.6):
Рис. 6.6. Блоки из раздела Discontinuities библиотеки Simulink
Dead Zone– зона нечувствительности. ПараметрыStart of dead zoneиEnd of dead zone– начало и конец зоны нечувствительности;
Relay– релейный элемент. Параметры блока:Switch on point– точка включения реле,Switch off point– точка отключения,Output when on– значение на выходе во включенном состоянии,Output when off– значение на выходе в отключенном состоянии;
Saturation– насыщение. Параметры блока:Upper limit– верхний предел,Lower limit– нижний предел.
Раздел Math
Раздел Math содержит блоки, реализующие математические операции. Наиболее часто используемые блоки (рис. 6.7):
Рис. 6.7. Блоки из раздела MathбиблиотекиSimulink
Abs– выдает на выход абсолютное значение сигнала со входа;
Add– сумматор. В полеList of signsсимволами ‘+’ и ‘-‘ задается вид операции и количество входов. ПараметрIcon shapeопределяет форму представления блока в блок-схеме (round– круг,rectangular– прямоугольник);
Sum– идентичен блокуAdd,но имеет по умолчанию другие настройки формы блока;
Substract– идентичен блокуAdd,но имеет по умолчанию другие настройки входов;
Divide– делитель/умножитель. В полеNumber of inputsсимволами ‘*’ и ‘/‘ задается вид операции и количество входов. Входы, соответствующие ‘*’ будут в числителе результирующего сигнала, а входы ‘/‘ – в знаменателе. Также вместо символов ‘*’ и ‘/‘ можно указать число перемножаемых входов;
Product– идентичен блокуDivide,но имеет по умолчанию другие настройки входов;
Dot Product– скалярное произведение двух сигналов;
Gain– усилитель. ПараметрGainзадает коэффициент усиления;
Complex to Magnitude-Angle– выдает на выходы модуль и фазу комплексного сигнала;
Complex to Real-Imag– выдает на выходы вещественную и мнимую части комплексного сигнала;
Magnitude-Angleto Complex– преобразует модуль и фазу в комплексное число;
Math Function– преобразует входной сигнал выбранной математической функцией. Математическая функция (экспонента, логарифм, синус и пр.) задается параметромFunction;
Trigonometric Function– преобразует входной сигнал выбранной тригонометрической функцией. Математическая функция (sin,cos,tanи пр.) задается параметромFunction;
Real-Imag toComplex – выдает на выход комплексное число с заданными на входах вещественной и мнимой частями;
Sign– реализует математическую операциюy=signum(x). Выдает на выход 1 для положительного входного сигнала, -1 – для отрицательного и 0 – для нулевого;
Unary Minus– инвертирует сигнал, умножая на -1.
Раздел Discrete
Раздел Discrete содержит блоки для построения дискретных линейных систем. Наиболее часто используемые блоки (рис. 6.8):
Рис. 6.8. Блоки из раздела MathбиблиотекиSimulink
Difference – разность, выдает на выход разность текущего и предыдущего значений входного сигнала. Единственный параметр задает начальное состояние – предыдущее значение входного сигнала в нулевой момент времени;
Discrete Transfer Fcn– дискретная линейная система в виде передаточной функции. Параметры блока:Numerator coefficient– коэффициенты числителя,Denominator coefficient– коэффициенты знаменателя. Коэффициенты указываются в порядке от старших степеней к младшим;
Discrete State-Space– дискретная линейная система в форме пространства состояний. ПараметрыA ,B, C, D– для ввода коэффициентов соответствующих матриц состояния,Initial conditions– для ввода вектора начальных условий;
Discrete Zero-Pole– дискретная линейная система с передаточной функцией с разложением на простые множители (в виде нулей и полюсов). Параметры блока:Zeros– нули,Poles– полюсы,Gain– коэффициент усиления;
First-Order Hold– экстраполятор первого порядка;
Zero-Order Hold– экстраполятор нулевого порядка;
Unit Delay– задерживает сигнал на один шаг. Начальное состояние задается параметромInitial conditions;
Integer Delay– задерживает сигнал на несколько шагов. ПараметрNumber of delays – определяет количество шагов, на которое задерживается сигнал на выходе. Начальное состояние задается параметромInitial conditions.
Раздел Signal Routing
Раздел Signal Routing содержит блоки для управления линиями соединения. Наиболее часто используемые блоки (6.9):
Рис. 6.9. Блоки из раздела Signal Routing библиотеки Simulink
Manual Switch – ручной переключатель сигналов. Имеет два входа и один выход, двойным щелчком мыши по блоку можно подсоединить к выходу либо первый, либо второй вход;
Mux – мультиплексор, объединяет несколько сигналов в одну шину. Параметр Number of inputs – определяет количество входов. Позволяет выводить на один Scope несколько стгналов одновременно;
Demux – демультиплексор, разъединяет шину на отдельные сигналы. Параметр Number of outputs – определяет количество выходов.
Раздел User-DefinedFunctions
Содержит блоки, выполняющие функции, определенные пользователем. Чаще всего используется блок Fcn.
Рис. 6.10. Блок Fcn из раздела User-Defined Functions библиотеки Simulink
С помощью этого блока в блок-схеме можно реализовать сложную математическую функцию. Параметр блока Expression– предназначен для ввода математического выражения. Аргумент математического выраженияu– входной сигнал. Если сигнал векторный, компоненты сигнала указываются с помощью числового индексаu(1), u(2)и т.д. Индексация начинается с единицы, а для скалярных сигналов индекс можно не указывать и записывать простоu.
Выражение может содержать:
числовые константы (pi, 1.0, 10^3 и пр.);
арифметические операторы (+ - * / ^);
операторы отношения (== != > < >= <=). Если результат таких операций истина, выражение примет значение 1, иначе – 0;
логические операторы (&& || !). Если результат таких операций истина, выражение примет значение 1, иначе – 0;
скобки ();
математические функции abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, and tanh;
переменные из рабочей области Matlab.
Например, чтобы получить среднегеометрическое двухкомпонентного сигнала, запишем в поле Expressionвыражение:sqrt(u(1)^2+u(2)^2).
Создание подсистем
Иногда возникает необходимость объединить группу блоков на схеме в подсистему, чтобы не улучшить читаемость и сократить число блоков. Для того чтобы создать подсистему нужно: рамкой выделить блоки, которые должны войти в подсистему; открыть меню Editи выбрать командуCreate Subsystem. В результате выделенная группа элементов будет заменена одним блоком-подсистемой, входы и выходы которого будут соединены с остальной частью схемы. Чтобы увидеть структуру блока-подсистемы нужно дважды щелкнуть по нему левой кнопкой мыши. В результате откроется окно с блок-схемой подсистемы.
На рис. 6.11 приведена исходная модель, а на рис. 6.12 представлена модель после объединения блоков Transfer FcnиIntegratorв подсистему. А на рис. 6.13 приведена структура подсистемы.
Рис. 6.11. Исходная модель
Рис. 6.12. Модель после объединения нескольких блоков в подсистему
Рис. 6.13. Структура подсистемы
Пример создания модели в Simulink
Проиллюстрируем
процесс построения блок-схемы на примере
простейшей линейной системы регулирования.
Сначала создадим новую пустую блок-схему
модели описанным ранее способом. Затем
перенесем из библиотеки блоки Step,
Sum, Transfer
Fcn, Integrator,
Scope, Gainи расположим их, как показано на рис.
6.14. Изменим параметрList
of signsблокаSum на «»,
чтобы нижний вход был со знаком минус.
Выделим блокGainи
изменим его ориентацию, повернув на
180º. Далее соединим
блоки Step, Sum, Transfer Fcn,
Integrator, Scope, (рис.
6.15). Проведем линию связи от выхода
блокаGainдо сумматора
и от входа блокаGainдо линии связи блоковIntegratorиScope. В результате
должна получиться модель рис. 6.16.
Рис. 6.14. Блоки для построения модели
Рис. 6.15. Создание связей между блоками
Рис. 6.16. Модель простейшей линейной системы регулирования
Запустим процесс моделирования и посмотрим сигнал с выхода системы на блоке Scope (рис. 6.17).
Рис. 6.17. Сигнал в блоке Scopeпосле завершения моделирования
Добавим в модель блок Mux и подключим его как показано на рис. 6.18. Такое подключение позволяет видеть в окне Scope сразу два сигнала – входное воздействие (единичный скачок) и сигнал на выходе системы регулирования как показано на рис. 6.19.
Рис. 6.18. Дополненная модель простейшей линейной системы регулирования
Чтобы добавить блок-схему в документ MS Word, нужно зайти в меню Edit и выбрать команду Copy Model To Clipboard. Затем нужно открыть документ Word, перевести курсор в место вставки, зайти в меню Правка и выбрать команду Вставить.
Рис. 6.19. Сигнал в блоке Scopeпосле завершения моделирования
Чтобы вставить график сигнала из окна блока Scope в документ MS Word, нужно щелкнуть левой кнопкой мыши по окну Scope и скопировать окно в буфер обмена комбинацией клавиш Alt+PrtScn. Теперь можно вставить рисунок из буфера обмена в документ MS Word. Однако у рисунка, созданного таким образом, есть один недостаток – черный фон, что неудобно при печати документа. Один из методов исправить ситуацию – обработать изображение в редакторе MS Paint. Для этого нужно запустить редактор через меню «Пуск», зайти в меню Изображение, выбрать команду Атрибуты и установить размер
1* 1. Затем надо вставить рисунок из буфера обмена в редактор MS Paint, зайти в меню Изображение и выбрать команду Обратить цвета. И, наконец, зайти в меню Правка, выбрать команду Выделить все, в том же меню выбрать команду Копировать, перейти в MS Word и вставить обработанное изображение.