Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ыбулин А.М. Теория автоматического управления Лаб. раб.8. Страница 9 из 9
Цель: освоение методов моделирования нелинейных систем в пакете Simulink
Задачи работы
1.1. Модели нелинейных звеньев (Discontinuities)
Saturation насыщение, в параметрах задаются верхний и нижний пределы (Upper limit и Lower limit). |
|
Dead zone нечувствительность, «мертвая зона». В параметрах задаются пределы нечувствительности (Start of dead zone и End of dead zone). |
|
Rate Limiter ограничитель скорости изменения сигнала, в параметрах задаются пределы на скорость увеличения (Rising slew rate) и на скорость уменьшения (Falling slew rate). |
|
Relay реле, в параметрах задаются точки переключения (Switch on point и Switch off point), в также величины сигналов в режимах «включено» (Output when on) и «выключено» (Output when off). |
|
Backlash люфт, «мертвый ход». В параметрах задаются величина мертвого хода (Deadband width) и начальное значение выхода (Initial output). |
|
Coulomb and Viscous Friction кулоновское и вязкое трение. |
1.2. Подсистемы
Если на схеме много блоков, она становится громоздкой и работать с такой схемой неудобно. Чтобы не перегружать схемы, можно объединять блоки в подсистемы. Проще всего выделить нужные блоки мышкой («обвести» при нажатой ЛКМ) и нажать клавиши Ctrl+G (или выбрать пункт меню Edit Create subsystem). На основной схеме подсистема изображается как блок типа Subsystem (из группы Ports and Subsystems). Этот блок можно добавить и вручную, перетащив из окна Library Browser.
С помощью двойного щелчка ЛКМ можно «открыть» подсистему. Входы обозначаются блоками In, а выходы блоками Out (также из группы Ports and Subsystems). Можно добавлять новые входы и выходы, удалять ненужные, менять названия, работая с ними так же, как с остальными блоками.
Внутри подсистем можно создавать вложенные подсистемы. В подсистеме не может быть блоков с одинаковыми названиями, однако в разных подсистемах могут быть.
Сохранить модель можно из окна любой подсистемы, но закрытие окна подсистемы не приводит к закрытию модели.
1.3. Блок Scope (несколько сигналов)
К входу осциллографа (блока Scope) можно подключать несколько сигналов одновременно. Для этого их надо объединить в один векторный сигнал («жгут») с помощью блока Mux (мультиплексор) из группы Signal Routing.
Если используется два входных сигнала, первый изображается желтой линией, второй фиолетовой. При передаче данных в рабочую область Matlab в формате Array, массив будет содержать три столбца время, первый сигнал и второй сигнал. Если сигналов больше, соответственно увеличивается количество столбцов массива.
1.4. Скрипты
При работе в Matlab часто для получения нужного результата надо ввести последовательно несколько команд. Если выяснится, что в какой-то команде была сделана ошибка или нужно изменить исходные данные, все команды придется вводить снова. Чтобы не набирать их вручную, можно записать всю последовательность команд на диск в виде текстового файла (М-файла с расширением .m), а затем выполнять его, вызывая по имени. Такой файл называется скриптом.
Скрипт это программа, которая представляет собой список команд на языке системы Matlab. Скрипты можно создавать и редактировать в любом простейшем текстовом редакторе (например, в Блокноте), однако удобнее всего использовать встроенный редактор Matlab, в котором есть подсветка синтаксиса (команды, символьные строки, комментарии и другие элементы программы выделяются разными цветами).
В М-файле перечисляются последовательно все необходимые команды. Точка с запятой в конце команды подавляет вывод результата на экран. Можно располагать в одной строке несколько команд, разделяя их запятой (если нужен вывод результата на экран) или точкой с запятой. Если надо перенести длинную команду на следующую строчку, в конце строки ставится троеточие.
Комментарием считается все, что расположено справа от знака % до конца строки. Его можно ставить в любом месте строки, например, справа от команды Matlab.
Для вызова скрипта надо набрать его имя в командном окне Matlab и нажать клавишу Enter. Скрипт должен находиться в рабочей папке (имя которой показано в окне Current directory в верхней части командного окна) или в одной из папок, входящих в путь для поиска. В путь для поиска включены папки, в которых находятся М-файлы для стандартных функций системы Matlab и дополнительных пакетов (toolbox). Если надо, чтобы скрипт запускался из любой папки, надо включить папку, где он находится, в путь для поиска (команда File Set Path верхнего меню).
Запустить скрипт можно непосредственно из окна редактора Matlab, нажав на клавишу F5. Можно выполнить не весь скрипт, а только некоторые строки их нужно выделить и нажать клавишу F9. Можно расположить два окна (редактор и командное окно Matlab) рядом так, чтобы они не перекрывали друг друга. Тогда при выполнении скрипта (или отдельных команд) сразу будет виден результат.
Если в командах скрипта есть ошибки (или они возникли при выполнении), соответствующие сообщения выводятся в командное окно Matlab.
1.5. Форматирование графика
По умолчанию команда plot рисует на активном графике новую кривую, стирая старые линии. Для того, чтобы существующие кривые сохранились, перед вызовом plot надо выполнить команду
>> hold on
Обратная ей команда
>> hold off
восстанавливает стандартный режим.
Каждый объект на графике (оси координат, надписи, линии и т.п.) представляют собой объекты, имеющие свойства. Для того, чтобы получить значение свойства, используют команду get, а для изменение свойства команду set. Сокращение gca обозначает текущие (активные) оси координат (get current axes). Команда
>> get(gca)
выводит на экран все свойства осей и их значения. Для управления размером шрифта (он измеряется в пунктах) используется свойство Font Size:
>> get(gca, FontSize) % определить размер шрифта
ans =
10
>> set(gca, FontSize, 16) % изменить размер шрифта
Для того, чтобы настроить свойства отдельной линии, надо сначала получить ее хэндл (handle ручка, рукоятка, указатель). Так называется уникальный числовой код объекта, через который к этому объекту можно обращаться. Команда gca в самом деле возвращает хэндл текущих координатных осей. Команда
>> h = get(gca, 'Children')
записывает в переменную h массив хэндлов указателей на объекты линии. Для каждой линии можно установить толщину (в пунктах, по умолчанию 0,5 пункта) .
>> set(h(1),'LineWidth',1.5)
>> set(h(2),'LineWidth',1.5)
Аналогично можно управлять и другими свойствами.
1.6. Описание системы
В работе рассматривается система управления судном по курсу. Ее структурная схема показана на рисунке.
Структурная схема системы стабилизации судна на курсе
Линейная математическая модель, описывающая рыскание судна, имеет вид
где угол рыскания (угол отклонения от заданного курса), угловая скорость вращения вокруг вертикальной оси, угол поворота вертикального руля относительно положения равновесия, постоянная времени, постоянный коэффициент, имеющий размерность рад/сек. Передаточная функция от угла поворота руля к углу рыскания запишется в виде
.
Линейная модель привода (рулевой машины) представляет собой интегрирующее звено с передаточной функцией
,
охваченное единичной отрицательной обратной связью. На угол перекладки руля и скорость перекладки накладываются нелинейные ограничения
, .
Для измерения угла рыскания используется гирокомпас, математическая модель которого записывается в виде апериодического звена первого порядка с передаточной функцией1
,
В качестве управляющего устройства используется ПИД-регулятор с передаточной функцией2
, где сек и сек.
1.7. Инструкция по выполнению работы
Этап выполнения задания |
Команды Matlab |
|
ЛКМ по кнопке справа от поля Current Directory |
|
View Current directory |
|
двойной щелчок на lab3.mdl |
|
Lab6 File Save as ... |
|
Lab8 Edit Create subsystem |
|
Двойной щелчок на имени ПКМ Format Flip name ПКМ Background color |
|
Двойной щелчок на блоке ЛКМ на имени входа или выхода |
|
|
|
Lab8 Edit Create subsystem |
|
Перетащить с помощью ПКМ Format Background color |
|
Двойной щелчок на блоке |
|
ЛКМ на элементе, нажать Delete. |
|
Двойной щелчок на блоке
|
|
Lab8 View Library Browser |
|
Двойной щелчок на блоке |+- в поле List of signs |
|
|
|
Двойной щелчок на блоке
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
File New M-file |
|
figure(1); % открыть рис. 1 subplot(2,1,1); plot(phi(:,1),phi(:,2),'b'); hold on; plot(phi(:,1),phi(:,3),'g'); hold off; legend('Линейная система', ... 'Нелинейная система') |
|
File - Save |
|
клавиша F5 |
|
set(gca,'FontSize',16); |
|
title('Поворот на 10 градусов') xlabel('Время, сек'); ylabel('\phi, град'); |
|
h = get(gca, 'Children') set(h(1),'LineWidth',1.5) set(h(2),'LineWidth',1.5) |
|
|
|
|
|
|
|
Lab8 Двойной щелчок на блоке Заданный курс ввести 90 в поле Final value |
|
title('Поворот на 90 градусов') клавиша F5 print -dmeta |
|
Таблица коэффициентов
Вариант |
, сек |
, рад/сек |
, сек |
, сек |
|
16.0 |
0.06 |
1 |
1 |
|
16.2 |
0.07 |
2 |
2 |
|
16.4 |
0.08 |
1 |
3 |
|
16.6 |
0.07 |
2 |
4 |
|
16.8 |
0.06 |
1 |
5 |
|
17.0 |
0.07 |
2 |
6 |
|
17.2 |
0.08 |
1 |
1 |
|
17.4 |
0.07 |
2 |
2 |
|
17.6 |
0.06 |
1 |
3 |
|
17.8 |
0.07 |
2 |
4 |
|
18.0 |
0.08 |
1 |
5 |
|
18.2 |
0.09 |
2 |
6 |
|
18.4 |
0.10 |
1 |
1 |
|
18.6 |
0.09 |
2 |
2 |
|
18.8 |
0.08 |
1 |
3 |
|
19.0 |
0.07 |
2 |
4 |
|
19.2 |
0.08 |
1 |
5 |
|
19.4 |
0.09 |
2 |
6 |
|
19.6 |
0.10 |
1 |
1 |
|
18.2 |
0.0694 |
2 |
6 |
2. Контрольные вопросы к защите
Выполнили:
студент гр. КИБ Петров П.П.
Проверил:
с.нс., к.т.н., Цыбулин А.М.
Вариант 20
Исследуется нелинейная система управления судном по курсу, структурная схема которой показана на рисунке.
Движение судна описывается линейной математической моделью в виде передаточной функции
, где рад/сек, сек,
Линейная модель привода представляет собой интегрирующее звено с передаточной функцией
, сек,
охваченное единичной отрицательной обратной связью. На угол перекладки руля и скорость перекладки накладываются нелинейные ограничения
, .
Измерительное устройство (гирокомпас) моделируется как апериодическое звено с передаточной функцией
, сек,
В качестве управляющего устройства используется ПИД-регулятор с передаточной функцией
,
где , сек, сек, сек.
блок Saturation: от до
блок Saturation1: от до
эти величины объясняются тем, что …
close(1);
figure(1);
subplot(2,1,1);
...
set(h(1),'LineWidth',1.5)
set(h(2),'LineWidth',1.5)
Оформление отчета
Отчет по лабораторной работе выполняется в виде связного (читаемого) текста в файле формата Microsoft Word (шрифт основного текста Times New Roman, 12 пунктов, через 1,5 интервала, выравнивание по ширине). Он должен включать
При составлении отчета рекомендуется копировать необходимую информацию через буфер обмена из рабочего окна среды Matlab. Для этих данных используйте шрифт Nimes New Roman.
1 Численные значения , , и надо взять из таблицы в конце файла. Они должны совпадать с данными, которые использовались Вами в лабораторных работах № 4 и 5.
2 Значение было определено в лабораторной работе № 4.
3 Скриптом называется файл, содержащий команды Matlab. При его запуске команды выполняются последовательно одна за другой.
афедра информационной безопасности ВолГУ