У вас вопросы?
У нас ответы:) SamZan.net

Тема- Моделирование нелинейных систем управления Цель- освоение методов моделирования нелинейных систем

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

ыбулин А.М.  Теория автоматического управления Лаб. раб.8. Страница 9 из 9

Тема: Моделирование нелинейных систем управления

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

Задачи работы

  •  научиться строить и редактировать модели с подсистемами
  •  научиться использовать нелинейные звенья типа «насыщение»
  •  научиться строить несколько графиков одновременно на одном осциллографе
  •  научиться составлять, редактировать и отлаживать скрипты
  •  научиться изменять свойства элементов графика (шрифт, толщину линии)

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

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 (или выбрать пункт меню EditCreate 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). Если надо, чтобы скрипт запускался из любой папки, надо включить папку, где он находится, в путь для поиска (команда FileSet 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

  1.  Сделайте свою папку рабочей папкой Matlab.

ЛКМ по кнопке  справа от поля Current Directory

  1.  Откройте окно рабочей папки.

View – Current directory

  1.  Откройте модель, построенную в лабораторной работе № 3.

двойной щелчок на lab3.mdl

  1.  Сохраните модель в своей папке под именем lab8.mdl.

Lab6

File – Save as ...

  1.  Выделите мышью регулятор вместе с интегратором и преобразуйте его в подсистему.

Lab8

Edit – Create subsystem

  1.  Дайте подсистеме имя Регулятор, расположите название сверху и выберите фоновый цвет на свой вкус.

Двойной щелчок на имени

ПКМ – Format – Flip name

ПКМ – Background color

  1.  Определите для входа и выхода этого блока имена е и u соответственно.

Двойной щелчок на блоке

ЛКМ на имени входа или выхода

  1.  Аналогично постройте подсистему Привод с входом u и выходом delta и подсистему Судно с входами f и delta и выходом phi. Сохраните модель и скопируйте ее через буфер обмена в отчет.

  1.  Обведите мышью (при нажатой ЛКМ) все блоки, кроме источников сигналов и осциллографов. Создайте подсистему Линейная система с входами r (заданный курс) и f (возмущение) и выходами phi и delta.

Lab8

Edit – Create subsystem

  1.  Скопируйте блок Линейная система и измените его имя на Нелинейная система. Подключите к входам нового блока те же сигналы (заданный курс и возмущение), что и для первого блока. Установите для блока линейной системы желтый фоновый цвет, а для нелинейной – фиолетовый.

Перетащить с помощью ПКМ

Format – Background color

  1.  Откройте подсистему Привод в нелинейной системе. Мы построим нелинейную модель привода, учитывая ограничения на угол перекладки руля и скорость его изменения.

Двойной щелчок на блоке

  1.  Удалите соединительные линии.

ЛКМ на элементе, нажать Delete.

  1.  Измените передаточную функцию на .

Двойной щелчок на блоке

  •  Denominator
  1.  Откройте окно Library Browser.

Lab8

View – Library Browser

  1.  Перетащите в окно модели блок Sum из группы Math Operations. Измените его так, чтобы организовать отрицательную обратную связь.

Двойной щелчок на блоке

|+- в поле List of signs

  1.  Перетащите в окно модели два блока Saturation (насыщение) из группы Discontinuities. Расположите один блок перед интегратором (ограничение на скорость перекладки), второй – после (ограничение на угол перекладки).
  1.  Введите нужные пределы допустимых значений, так чтобы скорость перекладки руля была не более 3 градусов в секунду, а угол перекладки – не более 30 градусов. В отчете укажите все  установленные  значения.

Двойной щелчок на блоке

  •  Upper limit
  •  Lower limit
  1.  Соедините блоки нужным способом. Сохраните модель. Скопируйте схему нелинейной подсистемы Привод в отчет.

  1.  Закройте лишние окна и перейдите в главное окно модели. Освободите оба осциллографа от связей, перетащив их вправо при нажатой клавише Shift.
  1.  Перетащите в окно модели два блока Mux (мультиплексор) из группы Signal Routing. Эти блоки служат для объединения сигналов в «жгут» (многожильный кабель).
  1.  Соедините входы первого блока с сигналами управления (delta) линейной и нелинейной систем, а выход – с входом осциллографа Руль.
  1.  Аналогично соедините входы второго мультиплексора с сигналами выхода (phi) линейной и нелинейной систем, а выход – с входом осциллографа Курс.
  1.  Сохраните модель и скопируйте ее через буфер обмена в отчет.

  1.  Установите заданный курс 10 градусов и возмущение 0. Выполните моделирование и посмотрите результаты. Жёлтый график показывает изменение первого входа осциллографов – (линейная система), фиолетовый – второго (нелинейная система).
  1.  Объясните расхождение между результатами моделирования линейной и нелинейной системы. Какое нелинейное звено существенно влияет на результат?
  1.  Создайте новый M-файл.

File – New – M-file

  1.  В окне редактора введите команды для вывода графиков переходных процессов по курсу. Теперь массив phi содержит 3 столбца: время и сигналы с двух входов осциллографа (выходы линейной и нелинейной системы). Весь текст справа от знака % считается комментарием. Третий параметр команды plot означает цвет: b – синий, ‘g’ – зеленый, ‘r’ – красный и т.д. (см. справку по этой команде). Команда hold on означает, что не надо стирать старый график, hold off – надо.

figure(1); % открыть рис. 1

subplot(2,1,1);

plot(phi(:,1),phi(:,2),'b');

hold on;

plot(phi(:,1),phi(:,3),'g');

hold off;

legend('Линейная система', ...      

               'Нелинейная система')

  1.  Сохраните файл под именем lab4graph.m.

File - Save

  1.  Запустите файл (скрипт3) на выполнение. Если график не появился на экране, смотрите сообщения об ошибках в командном окне Matlab.

клавиша F5

  1.  Увеличьте размер шрифта, вставив эту команду сразу после вызова subplot. Здесь gca означает текущие оси координат (get current axis). Еще раз запустите скрипт.

set(gca,'FontSize',16);

  1.  Добавьте в скрипт название графика и осей координат, так же, как и в работе № 3.

title('Поворот на 10 градусов')

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

ylabel('\phi, град');

  1.  Увеличьте толщину линий. С помощью функции get мы сначала получаем массив указателей (хэндлов, handle) на все объекты-линии. Затем с помощью функции set устанавливаем для каждой линии свойство LineWidth (толщина линии), равное 1,5 пункта. Сохраните файл и запустите его на выполнение.

h = get(gca, 'Children')

set(h(1),'LineWidth',1.5)

set(h(2),'LineWidth',1.5)

  1.  Добавьте в скрипт команды, с помощью которых в нижней половине окна на одном графике строятся кривые изменения сигнала управления в линейной и нелинейной системах. Не добавляйте заголовок для этого графика (он будет мешать верхнему графику).
  1.  Добейтесь, чтобы скрипт работал правильно. Скопируйте текст скрипта в отчет.
  1.  Запустите скрипт на выполнение. Скопируйте полученный график в отчет.
  1.  Измените величину заданного курса на 90 градусов и снова проведите моделирование.

Lab8

Двойной щелчок на блоке Заданный курс

ввести 90 в поле Final value

  1.  Перейдите в окно редактора и измените название графика на «Поворот на 90 градусов». Снова запустите скрипт и скопируйте построенный график в отчет.

title('Поворот на 90 градусов')

клавиша F5

print -dmeta

  1.  Объясните, почему расхождение получилось такое существенное расхождение между линейной и нелинейной моделями? Как теперь нелинейности  влияют на результат?

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

Вариант

, сек

, рад/сек

, сек

, сек

  1.  

16.0

0.06

1

1

  1.  

16.2

0.07

2

2

  1.  

16.4

0.08

1

3

  1.  

16.6

0.07

2

4

  1.  

16.8

0.06

1

5

  1.  

17.0

0.07

2

6

  1.  

17.2

0.08

1

1

  1.  

17.4

0.07

2

2

  1.  

17.6

0.06

1

3

  1.  

17.8

0.07

2

4

  1.  

18.0

0.08

1

5

  1.  

18.2

0.09

2

6

  1.  

18.4

0.10

1

1

  1.  

18.6

0.09

2

2

  1.  

18.8

0.08

1

3

  1.  

19.0

0.07

2

4

  1.  

19.2

0.08

1

5

  1.  

19.4

0.09

2

6

  1.  

19.6

0.10

1

1

  1.  

18.2

0.0694

2

6

2. Контрольные вопросы к защите

  1.  См. все вопросы к работам № 3, № 4 и № 5.
  2.  Как построить подсистему из нескольких существующих блоков модели?
  3.  Сколько входов и выходов может иметь подсистема?
  4.  Как редактировать подсистему?
  5.  Как изменить названия входов и выходов подсистемы?
  6.  Как скопировать существующий блок или подсистему?
  7.  Как удалить блок или соединительную линию?
  8.  Объясните структуру нелинейной модели привода.
  9.  Почему в нелинейной модели нельзя использовать общую передаточную функцию линейной модели привода ?
  10.  Как выбираются пределы насыщения для блока, расположенного на входе интегратора?
  11.  Как освободить блок от связей с другими блоками?
  12.  Объясните назначение блока Mux.
  13.  Как разобраться, какой сигнал поступает на первый вход осциллографа (через мультиплексор), какой – на второй?
  14.  Что такое скрипт в среде Matlab?
  15.  Что означает знак % внутри скрипта?
  16.  Как вводить несколько команд в одной строке?
  17.  Как правильно перенести длинную команду на следующую строку?
  18.  Что означает третий параметр при вызове функции plot?
  19.  Что означают команды hold on и hold off?
  20.  Как запустить скрипт на выполнение?
  21.  Как выполнить только некоторые команды из скрипта?
  22.  Что означает gca?
  23.  Для чего служат функции set и get?
  24.  Как узнать и изменить размер шрифта на графике?
  25.  Зачем нужен хэндл (handle) графического объекта?
  26.  Как изменить толщину линии на графике?
  27.  Где выводятся сообщения об ошибках в скрипте?


Теория автоматического управления

Отчет по лабораторной работе № 8

Моделирование нелинейных систем управления

Выполнили:

студент гр. КИБ Петров П.П.

Проверил:

с.нс., к.т.н., Цыбулин А.М.

Вариант  20

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

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

Движение судна описывается линейной математической моделью в виде передаточной функции

,    где  рад/сек,  сек,

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

,     сек,

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

,        .

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

,     сек,

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

,   

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

  1.  Построение нелинейной модели
    •  модель системы управления с выделенными подсистемами

  •  нелинейная модель привода

  •  нижний и верхний пределы насыщения

  блок Saturation: от  до

  блок Saturation1: от  до

эти величины объясняются тем, что …

  1.  Сравнение линейной и нелинейной моделей
    •  структурная схема системы для сравнения линейной и нелинейной моделей

  •  скрипт для построения и оформления графиков

close(1);

figure(1);

subplot(2,1,1);

...

set(h(1),'LineWidth',1.5)

set(h(2),'LineWidth',1.5)

  •  переходные процессы при изменении курса на 10 градусов

  •  расхождение между результатами моделирования линейной и нелинейной системы объясняется тем, что …
    •  наибольшее влияние оказывает … (какая нелинейность?), потому что …
    •  в то же время … (что можно сказать о второй нелинейности?)
    •  переходные процессы при изменении курса на 90 градусов

  •  при больших углах поворота наблюдается существенное расхождение между процессами в линейной и нелинейной системах, потому что …
    •  в этом случае … (как влияют нелинейности?)

Оформление отчета

Отчет по лабораторной работе выполняется в виде связного (читаемого) текста в файле формата Microsoft Word (шрифт основного текста Times New Roman, 12 пунктов, через 1,5 интервала, выравнивание по ширине). Он должен включать

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

При составлении отчета рекомендуется копировать необходимую информацию через буфер обмена из рабочего окна среды Matlab. Для этих данных используйте шрифт Nimes New Roman.

1 Численные значения , ,  и  надо взять из таблицы в конце файла. Они должны совпадать с данными, которые использовались Вами в лабораторных работах № 4 и 5.

2 Значение  было определено в лабораторной работе № 4.

3 Скриптом называется файл, содержащий команды Matlab. При его запуске команды выполняются последовательно одна за другой.

афедра информационной безопасности ВолГУ




1. Working memoryоперативная память utomtic processionавтоматическая обработка Effortful memoryпамять требующая выполнения з
2. Акционерные общества и их роль в экономике
3. Вероятность суммы конечного числа несовместных событий равна сумме их вероятностей- поскольк
4. Генетическая инженерия и биотехнология
5. Тема самобытности истории России и ее политического опыта обсуждалась не впервые
6. Бизнес-план Планирование финансово-экономической деятельности предприятия XXXXXX по производству новой продукции
7. Тверской государственный университет Исторический факультет Кафедра архивоведения историографии и д
8. . Регистрирующие и нерегистрирующие
9. Пристрої введення. Клавіатура
10. по теме 1 дисциплины МЕТОДОЛОГИЯ И МЕТОДЫ ПСИХОЛОГОПЕДАГОГИЧЕСКИХ ИССЛЕДОВАНИЙ группа 34 2012-2013
11. Лабораторная работа 3 Работа пользователя в LINUX Цель работы- Изучить и опробовать- 1
12. .Принципы составления дифференциальных уравнений
13. Пояснительная записка
14.  две столицы которые ждут Вас Львов Будапешт Сентендре Вена Львов
15. темах человек и социум как правило не выделяют себя из окружающего мира
16. 11 Поиск в массивах данных 1 Цель занятия изучить методику поиска элементов в массивах данных структурирова
17. Лабораторная работа 2 Тема- исследование свойств полупроводникового биполярного транзистора
18. Банионис Донатас Юозович
19. Задание 4 2 Исходные данные 4 3 Расчеты 5 Заключение 9 Список литературы 10 Введение Светотехни.html
20. Курсовая работа- Учет начисления заработной платы