
- •ВВЕДЕНИЕ
- •Содержание программного продукта MATLAB
- •Пакет расширения Simulink
- •Пакет расширения SimDriveline
- •Содержание библиотек SimDriveline
- •Глоссарий Stateflow
- •Составляющие диаграмм Stateflow
- •Создание моделей в Stateflow
- •Настройка обновления диаграммы
- •Диаграммы потоков
- •Контрольные вопросы и задания
- •ЗАКЛЮЧЕНИЕ
- •Библиографический список

Контрольные вопросы и задания
1. |
Как можно использовать пакет расширения Simulink? |
|
||||
2. |
Какие разделы библиотеки Simulink вы знаете? |
|
||||
3. |
Как можно использовать пакет расширения SimDriveline? |
|
||||
4. |
Какие разделы библиотеки SimDriveline вы знаете? |
|
||||
5. |
Как можно использовать пакет расширения Stateflow? |
|
||||
6. |
Перечислите основные элементы глоссария Stateflow. |
|
||||
7. |
Объясните принципы составления диаграмм в Stateflow. |
|
||||
8. |
Какие типы входов существуют в Stateflow? |
|
||||
9. |
Какие типы выходов существуют в Stateflow? |
|
||||
10. |
Что такое конечный автомат? |
|
|
|
||
11. |
Расскажите про иерархию диаграмм в Stateflow. |
|
||||
12. |
Что такое составные переходы? |
|
|
|
||
13. |
Что такое внутренние переходы? |
|
|
|
||
14. |
Как создать модель в Stateflow? |
|
|
|
||
15. |
Что такое диаграмма потоков? |
|
|
|
||
16. |
Что такое обобщенная модель гибридной системы? |
|
||||
17. |
|
|
|
И |
|
|
Назовите способы моделирования гибридных систем в |
||||||
Stateflow. |
|
Д |
|
|
||
18. |
|
|
|
|
||
Какие существуют графические объекты Stateflow? |
|
|||||
19. |
Перечислите неграфические объекты Stateflow? |
|
||||
20. |
Какие существуют данныеАдиаграмм Stateflow? |
|
||||
22. |
Какие существуютбразделы библиотеки SimMechanics? |
|
||||
23. |
Объясните основные принципы |
моделирования |
в |
|||
SimMechanics. |
и |
|
|
|
|
|
|
С |
|
|
|
|
59

ЗАКЛЮЧЕНИЕ
Изложенный в учебном пособии материал позволит студентам высшего учебного заведения освоить основные методы моделирования механических систем при помощи расширений
Simulink.
Лабораторный практикум, приведенный в прил. 1 – 8, позволит закрепить теоретические знания на практике.
Для более полного представления об особенностях моделирования механических систем в различных расширениях Simulink авторы советуют ознакомиться с материалами, представленными в библиографическом списке.
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
60

Библиографический список
1.Бороденко, В.А. Исследование систем управления в MATLAB : монография / В.А. Бороденко. – Павлодар : Кереку, 2011. – 318 с.
2.Дьяконов, В.П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и моде-
лировании [Электронный ресурс] : монография / В.П. Дьяконов. – Электрон.
дан. – М. : СОЛОН-Пресс, 2008. – Режим доступа: http://e.lanbook.com/books/ element.php?pl1_id=13650, свободный. – Загл. с экрана (дата обращения к ресур-
су: 25.05.2016).
3.Дьяконов, В.П. Simulink 5/6/7: Самоучитель [Электронный ресурс] / В.П. Дьяконов. – Электрон. дан. – М. : ДМК Пресс, 2009. – Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=1177, свободный. – Загл. с экрана
(дата обращения к ресурсу: 14.05.2016).
4.Махов, А.А. Моделирование механических систем с помощью пакета расширения SimMechanics [Электронный ресурс] И/ А.А. Махов. – Режим досту-
па: http://exponenta.ru/educat/systemat/mahov/simmechanics.asp, свободный. – Загл.
сэкрана (дата обращения к ресурсу: 14.05.2016).
5.Чмиль, В.П. Теория механизмовДи машин [Электронный ресурс] :РежимА
ков [и др.] ; СибАДИ. – Омскб: Изд-во Сиб ДИ, 2008. – Режим доступа : http://bek.sibadi.org/fulltext/ED1646и.pdf, свободный. – Загл. с экрана (дата обра-
щения к ресурсу: 20.05.2016).
7. Щербаков, В.С. Модел рование землеройно-транспортных машин в среде Matlab-SimulinkС[Электронный ресурс] : методические указания к выполн. лаб. работ / ибАДИ, кафедра АППиЭ ; сост. В.С. Щербаков [и др.]. – Омск :
СибАДИ, 2010. – Режим доступа : http://bek.sibadi.org/fulltext/EPD130.pdf, сво-
бодный. – Загл. с экрана (дата обращения к ресурсу: 20.05.2016).
8.Control theory and microprocessor systems [Электронный ресурс]. – Режим доступа: http://control-theory-mmf-2010.blogspot.ru, свободный. – Загл. с эк-
рана (дата обращения к ресурсу: 20.05.2016).
9.Modeling Mechanical Systems: The Double Pendulum [Электронный ресурс]. – Режим доступа: http://blogs.mathworks.com/seth/2009/02/26/modeling- mechanical-systems-the-double-pendulum/, свободный. – Загл. с экрана (дата об-
ращения к ресурсу: 20.05.2016).
10.Stateflow-Simulink [Электронный ресурс]. – Режим доступа: matlab.exponenta.ru/stateflow/default.php, свободный. – Загл. с экрана (дата обра-
щения к ресурсу: 20.05.2016).
61

Приложение 1
Моделирование передаточных механизмов и сцепления при помощи пакета SimDriveline
Механическая передача
Механическая передача — механизм, служащий для передачи и преобразования механической энергии от энергетической машины до исполнительного механизма одного или более с изменением характера движения (изменения направления, сил, моментов и скоростей). Как правило, используется передача вращательного движения.
В общем случае трансмиссия предназначена для передачи крутящего момента от двигателя к колёсам (рабочему органу), изменения
определенной среде, со стороны которой Ивозникают силы реакции, являющиеся источником нагрузки на двигатель. Трансмиссия состоит
тяговых усилий, скоростей и направления движения. Трансмиссия
приводит в движение машину путем превращения крутящего момента
двигателя и вращательной энергии в кинетическую энергию транс-
портного средства и поступательного движения. Машина движется в
из тел, вращающихся вокруг фиксированной оси в соответствии с за- |
||||
конами Ньютона. |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
С |
|
|
|
Рис. П.1.1. Структурная схема простого передаточного механизма
вобозначениях SimDriveline
Спомощью программного обеспечения SimDriveline можно моделировать трансмиссию, объединять ее блок-схему с другими моделями Simulink. Вы можете инициировать и поддерживать вращательное движение в трансмиссии с приводом во время измерения с помо-
62

щью датчиков движения элементов трансмиссии и моментов, действующих на них.
Структурная схема, представленная на рис. П.1.1, представляет собой модель простого передаточного механизма. Эта модель демонстрирует сцепление двух валов зубчатой передачей внутреннего зацепления.
Простой передаточный механизм накладывает одно ограничение, заданное фиксированным передаточным отношением gFB, на движения и моменты двух осей:
±gFB = |
ωB = |
τB , |
||
|
ω |
F |
τ |
F |
|
|
|
|
И |
|
где ωB, ωF – угловые скорости вращения осей B и F; |
τB, τF – крутящие |
|
моменты осей B и F. |
|
|
Если простой передаточный механизм представляет собой два |
||
r |
ДN |
|
связанных зубчатых колес, передаточное отношение связано с отно- |
шением радиусов r зубчатых колес и отношение числа N зубьев на |
|||||||
каждой шестерне: |
|
А |
|
|
|||
|
|
|
|
|
|
|
|
g |
FB |
= |
B |
= |
|
B |
, |
|
|
|
|||||
|
|
rF |
NF |
где rB, rF – радиусы шестерней B и F; NB, NF – число зубьев шестерней |
|
B и F. |
б |
|
иПорядок моделирования |
1. Перед моделированием простого сцепления необходимо вы- |
|
полнить настройкуСблоков. Для блока «Крутящий момент» амплитуда |
и частота равны 1. Для блока «Трансмиссия окружающей среды» необходимо задать допустимую скорость сцепления, равную 1e-3 рад/с. В блоках «Инерция 1» и «Инерция 2» задать значение момента инерции 1 кг·м2. В блоке «Простая передача» установить передаточное число, равное 2.
2. При помощи виртуального осциллографа снять графики изменения моментов и угловых скоростей.
3. В блоке «Инерция 2» задать значение момента инерции 4 кг·м2.
4. Выполнить п. 2.
63

5.В блоке «Простая передача» задать значение передаточного числа, равное 3.
6.Выполнить п. 2.
7.В блоке «Инерция 1» задать значение момента инерции 10
кг·м2.
8.Выполнить п. 2.
9.Провести анализ полученных графиков зависимостей и сделать вывод, на что влияют такие параметры, как момент инерции и передаточное число.
Сцепление
Сцепление служит для кратковременного разъединения двигателя от трансмиссии и плавного их соединения при трогании с места, а также при переключении передач. Сцепление состоит из привода и механизма сцепления. Существует много различных типов сцепления, но большинство основано на одном или нескольких фрикционных дисках, плотно сжатых друг с другом или с маховиком пружинами. По виду энергии различают механические, гидравлические и элек-
тромагнитные муфты сцепления. Наиболее распространённые меха- |
||||||
нические муфты сцепления подразделяют: |
И |
|||||
|
||||||
• По виду трения – на сухие и работающие в масле (мокрые). |
||||||
|
|
|
|
|
Д |
|
• По режиму включения – постоянно замкнутые и непостоянно |
||||||
замкнутые. |
|
|
|
А |
|
|
|
|
|
|
|
||
• По числу ведомых д сков – одно- , двух- и многодисковые. |
||||||
• По типу и расположен ю нажимных пружин – с расположени- |
||||||
|
|
|
б |
|
|
|
ем пружин по пер фер наж много диска и с центральной диафраг- |
||||||
менной пружиной. |
и |
|
|
|
||
|
|
|
|
|
||
|
С |
|
|
|
|
• По способу управления – с механическим, гидравлическим, электрическим или комбинированным приводом (например, гидромеханическим).
Кинетический момент трения зависит от условий:
PNF Pфр ≥ 0;
τK = nфр rэф,
где τK – кинетический момент трения; nфр – число трущихся поверхностей; rэф – эффективный радиус крутящего момента; PNF – пиковая нормальная сила; Pфр – мощность фрикциона.
64

Структурная схема, представленная на рис. П.1.2, представляет собой модель простого сцепления.
Рис. П.1.2. Структурная схема простого сцепления в обозначениях SimDriveline
ный крутящий момент. Как только давлениеИсцепления увеличивается, на блок «Инерция 2» подается угловое перемещение. При сниже-
Эта модель демонстрирует два блока инерции, соединенные
простой передачей, которой управляет фрикционная муфта. Первона-
чально давление сцепления нулевое, и у блока « нерция 2», соответ-
ственно, нулевая скорость. К блоку «Инерция 1» приведен постоян-
нии давления сцепления на муфте на блок «Простая передача» пре- |
||
кращается подача крутящего моментаД. Поскольку нет потерь на тре- |
||
ние, ось F фрикционной муфты продолжает вращаться. |
||
|
|
А |
Порядок моделирования |
||
|
б |
|
1. Перед модел рован ем простого сцепления необходимо вы- |
||
и |
|
|
С |
|
|
полнить настройку блоков. Для блока «Трансмиссия окружающей среды» необходимо задать допустимую скорость сцепления, равную 1e-3 рад/с. В блоке «Давление сцепления» задать координаты точек графика давления: (0;0), (2;0), (4;0,9), (6;0,9), (7;0), (10;0). В блоках
«Инерция 1» и «Инерция 2» задать значение момента инерции 2 кг·м2. В блоке «Управляемая фрикционная муфта» установить значения: число трущихся поверхностей 1; эффективный радиус момента 0,04 м; пиковая нормальная сила 500 Н; статический фактор пика тре-
ния 1,1.
2. При помощи виртуального осциллографа снять графики изменения скорости 1, скорости 2 и давления сцепления.
3. В блоке «Инерция 2» задать значение момента инерции 20 кг·м2.
4. Выполнить п. 2.
65

5.В блоке «Управляемая фрикционная муфта» установить значение числа трущихся поверхностей, равное 5.
6.Выполнить п. 2.
7.В блоке «Управляемая фрикционная муфта» установить значение пиковой нормальной силы 2500 Н.
8.Выполнить п. 2.
9.Провести анализ полученных графиков зависимостей и сделать вывод, на что влияют такие параметры, как момент инерции, число трущихся поверхностей и значение пиковой силы трения.
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
66

Приложение 2
Моделирование работы алгоритма Евклида при помощи пакета Stateflow
Модель работы алгоритма Евклида
В работе необходимо создать модель, реализующую алгоритм Евклида по нахождению наибольшего общего делителя двух натуральных чисел. Этот ставший классическим пример разветвляющегося алгоритма можно представить в виде блок-схемы, представленной на рис. П.2.1.
|
|
ДА |
|
|
n1=n2 |
НЕТ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
НЕТ |
|
n1>n2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
И |
|
|
|
|
|
|
|
|
|
ДА |
|
|
Answer=n1 |
|
n2=n2-n1 |
n1=n1-n2 |
|
|||
|
|
|
|
|
Д |
|
|
|
|
|
Рис. П.2.1. Алгоритм Евклида |
|
|||||
|
|
|
А |
|
|
|
||
Stateflow-моделью работы этого алгоритма может служить пока- |
||||||||
|
|
б |
|
|
|
|
||
занная на рис. П.2.2 д аграмма. Для того, чтобы создать модель при |
||||||||
использовании |
Stateflow, |
|
необходимо |
выполнить |
||||
|
и |
|
|
|
|
|
|
|
Start/Simulink/Stateflow/New Chart. В появившемся окне открываем |
||||||||
блок Chart и строим Stateflow-модель, представленную ниже. |
||||||||
С |
|
|
|
|
|
|
|
Рис. П.2.2. Stateflow–модель алгоритма Евклида
67

Необходимо выполнить настройку входных и выходных сигналов блока Chart. Это можно выполнить, открыв окно настройки модели (Explore). Необходимо добавить данные, которыми будет оперировать модель, для этого на рабочей панели окна Explore нажимаем Add Data. Для реализации рассматриваемого алгоритма нужны два входа (n1 и n2), две переменные (nn1 и nn2) и один выход ( answer). Вид данных (Scope) задается соответственно рис. П.2.3.
|
|
И |
|
|
Д |
Рис. П.2.3. Окно настроек Stateflow-модели |
||
|
б |
|
Таким образом, получаем лок Chart с двумя входными и одним |
||
и |
|
|
выходным параметрам . В качествеАисточников сигнала используем |
||
блоки Constant, а выходной с гнал подадим на блок Display. |
||
С |
|
|
Конечный результат работы модели на заданном ей наборе данных показан на р с. П.2.4. На большим общим делителем заданных на входе в диаграмму чисел 165 и 66 является число 33.
Рис. П.2.4. Структурная схема модели алгоритма Евклида
68

|
|
|
|
Приложение 3 |
Моделирование механических систем |
||||
при помощи пакета Stateflow |
||||
Рассмотрим поведение бруска, скользящего под влиянием неко- |
||||
торой силы по твердой поверхности и сжимающего пружину. В от- |
||||
сутствии трения эта механическая система ведет себя подобно клас- |
||||
сической одномассовой системе, положение бруска в установившемся |
||||
состоянии при этом пропорционально прикладываемой силе. Когда |
||||
трением пренебречь нельзя, модель становится значительно более |
||||
сложной. Трение между бруском и поверхностью препятствует дви- |
||||
жению; кроме того, сила трения зависит от скорости и максимальна в |
||||
стационарном режиме. В результате брусок приходит в движение, по- |
||||
очередно "покоясь" и "скользя", как того требует баланс сил. Это яв- |
||||
ление имеет место во многих механических системах. В данной моде- |
||||
ли Stateflow можно использовать для описания некоторых из физиче- |
||||
ских состояний системы. Сила трения между двумя поверхностями |
||||
|
|
|
И |
|
пропорциональна их мгновенной относительной скорости. Скорость и |
||||
положение подвержены |
изменениям в |
моменты, соответствующие |
||
|
|
Д |
||
переходам между дискретными состояниями "покой" и "скольжение". |
||||
Simulink представляет инструмент для моделирования непрерывной |
||||
динамики, а Stateflow – среда моделированияА |
дискретных физических |
|||
состояний. Механ ческая с стема представлена на рис. П.3.1. |
||||
|
б |
|
|
x |
и |
|
|
||
С |
|
|
|
k |
Fвн |
m |
|
||
|
|
|||
Рис. П.3.1. Механическая система |
Запишем уравнение движения бруска
mx = FВН − FУПР − FТР,
69

где m – масса бруска; x – ускорение; FВН – внешние силы, действующие на брусок; FУПР – сила упругости пружины; FТР – сила трения бруска об опорную поверхность.
Для линейной пружины (или в случае небольшой массы) будет справедливо отношение
FУПР = kx,
где k – коэффициент упругости пружины; x – удлинение пружины, равное перемещению бруска.
Сила трения описывается зависимостью
sgn(x)µF |
,при |
F |
|
|
> µF |
|||
FТР = |
|
Н |
|
|
М |
|
Н , |
|
|
|
|
||||||
|
|
|
|
|
|
И |
||
|
FМ ,при x = 0 |
|
||||||
|
|
|
Д |
где μ – коэффициент трения; FН – нормальная сила; FМ – мгновенная сила.
Во многих прикладных программах коэффициент трения описан его статическим и кинетическим коэффициентами. Этот подход используется в существующей модели. Также считается, что нормальная сила постоянна.
где μК – коэффициентСикинетического трения; μМ – коэффициент мгновенного трения; F К –сила скольжения.
|
µ |
|
|
|
|
|
|
|
АF = F ,при x = 0 |
|
|||||
µFН = |
|
М |
Н |
|
М |
|
, |
µК FН |
= FСК ,при x ≠ 0 |
|
|||||
б |
|
|
|
Когда скорость не равна 0, мгновенная сила является необходимой, чтобы сделать скорость нулевой, когда скорость равна нулю, мгновенная сила поддерживает это условие, обеспечивая нулевое ускорение.
Сила трения может быть записана как
|
sgn(x)FСК ,при x ≠ 0,0; |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
FСУМ |
|
< FМ |
; , |
|||||||
|
|
|||||||||||
FТР = |
FСУМ ,при x = 0, |
|
|
|||||||||
|
|
= |
0, |
|
FСУМ |
|
≥ |
FМ . |
, |
|||
|
|
|||||||||||
sgn(FСУМ )FСК ,при x |
|
|
|
|
|
|
где FСУМ – суммарная сила, действующая на брусок.
70

На рис. П.3.2 представлена блок-схема математической модели, демонстрирующей поведение бруска.
|
Рис. П.3.2. Блок-схема математической модели |
|
|
механической системы |
|
|
|
Д |
Внешняя сила входа линейно сжимает пружину, но трение со- |
||
|
А |
|
противляется этому движению. Величина тренияИзависит от состоя- |
||
ния движения. |
б |
|
Блок Mechanical Motion (Механическое Движение) составлен из иерархических Simulink-подсистем, а блок State logic (логика состояний) – в Stateflow. Stateflowиспосо ен распознавать в системе события, которые требуют зменен й в режиме работы этой системы.
Блок Mechanical Motion осуществляет моделирование движения в соответствииСс уравнен ем П.3.1. Содержание подсистемы этого блока представлено на рис. П.3.3. Сумма сил, разделенная на массу, определяет ускорение бруска. Для того чтобы вычислить скорость и положение, ускорение дважды интегрируется. Для нахождения скорости необходимо в настройках первого интегратора выбрать пункт
«Show state port» и установить параметр «External reset: rising».
Рис. П.3.3. Блок-схема Mechanical Motion
71

Подсистема силы трения, представленная на рис. П.3.4, выполняет ряд нелинейных операций над сигналами, моделируя уравнение П.3.2.
Рис. П.3.4. БлокД-схемаИFriction
Стандартные Simulink-блоки реализуют функции взятия модуля (Abs), вычисления знака, минимумаА(MinMax) и произведения. Блок переключателя выбирает требуемое значение силы трения в зависимости от сигнала "upr". бСигнал "upr" – выходной сигнал Stateflowблока State logic. Этот же сигнал используется в блоке Mechanical Motion для сброса первогоиинтегратора. Это гарантирует нулевое значение скорости для состоян я покоя.
Stateflow-Сдиаграмма на р с. П.3.5 описывает поведение системы.
Рис. П.3.5. Stateflow-диаграмма
72

Входные сигналы – Fsum и novelocity. Fsum – суммарная сила, действующая на брусок, а novelocity – двоичный сигнал, который принимает значение "1" в момент перехода скоростью через ноль. Выход Stateflow-диаграммы – сигнал управления «upr». Параметры Fm и Fsk поступают из рабочего пространства Matlab.
Два взаимно исключающих друг друга (или) состояния используются, чтобы представить состояния покоя и скольжения. Предполагается, что система первоначально пребывает в покое. Поэтому вначале активизируется состояние покоя через заданный по умолчанию переход. Переход из состояния покоя в состояние скольжения (верхняя дуга слева направо) происходит, когда внешние силы превышают статическое трение (условие [fabs(Fsum) > Fm]). Состояние скольже-
мещения изменяется на противоположное, если внешняя сила по аб-
ния остается активным, пока блок перемещается, т. е. его скорость отлична от нуля. Когда скорость достигаетИнуля, направление пере-
тельно, переход из состояния скольжения в состояние покоя произой-
солютной величине превысит силу Дстатического трения. Следова-
дет, когда выполнено логическое условие [novelocity & (fabs(Fsum)<=
Fm)], т. е. скорость нулевая и внешняя сила меньше, чем сила стати-
ческого трения. Выходной сигнал «upr» является двоичным представ-
диаграмма должна моделбровать переход системы из одного состояния в другое.
лением состояния. При входе в состояние покоя этот сигнал устанав-
ливается равным единице, а при входе в состояние скольжения – рав- |
|
и |
|
ным нулю. Это позволяет использоватьА |
сигнал «upr» как сигнал |
управления друг ми Simulinkлоками. Таким образом, Stateflow- |
|
С |
|
Заданные по умолчанию параметры, используемые в этой мод е- ли: m=0,001 кг; k=1 Н/м; Fm=1 H; Fск=1 Н. Внешняя сила меняется линейно от ноля до 5 Н и обратно до ноля с периодом 5 с.
На рис. П.3.6 представлены результаты моделирования с установленными по умолчанию параметрами.
Здесь представляет изменение во времени внешней силы Fвн и положения бруска s. Входная сила должна превысить силу статического трения, чтобы брусок начал движение. Это происходит в момент времени t=1 с. В интервале 1< t<5 положение бруска меняется т.о., что сила пружины меньше внешней силы на кинетическую силу трения. При этом возникают небольшие колебания с собственной частотой ω, отражающие изменения скорости. Затем внешняя сила начинает уменьшаться. Брусок немедленно останавливается и находится в
73

этом состоянии до момента времени t=7 c, когда внешняя сила снова превышает статическую силу трения, теперь в обратном направлении. Когда внешняя сила уменьшается до нуля, цикл повторяется.
ДИ Рис. П.3.6. Результаты моделирования колебательной системы
циональна квадрату растяжениябА, т.е. положению бруска, а кинетическая энергия брускаипропорц ональна квадрату его скорости. Эти величины не могут зменяться мгновенно, т.к. мощность не может быть бесконечно большой вел ч ной.
Следует отметить, что потенциальная энергия пружины пропор-
состояния в другоеС. При переходе в состояние «покой» положение останется неизменным и равным тому, что было в точке входа в это с о- стояние. В состоянии «скольжение» положение зависит от характеристик пружины, направления скорости и положения бруска в момент начала скольжения. Это поведение зафиксировано естественным и интуитивно понятным способом в Stateflow-модели.
Поведение с стемы зав сит не только от упругости пружины, но и от положения и скорости бруска в момент перехода из одного
Изменим параметры m=0,1 кг; Fск=0,1 Н.
74

Рис. П.3.7. Результаты моделирования колебательной системы
при m=0,1 кгДи Fск=0,1ИН
скольжения в состояние покояАи наоборот. Когда скорость достигает нуля, ускорение часто отл чно от нуля. Если система попадает в со-
Если статическое трение превосходит по величине кинетическое трение, ускорение меняется скачком при переходах из состояния
стояние покоя, ускорен ебнемедленно становится нулевым. Это нелинейное поведение т п чно для многих систем, затрудняя точное
управление положенСием. Р с. П.3.7 демонстрирует движение системы при таком наборе коэффициентов.
Порядок моделирования
1.Ознакомиться с математической моделью механической сис-
темы.
2.Реализовать рассматриваемую механическую систему в Sim-
ulink.
3.Снять при помощи виртуального осциллографа графики зависимостей внешней силы, действующей на брусок, и положения бруска от времени при заданных по умолчанию параметров системы.
4.Снять при помощи виртуального осциллографа графики зависимостей внешней силы, действующей на брусок, и положения бруска от времени при m=0,1 кг и Fск=0,1 Н.
75

Приложение 4
Моделирование системы автоматического управления температурой при помощи пакета Stateflow
В данной лабораторной работе необходимо создать систему моделирования работы водонагревателя, содержащего двухпозиционный термоконтроллер, управляемый нагреватель и два световых индикатора:
•мигающий красный (RED) – нагреватель выключен;
•зеленый (GREEN) – нагреватель включен.
Контроллер периодически сравнивает фактическую температуру кипятильника (temp) c заданной температурой (reference). Если она не достигнута, то на определенное время управляющим сигналом boiler нагреватель кипятильника включается. Состояние устройства
индицируется двумя цветными светоиндикаторами. Диаграмма моде- |
||||
лирования кипятильника в среде Simulink показана на рис. П.4.1. |
||||
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.4.1. Simulink-модель бойлерной системы
В ее состав входят:
•Controller – диаграмма stateflow, которая имитирует работу контроллера, управляющего кипятильником;
•Temperature set point – блок задания температуры нагрева;
•Boiler Plant Model – имитатор кипятильника;
•timer – таймер, задающий события, заставляющие контроллер срабатывать;
•трехлучевой осциллограф для визуализации временных диа-
грамм.
76

Блок Controller является диаграммой Stateflow и моделирует работу бойлера. Структура этой диаграммы представлена на рис. П.4.2 и содержит вложенные Stateflow-диаграммы:
•Heater – управление бойлером;
•Turn_boiler(mode) – функция переключения бойлера в заданный режим;
•Flash_LED() – функция управления включением цветных индикаторов;
•b=cold() – функция проверки нагрева, возвращает логическое значение b=True, если заданная температура не достигнута.
Диаграмма Heaterивключает два состояния:
бАДИ Рис. П.4.2. Stateflow-диаграмма блока Controller
1) Off – выключен. В это состояние модель входит по умолчанию и выполняетСфункц ю turn boiler(OFF). Затем каждые 5 с в этом
состоянии выполняется функц я flash_LED(). По истечении 40 с при условии истинности функции cold() происходит переход в состояние
On.
2) On – включен. В этом состоянии включается бойлер. Возврат в состояние Off может происходить двумя путями: через 20 с или раньше, если заданная температура не достигнута.
77

Рис. П.4.3. Stateflow-диаграмма On (слева) и Stateflow-диаграмма функции turn_boiler(mode) (справа)
Функция при mode=ON делает цвет индикатора color=GREEN и color=RED в противном случае. Затем она присваивается
LED=COLOR. |
|
|
|
И |
|
|
|
|
|
|
|
|
Д |
|
|
|
А |
|
|
Рис. П.4.4. Stateflow-д аграмма функции flash_LED() (слева) и |
||||
|
Stateflow-д аграмма функции b=cold() (справа) |
|||
|
б |
|
|
|
При LED=OFF возвращается значение LED=COLOR (цвет |
||||
|
и |
|
|
|
включаемого индикатораС) и LED=OFF в противном случае.
Stateflow – диаграмму блока Controller необходимо настроить согласно рис. П.4.5.
Рис. П.4.5. Настройка Stateflow-диаграммы блока Controller
78

Блок Boiler Plant Model имитирует работу нагревателя бойлера. Структура блока представлена на рис. П.4.6.
Рис. П.4.6. Simulink-модель работы нагревателя
Модель нагревателя содержит блок Data Type Conversion, в н а- стройках которого необходимо установить Output data type: boolean,
Integer rounding mode: Zero и выбрать Saturate on integer overflow. |
||||
|
|
|
|
И |
В состав модели нагревателя входит также подсистема digital |
||||
thermometer, модель которой представлена на рис. П.4.7. |
||||
|
|
|
Д |
|
|
|
А |
|
|
Рис. П.4.7. Подсистема digital thermometer |
||||
|
б |
|
|
|
Эта подсистема моделирует цифровой термометр, состоящий из |
||||
и |
|
|
|
|
простых термопар и АЦП. Передаточная функция датчика |
||||
С |
W ( p) = 0,05 p +0,75. |
|||
|
|
|
|
Рис. П.4.8. Настройки блока
Data Type Conversion
79

В подсистеме используются блоки Polynomial (sensor), в настройках которого необходимо задать значения [0,05 ; 0,75], а также блок Data Type Conversion (Linear fixed point conversion) (рис. П.4.8).
Подсистема ADC представляет собой 8-битный АЦП, имеющий входной диапазон 0,5 В. Модель подсистемы ADC представлена на рис. П.4.9.
Рис. П.4.9. Подсистема ADC
Внастройках блока Quantizer необходимо задать интервал, равный 1. В настройках блока Saturation – верхнийИпредел 255, нижний предел 0. Задать время моделирования 1400 с.
Врезультате моделирования графики, отображающие цвет индикации, состояние бойлера (вкл/выкл) и температуруДводы, должны соответствовать рис.А
|
б |
и |
|
С |
|
Рис. П.4.10. Результаты моделирования работы бойлера
80

Порядок моделирования
1.Составить структурную схему модели, соответствующую варианту задания.
2.При помощи матрицы перехода перейти к новым координатам состояния и составить новую структурную схему системы.
3.Собрать две структурные схемы моделей на компьютере, используя блоки Subsystem приложения Simulink. Подать одновременно на вход обеих подсистем единичное ступенчатое воздействие, используя блок Step, и сравнить результаты моделирования.
4.Схема моделирования в приложении Simulink представлена на рис. П.4.1. Для моделирования выбрать метод симуляции с фиксиро-
ванным шагом (Simulation → Configuration Parameters → Fixed-step),
равным 0,01 с, время моделирования в лабораторнойИработе принять не более 3 с. Д
|
|
А |
|
б |
|
и |
|
|
С |
|
|
81

Приложение 5
Моделирование движения маятника при помощи пакета SimMechanics
Для создания модели механической системы необходимо вывести уравнения движения и составить Simulink-модель из стандартных блоков Simulink.
Рассмотрим пример составления модели маятника. Составим расчетную схему (рис. П.5.1) и уравнения движения маятника.
|
F = −mg sinθ = ma; |
|||||
|
a = −g sinθ; |
И |
||||
|
|
v |
=lθ; |
|||
|
|
|
|
|
Д |
|
|
|
a |
=lθ; |
|
||
|
|
А |
|
|||
|
lθ = −g sinθ; |
|
||||
|
б |
|
|
|||
|
|
|
|
g |
sinθ. |
|
|
θ = − |
|
|
|
||
и |
|
|
l |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С |
|
|
|
|
θ |
l |
|
|
|
|
|
||
|
|
|
|
|
|
F |
mg |
|
Рис. П.5.1. Расчетная схема маятника
Составим Simulink модель, представляющую собой графическое представление математических операций (рис. П.5.2).
82

Рис. П.5.2. Simulink-модель маятника
|
|
Перед моделированием необходимо задать начальное состояние |
|
в настройках блока интегрирования угловой скорости . |
|
Перейдем к построению аналогичной |
SimMechanics модели: |
̇ |
блок Revolute будет моделировать вращательный шарнир; Body – |
||||
подвижное звено; Ground – неподвижное звено (рис. П.5.3). |
||||
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.5.3. Представление механической системы маятника в SimMechanics
Перенесем блоки в окно модели и соединим их вместе. Для измерения угла ap и угловой скорости av на вращательном шарнире подключим к нему датчик Joint Sensor (рис. П.5.4).
Для
демонстрации
видео нажмите на кнопку
83

Рис. П.5.4. SimMechanics-модель маятника
•неподвижного звена (землиА); ДИ
•шарнирного сочленения (задающего 1-му звену одну степень свободы, поворот вокруг осибz);
•первого звена (звено представляется как абсолютное твердое тело); и
•шарнирного сочленен я между 1-м и 2-м звеньями (ограничивает степени свободыС2-го звена, оставляя также только поворот в плоскости xy);
•второго звена. X
Сочленения
Звенья
Рис П.5.5. Модель двухзвенного физического маятника
84

SimMechanics-модель такого механизма строится в аналогичной последовательности (рис. П.5.6).
Исходным элементом модели является звено Ground – Земля. К нему присоединен элемент – Revolute (т.е. сопряжение, позволяющее следующему звену лишь поворачиваться вокруг указанной оси – z). Далее следует непосредственно звено физического маятника Body. В качестве параметров этого звена необходимо указать массу тела, моменты инерции относительно главных центральных осей симметрии, а также координаты верхнего, нижнего конца звена и его центра масс. При этом координаты можно задавать как в глобальной системе координат (ГСК), так и в локальной системе координат (ЛСК) звена.
Аналогично к первому звену посредством шарнирного соединения Revolute 1 присоединяется второе звено Body 1.
Чтобы звенья спроектированного механизма начали движение, необходимо либо добавить вынуждающую силу, либо задать началь-
ные условия (например, начальное отклонение или сообщить началь- |
||||||
|
|
|
|
|
|
И |
ную скорость). Для реализации последних используется блок |
||||||
InitialCondition. |
|
|
|
Д |
||
|
|
|
|
|
||
|
|
|
|
А |
|
|
|
|
|
б |
|
|
|
|
|
и |
|
|
|
|
|
С |
|
|
|
|
|
а |
|
|
|
|
|
б |
Рис. П.5.6. SimMechanics-модель двухзвенного физического маятника (а) и модель имитации движения (б)
85

На модели имитации отображаются звенья, колеблющиеся по |
|||||
законам классической механики (физики твердого тела). Там же ото- |
|||||
бражаются локальные системы координат (ЛСК) звеньев. |
|||||
Вопрос о выборе той или иной системы координат (СК) является |
|||||
очень важным. Правильный выбор СК значительно облегчает моде- |
|||||
лирование механизма и интерпретацию результатов. |
|||||
При моделировании данного механизма использовались сле- |
|||||
дующие СК (рис. П.5.7). |
|
|
|
|
|
Неподвижная глобальная система координат ГСК Global нахо- |
|||||
дится в точке сопряжения неподвижного звена с верхним звеном (ко- |
|||||
леном маятника). Задавать координаты точек верхнего звена маятника |
|||||
можно различными способами, в том числе, просто перечислив их |
|||||
значения в ГСК. Однако это не всегда удобно. |
|||||
Y |
|
|
Точка сопряжения земли с первым |
||
«Земля» |
|
|
звеном является началом ГСК |
||
|
X |
|
|
|
|
|
|
|
|
|
|
Сочленения |
CS1 |
|
Координаты верхнего конца CS1 сов- |
||
|
|
|
И |
||
|
|
|
падают с точкой сопряжения |
||
Первое звено |
CG |
|
Положение ЦМ CG задается в |
||
|
ЛСК CS1 |
|
|||
|
|
|
|||
|
|
|
|
Д |
|
|
|
|
Положение нижнего конца CS2 |
||
|
CS2 |
|
задается в ЛСК CS1 |
||
|
|
А |
|
||
Сочленен я |
|
CS1 |
|
|
|
|
б |
|
|
||
Второе звено |
CG |
|
Параметры задаются аналогично |
||
и |
|
||||
|
|
параметрам первого звена |
|||
С |
|
|
|
||
|
CS2 |
|
|
||
|
|
|
|
|
|
Рис. П.5.7. Системы координат двухзвенного физического маятника |
Верхний конец первого звена сопрягается с неподвижным звеном, и поэтому его координаты совпадают с началом ГСК. Его координаты действительно легко задать как Global [0; 0; 0]. Пусть звено имеет длину L и симметрию относительно главной центральной оси инерции (ГЦОИ). Положение центра масс (ЦМ) звена удобно задавать уже не в ГСК, а в только что созданной ЛСК, где началом координат является верхний конец звена, т.е. в ЛСК CS1. Тогда координаты ЦМ
86

можно задать как CS1 [0; -L/2; 0]. Аналогично нижний конец звена можно задать в ЛСК CS1 [0; -L; 0].
Несмотря на то, что начало ЛСК CS1 совпадает с началом ГСК Global, следует иметь в виду, что ЛСК CS1 принадлежит верхнему звену, а значит, может поворачиваться относительно точки Global [0; 0; 0]. Глобальная же система координат ГСК Global всегда неподвижна. Ее начало может и не совпадать с точкой сопряжения неподвижного звена (тем более, когда неподвижных звеньев в механизме несколько).
Помимо визуального наблюдения за свободными (при задании начальных условиях) или вынужденными (при наложении внешней силы) можно анализировать законы движения любой точки механиз-
ма. Для этого необходимо при задании координат звеньев указать ко- |
||||
|
|
|
|
И |
ординаты интересующей точки и к выходу соответствующего |
||||
Simulink-блока подключить блок-датчик (Sensor). |
||||
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
|
и |
|
|
|
(а) |
|
|
|
(б) |
Рис. П.5.8. Модель двухзвенного физического маятника (а) для исследова- |
||||
|
Сния законов движения его звеньев (б) |
Датчики могут регистрировать и угловые колебания, и линейные, причем как перемещение, так и скорость и ускорение. Выход с датчика обычно выводят на блок осциллографа Scope (рис. П.5.8)
Для
демонстрации
видео нажмите на кнопку
87

Порядок моделирования
1.Соберите в SimMechanics модель двухзвенного физического маятника и проведите ее анализ.
2.Задать начальное положение маятника 12 deg.
3.Настроить параметры звеньев (рис. П.5.9, П.5.10).
4.В меню Simulation выберете пункт Mechanical Environment.
Здесь можно задать параметры механического моделирования (значения ускорения свободного падения, точности расчетов, способ отображения работы механизма и пр.). Внесите изменения только во вкладку Visualisation (рис. П.5.11).
5.Запустите модель, при этом наблюдая за колебаниями маят-
ника.
6.Запустите модель с различными начальнымиИусловиями.Д
|
|
А |
|
б |
|
и |
|
|
С |
|
|
Рис. П.5.9. Настройки первого звена
88

|
|
|
|
И |
|
|
|
Д |
|
Рис. П.5.10. Настройки второго звена |
||||
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.5.11. Задание параметров визуализации механизма
89

Приложение 6
Моделирование кривошипно-шатунного механизма при помощи пакета SimMechanics
В лабораторной работе необходимо создать кинематическую модель кривошипно-шатунного механизма (рис. П.6.1) и исследовать закон движения поршня. Массоинерционные параметры механизма приведены в табл. П.6.1.
|
|
|
|
|
|
|
|
|
И |
|
|
|
|
|
|
|
|
|
|
|
|
Д |
|
|
|
|
|||
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|
|
б |
|
|
|
|
|
|
|
|
|||
Рис. П.6.1. Расчетная схема кривошипно-шатунного механизма |
|
|||||||||||||
|
и |
|
|
|
|
|
|
|
Таблица П.6.1 |
|||||
Массоинерционные параметры кривошипно-шатунного механизма |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
Кривошип |
|
|
|
|
Шатун |
|
|||
Масса, кг |
|
|
|
|
|
1 |
|
|
|
|
|
1,5 |
|
|
Тензор инерцииС,г/см² |
|
|
0 |
0 |
300 |
|
|
|
0 |
0 |
500 |
|
||
|
|
|
50 |
|
|
|
80 |
|
Порядок выполнения работы
1.Создать новую Simulink-модель.
2.Проектирование механизма начинается с неподвижного звена
–земли. Для этого необходимо воспользоваться пакетом расширения SimMechanics, во вкладке Bodies выбрать блок Ground. В параметрах блока указать координаты [0; 0; 0], это означает, что координаты блока совпадают с началом инерциальной системы координат.
3.Кривошип может совершать только вращение вокруг оси OZ, поэтому в качестве шарнира нужно использовать блок Revolute из
90

вкладки Joints. В параметрах блока указать [0; 0; 1], таким образом задается возможность вращения вокруг оси OZ.
4. Добавить кривошипное звено в модель механизма, для этого необходимо воспользоваться блоком Body. Настроить параметры блока (рис. П.6.2).
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
Рис. П.6.2. Параметры лока Body, моделирующего кривошип |
||||
С |
|
|
|
|
5. К спроект рованной части механизма добавить привод. Добавить вращение к шарниру Revolute. Для этого в параметрах блока Revolute необходимо указать вход/выход для привода/датчика. К этому входу подсоединить блок Joint Actuator из вкладки Sensors and Actuators.
6. Для задания закона движения, формируемого в звене Joint Actuator, необходимо задать три параметра – вектора φ(t), ω(t), ε(t). Поэтому к входу блока Joint Actuator необходимо подать необходимые векторы. Величины φ0, ω0, ε – известны, можно определить зави-
симости φ(t), ω(t), ε(t):
ϕ( t ) =ϕ0 +ω0t + ε2t2 ;
91

ω( t ) =ω0 +εt;
ε (t) = ε = const.
Реализовать приведенные зависимости в виде подсистемы (рис.П.6.3).
|
|
|
А |
И |
|
|
|
|
|
|
|
|
|
б |
|
|
|
|
Рис. П.6.3. Подсистема приводаДкривошипа |
|
|||
7. |
и |
|
|
|
|
Запустить часть модели. |
|
|
|||
8. |
Самостоятельно |
дора отать |
модель |
кривошипно- |
|
шатунного механ зма (р с. П.6.4, П.6.5). |
|
|
|||
|
С |
|
|
|
|
Рис. П.6.4. Модель кривошипно-шатунного механизма
92

|
|
|
|
И |
Рис. П.6.5. Анимация модели кривошипно-шатунного механизма |
||||
Примечания. |
|
|
Д |
|
|
|
|
|
|
Для создания сопряжения между шатуном и неподвижным зве- |
||||
|
|
А |
|
|
ном можно использовать блок CustomJoint, со степенями свободы, |
||||
показанными на рис. П.6.6. |
|
|
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Р с. П.6.6. Параметры блока Custom Joint
При указании координат второго неподвижного звена можно воспользоваться следующими значениями [L1+L2; 0; 0].
Для исследования закона движения поршня целесообразно добавить датчик перемещения Joint Sensor, а его выход подключить к осциллографу Scope.
Для
демонстрации
видео нажмите на кнопку
93

Приложение 7
Синтез регулятора механических колебательных систем
Колебательная система (КС) — физическая система, в которых в результате нарушения состояния равновесия возникают собственные колебания, обусловленные свойствами самой системы.
С энергетической стороны КС делятся на консервативные системы, в которых нет потерь энергии или которые можно с достаточной точностью считать лишёнными таких потерь (механические системы без трения); диссипативные системы, в которых первоначально сообщенная энергия не остается в процессе колебаний постоянной, а расходуется на работу, в результате чего колебания затухают; автоко-
лебательные системы, в которых происходят не только потери энергии, но и пополнение ее за счет имеющихся в системе источников энергии.
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.7.1. Механическая колебательная система
В данной лабораторной работе будем рассматривать механическую колебательную систему, состоящую из подвижной массы m на роликах, которая находится на безмассовой платформе. Колебательная система представлена на рис. П.7.1.
Так как m, кг – единственная масса в системе (рис. П.7.1), то для нее можно записать второй закон Ньютона:
F = ma,
94

где а, м/с2 – ускорение тела; F, Н – силы, действующие на подвижный груз.
a = d 22y ; dt
md 22y +k(y −u) = 0; dt
md 22y = −k(y −u); dt
d 22y = − k(ym−u) , dt
где y, u – продольные координаты подвижной массы и безмассовой
тележки соответственно. |
И |
|
|
Теперь представим модель системы в виде пространства состоя- |
|
|
Д |
ний. Уравнения объекта управления должны быть записаны в нор- |
мальной форме Коши, т.е. системой уравнений первого порядка. В нашем же случае имеем уравнение второго порядка, поэтому необхо-
|
|
|
|
|
|
|
|||
димо ввести фиктивную переменнуюАy = z . Тогда получим в про- |
|||||||||
странстве состоян й |
б |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|||
и |
|
|
|
|
|
|
|
||
y = z; |
|
|
|
|
|||||
|
|
k |
|
|
k |
|
|||
|
|
k(y −u) |
|
|
|
||||
= − |
|
m |
= − m y + m u. |
||||||
z |
|
||||||||
С |
|
|
|
|
|
|
|
|
|
Для моделирования такой системы в Simulink можно воспользо-
ваться блоком State–Space (Simulink/Continous). Для использования этого блока необходимо представить уравнения объекта управления в матричном виде. Блок State–Space требует, чтобы число входов, число выходов и число переменных состояний системы совпадало, однако в рассматриваемой системе один вход и выход, но две переменные состояния. Эта проблема решается с помощью фиктивных входов и выходов.
95

Вектором состояний является X=(y,z), входом – U=(u,.), выходом
– Y=(y,.). Точка в данном случае обозначает фиктивную переменную. Тогда в матричном виде динамика системы запишется:
|
|
y |
|
|
0 |
|
1 y |
|
0 |
0 u |
|
|
|
||||||||
|
|
|
|
= |
|
|
|
|
|
|
+ |
|
|
|
|
. |
|||||
|
|
|
|
−k / m |
|
|
|
|
|
|
|
||||||||||
|
|
z |
|
|
|
0 z |
|
k / m |
0 |
. |
|
|
|
||||||||
Или в матричном виде окончательно: |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
X ′= AX + BU; |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
Y =CX + DU, |
|
|
|
|
|
|
|
|
|
|||||
где |
|
|
|
|
|
|
|
|
|
|
|
|
И |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
A = |
|
0 |
|
1 |
|
, B = |
|
0 |
0 |
|
,C = |
1 0 |
|
, D = |
|
0 0 |
|
. |
|||
|
|
|
|
|
|
|
|
||||||||||||||
|
|
−k / m |
0 |
|
|
|
k / m |
|
|
Д |
|
|
|
|
|
0 0 |
|
|
|||
|
|
|
|
|
0 |
|
|
0 0 |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
б |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
и |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
С |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. П.7.2. Свойства блока State-Space
Вкачестве примера примем k=1 Н/м, m=1 кг и запишем матрицы
всвойства блока State-Space (рис. П.7.2).
Вкачестве входного сигнала используем единичное ступенчатое
воздействие 1(t). Так как блок State-Space принимает на вход вектор и выдает также вектор, то для подключения в модели необходимо использовать элементы Mux и Demux для входа и выхода соответственно (рис. П.7.3).
96

Рис. П.7.3. Структурная схема колебательной системы
Из рис. П.7.4 видно, что после подачи единичного импульса на вход в системе начинаются незатухающие колебания, что согласуется с физическим смыслом подвижного груза на пружине без учета сил трения и рассеивания энергии. Можно сделать вывод, что система неустойчива.
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.7.4. Сигналы на входе u и выходе y колебательной системы
Для синтеза оптимального параметра регуляторов линейных стационарных систем в Control System Toolbox имеются функции решений уравнений Беллмана (табл. П.7.2).
97

Таблица П.7.2
Функции ControlSystemToolbox
Синтаксис |
Описание |
[K P e] = lqr(A, B, Q, S) |
Синтез непрерывного регулятора |
[K P e] = lqr(A, B, Q, S, N) |
Синтез непрерывного регулятора |
[K P e] = dlqr(A, B, Q, R) |
Синтез дискретного регулятора |
[K P e] = dlqr(A, B, Q, R, N) |
То же |
[K P e] = lqrd(A, B, Q, R, Ts) |
-//- |
[K P e] = lqrd(A, B, Q, R, N, Ts) |
-//- |
Функция lqr вычисляет матрицу коэффициентов регулирования K со среднеквадратичным функционалом качества без терминального члена. Функция dlqr вычисляет матрицу коэффициентов регулирования по всем переменным состояния K для дискретной системы со среднеквадратичным функционалом качества без терминального члена. Функция lqrd предназначена для синтеза оптимального дискретно-
го регулятора непрерывной системы со среднеквадратичным функ- |
|
ционалом качества. |
И |
Осуществим автоматизированный синтез регулятора с помощью |
|
функции lqr в пакете Control System Toolbox. |
|
|
Д |
Во-первых, для управления системой необходимо, чтобы все со- |
стояния были наблюдаемы. Для этого выведем вторым выходом пе- |
||||
ременную состоян я z, |
А |
C запишется в виде |
||
тогда новая матрица |
||||
единичной диагональной: |
|
|
|
|
|
б |
|
|
|
и |
1 |
0 |
|
|
|
1 . |
|
||
|
C = 0 |
|
ФункцияСlqr синтезирует с использованием численной оптими-
зации стабилизирующий регулятор таким образом, чтобы минимизировать квадратичную целевую функцию:
∞
J = ∫ xT (t)Qx(t) +uT (t)Ru(t)dt → min.
0
Матрицы Q и R предназначены для выбора весов (важности) минимизации одного критерия перед другим. Для примера можно выбрать единичные диагональные матрицы Q = R = C = 1.
Следующий код на языке MATLAB запускает функцию lqr:
98

ввод модели системы в виде пространства состояний
n = 2;%число состояний
A = [0 1; -1 0];
B = [0 0; 1 0];
C = [1 0; 0 1];
D = [0 0; 0 0];
синтез регулятора
Q = diag(ones(1,n)); |
%веса выходов |
|||
R = diag(ones(1,n)); |
%веса входов |
|||
K = lqr(A,B,Q,R) %синтез регулятора |
||||
|
||||
После выполнения последней строчки кода получаем в консоли |
||||
MATLAB: |
|
|
|
|
K = |
|
|
|
|
0.4142 |
1.3522 |
|
|
Д |
0 |
0 |
|
|
|
|
|
|
||
Промоделируем систему с отрицательной обратной связью. Для |
||||
|
|
|
А |
|
этого добавим в систему блок Gain со свойствамиИ: |
||||
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
Рис. П.7.5. Свойства блока Gain
99

Рис. П.7.6. Структурная схема колебательной системы с регулятором
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.7.7. игнал на выходе колебательной системы с регулятором
Рис. П.7.8. Структурная схема колебательной системы с регулятором и усилителем
100

Из рис. П.7.7 видно, что установившееся значение выходного сигнала системы не равно входному. Эта ошибка означает, что коэффициент усиления системы с отрицательной обратной связью отличается от 1. Включив в систему усилитель с коэффициентом 1,412, получаем в результате систему с единичным коэффициентом усиления:
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
Рис. П.7.9. Сигнал на выходе колебательной системы |
||||
с регулятором усилителем при подаче |
||||
на вход ед н чного ступенчатого воздействия |
||||
С |
|
|
|
|
Для рассматр ваемой механической колебательной системы построим модель в SimMechanics.
Построение модели.
Построение модели начинаем с размещения в модели блоков
Ground и Machine Environment из библиотеки Simscape/SimMechanics/Bodies. В параметрах Ground устанавливаем
Show Machine Environmentport и подключаем к появившемуся порту модуль Machine Environment. Блок Ground моделирует неподвижную систему отсчета.
Введем в рассмотрение платформу, к которой прикладывается сила и на которой размещен подвижный груз. Для этого добавим в модель компонент Body из библиотеки
Simscape/SimMechanics/Bodies. Установим массу (Mass) платформы 100 кг.
101

Между неподвижной системой отсчета и платформой возможно поступательное движение. Для моделирования этого движения добавим в модель блок Prismatic из библиотеки
Simscape/SimMechanics/Joints.
Рис. П.7.10. Структурная схема поступательного движения платформы
Чтобы обеспечить движение по оси OX, необходимо в параметрах Axis of Action [x; y; z] компонента PrismaticИзадать вектор [1; 0; 0], что разрешает движение по OX (по умолчанию [0; 0; 1]).
свойствах блока в поле Number of sensor/actuator ports. Эти порты яв-
ляются двунаправленными и позволяют выводить состояние соедине-
Необходимое число дополнительныхДпортов можно задать в
рость, ускорение одного тела Аотносительно другого и изменять состояние соединения с помощьюбприложения силы или задания движения (необходимо задать перемещение, скорость и ускорение).
ния – силу, действующую по оси соединения или перемещение, ско-
мощью блока Prismatic помест м в модель компонент Joint Actuator из библиотеки Simscape/SimMechanics/SensorsС & Actuators. Этот компо-
Для приведения в поступательное движение платформы с по-
нент преобразует нформац онные сигналы Simulink в механический сигнал SimMechanics. Возможно два варианта управления актуатором: с помощью обобщенной силы и векторного сигнала с компонентами: перемещение, скорость и ускорение. Выберем второй вариант управления, задав при этом в свойствах объекта Joint Actuator параметр Actuate with: Motion. Теперь для приведения в движение тел через компонент Joint Actuator необходимо на его вход подать вектор из ускорения, скорости и перемещения, создав его с помощью блока Mux и последовательного интегрирования сигнала ускорения.
Источником сигнала ускорения является блок Signal Builder. Для того чтобы переместить платформу на некоторое расстояние, необходимо приложить к ней положительное ускорение (разгон), а потом отрицательное (торможение):
102

Рис. П.7.11. Структурная схема поступательного движения платформы с заданным ускорением
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.7.12. Задатчик ускорения перемещения платформы
Теперь рассмотрим моделирование подвижного груза на пружине. Поместим в модель блоки Prismatic и Body – для представления подвижного груза и пружины, которая обеспечивает еще одну поступательную степень свободы. В соответствии с законом Гука, сила противодействия пружины пропорциональна расстоянию между ее концами. Для моделирования пружины может быть использован блок
Prismatic вместе с блоком Joint Spring & Damper из библиотеки Simscape/SimMechanics/ForceElements. Поскольку каждый информа-
ционный выход Prismatic также является и входом, то с помощью одного соединения между Prismatic и Joint Spring & Damper можно про-
103

моделировать пружину: на вход Joint Spring & Damper поступает перемещение, с выхода – сила противодействия на Prismatic. Для задания жесткости пружины установим Spring Constant k в 1 в параметрах блока Joint Spring & Damper.
Следует заметить важное правило при построении модели: нельзя подключать одно тело к другому телу (осуществлять прямую связку между двумя блоками Body) – связь между двумя телами может быть выполнена только через блоки соединений из библиотеки Simscape/SimMechanics/Joints. Аналогично нельзя подключать между собой два соединения (связывать два блока типа Joint).
Положение конца пружины и скорость его перемещения могут быть получены из блока Prismatic с помощью подключения его дополнительного выхода к блоку Joint Sensor из библиотеки
Simscape/SimMechanics/Sensors & Actuators. Добавив блок Joint Sensor
в модель, выберем в свойствах Position и Velocity. В результате на его выходе будет вектор из двух компонентов с текущим положением и скоростью тела на конце пружины. Это сигнал Simulink, и он может
быть подключен к осциллографу Scope. |
И |
|||
|
|
|
|
|
В результате получаем окончательную модель системы. |
||||
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.7.13. труктурная схема колебательной системы в обозначениях SimMechanics
В результате моделирования (рис. П.7.14) получаем следующие переходные процессы, которые согласуются с физическим смыслом данной системы – тело на пружине без учета трения переходит в гармонические колебания при возмущении.
104

Рис. П.7.14. Графики изменения положенияИ(s) и скорости (v) перемещения колеблющегосяДтела
Можно получить анимацию этой модели. Рассмотрим, как сделать это самым тривиальным способомА. ля этого необходимо в меню Simulink вызывать окно настройки параметров модели пункт
Simulation/Configuration Parametersб... далее в левой части окна в дереве выбрать Simscape\SimMechanics и установить Visualization\Show animation during simulation.иПосле проделанных действий при запуске моделирования автомат чески откроется окно Machine for model: с анимацией положенСя всех тел модели. Чтобы представить подвижные тела модели в в де сфер (эллипсоидов – в зависимости от их тензора инерции), необходимо выбрать в меню окна анимации пункт
Model/Body Geometries/Ellipsoids. Для замедления анимации можно вызвать окно параметров через меню Simulation/Control Animation Speed и установить там задержку Delay per frame (ms). Обратите внимание, что картинку анимации можно приближать или отдалять мышкой при выборе пункта меню View/Zoom или можно воспользо-
ваться View/Fittoview.
Порядок моделирования
1.Ознакомиться с понятием «колебательная система».
2.Собрать математическую модель колебательной системы (рис. П.7.8) при помощи пакета Simulink, получить графики выход-
105

ных значений при подаче на вход ступенчатых воздействий разных амплитуд.
3.Синтезировать регулятор и собрать математическую модель колебательной системы (см. рис. П.7.8), получить графики выходных значений при подаче на вход ступенчатых воздействий разных амплитуд. Получить графики выходных значений без ошибки регулирования, если она будет.
4.Собрать математическую модель колебательной системы при помощи пакета SimMechanics (рис. П.7.13), получить графики изменения положения и скорости перемещения колеблющегося тела при различных параметрах модели.
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
106

Приложение 8
Представление математической модели в пространстве состояний
В MATLAB существуют средства автоматического извлечения линеаризованных уравнений в пространстве состояний из моделей Simulink. Поскольку наша цель – управление, то нам надо вывести на выход все переменные состояния моделируемой системы. В качестве исследуемой математической модели используем модель из предыдущей лабораторной работы.
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.8.1. Значения переменных состояния колебательной системы
Для того чтобы определить, какие состояния модели Simulink существуют, можно воспользоваться встроенным средством анализа,
вызвав его через меню Tools/Control design/Linear analysis в Simulink (рис. П.8.1).
В левой части появившегося окна Control and Estimation Tools Manager в дереве необходимо выбрать Workspace/Project - /Operation Points/Default Operating Point. Справа будут перечислены состояния в таблице State: Value.
Для получения аналитической модели представим собранную в Simulink систему в виде подсистемы. Для этого подключим вместо источника сигнала Signal Builder блок входа In1 из библиотеки
107

Simulink/Sources. Также подключим на выход интеграторов и вместо осциллографа Scope блоки выходов Out1 из Simulink/Sinks. Номера выходов Portnumber (задаются в свойствах блока Out) зададим в пол-
ном соответствии с таблицей из Control and Estimation Tools Manager:
выход Integrator – выход 1, выход Integrator1 – выход 2, выход Joint
Sensor – выход 3. Такая нумерация удобна, так как нам надо получить диагональную матрицу C модели в пространстве состояний.
В результате проделанных действий получаем следующую сис-
тему:
|
|
|
|
И |
Рис. П.8.2. Структурная схема колебательной системы в виде подсистемы |
||||
|
|
|
Д |
|
Для получения аналитической модели – матриц A,B,C,D модели |
||||
пространства состояний |
|
А |
|
|
|
|
|
||
|
x = A x + B u; |
|
||
|
б |
|
|
|
|
y |
= C x + D u |
|
|
и |
|
|
|
необходимо использоватьС функцию linmod. Вызов функции:
[A,B,C,D] = linmod('ModelSub'),
где ModelSub–имя модели (имя файла .mdl в текущем рабочем каталоге).
После вызова получаем матрицы:
A = |
|
|
|
|
|
0 |
1.0000 |
|
0 |
0 |
|
0 |
0 |
|
0 |
|
0 |
0 |
0 |
|
0 |
1.0000 |
|
0 |
0 |
-1.0000 |
0 |
||
|
|
|
|
|
|
108

C = |
|
|
|
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
D = |
И |
0 |
|
0 |
|
0 |
|
0 |
|
стояний n, то все состоян я возможно восстановить. Соответствующий вызов obsv дает
Синтез наблюдателя для оценки состояний по выходам. |
|
||
В реальности все состояния объекта управления сложно изме- |
|||
|
|
Д |
|
рить. Измерять все и не тре уется – некоторые состояния можно вос- |
|||
становить по значениям других. По матрицам A,C можно узнать, воз- |
|||
|
А |
obsv, |
|
можно ли это сделать в пр нципе. Для этого служит функция |
|||
б |
|
|
|
и |
|
|
|
rank(obsv(A,C))
ans =4,
вычисляющая матр цу наблюдаемости, если ее ранг равен числу со- С
значит, все состояния наблюдаемы – что очевидно, потому что C – диагональная.
Попробуем измерять только два состояния x_1 и x_3, изменив матрицу:
C = [1 0 0 0; 0 0 1 0]; D = [0; 0].
Тест на наблюдаемость дает следующий результат:
rank(obsv(A,C))
ans =4,
т.е. по измеряемым двум состояниям можно восстановить все 4.
109

Для этого необходимо синтезировать т.н. наблюдатель – это модель объекта управления, которая работает параллельно с ним и подключена к тому же входу u. Состояние наблюдателя xˆ , его выход – yˆ.
Уравнение динамики наблюдателя при D =0 записываются в виде
xˆ = A xˆ + B u + L (y − yˆ) yˆ =Cxˆ.
Если обозначить eˆ = y − yˆ , то динамика наблюдателя может быть записана через eˆ = (A − LC) e.
Так как при y → yˆ надо, чтобы eˆ → 0, то задача вычисления L –
это обеспечение устойчивости наблюдателя, которая может быть решена методом размещения полюсов независимо от синтеза регулятора (вычисления матрицы K).
лютное собственное значение λˆ , такое чтобыИоно было больше абсо-
Для синтеза наблюдателя сначала выберем минимальное абсо-
лютной величины собственных чисел регулятора λˆ >> λ – это условие, что наблюдатель работает быстрее регулятора.
Например, если вектор собственных чисел для регулятора |
|||
|
|
Д |
|
P = [-1 -2 -3 -4], |
А |
|
|
|
|
||
|
б |
|
|
то для наблюдателя мы можем вы рать
P_ = [-10 -12 -13 -14].
|
|
|||||
Наблюдатель оп сывается уравнениями |
||||||
С |
|
|
ˆ |
ˆ |
T |
|
иxˆ = |
A xˆ |
+ B(u, y) ; |
||||
|
yˆ |
ˆ |
ˆ |
T |
||
|
= Cxˆ + D(u, y) = xˆ, |
где матрицы A,ˆ B,C,ˆ ˆ Dˆ – соответственно переменные A_, B_, C_, D_ в
коде команд MATLAB.
На рис. П.8.3 представлено сравнение моделей.
Управление моделью SimMechanics реализовано по полному вектору состояния, управление моделью в пространстве состояний (блок типа State-Space с именем Model_ss) – через наблюдатель (блок типа State-Space с именем Estimator).
Перед моделированием необходимо очистить Workspace и выполнить следующие команды:
110

n = 4; % число состояний
m = 2; % число наблюдаемых выходов k = 1; % число входов
%1. Все состояния наблюдаемы
[A,B,C,D] = linmod('ModelSub');
% синтез регулятора
P = [-1 -2 -3 -4];
K = place (A, B, P);
% переменные для синтеза на основе оптимизации
|
|
|
k1 = K(1); |
И |
|
k2 = K(2); |
|
|
k3 = K(3); |
Д |
|
k4 = K(4); |
||
|
||
k = 1; |
|
|
|||
C_f = C; D_f = D; % сохраняем предыдущее представление |
|||
|
|
|
А |
% 2. Наблюдаемы только x(1) и x(3) |
|||
C = [1 0 0 0; 0 0 1 0]; |
б |
||
|
|
||
D = [0; 0]; |
и |
|
|
|
|
||
% синтез наблюдателя |
|
|
|
|
С |
|
|
P_ = [-10 -12 -13 -14]; % выбор собственных чисел (полюсов) L = place(A',C', P )'; % с нтез размещением полюсов
% создание модели пространства состояний для наблюдателя
B_ = [B L];
D_ = zeros(n,m+k); C_ = eye(n);
A_ = A - L*C.
В результате выполнения этих команд получаем матрицу L
L =
24.9805 -1.4329
155.0787 -18.1644 -1.4092 24.0195 -17.8407 141.9214
111

Рис. П.8.3. Модель SimMechanics, вставленная через блок Model
из библиотеки Simulink/Ports & Subsystems, (вверху) |
||||
и модель в пространстве состояний (внизу) |
||||
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.8.4. Диаграммы реакций выходов систем на единичный импульс
Поведение системы с наблюдателем и без него не отличаются, как и не отличаются реакции аналитической модели и компонентой модели SimMechanics.
Оптимизационный синтез регулятора в Simulink.
Синтез управления может быть осуществлен с помощью Simulink Design Optimization – это мощное средство параметрического синтеза систем управления и идентификации моделей, встроенное в Simulink.
112

Для использования этого средства необходимо:
•разместить в модели блок Signal Constraint из библиотеки
Simulink Desing Optimization в Simulink;
•подключить этот блок к сигналу, значение которого необходимо регулировать;
•настроить допустимые границы переходного процесса и установившегося значения регулируемого сигнала;
•определить оптимизируемые переменные и их начальные зна-
чения;
•запустить процесс оптимизации.
Собираем модель колебательной системы совместно с блоком
Signal Constraint (рис. П.8.5). В н астройках блока State-Space задаем
матрицы A, B, C_f, D_f. |
|
|
|
И |
|
|
|
|
|
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
Рис. П.8.5. Модель колебательной системы совместно с блоком SignalConstraint |
||||
и |
|
|
|
|
Открываем параметры Signal Constraint, выбираем границы из- |
||||
С |
|
|
|
|
менения выходного сигнала (р с. П.8.6). Можно оставить как есть.
Рис. П.8.6. Настройки блока Signal Constraint
113

Добавляем переменные для оптимизации, открываем через ме-
ню в свойствах Signal Constraint пункт Optimization/Tuned Parameters,
нажимаем Add, выбираем k, k1, k2, k3, k4 – это компоненты вектора обратной связи K и входного усилителя K_.
После этого нажимаем в свойствах Signal Constraint на кнопку "Воспроизведение" или через меню Optimization/Start. И наблюдаем за процессом оптимизации. На каком-то шаге может появиться сообщение, что сигнал в модели достиг значения бесконечности. В этом случае рекомендуется остановить оптимизацию и запустить снова (будет предложено).
|
|
|
|
И |
|
|
|
Д |
|
|
|
А |
|
|
|
б |
|
|
|
и |
|
|
|
|
С |
|
|
|
|
Рис. П.8.7. Процесс оптимизации параметров регулятора
В результате оптимизации были предложены следующие значе-
ния параметров регулятора: k = -14854; k1 = -4,0641; k2 = -13,229; k3 = -15011; k4 = -4993,1.
114

|
|
|
Д |
|
Рис. П.8.8. Осциллограмма на выходе колебательной системы |
||
|
с регулятором после оптимизацииИ |
||
|
|
Порядок моделирования |
|
1. |
|
б |
|
Собрать математическую модель колебательной системы |
|||
|
и |
|
|
(рис. П.8.2) при помощи пакетаАSimMechanics. |
|||
2. |
Получить матр цы A, B, C, D модели колебательной системы |
||
|
С |
|
|
в пространстве состоян й. |
|
||
3. |
Синтезировать наблюдатель для оценки состояний по выхо- |
дам, собрать модель колебательной системы с наблюдателем в пространстве состояний (рис. П.8.3). Сравнить эту модель с Simulinkмоделью.
4. Синтезировать регулятор при помощи Simulink Design Optimization (рис. П.8.5), получить графики выходной величины колебательной системы с регулятором после оптимизации.
115