МОДЕЛИРОВАНИЕ СИСТЕМ УПРАВЛЕНИЯ В ПАКЕТЕ SIMULINK




Лабораторная работа №4

 

Цель работы: освоение методов моделирования линейных систем в пакете Simulink.

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

Необходимо:

1. построить и отредактировать модель систем управления в пакете Simulink;

2. построить переходные процессы для выходной координаты и управляющего воздействия;

3. изучить метод компенсации постоянных возмущений с помощью ПИД-регулятора.

 

Теоретические сведения

 

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

Начать работу с Simulink можно двумя способами:

1. Щелкнуть мышью на значке Simulink в панели инструментов MatLab.

2. Ввести Simulink в командной строке на экране.

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

1. Щелкнув на кнопке New в панели инструментов броузера главной библиотеки (только в Windows).

2. Выбрав сначала New в раскрывающемся меню опции File в окне библиотеки, а затем выбрав Model.

Simulink содержит стандартную библиотеку блоков. Она составлена из подблоков в соответствии с их функциональным назначением. Эти подблоки таковы:

- Источники сигналов (Sources);

- Средства регистрации (Sinks);

- Элементы дискретных систем (Discrete);

- элементы непрерывных систем (Continuous);

- математические операции (Math);

- Функции и таблицы (Functions & Tables);

- Нелинейности (Nonlinear);

- Сигналы и системы (Signals & Systems).

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

Блоки имеют названия. Для того чтобы изменить название, надо щелкнуть по нему ЛКМ и отредактировать текст.

Каждый блок имеет свои настраиваемые свойства. Для их изменения надо дважды щелкнуть на блоке и изменить нужные значения в диалоговом окне.

Для того, чтобы повернуть блок на 90 градусов, надо выделить его и нажать клавиши Ctrl+R. Комбинация Ctrl+I позволяет выполнить зеркальное отражение входов и выходов.

Верхнее меню Format предназначено для изменения оформления выделенного блока. Также для этой цели можно использовать контекстное меню ПКМ – Format. Для выделенного блока можно изменить цвет текста и линий (Foreground color), цвет фона (Background color), вывести тень (Show drop shadow), переместить название на другую сторону (Flip name).

Для выделения одного блока или соединительной линии надо щелкнуть ЛКМ по нужному элементу. Для того, чтобы выделить несколько блоков, надо «обвести» их при нажатой ЛКМ. Клавиша Delete удаляют выделенную часть. Чтобы скопировать блок (или выделенную часть), надо перетащить его при нажатой правой кнопке мыши (ПКМ).

Блоки соединяются линиями связи, по которым распространяются сигналы. Для того чтобы соединить блоки, надо щелкнуть ЛКМ по источнику сигнала и затем, при нажатой клавише Ctrl, по блоку-приемнику. Можно также протянуть мышкой линию связи между нужными выходом и входом.

Чтобы подать один сигнал на два блока (сделать «развилку»), надо сначала создать одну линию обычным способом. Чтобы провести вторую линию, следует нажать правую кнопку мыши на линии в точке развилки и протащить линию ко второму блоку.

Модель можно скопировать в буфер обмена в виде растрового рисунка. Для этого в окне модели надо выбрать в верхнем меню пункт Edit – Copy model to clipboard. Предварительно лучше уменьшить размеры окна до минимальных, чтобы не было белых полей.

Для того чтобы запустить моделирование, надо щелкнуть ЛКМ по кнопке на панели инструментов. Эта же кнопка позволяет остановить моделирование при необходимости.

Параметры моделирования (метод интегрирования, обработка ошибок) устанавливаются с помощью окна Simulation – Parameters. Самые важные параметры – это время моделирования (Stop time) и метод численного интегрирования уравнений (Solver options).

Основные источники сигналов (Sources)

Constant – сигнал постоянной величины.
Step – ступенчатый сигнал, меняется время скачка (Step Time), начальное (Initial Value) и конечное значение (Final Value).
Ramp – линейно возрастающий сигнал с заданным наклоном (Slope). Можно задать также время начала изменения сигнала (Start Time) и начальное значение (Initial Value).
Pulse Generator – генератор прямоугольных импульсов, задаются амплитуда (Amplitude), период (Period), ширина (Pulse Width, в процентах от периода), фаза (Phase Delay).
Sine Wave – синусоидальный сигнал, задается амплитуда (Amplitude), частота (Frequency), фаза (Phase) и среднее значение (Bias).

Основные устройства вывода (Sinks)

Display – цифровой дисплей, показывает изменение входного сигнала в цифровом виде.
Scope –осциллограф, показывает изменение сигнала в виде графика, позволяет передавать данные в рабочую область Matlab для последующей обработки и оформления.

Линейные системы (Continuous)

Transfer Fcn – передаточная функция, в параметрах задаются числитель (Numerator) и знаменатель (Denominator) в виде полиномов.
State Space – модель в пространстве состояний, в параметрах задается четверка матриц, определяющих модель, и начальные условия для вектора состояния (Initial conditions).
Integrator – интегратор с возможностью установки начальных условий (Initial condition), а также пределов насыщения (Lower saturation limit и Upper saturation limit). Когда сигнал выхода выходит за границы, определяемые этими пределами, интегрирование прекращается.

Другие часто используемые блоки

Math Operations

Gain – усилитель, задается коэффициент усиления (Gain).
Sum – сумматор, используется для сложения и вычитания входов. Параметр List of signs задает количество входов, их знаки («+» для сложения и «–» для вычитания). Промежутки между входами (обозначаются знаком |).

Signal Routing

Mux – мультиплексор, объединяет несколько сигналов в один «жгут» (векторный сигнал), в параметрах задается число входов (Number of Inputs).
Demux – демультиплексор, позволяет «разбить» векторный сигнал на несколько скалярных, в параметрах задается число выходов (Number of Outputs).

Оформление графиков

Для создания нового окна для рисунка в Matlab используется команда

>> figure(1);

В Matlabесть возможность строить несколько графиков на одном рисунке. Иначе говоря, рисунок можно разбить на «клетки», в каждой из которых строится отдельный график. Для этого надо сделать активным нужный рисунок и применить команду

>> subplot(2, 1, 1);

Первое число в команде subplot показывает количество «строк» в такой матрице, второе – количество столбцов, третье – какой по счету график сделать активным (считая по строкам, справа налево и сверху вниз).

Двоеточие означает «все строки» или «все столбцы». Например, по команде

>> plot(x(:,1), x(:,2));

строится зависимость между первым и вторым столбцами массива x (здесь двоеточие вместо первого индекса обозначает «все строки»).

Для оформления графика также используются команды

title заголовок графика

xlabel название оси абсцисс

ylabel название оси ординат

У всех этих команд обязателен один аргумент – текст в апострофах.

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

 

Описание системы

 

В работе рассматривается система управления, структурная схема которой показана на рисунке 1.

Рис. 1. Структурная схема системы стабилизации выходной координаты y.

 

Передаточная функция объекта:

,

uде – постоянная времени, – коэффициент усиления объекта.

Привод приближенно моделируется как интегрирующее звено

,

охваченное единичной отрицательной обратной связью.

Для измерения регулируемой координаты используется измерительная система, математическая модель которой записывается в виде апериодического звена первого порядка с передаточной функцией:

.

Исследуются переходные процессы в системе при использовании ПД-регулятора

,

и ПИД-регулятора

.

 

Последовательность выполнения работы

 

Лабораторная работа выполняется в следующей последовательности:

1. Запустите пакет Simulink и создайте новую модель

2. Перетащите блоки Transfer Fcn (передаточная функция) из окна Simulink Library Browser (группа Continuous) в окно модели и введите числители и знаменатели передаточных функций объекта, привода, измерительной системы и ПД-регулятора. Дайте им названия. Заметьте, что передаточная функция привода должна быть с учетом внутренней обратной связи. Сохраните модель.

3. Выберите цвет блоков на свой вкус (ПКМ – Format – Background color), и разверните блок Измерительной системы в другую сторону.

4. Перетащите в окно модели блок Sum из группы Math Operations и установите его слева от регулятора. Сделайте так, чтобы второй вход учитывался в сумме со знаком минус (отрицательная обратная связь) (в поле List of signs).

5. Перетащите в окно модели блок Step из группы Sources и установите его слева от сумматора. Дайте ему имя Задание. Установите время подачи сигнала 0 и величину сигнала 10 (0 в поле Step time, 10 в поле Final value).

6. Соедините все блоки нужным способом.

7. Перетащите в окно модели два блока Scope (осциллограф) из группы Sinks и установите их в правой части. Сделайте, чтобы на первый блок Scope поступал сигнал управления (после привода), а на второй ­– сигнал выхода. Сохраните модель.

8. Установите время моделирования 100 секунд и выполните моделирование. Посмотрите результаты.

9. Для того чтобы результаты моделирования передавались с обоих блоков Scope в рабочую область Matlab в виде матриц, в которых первый столбец – время, а второй – сигнал нужно щелкнуть по кнопке вкладка Data history

Variable name: phi (выход) или delta (управление)

Format: Array.

10. Выполните моделирование еще раз.

11. Перейдите в командное окно Matlab и создайте новое окно для графика с помощью команды figure (1). Разбейте окно на 2 части по вертикали и сделайте активным первый график с помощью команды subplot (2, 1, 1). Постройте график изменения выходной координаты с помощью команды plot(phi(:, 1), phi(:, 2)). В команде plot сначала указывают массив абсцисс, затем – массив ординат. Двоеточие означает, что используются все строки.

12. Введите заголовок графика (title(‘…’)) и названия осей координат (xlabel (‘Время, сек’); ylabel (‘\phi’).

13. Аналогично постройте во второй ячейке график изменения управляющего сигнала, используя данные из массива delta, полученного в результате моделирования.

14. Добавьте еще один блок Sum из группы Math Operations и установите его на входе объекта. Скопируйте блок Задание, перетащив его правой кнопкой мыши, и установите для него величину скачка 2 градуса. Дайте ему название Возмущение. Подключите его выход к новому сумматору. Достройте нужные соединительные линии. Выполните моделирование. Проверьте, достигла ли управляемая величина заданного значения 10. Скопируйте полученную модель в отчет (Edit – Copy model to clipboard).

15. Перейдите в командное окно Matlab и запомните результаты моделирования в новых массивах (phi0 = phi; delta0 = delta). Они понадобятся для того, чтобы сравнить исходный и скорректированный варианты системы.

16. Добавьте к ПД-регулятору интегральную составляющую. Для этого подключите параллельно регулятору интегрирующее звено с передаточной функцией , сек. Выполните моделирование.

17. Постройте в верхней части графика 2 кривых – переходные процессы по курсу для ПД- и ПИД-регуляторов. В команде plot можно перечислять несколько пар массивов – первая пара соответствует первому графику, вторая – второму и т.д. Три точки в конце строки означают перенос команды на следующую строку. Команда legend служит для вывода легенды – символьных строк, описывающих каждый из построенных графиков:

subplot(2, 1, 1);

plot(phi0(:,1), phi0(:,2),...

phi (:,1), phi(:,2));

title('…');

xlabel('Время, сек');

ylabel('\phi');

legend('ПД-регулятор',...

'ПИД-регулятор');

18. Аналогично постройте в нижней части графика 2 кривых – изменение угла перекладки руля для ПД- и ПИД-регуляторов, используя данные из массивов delta0 и delta.

19. Постройте передаточную функцию разомкнутой системы с ПИД-регулятором. Определите запасы устойчивости.

 

Методический пример

Исследуется система управления обладает передаточной функцией:

, где , сек,

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

, где сек,

Измерительное устройство моделируется как апериодическое звено с передаточной функцией

, сек,

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

, где , сек, сек,

Модель системы с ПД-регулятором:

Передаточная функция по возмущению для системы с ПД-регулятором

0.003813 р^3 + 0.006355 р^2 + 0.00286 р + 0.0003178

------------------------------------------------------------------

р^5 + 1.722 р^4 + 0.8416 р^3 + 0.1245 р^2 + 0.008877 р + 0.0002239

Передаточная функция ПИД-регулятора:

, где , сек, сек, сек,

Модель системы с ПИД-регулятором с учетом внешнего возмущения:

Передаточная функция по возмущению для системы с ПИД-регулятором

0.003813 p^4 + 0.006355 p^3 + 0.00286 p^2 + 0.0003178 p

-----------------------------------------------------------------------------------

p^6 + 1.722 p^5 + 0.8416 p^4 + 0.1245 p^3 + 0.008877 p^2 + 0.0002255 p + 1.589e-006

Переходные процессы в системах с ПД- и ПИД-регуляторами:

Передаточная функция разомкнутой системы с ПИД-регулятором

0.004298 р^2 + 0.0002255 p + 1.589e-006

--------------------------------------------------------

p^6 + 1.722 p^5 + 0.8416 p^4 + 0.1245 p^3 + 0.004579 s^2

Контрольные вопросы

1. Как запустить пакет Simulink?

2. Что такое Library Browser?

3. Как создать новую модель?

4. Как сделать, чтобы один и тот же сигнал поступал на несколько блоков?

5. Как передать результаты моделирования в рабочую область Matlab? В каком виде они передаются?

6. Как скопировать изображение модели в документ Microsoft Word?

7. Как изменить время моделирования?

8. Как ввести параметры блока Transfer Fcn (передаточная функция)?

9. Почему при использовании ПД-регулятора система не компенсирует постоянное возмущение?

10. Как, зная статический коэффициент усиления по возмущению, определить установившееся отклонение?

11. Какие преимущества дает использование интегрального канала в ПИД-регуляторе?

12. Какие параметры принимает команда subplot?

13. Что означает двоет꘦чие в записи phi(:,1)?

14. Как вывести на график заголовок и названия осей?

15. Как построить в одном окне два разных графика?

16. Как на одном графике построить несколько кривых?

17. Что такое легенда? Как вывести легенду на график?

Таблица коэффициентов

Вариант , сек Вариант , сек
1. 0.06 16.0 2. 0.06 17.6
3. 0.07 16.2 4. 0.07 17.8
5. 0.08 16.4 6. 0.08 18.0
7. 0.07 16.6 8. 0.09 18.2
9. 0.06 16.8 10. 0.10 18.4
11. 0.07 17.0 12. 0.09 18.6
13. 0.08 17.2 14. 0.08 18.8
15. 0.07 17.4 16. 0.07 19.0

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: