Учебное пособие 1278
.pdfФГБОУ ВПО “Воронежский государственный технический университет”
Кафедра робототехнических систем
МОДЕЛИРОВАНИЕ И ИССЛЕДОВАНИЕ МЕХАТРОННЫХ СИСТЕМ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к выполнению курсового проекта по дисциплине “Компьютерные технологии”
для студентов направления подготовки бакалавров 221000 “Мехатроника и робототехника” (профиль “Промышленная и специальная робототехника”) очной формы обучения
Воронеж 2013
Составитель канд. техн. наук Ю.С. Слепокуров
УДК 681.513.2
Моделирование и исследование мехатронных систем: методические указания к выполнению курсового проекта по курсу “Компьютерные технологии” для студентов направления
подготовки бакалавров |
221000 |
“Мехатроника |
и |
||
робототехника” |
(профиль |
“Промышленная и |
специальная |
||
робототехника”) |
очной |
формы |
обучения / ФГБОУ ВПО |
“Воронежский государственный технический университет”; сост. Ю.С. Слепокуров. Воронеж, 2013. 14 с.
Методические указания содержат варианты заданий и рекомендации по созданию подпрограмм и функций, необходимых для их выполнения.
Издание подготовлено в электронном виде и содержатся в файле KompTehnKP.pdf
Рецензент канд. техн. наук, доцент О.Ю. Таратынов
Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А.И. Шиянов
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
ФГБОУ ВПО «Воронежский государственный технический университет», 2013
Цель курсового проекта по дисциплине «Компьютерные технологии» — самостоятельное выполнение расширенного комплекса заданий лабораторного практикума по моделированию и исследованию объекта, описанного системой дифференциальных уравнений.
ЗАДАНИЯ НА КУРСОВОЙ ПРОЕКТ
1. Разработать три вида модели объекта управления (структурная модель в системе SIMULINK, передаточная функция и модель в системе пространства состояний) и определить показатели качества регулирования. В правых колонках таблицы приведены контрольные значения показателей качества системы.
№ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tр |
1 |
0.005 |
|
dx1 |
x 40 * U 0.001x |
; |
|
50 |
0.288 |
|||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
dt |
1 |
3 |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
dx |
|
|
|
|
|
|
||||||||
|
0.04 |
|
|
|
2 |
x2 20 * x1 |
0.02x2 0.01x3 ; |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
dt |
|
|
|
|
|
|
||||||||
|
|
dx |
|
x3 |
30x2 ; y |
x3 |
|
|
|
|
|||||||
|
0.2 |
|
3 |
|
|
|
|
|
|||||||||
|
dt |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
2 |
0.005 |
dx1 |
x 60 * U 0.001x 0.002x |
; |
50.8 |
0.57 |
|||||||||||
|
|
|
|||||||||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
dt |
1 |
1 |
3 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
dx |
|
x2 |
40* x1 0.05x2 ; |
|
|
|
|
||||||||
|
0.2 |
|
2 |
|
|
|
|
|
|||||||||
|
dt |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
dx |
|
x3 |
20x2 ; y |
x3 |
|
|
|
|
|||||||
|
0.5 |
|
|
3 |
|
|
|
|
|
||||||||
|
|
dt |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
0.005 |
|
dx1 |
|
x 20 * |
U 0.01x 0.005x |
; |
35.2 |
0.118 |
|||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
dt |
|
|
1 |
|
2 |
|
3 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
dx |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
0.08 |
|
|
|
|
|
2 |
|
|
x2 40 * x1 0.02x2 ; |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
dt |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
dx |
|
x3 |
50x2 ; y x3 |
|
|
|
|
|
||||||||||||||||
|
0.2 |
|
|
3 |
|
|
|
|
|
|
||||||||||||||||
|
dt |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
4 |
0.001 |
|
dx1 |
|
|
x 50 * U 0.005x |
0.05x |
; |
40.1 |
0.0754 |
||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
dt |
|
|
1 |
|
2 |
|
3 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
dx |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
0.04 |
|
|
|
|
|
2 |
|
20x1 ; |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
dt |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
dx |
|
x3 |
20 * x2 |
0.02x3 ; y x3 |
|
|
|
|
||||||||||||||||
|
0.8 |
|
|
|
|
3 |
|
|
|
|
|
|||||||||||||||
|
|
|
dt |
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
5 |
0.002 |
dx1 |
|
x 100 * |
U 0.05x |
0.5x |
; |
56.4 |
0.141 |
|||||||||||||||||
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
dt |
|
|
1 |
|
2 |
3 |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
dx |
|
x2 |
40 * x1 |
0.05x3 ; |
|
|
|
|
|
|||||||||||||||
|
0.4 |
|
|
|
2 |
|
|
|
|
|
|
|||||||||||||||
|
|
dt |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
dx |
|
x3 |
25x2 ; |
y x3 |
|
|
|
|
|
|||||||||||||||
|
0.6 |
|
|
|
3 |
|
|
|
|
|
|
|||||||||||||||
|
|
dt |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
6 |
0.005 |
dx1 |
|
x 20 * |
U 0.2x 0.1x ; |
|
|
40.1 |
0.242 |
|||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
dt |
|
|
1 |
|
1 |
3 |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
dx |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
0.05 |
|
|
|
|
|
|
|
2 |
x2 15x1 ; |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
dt |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
dx |
|
x3 |
10 * x2 |
0.5x3 ; y x3 |
|
|
|
|
||||||||||||||||
|
0.4 |
|
|
3 |
|
|
|
|
|
|||||||||||||||||
|
dt |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38.5 |
2.54 |
|||
|
x1 20 * U 0.004x3 ; |
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
d |
2 |
x |
|
|
dx |
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
0.05 |
|
|
|
|
|
|
2 |
0.2 |
2 |
x2 5x1; |
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
dt |
|
|
|
|
|
|
|
|
dt |
|
|
|
|
|
|||||||||
|
|
dx |
|
|
x3 |
10 * x2 0.5x3 ; y x3 |
|
|
|
||||||||||||||||||||
|
0.4 |
|
|
|
|
|
3 |
|
|
|
|
||||||||||||||||||
|
dt |
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
8 |
0.01 |
|
|
dx1 |
|
|
x 20 * U 0.05x |
0.08x |
; |
45.3 |
0.426 |
||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
dt |
|
|
|
|
|
|
|
1 |
|
2 |
|
3 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
dx |
|
|
x2 |
10x1 ; |
|
|
|
|
|
||||||||||||||
|
0.05 |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|||||||||||||
|
|
|
dt |
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
dx |
|
|
x3 |
40x2 ; y x3 |
|
|
|
|
|
||||||||||||||||||
|
0.6 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|||||||||||||||
|
|
dt |
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
9 |
|
|
|
|
|
|
|
dx |
|
|
|
|
|
|
|
58.1 |
0.0538 |
||||||||||||
|
0.001 |
|
|
|
|
|
1 |
|
x1 |
10 * U 0.05* x1 |
0.5x2 |
0.5x3 ; |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
dt |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
dx |
|
|
x2 |
40* x1 0.5x2 ; |
|
|
|
|
|
||||||||||||||
|
0.05 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
||||||||||||||
|
|
dt |
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
dx |
|
|
x3 |
25x2 ; y x3 |
|
|
|
|
|
||||||||||||||||||
|
0.3 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
||||||||||||||
|
|
|
dt |
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
0.003 |
dx1 |
x 100 * U 0.05x |
|
; |
|
58.7 |
0.0901 |
|||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
dt |
1 |
|
3 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
dx |
|
|
x2 |
40 * x1 0.5* x2 |
0.05x3 ; |
|
|
||||||||||||||||
|
0.05 |
|
|
|
|
|
2 |
|
|
|
|
||||||||||||||||||
|
dt |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
dx |
|
|
x3 |
22 * x2 0.05x3 ; y x3 |
|
|
|
||||||||||||||||||||
|
0.5 |
|
|
|
|
|
|
3 |
|
|
|
|
|||||||||||||||||
|
|
dt |
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Для двух нестационарных параметров системы (подчеркнуты в системе дифференциальных уравнений объекта) определить наличие критических значений ( переход системы в неустойчивое состояние). Диапазон изменения параметров
3
принять равным p / 210 p *210 , где p - базовое значение
параметра (приведенное в уравнении). Устойчивость системы определяется отсутствием нулевых и положительных полюсов
системы, которые вычисляются функцией pole sys , где sys -
объект типа передаточная функция или система пространства состояний в рабочей области MATLAB. Рекомендуется написать файл-функцию определения наличия положительных корней и файл-сценарий для определения критических значений параметров. Рекомендуемая точность определения критических значений – до трех значащих цифр.
3.Для нестационарных параметров системы, изменение которых может привести к неустойчивому состоянию системы построить линию границы устойчивости системы в диапазоне
0.5pкрит 1.5 pкрит .
4.Для некоторого диапазона значений нестационарных параметров системы, соответствующих устойчивому состоянию, построить линии равных уровней параметров качества системы, определенных следующей таблицей:
вариант |
параметр |
Значение 1 |
Значение 2 |
Значение 3 |
1 |
|
10 |
20 |
30 |
2 |
t p |
0,6 |
0,8 |
1,0 |
|
|
|
|
|
3 |
|
2 |
6 |
10 |
4 |
t p |
0,05 |
0,1 |
0,5 |
|
|
|
|
|
5 |
|
35 |
45 |
55 |
6 |
t p |
0,2 |
0,25 |
0,3 |
|
|
|
|
|
7 |
|
30 |
45 |
60 |
8 |
|
10 |
20 |
30 |
9 |
t p |
0,1 |
0,2 |
0,4 |
10 |
|
20 |
35 |
50 |
11 |
t p |
1 |
1,5 |
3 |
|
|
4 |
|
|
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ ЗАДАНИЯ
Напишем файл сценарий, который создает в рабочей области LTI-объект, соответствующий системе его дифференциальных уравнений [1]. При этом нестационарные параметры системы выделим в отдельные переменные p1 и p2 :
p1=30;
p2=0.04; h1=tf(20,[0.01 0.5 1]); h2=feedback(h1,p2); h3=tf(p1,[0.4 1]); h=feedback(h2*h3,0.01); step(h),grid on,shg
Переходный процесс системы имеет следующий вид:
Step Response
|
100 |
|
|
|
|
|
|
|
90 |
|
|
|
|
|
|
|
System: h |
|
|
|
|
|
|
|
Peak amplitude: 93.6 |
|
|
|
|
|
|
|
Overshoot80 |
(%): 21.6 |
|
|
|
|
|
|
At time (sec): 0.56 |
|
|
|
|
|
|
|
70 |
|
|
System: h |
|
|
|
|
|
|
|
Settling Time (sec): 1.32 |
|
|
|
|
60 |
|
|
|
|
|
|
Amplitude |
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
|
|
|
|
|
|
30 |
|
|
|
|
|
|
|
20 |
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
0 |
0.5 |
1 |
1.5 |
2 |
2.5 |
3 |
Time (sec)
Так как в дальнейших исследованиях нам потребуется анализировать объект при различных значениях нестационарных параметрах, трансформируем проверенный файл-сценарий в файл-функцию, для которой значения нестационарных параметров p1 и p2 будут входными
аргументами, а сам объект – выходным. В результате получим
5
функцию, которую сохраним в файле object.m Помним, что
файл-функция отличается от файла-сценария наличием заголовка с именем функции и указанием входных и выходных параметров [2]:
function h=object(p1,p2);
Устойчивость системы определяется отсутствием у системы нулевых и положительных корней характеристического уравнения. В системе MATLAB это можно проверить, используя
функцию pole sys . Если вещественные части всех полюсов
системы отрицательны – система будет устойчива. Следует при этом помнить о том, что количество полюсов равно порядку системы дифференциальных уравнений объекта. Определение устойчивости также можно оформить в виде файла-функции opr _ gu.m :
function stab=opr_gu(sys)
Размерность системы можно определить используя функцию n=length(a), где а – собственная матрица модели объекта в пространстве состояний. Проверить знак вещественной части полученных корней можно использованием комплекса функций sign(real(a(i)))>=0 в составе условного оператора.
Для построения линии границы устойчивости системы (по условиям задания границы изменения параметров составляют p /1024 p *1024) необходимо провести ряд предварительных
вычислений. Определим, на первом этапе, влияние каждого из параметров и их совместное влияние на устойчивость системы. Для этого можно написать небольшой файл-сценарий, использующий функцию object.m , или провести вычисления в
ручном режиме. В результате получим следующие данные:
Р1=30/1024, Р2=0.05/1024 |
устойчива |
6
Р1=30/1024, Р2=0.05 |
устойчива |
Р1=30/1024, Р2=0.05*1024 |
устойчива |
Р1=30, Р2=0.05/1024 |
устойчива |
Р1=30, Р2=0.05 |
устойчива |
Р1=30, Р2=0.05*1024 |
устойчива |
Р1=30*1024, Р2=0.05/1024 |
неустойчива |
Р1=30*1024, Р2=0.05 |
неустойчива |
Р1=30*1024, Р2=0.05*1024 |
устойчива |
Анализируя полученные результаты можно сделать следующие выводы:
Параметр p2 не оказывает прямого влияния на
устойчивость системы в заданном диапазоне изменения собственных значений;
При минимальном значении параметра p1 изменение параметра p2 не оказывает влияния на устойчивость системы:
Увеличение значения параметра p1 приводит систему к
неустойчивому состоянию.
Следующим этапом исследования будет определение критического значения величины. По заданию эта величина должна быть определена с точностью до 3-ей значащей цифры, иными словами, окончательный поиск должен осуществляться с
шагом 10(V 2) , где V позиционный номер старшего значащего разряда значения параметра. Т.е. для p1 , значение которого
равно 30, шаг определения границы устойчивости должен составлять 0,1.
Определение критического значения можно начать с более грубого приближения. Так, из полученной ранее таблицы видно,
что устойчивость системы определяется значениями |
p1 больше |
||
30 и меньше p1 *1024. определим устойчивость |
системы |
в |
|
указанном диапазоне путем увеличения |
параметра p1 |
на |
|
каждом шаге в два раза, считая параметр |
p2 неизменным и |
||
7 |
|
|
|
равным исходному (вывод результатов работы функции сокращен, для более компактного представления в тексте):
p1 30 устойчива
p1 60 устойчива
p1 120 устойчива
p1 240 устойчива
p1 480 неустойчива
p1 960 неустойчива
p1 1920 неустойчива
p1 3840 неустойчива
p1 7680 неустойчива
p1 15360 неустойчива.
Таким образом, мы определили, что граница устойчивости
системы по |
параметру |
p1 находится в диапазоне |
240 p1 480 . |
Определять |
критическое значение параметра |
будем с точностью до 1, следовательно можно записать функцию следующим образом:
p2=0.05;
for p1=240:480, ust=opr_gu(object(p1,p2)); if ust==1,continue,
else ['граница ' num2str(p1)],break, end
end
ans =
граница 332.
Таким образом окончательно определены границы построения кривой устойчивости системы:
p1 332 / 2 332*2 p2 0.05 0.05*1024 .
Возможны различные варианты построения такой линии. Один из них – построение плоскости, осями которой являются параметры p1 и p2 а также значение критерия устойчивости из
8