Разработка модели в среде MATLAB - Студенческий научный форум

XIV Международная студенческая научная конференция Студенческий научный форум - 2022

Разработка модели в среде MATLAB

Иванов А.С. 1, Мурзин Д.И. 1
1Самарский государственный технический университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

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

Объект, который получается в результате моделирования, называется моделью. Должно быть понятно, что это совсем не обязательно реальный объект. Это может быть математическая формула, графическое представление и т.п. Однако он вполне может заменить оригинал при его изучении и описании поведения.

Хотя модель и может быть точной копией оригинала, но чаще всего в моделях воссоздаются какие-нибудь важные для данного исследования элементы, а остальными пренебрегают. Это упрощает модель.

В данной работе выполняется моделирование механической руки-манипулятора в программе Matlab, при этом используется математическое описание модели в виде формул и уравнений. Цель работы – подобрать параметры момента инерции J и коэффициента жесткости пружины К при помощи лишь компьютерного моделирования.

1 МОДЕЛЬ ПЕРВОГО ЭЛЕКТРОМЕХАНИЧЕСКОГО МАНИПУЛЯТОРА

1.1 Построение модели первого электромеханического манипулятора

Согласно заданию, необходимо построить модель электромеханического манипулятора без детали в захвате.

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

Реализуем каждое из уравнений с помощью подсистем Subsystem.

Использование подсистемы Subsystem имеет ряд преимуществ, основными из которых являются:

– уменьшение количества одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).

– создание и отлаживание фрагментов модели по отдельности, что повышает технологичность создания модели.

Первое уравнение реализуем с помощью подсистемы Subsystem.

Уравнение (1):

(1)

где J — момент инерции звена;

С — коэффициент вязкого трения в подшипниках;

К — коэффициент жесткости пружины;

KТ — моментный коэффициент двигателя;

i — ток двигателя.

θ — угловое положение звена;

Рассмотрим, какие из этих величин являются постоянными, а какие переменными.

Значение постоянных величин не меняется с течением времени. В этом уравнении таковыми являются:

– момент инерции звена

– коэффициент вязкого трения в подшипниках

– коэффициент жесткости пружины

– моментный коэффициент двигателя

Остальные величины являются переменными.

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

Значение переменных величин находим в процессе моделирования.

Преобразуем уравнение к следующему виду: получим уравнение (3) относительно величины d2θ/dt2

(3)

Величина d2θ/dt2­­ – это вторая производная величины θ

Чтобы найти величину θ(t), нужно дважды проинтегрировать обе части уравнения.

Найдем правую часть этого уравнения

Для этого из библиотеки Simulink добавим блок Gain, который служит для умножения сигнала, который поступает на его вход.

Будем реализовывать правую часть уравнения по частям.

Найдем произведение: i*K­T­­­

Как мы уже выяснили, величина i-переменная, а K­T­­­­-постоянная.

В параметрах блока Gain в графе «Gain» (рис.2) укажем величину K­T­ (значение которой зададим позже, в м-файле)

Рисунок 2-Параметры блока Gain

На вход блока Gain подадим значение величины силы тока i.

На рис.3 приведена блок-схема нахождения величины i*K­T­­­

­Рисунок 3- Блок-схема нахождения величины i*K­T­­­

­Аналогичным способом найдем значение произведения Q*K

Величина K-постоянная. Добавим блок Gain1, в параметрах которого в графе «Gain» (рис.4) укажем величину K­

Рисунок 4-Параметры блока Gain1

На вход блока Gain1 подадим значение величины θ

На рис.5 приведена блок-схема нахождения величины θ *K

­Рисунок 5- Блок-схема нахождения величины θ *K

Реализуем произведение θ’*C с помощью ранее описанного блока-усилителя Gain2 (параметры на рис.6), на вход которого подаем сигнал, соответствующий значению величины θ’.

Рисунок 6-Параметры блока Gain2

На рис.7 приведена блок-схема нахождения величины θ’*C

­Рисунок 7 - Блок-схема нахождения величины θ’*C

Найдем разность i*K­T­ -θ *K-θ’*C с помощью блока Add (блок алгебраического сложения). В параметрах блока (рис.8) в графе «List of signs» укажем знаки сигналов, поступающих на вход блока Add, а именно «+--»

Рисунок 8-Параметры блока Add

На вход «+» подадим значение произведения i*K­T­­­, то есть результат блока Gain.

На входы «-» будут поступать сигналы, соответствующие значениям произведений θ *K и θ’*C, то есть результаты блоков Gain1 и Gain2 соответственно.

Блок-схема реализации разности i*K­T­ -θ *K-θ’*C приведена на рис.9

Рисунок 9- Блок-схема реализации разности i*K­T­ -θ *K-θ’*C

Завершающим этапом реализации правой части уравнения (3) будет следующий шаг: поделим полученную выше разность на постоянную величину J­ с помощью блока Gain3, параметры которого приведены на рис.10

Рисунок 10-Параметры блока Gain3

На вход блока Gain3 подадим сигнал, соответствующий значению описанной выше разности, то есть результат блока Add.

Таким образом, с помощью блока Gain3 мы получили сигнал, соответствующий значению величины θ’’. Теперь, для нахождения θ из величины θ’’добавим два блока Integrator (которые имеют одинаковые параметры) (параметры блока Integrator приведены на рис.11), Этот блок выполняет интегрирование подступающего на него сигнала.

Рисунок 11-Параметры блока Integrator

Результатом блока Integrator является значение величины θ в радианах.

Так как в начальный момент времени манипулятор неподвижен, то значение величины θ в момент времени t=0 равно нулю. Начальное значение интегрируемой величины указывается в параметрах блока Integrator в графе «Initial Condition». Так как по умолчанию оно равно нулю, оставляем это значение без изменений.

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

Выходным сигналом является сигнал, значение которого равно величине силы тока i.

Выходных сигналов будет два. Для этого копированием блока Out1 создадим блок Out2. На вход блока Out1 подадим сигнал, соответствующий значению величины θ’ (результат блока Integrator1), на вход блока Out2-значение величины θ (результат блока Integrator).

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

Добавим блоки Scope1 и Scope2, на которые подадим сигналы, соответствующие значениям величин θ’ и θ соответственно.

Таким образом, с помощью подсистемы SubSystem мы нашли значение величины θ и θ’.

Добавим блок To Workspace, параметры которого приведены на следующем рисунке

Параметры блока To Workspace

На вход этого блока подадим результат блока Integrator1, то есть величину ϴ.

С помощью блока To Workspace получим массив всех значений величины ϴ.

Блок-схема подсистемы SubSystem приведена на рис.12

Рисунок 12- Блок-схема подсистемы SubSystem

Вернемся из подсистемы Subsystem к основному окну модели первого ЭлМ.

Добавим еще одну подсистему-Subsystem1, для нахождения величины i и реализации условия моделирования.

В подсистеме Subsystem1 будет два входных сигнала, которые соответствуют значениям величин θ’и величине, полученной с помощью блока To WORKSPACE (блоки In1 и In2 соответственно).

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

напряжения, описывается следующим дифференциальным уравнением(2):

(2)

где L — индуктивность обмотки якоря двигателя;

R — активное сопротивление обмотки якоря двигателя;

KЕ — скоростной коэффициент двигателя.

Преобразуем уравнение к следующему виду (выразим величину di/dt) и получим уравнение (4).

(4)

Реализуем это уравнение

Сначала найдем величину u, которая является периодической величиной. От управляемого источника питания двигателя поступает напряжение, описываемое следующей периодической зависимостью: в течение 1 с напряжение постоянного тока возрастает линейно от U1 = 0 В до U2 = 11 В и действует U2 в течение 5 с, затем скачком уменьшается до U3 = 5 В и действует U3 в течение 4 с, затем скачком уменьшается до U4 = 0 В и сохраняется в течение интервала времени Т<10 с. Потом происходит бесконечное повторение описанной последовательности.

Реализуем величину u с помощью блока создания периодичных импульсов Repeating Sequence (параметры на рис.13).

Рисунок 13-Параметры блока Repeating Sequence

Описание параметров блока Repeating Sequence:

Time values – Вектор значений модельного времени. Каждое следующее значение должно быть больше предыдущего.

Output values – Вектор значений сигнала для моментов времени заданных вектором Time values.

Блок выполняет линейную интерполяцию выходного сигнала для моментов времени не совпадающих со значениями заданными вектором Time values.

В параметрах блока Repeating Sequence нужно указать значение величины u и соответствующие им промежутки времени для одного периода.

Опишем значение величин Ui в i-ые моменты времени следующей таблицей (Таблица 1).

Интервал времени

Начальное значение величины U

Конечное значение величины U

Характер изменения U в этом интервале

(0; T1)

U1

U2

Линейное увеличение от U1 до U2

(T1; T1+T2)

U2

U2

Сохранение значения U2

(T1+T2; T1+T2+H)

U2

U3

Мгновенное увеличение от U2 до U3 (то есть за один шаг, равный H)

(T1+T2+H; T1+T2+T3)

U3

U3

Сохранение значения U3

(T1+T2+T3; T1+T2+T3+Н)

U3

U4

Мгновенное уменьшение от U3 до U4 (то есть за один шаг, равный H)

(T1+T2+T3+Н; T1+T2+T3+T)

U4

U4

Сохранение значения U4

Таблица 1-Изменение величины U

Реализуем произведение θ’*K­E с помощью блока Gain (параметры на рис.14), на вход которого подадим значение величины θ’, то есть выходной сигнал блока In1.

Рисунок 14-Параметры блока Gain

Блок-схема реализации произведения θ’*K­E приведена на рис.15

Рисунок 15- Блок-схема реализации произведения θ’*K­E

Реализуем произведение i*R с помощью блока Gain1 (параметры на рис.16), на вход которого подадим значение величины i.

Рисунок 16-Параметры блока Gain1

Блок-схема реализации произведения i*R приведена на рис.17

Рисунок 17- Блок-схема реализации произведения i*R

Добавим блок Add (параметры которого приведены на рис.18) для нахождения числителя дроби правой части уравнения (4), то есть для нахождения разности: u-(θ’*K­­E)-(i*R)

Рисунок 18-Параметры блока Add

На вход «+» блока Add подадим результат блока Repeating Sequence (значение величины u).

На первый вход «-» блока Add подадим результат Gain (значение произведения θ’*K­E)

На второй вход «-» блока Add подадим результат Gain1 (значение произведения i*R)

Найдем правую часть уравнения (4) с помощью блока Gain2, в параметрах которого укажем «1/L»

На вход блока Gain2 подадим сигнал, полученный с помощью блока Add

С помощью блока Gain2 получили значение величины di/dt.

Найдем значение i с помощью блока Integrator, на вход которого подадим результат блока Gain2.

В исходном состоянии двигатель обесточен, поэтому начальное значение i (которое указывается в параметрах блока Integrator) равно нулю.

Реализуем условие задачи: в конце каждого этапа цикла управления с постоянным уровнем напряжения угловые колебания звена не должны превышать по амплитуде 0,5 градуса.

С помощью цикла, написанного в м-файле, структура которого приведена на следующих рисунках, получим массив под названием IMPERATOR, который будет идентичен массиву KOROL, за исключением следующего: каждое последнее значение каждого этапа цикла управления с постоянным уровнем напряжения равно амплитуде колебаний на этом этапе.

Структура цикла, созданного в м-файле (строки 1-28)

Структура цикла, созданного в м-файле (строки 29-56)

Структура цикла, созданного в м-файле (строки 57-74)

Описание цикла:

1) KOROL – массив всех значений величины Q

2) Период изменения Q

3) Количество периодов на интервале времени моделирования

7) формирование массива x, в котором первым элементом будет первый элемент массива KOROL

15-17) А-номер элемента последнего элемента первого этапа периода, B-второго этапа, С-третьего

19) Главный цикл, приращение в этом цикле-переход следующему периоду

20-24)Внутренний цикл, в котором будет рассчитываться массив х, на каждом шаге цикла в который будет добавляться один элемент

21, 22) расчет максимального и минимального элементов на одном периоде

25-27) нахождение амплитуды

28)замена последнего элемента первого этапа периода на значение амплитуды на этом этапе

30-49)аналогичные действия для второго этапа

50-56)переход к следующему периоду

63-72)цикл, с помощью которого мы находим массив, элементы которого это значение времени рассчитанных значений Q

44) формирование двумерного массива IMPERATOR, в котором каждому значению точки будет соответствовать свое значение времени. [2]

Как мы уже нашли ранее с помощью таблицы 1, длительность каждого интервала равна T1+T2+T3+T.

Добавим блок Repeating Sequence1 (параметры на рис.19) для реализации моментов времени, соответствующих окончанию каждого этапа цикла.

Рисунок 19-Параметры блока Repeating Sequence1

С помощью блока Repeating Sequence получили периодичный сигнал (период равен одному циклу). В моменты времени, когда сигнал равен 1, нужно сравнить значение величины θ с предельным значением, равным 0,5 градусам.

Добавим блок Switch, который выполняет переключение сигналов, поступающих на его первый и третий входы. Переключение происходит следующим образов: на средний вход этого блока поступает сигнал, который будет сравниваться с внутренним значением блока Switch (знак и значение указываются в параметрах блока Switch-рис.20); в случае выполнение неравенства выходному сигналу блока Switch будет соответствовать сигнал, поступающий на его первый (верхний вход), в противном случае-на нижний.

Рисунок 20-Параметрыблока Switch

Напервыйвходблока Switch подадимрезультатблока In2 (значениевеличиныθ); навторойвходблока Switch подадимрезультатблокаRepeating Sequence; натретий-значениенулевойконстанты (блок Constant).

То есть в момент времени, соответствующий окончанию цикла, значение блока Switch будет равно величине θ. В остальные моменты времени-нулю.

Так как блок Integrator находит значение θ в радианах, а сравнить это значение нужно с величиной в градусах, переведем 0,5 градусов в радианы с помощью блока Degrees to Radians, на вход которого подадим блок Constant1 со значением Qmax.

Сравнение произведем с помощью блока Relational Operator (параметры на рис.21)

Рисунок 21-Параметры блока Relational Operator

Если полученное неравенство окажется верным, результатом блока Relational Operator будет 1. В ином случае-0.

Добавим блок Stop (на который подадим результат блока Relational Operator), который производит остановку моделирования в случае подачи на него ненулевого сигнала.

Блок-схема реализации условия остановки моделирования приведена на рис.22

Рисунок 22- Блок-схема реализации условия остановки моделирования

Добавим блоки Scope и Scope1, на которые подадим сигналы, соответствующие значению u (результат блока Repeating Sequence) и значению i (результат блока Integrator).

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

Блок-схема подсистемы SubSystem1 приведена на рис.23

Рисунок 23- Блок-схема подсистемы SubSystem1

Итоговая блок-схема модели первого ЭлМ приведена на рис.24

Рисунок 24- Итоговая блок-схема модели первого ЭлМ

1.2 Проведение вычислительных экспериментов для модели первого электромеханического манипулятора

В результате моделирования необходимо определить минимальное значение Т, удовлетворяющее условию задания. Если начальные значения параметров не позволяют реализовать условия задания, то следует изменять жесткость пружины K с шагом 10 Н/м. Результаты моделирования (в том числе временные зависимости углового положения звена манипулятора) должны быть представлены для начальных условий (в данном случае без детали в захвате, то есть J­=1.1), конечного варианта и 2 промежуточных значений К.

В параметрах каждого из блоков Scope (рис.25) в графе «Limit data point to last» укажем количество точек, из которых будет состоять построенные графики.

Рисунок 25-Параметры блока Scope

Здесь: t-интервал проведения вычислительного эксперимента

H-величина фиксированного шага

Теперь при любых значениях шага моделирования и интервала времени графики будут строиться полностью на всем промежутке времени t.

Реализуем значение всех постоянных величин с помощью script файла, в котором укажем значения каждой из величин. Структура script файла-на рис.26

Рисунок 26-Структура script файла

Также в script файле будет присутствовать цикл для ограничения величины T, которое задает пользователь. По условию максимальное значение T=10 (Tmax). Значение T, которое задает пользователь-это Tzad. T-текущее значение величины T.

Начальное значение T=10, K=35 (коэффициент жесткости)

Запустим script файл и саму модель.

Откроем графики величины i (рис.27) и величины θ (рис.28)

Рисунок 27- График величины i при K=35 и T=10

Рисунок 28-График величины θ при K=35 и T=10

Как видим из график, остановки моделирования не произошло, а значит условие задачи выполнилось при начальных значениях K и T.

Значения силы тока и амплитуды угловых колебаний звена изменяются периодически, период которых в данном случае равен 20 (сек).

Значение силы тока сначала моделирования резко увеличивается от нуля до 14.3 (А), потом сохраняет свое значение в течении 6 сек, затем скачком уменьшается до 7 (А), сохраняя свое значение до 10 сек, потом снова скачком падает до значения, близкого к нулю, и сохраняет такое значение в интервале времени T, то есть 10 сек. Затем все периодически повторяется.

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

Определим минимальное значение T, при котором будет выполняться условие задачи. Примем T=1.5 сек (изменим значение T в script файле). Моделирование пройдет до конца, об этом нам свидетельствуют графики величины i (рис.29) и величины θ (рис.30)

Рисунок 29- График величины i при K=35 и T=1.5

Рисунок 30-График величины θ при K=35 и T=1.5

Так как мы уменьшили T, периоды изменения этих величин уменьшились.

На рис.31 приведен график изменения величины U.

Рисунок 31-График изменения величины U при T=1.5

Величина U изменяется следующим образом (как и требуется в условии): в течение 1 с напряжение постоянного тока возрастает линейно от U1 = 0 В до U2 = 11 В и действует U2 в течение 5 с, затем скачком уменьшается до U3 = 5 В и действует U3 в течение 4 с, затем скачком уменьшается до U4 = 0 В и сохраняется в течение интервала времени Т. Потом происходит бесконечное повторение описанной последовательности.

При T=1.4 произойдет остановка моделирования при t=11; об этом говорит график величины i, приведенный на рис.32

Рисунок 32-График изменения величины i при K=35 и T=1.4

Таким образом, в результате моделирования мы нашли минимально допустимую величину T (при начальном значении величины K, K=35), а именно T=1.5, удовлетворяющую условию задания, а также установили характер изменения величин силы тока i и амплитуды угловых колебаний θ.

2 МОДЕЛЬ ВТОРОГО ЭЛЕКТРОМЕХАНИЧЕСКОГО МАНИПУЛЯТОРА

2.1 Построение модели второго электромеханического манипулятора

Второй ЭлМ имеет зажатую в захвате деталь, за счет которой увеличивается момент инерции звена, то есть J­2­= J­.

Создадим новую модель, в которую копированием добавим уже созданную модель первого ЭлМ.

Отроем подсистему SubSystem и изменим параметры блока Gain3, которые приведены на рис.33

Рисунок 33-Параметры блока Gain3

Где J­ это момент инерции звена второго ЭлМ.

Остальные блоки оставим без изменения.

2.2 Проведение вычислительных экспериментов для модели второго электромеханического манипулятора

В результате моделирования необходимо определить минимальное значение Т, удовлетворяющее условию задания. Если начальные значения параметров не позволяют реализовать условия задания, то следует изменять жесткость пружины K с шагом 10 Н/м. Результаты моделирования (в том числе временные зависимости углового положения звена манипулятора) должны быть представлены для начальных условий (в данном случае есть деталь в захвате, то есть J­=3.3), конечного варианта и 2 промежуточных значений К.

Реализуем начальные значения величин с помощью того же script файла.

Запустим модель.

Откроем графики величины i (рис.33) и величины θ (рис.34)

Рисунок 33- График величины i при K=35 и T=10

Рисунок 34-График величины θ при K=35 и T=10

Как видим из график, остановки моделирования не произошло, а значит условие задачи выполнилось при начальных значениях K и T.

Значения силы тока и амплитуды угловых колебаний звена изменяются периодически, период которых в данном случае равен 20 (сек).

Определим минимально допустимое значение T. Примем T=2.3

Остановки моделирования не произошло. Это видно на графиках величины i (рис.35) и величины θ (рис.36)

Рисунок 35- График величины i при K=35 и T=2.3

Рисунок 36- График величины θ при K=35 и T=2.3

При T=2.2 произойдет остановка моделирования при t=11.2; об этом говорит график величины i, приведенный на рис.37

Рисунок 37-График изменения величины i при K=35 и T=1.4

Таким образом, в результате моделирования мы нашли минимально допустимую величину T (при начальном значении величины K, K=35), а именно T=2.3, удовлетворяющую условию задания, а также установили характер изменения величин силы тока i и амплитуды угловых колебаний θ.

ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы были на практике подтверждены достоинства использования для моделирования подсистемы Simulink пакета

MATLAB. Были получены закономерности изменения различных параметров моделируемой системы при изменении других параметров этой системы/

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Черных, И.В. Учебник по Simulink [Электронное издание] //http://bourabai.ru/cm/simulink (на 18.11.2017 г.)

2. Черных, И.В. Simulink: среда создания инженерных приложений / Под общ. ред. к. т. н. В.Г. Потемкина [Текст] / И.В. Черных, В.Г. Потемкин – М.: ДИАЛОГ-МИФИ, 2003. – 496 с.

Просмотров работы: 6