Математическая Модель Двигателя Lego Nxt.

Добрый день, уважаемые коллеги.

В этой статье я хочу поделиться с вами своими методическими разработками, которые я использую в курсе «Теория автоматического управления» на кафедре управляющих и информационных систем НИУ ИТМО.

Основная задача, которую я перед собой поставил, — объединить теоретические знания для решения практической задачи.

Эта задача заключалась в управлении приводами робота Lego. Еще один повод поиграть с игрушками, и ученикам легче принять грубую лексику.

Вот пример описания этого набора: habrahabr.ru/post/166449 .

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

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

Поиск Google дает несколько вариантов (например, nxt-unroller.blogspot.ru/2011/01/motor-controller-with-feed-forward-for.html или philohome.com/nxtmotor/nxtmotor.htm ), но мне нужно было получить характеристики моторов, которые использовались в роботе.

Вот тут-то и пригодятся знания физики и теоретической механики.

Составим уравнение Лагранжа и учтем влияние встречного ДС в обмотке ротора двигателя постоянного тока (ДПТ), получим:

Математическая модель двигателя Lego NXT.

где w - угловая скорость вращения двигателя, w0 - частота вращения холостого хода, М - крутящий момент, развиваемый двигателем, М0 - пусковой момент, J - момент инерции ротора двигателя.

Решением дифференциального уравнения будет следующее выражение:

Математическая модель двигателя Lego NXT.

где J*w0/M0 = Tm, Tm — электромеханическая постоянная двигателя.

Функция изменения угла во времени будет интегралом от функции скорости с учетом начальных условий:

Математическая модель двигателя Lego NXT.

Это именно то, что нам нужно.

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

Для этого я использовал nxcEditor для Linux и Bricxcc для Windows. На выходе получился файл, содержащий значения углов и соответствующие показания времени.

Данные с двигателя я обработал в Scilab (открытый аналог Matlab), получив значения электромеханической постоянной и установившейся скорости вращения двигателя методом наименьших квадратов, которые будут равны aa(2 )=Tm=0,081[сек] и aa(1)=w0=14,7[рад/сек] соответственно.

   

data=read("/home/kasper/Number.txt",-1,2); time=(data(:,2)-data(1,2))/1000; angle=data(:,1)*%pi/180; angle=angle'; time=time'; f=[time;angle]; function e=G(a, z),

Теги: #автоматическое управление #идентификация #моторы #lego #открытый код #математика #разработка робототехники
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.