ный на быстром преобразовании Фурье, выполняется за время порядка 0(1п(п)2).
Кодирование:
При операции кодирования информационный полином умножается на порождающий многочлен. Умножение исходного слова 5 длины к на неприводимый полином при систематическом кодировании можно выполнить следующим образом: К исходному слову приписываются 2{ нулей, получается полином Т =Бх2. Этот полином делится на порождающий полином С, находится остаток Я, Бх21 = QG + Я, где <2 - частное. Этот остаток и будет корректирующим кодом Рида-Соломона, он приписывается к исходному блоку символов. Полученное кодовое слово С = Бх21 + Я.
Кодировщик строится из сдвиговых регистров, сумматоров и умножителей. Сдвиговый регистр состоит из ячеек памяти, в каждой из которых находится один элемент поля Галуа.
Существует и другая процедура кодирования (более практичная и простая). Положим а1Е СР(ц), (г = 1,2,..., к — 1), аЕСР(ц) - примитивный элемент поля СР(д), и пусть а = (а0, а1,., ак-1) - вектор информационных символов, а значит а(х) = а0 + а1х + —+ ак-1хк-1 - информационный многочлен. Тогда вектор и = (а(1), а(а),..., а(а4-2)) есть вектор кода Рида - Соломона, соответствующий информационному вектору а. Этот способ кодирования показывает, что для кода Рида - Соломона вообще не нужно знать порождающего многочлена и порождающей матрицы коды, достаточно знать разложение поля СР(ц) по примитивному элементу а, и размерность кода к (длина кода в этом случае определяется как п = ц — 1). Все дело в том, что
за разностью п—к полностью скрывается порождающий многочлен д(х) и кодовое расстояние. Декодирование:
Декодировщик, работающий по авторегрессивному спектральному методу декодирования, последовательно выполняет следующие действия: Вычисляет синдром ошибки Строит полином ошибки Находит корни данного полинома Определяет характер ошибки Исправляет ошибки Применение:
Сразу после появления (60-е годы 20-го века) коды Рида-Соломона стали применяться в качестве внешних кодов в каскадных конструкциях, использующихся в спутниковой связи. В подобных конструкциях -ые символы Рида-Соломона (их может быть несколько) кодируются внутренними сверточ-ными кодами. На приемном конце эти символы декодируются мягким алгоритмом Витерби (эффективный в каналах с АБГШ) . Такой декодер будет исправлять одиночные ошибки в д-ичных символах, когда же возникнут пакетные ошибки и некоторые пакеты д-ичных символов будут декодированы неправильно, тогда внешний декодер Рида-Соломона исправит пакеты этих ошибок. Таким образом, будет достигнута требуемая надежность передачи информации. В настоящий момент коды Рида-Соломона имеют очень широкую область применения благодаря их способности находить и исправлять многократные пакеты ошибок.
Для программной реализации имитации работы кода был выбран код Рида-Соломона, который способен обнаруживать и исправлять 2 ошибки или 4 стирания.
ЛИТЕРАТУРА
1. Гришко А.К., Юрков Н.К., Кочегаров И.И. Методология управления качеством сложных систем / Труды Международного симпозиума Надежность и качество. — Пенза: 2014. - Т. 2. - С. 377-379
2. Гришко А.К., Юрков Н.К., Артамонов Д.В., Канайкин В.А. Системный анализ параметров и показателей качества многоуровневых конструкций радиоэлектронных средств / Прикаспийский журнал: управление и высокие технологии. 2014. № 2 (26). С. 77-84.
3. Гришко А.К. Технология радиоэлектронных средств. - Пенза: 2007. - 344 с.
4. Зудов А.Б., Гришко А.К. Интерфейсы на естественном языке как связь нейронных сетей с экспертными системами / В мире научных открытий. - Красноярск: - 2010. №5-1. С. 119-122.
5. Шибанов С.В., Яровая М.В., Шашков Б.Д., Кочегаров И.И., Трусов В.А., Гришко А.К. Обзор современных методов интеграции данных в информационных системах / Труды Международного симпозиума Надежность и качество. — Пенза: 2010. - Т. 1. - С. 292-295
6. Дзюба Е.А., Шибанов С.В., Хмелевской Б.Г., Кочегаров И.И., Гришко А.К. Отображение метаданных в реляционную модель данных / Труды Международного симпозиума Надежность и качество. — Пенза: 2010. - Т. 1. - С. 295-297
7. Кочегаров И.И. Система управления жизненным циклом изделий на основе универсальной технологической платформы // Труды международного симпозиума Надежность и качество. 2010. Т. 2. С. 424-426.
8. Кочегаров И.И. Распознавание параметров элементов при передаче данных при межсистемном взаимодействии // Труды международного симпозиума Надежность и качество. 2005. Т. 1. С. 512-514.
9. Шибанов С.В., Фишбейн А.И., Шашков Б.Д., Григорьев А.В, Гришко А.К. Проблемы отображения данных в информационных системах и подходы к их решению / Труды Международного симпозиума Надежность и качество. — Пенза: 2010. - Т. 1. - С. 301-306
УДК 621.865.8
Жумабаева А.С., Ергалиев Д.С.
Евразийский Национальный университет им. Л.Н. Гумилева, г. Астана, Казахстан РАЗРАБОТКА ИНТЕЛЛЕКТУАЛЬНОГО УРОВНЯ УПРАВЛЕНИЯ РОБОТОТЕХНИЧЕСКИМ КОМПЛЕКСОМ
Введение
Общепризнано, что микропроцессоры - это принципиальный шаг в развитии средств электронной автоматики и обработки данных. Микропроцессоры дешевы, компактны, обладают программным управлением и отличаются высоким быстродействием. Такое сочетание свойств позволяет на единой технологической и схемотехнической базе, т. е. только за счет программирования, получить специализированные вычислительные устройства, пригодные для использования в науке, на производстве, на транспорте, в медицине, в быту и многих других сферах.
Применение микропроцессоров в различных системах, где требуется сбор, передача, обработка и отображение информации, позволяет подняться на принципиально новый уровень по таким показателям, как надежность и простота
обслуживания систем, с одной стороны, а также полнота и сложность выполняемых ими функций, с другой.
На основе микропроцессоров, выпускается множество видов контроллеров, в том числе и для управления различными производственными процессами, а так же, для контроля за ними.
В начале 1998 года фирма Ас1уа^есЬ приступила к выпуску своего очередного продукта - АБАМ-5510, продолжив линию АБАМ-5000. Ничего революционного просто к серии базовых блоков АБАМ-5000/485 и АБАМ-500 0/САЫ, ориентированных на работу с управляющей машиной верхнего уровня в режиме «вопрос - ответ» по одному из популярных промышленных интерфейсов, добавился еще один - программируемый.
Появление модуля АБАМ-5510 позволило расположить управляющую программу пользователя
непосредственно в памяти контроллера, что сократило время реакции в контуре управления виртуально до 5-10 мкс.
Этот факт позволяет применить системы на базе ADAM-5510 для решения задач «жесткого» реального времени.
Аппаратные средства системы управления на примере контроллера ADAM -5510
Задача наблюдения и управления технологическим процессом на производстве может быть весьма сложной. По мере увеличения числа точек контроля параметров и количества исполнительных механизмов системы управления становятся все более сложными. Для построения таких систем все шире используются системы сбора данных и управления на базе РС совместимой техники, но при этом для многих из них требуются наличие в их составе управляющего компьютера [1]. Микроконтроллер ADAM-5510 фирмы Advantech позволяет реализовать автономно функционирующие распределенные системы управления, для которых применение какого-либо управляющего компьютера совершенно не обязательно.
Программируемый контроллер ADAM -5510 - на основе PC для автономного сбора данных и управления, который может управлять, контролировать и приобретать данные через многоканальные модули ввода - вывода. Его IBM-PC совместимые аппаратные средства и операционная система выполняет программы, написанные и на языках высокого уровня и на языке ассемблер. Каждая система может обработать до 4 модулей ввода - вывода (до 64 точек ввода - вывода). Система также обеспечивает порты последовательной передачи данных (RS-232/485), позволяя системе связаться с другими устройствами для выполнения универсальных приложений.
ADAM-5510 представляет собой компактный IBM PC совместимый контроллер, выполненный на базе микропроцессора 80188 и работающий под управлением операционной системы ROM-DOS.
Функциями второго уровня управления или интеллектуального контроля модуля ADAM-5510 являются:
приём команд, передаваемых верхним уровнем, их обработка и передача контроллерам нижнего уровня управления;
сбор данных с контролеров нижнего уровня, а также с датчиков, присоединённых непосредственно к интеллектуальному контроллеру;
обработка полученных данных, их представление для передачи верхнему уровню управления;
контроль состояния подсистем борта промышленного робота;
передача верхнему уровню по его запросу необходимой информации: данных, полученных от контроллеров нижнего уровня и присоединённых датчиков, состояния подсистем борта промышленного робота;
синхронизация работы подсистем промышленного робота;
обеспечение функционирования подсистем борта промышленного робота в условиях отсутствия обмена информацией с верхним уровнем управления;
работа в режиме управления подсистемами борта промышленного робота от технологического пульта. Разработка программного обеспечения системы управления
В данной работе рассмотрено решение задачи управления, робототехническим комплексом с применением программируемого контролера ADAM-5510. В состав робототехнического комплекса входит станок с ЧПУ, промышленный робот и тактовый стол. Тактовый стол, входящий в состав робототехническо-го комплекса является автоматизированным накопительным и загрузочным устройством [2]. Тактовый стол состоит из сварного основания, по направляющим которого под действием привода перемещается каретка. На каретке установлен стол с приспособлениями-спутниками, в которых определенным образом базируются заготовки и обработанные на станке детали. После каждого цикла каретка перемещается на один шаг, величина которого зависит от схемы установки и размера заготовок. Управление перемещением каретки тактового стола, перемещением промышленного робота, схватом манипулятора осуществляется устрой-
ством автоматики под управлением контроллера ADAM-5510.
Прикладные программы для контроллера могут быть написаны на языке высокого уровня таком как С++. Для многих пользователей это является несомненным преимуществом, поскольку для этого языка имеется большое число инструментальных средств разработки, значительно облегчающих процесс написания и отладки программ. Интеллектуальный уровень осуществляет управление технологическим оборудованием по заданной программе.
В данной статье разработана программа управления робототехническим комплексом на языке высокого уровня С++. Листинг программы представлен ниже.
Задачами, подлежащими управлению и контролю, в данном робототехническом комплексе являются:
- управление перемещением промышленного робота;
- управление схватом манипулятора промышленного робота;
- управление движением конвейера робототех-нического комплекса;
- контроль осуществления хода сверления детали;
- контроль разрешения цикла.
Листинг программы управления манипулятором промышленного робота
#include "5510drv.h" #include "stdio.h" #include "conio.h" #include "math.h" #include "stdlib.h"
void main() {
char c,s; do {
clrscr();
printf ("Vyberite rejim raboty.\n"); printf ("1-automat, 2-ruchnoy.\n"); scanf ("%s",&ss); switch(ss)
{ case '1':
{
printf ("stanok dvizhetsya i rezhet detal.\n"); dov=1;
Set505 6(&dov,3,0,ABit);
ADAMdelay(8000);
dov=0;
Set505 6(&dov,3,0,ABit);
printf (" stanok otrezal detal.\n");
dov=1;
Set505 6(&dov,3,3,ABit);
printf ("stanok vozvrashaetsya v ishodnoe sostoyanie. \n");
ADAMdelay(2000); dov=0;
Set505 6(&dov,3,3,ABit);
printf ("stanok v ishodnom
sostoyanii.\n");
dov=1;
Set505 6(&dov,3,2,ABit);
printf ("vvod manipulyatora v stanok.\n");
ADAMdelay(1000);
dov=0;
Set505 6(&dov,3,2,ABit);
printf ("manipulyator u stanka.\n");
dov=1;
Set505 6(&dov,3,5,ABit); printf ("vzyatie detali.\n"); ADAMdelay(5000); dov=0;
Set505 6(&dov,3,5,ABit);
printf ("manipulyator vzyal detal.\n"); dov=1;
Set505 6(&dov,3,7,ABit);
printf (" otvod manipulyatora ot stanka.\n");
\n");
ADAMdelay(1000); dov=0;
Set5056(&dov,3,7,ABit);
printf ("manipulyator otveden.\n");
dov=1;
Set5056(&dov,3,9,ABit);
printf ("povorot manipulyatora k bunkeru.
ADAMdelay(2000); dov=0;
Set5056(&dov,3,9,ABit);
printf ("manipulyator povernulsya. \n");
\n")
dov=1;
Set5Q5 6(&dov,3,1Q,ABit); printf ("vvod manipulyatora
v bunker.
ADAMdelay(10 0 0); dov=0;
Set505 6(&dov,3,10,ABit);
printf ("manipulyator vveden. \n");
dov=1;
Set5056(&dov,3,2,ABit);
printf ("manipulyator ostavil detal v bunkere. \n");
ADAMdelay(5000); dov=0;
Set5056(&dov,3,2,ABit); printf ("detal v bunkere. \n");
dov=1;
Set5056(&dov,3,4,ABit);
printf ("vivod manipulatora iz bunkera.
\n");
ADAMdelay(10 0 0); dov=0;
Set5056(&dov,3,4,ABit);
printf ("manipulator viveden. \n");
dov=1;
Set505 6(&dov,3,11,ABit);
printf ("povorot manipulyatora k
stanku.\n");
ADAMdelay(2000); dov=0;
Set505 6(&dov,3,11,ABit); printf ("manipulyator stanku.\n");
povernulsya
dov=1;
Set5Q56(&dov,3,1,ABit); Set5Q56(&dov,3,8,ABit);
printf ("perevod manipuliatora k
zagatovke. \n");
ADAMdelay(2QQQ); dov=Q;
Set5Q56(&dov,3,8,ABit); Set5Q56(&dov,3,1,ABit); break; }
case '2': i do
i
clrscr();
printf ("Vvedite nomer komandy (Q-1Q).\n");
printf ("Q - delitelnii stanok otrezaet detal.\n");
printf ("1 - sjatie shvata.\n"); printf ("2 - razsjatie shvata.\n"); printf ("3 - povorot manipuliatora v pravo na 9Q g.\n");
printf ("4 - dvijenie manipulyatora pryamo .\n");
printf ("5 - ostanovka rezki detali .\n"); printf ("6 - vozvrat stanka v ishodnoe polozhenie .\n");
printf ("7 - povorot manipuliatora v levo na 9Q g .\n");
printf ("8 - pod'em manipulyatora .\n"); printf ("9 - otpuskanie manipulyatora .\n");
printf (\n);
printf ("Vvedite 'M' dlay vihoda.\n"); scanf ("%c",&cc); if (cc=='M') break; else { switch(cc) {
case '0':printf ("delitelnii stanok otrezaet detal \n");
dov=1;
Set5056(&dov,3,0,ABit);
ADAMdelay(8000);
dov=0;
Set5056(&dov,3,0,ABit); break;
case '1':printf ("sjatie shvata \n"); dov=1;
Set5056(&dov,3,3,ABit); ADAMdelay(10 0 0); dov=0;
Set5056(&dov,3,3,ABit); break;
case '2':printf ("razsjatie shvata
\n");
dov=1;
Set5056(&dov,3,4,ABit); ADAMdelay(10 0 0); dov=0;
Set5056(&dov,3,4,ABit); break;
case '3':printf ("povorot
manipuliatora v pravo na 90 g. \n"); dov=1;
Set5056(&dov,3,2,ABit);
ADAMdelay(2000);
dov=0;
Set5056(&dov,3,2,ABit); break;
case '4':printf ("dvijenie
manipulyatora pryamo.\n"); dov=1;
Set5056(&dov,3,5,ABit); ADAMdelay(10 0 0); dov=0;
Set5056(&dov,3,5,ABit); break;
case '5':printf ("ostanovka rezki detali.\n");
dov=1;
Set5056(&dov,3,7,ABit); ADAMdelay(10 0 0); dov=0;
Set5056(&dov,3,7,ABit);
break;
case '6':printf ("vozvrat stanka v ishodnoe polozhenie .\n");
dov=1;
Set5056(&dov,3,9,ABit);
ADAMdelay(2000);
dov=0;
Set5056(&dov,3,9,ABit);
break;
case '7':printf ("povorot
manipuliatora v levo na 90 g.\n"); dov=1;
Set505 6(&dov,3,10,ABit);
ADAMdelay(2000);
dov=0;
Set505 6(&dov,3,10,ABit);
case ' 8':printf
manipulyatora .\n"); dov=1;
Set5056(&dov,3,1,ABit);
ADAMdelay(2000);
dov=0;
Set5056(&dov,3,1,ABit);
case ' 9':printf
manipulyatora.\n") ;
Set505 6(&dov,3,8,ABit); ADAMdelay(10 0 0); dov=0;
Set505 6(&dov,3,8,ABit);
break; ("
pod'em
break;
("otpuskanie
dov=1;
break;
выгодно отличающие блок системы управления яв-= 'M'); }} ляются:
- использование контроллера ADAM - 5510 существенно уменьшает габариты, массу и энергопотребление блока системы управления;
- дружественная, и знакомая среда программирования Borland C++;
- после «прошивки» программы в контроллер, манипулятор может работать автономно от PC в ручном или автоматическом режиме работы;
- разработанную программу целесообразно использовать в процессе обучения.
while (cc! getch ();
Заключение
В результате проделанной работы была спроектирована система интеллектуального уровня управления робототехническим комплексом. Система управления реализована на контроллере ADAM -5510 фирмы Advantech. Важнейшими критериями,
ЛИТЕРАТУРА
1. Проектирование систем автоматизации технологических процессов: Справочное пособие/Под. ред. А.С.Клюева.-М.: Энергоатомиздат, 1990.464 с.
2. Бурдаков С.Ф., Дьяченко В.А. Проектирование манипуляторов промышленных роботов и роботизированных комплексов. М.: Высшая школа, 1986.
3. www.proavtomatika.ru/sensor/sick/ih.htm
4. Синтез системы управления мобильным роботом методом интеллектуальным эволюции. Дивеев А.И., Шмалько Е.Ю. Надежность и качество сложных систем. 2013. №3. С. 52-59.
5. Трусов В.А. Однопозиционный модуль управления шаговым двигателем / Трусов В.А., Кочегаров И.И., Горячев Н.В., Юрков Н.К. // Теоретические и прикладные аспекты современной науки. 2015. № 7-3. С. 131-133.
6. Трусов В.А. Проектирование одновибратора без перезапуска на программируемой логической интегральной схеме / Трусов В.А., Кочегаров И.И., Горячев Н.В. // Молодой ученый. 2015. № 4 (84). С. 276-278.
7. Абрамов О.В. Проектирование технических систем с элементами настройки // Надежность и качество сложных систем. 2014. № 2(6). С.51-55.
УДК 621.3.078 Ерофеев С.А.
ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет», Санкт-Петербург, Россия
СИНТЕЗ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ СЛОЖНЫМИ КОНЕЧНО-ЭЛЕМЕНТНЫМИ ОБЪЕКТАМИ НА БАЗЕ МЕТОДА РУНГЕ-КУТТА В СРЕДЕ МАПАВ
На практике метод конечных элементов является одним из самых эффективных способов быстрого получения адекватных (достаточно точных) данных по напряженно-деформированному состоянию объекта, возникающему в результате приложения к нему внешнего воздействия. В связи с частой невозможностью или высокой трудоемкостью получения оценочной информации каким-либо иным образом с применением аналитических или иных инженерных методик конечно-элементный подход составляет надежную базу, которая обеспечивает возможность объективной качественной и количественной оценки. В этом ракурсе использование конечно-элементных данных для синтеза оптимального управления является перспективным новым методическим направлением. Для работы в этом направлении необходимы алгоритмический каркас и процедура его реализации, разработке которых и посвящена данная статья.
Рассмотрим основные положения конечно-элементного подхода к расчету напряженно-деформированного состояния твердых тел. Согласно принципу виртуальных работ механическое перемещение и должно удовлетворять условию стационарности функционала Лагранжа [1], который имеет следующий вид:
L(u) = J
1 t д u -T'-E + pU -=
's _ _ r —
2 = =
dt2
dV -J PTudS ,
(1)
L(W) = J
V
где W = [ux,uy,uz]T , a = [TxTyyTzzTzyTzxTxyf ,
1 _t_ ,Тгт„ д2W -a1 e + W1 R——
2 dt2
dV -J PT W dS , (2)
" = [e
E =1 Exx ,Eyy ,Ezz ,2 Ezy ,2 Ezx ,2 Exy J
P = [Px,Py,Pz]T
R = p
1 0 0 0 1 0 0 0 1
Разобьем объект на ЫЕ конечных элементов, в результате чего образуется конечно-элементная сетка с узлами числом ЫР. Основные неизвестные во всех узлах объединяются в глобальный столбец
Ш = [...,Ы(ХГ>,и(У\П(/\...]Т размерностью ЫЛ = 3 X № ,
где j - номер узла (от 1 до ЫР). Перемещения и потенциалы узлов конечного элемента с номером i Ц = 1...ЫЕ) составляют локальный вектор-столбец
W(l) = ctfW ,
(i)
где матрица «у называется матрицей
инциденции. Основные неизвестные в любой точке (как в узле, так и не в узле) конечного элемен-
та с номером
определяются как
w = NfafW
где - матрица функций формы, которые под-
бираются по геометрии конечного элемента и не зависят от времени [3]. В этой же точке
e=b(i)w(,)=в(1а%
a= T(1)E ,
B(1
где V - объем тела, Б - площадь, Т и Е - тензоры механических напряжений и деформаций [2], •• - символ свертки тензоров, р - плотность материала, Р - механические усилия на поверхности пьезоэлемента ( Р = П-Т , где п - нормаль к поверхности) .
Сопоставляя тензорам и векторам соответственно матрицы и столбцы их компонентов, выражение (1) можно преобразовать в:
- матри-
матрица Подста-
ца производных от функций формы, Т -упругости, состоящая из модулей Юнга.
новка выражений для w, Е и и в (2) приводит к выражению Ь для одного конечного элемента, то
есть Ь(1> . Сложение Ь(1> по i = 1...ЫЕ позволяет получить глобальный функционал Лагранжа для всей конечно-элементной сетки в целом (то есть всего объекта исследования) в следующем виде:
Ь(Ш> = 1ШТкШ + ШТм-, (3) 2 31
и
где