Скачать 1.7 Mb.
|
Версия 13 февраля 2008 г.___________________________ Федеральное агентство по образованию Томский государственный университет систем управления и радиоэлектроники (ТУСУР) А.С.Каракулов, Д.С.Аксенов, Б.В.Арещенко, Саидов В.С. Разработка программного обеспечения для систем управления электрическими двигателями Учебно-методическое пособие Томск 2007 Аннотация В данном пособии авторами (коллективом из ведущих специалистов ЗАО “ЭлеCи” и магистрантов кафедры ЭС ТУСУР) предлагается информация по реализации последовательного процесса сборки программного обеспечения (ПО). Предполагается, что изначально процесс отладки ПО идет на встроенных в него математических моделях реальных устройств (двигателя, преобразователя, датчиков), после чего происходит замена драйверов виртуальных устройств на драйверы реальных периферийных устройств процессора. Такой подход позволяет разрабатывать, во первых, программное обеспечение без наличия реальных электронных и электромеханических компонентов, и, во вторых, процедуры, выработанные при подобной технологии, являются практически платформонезависимыми, что позволяет переносить их на другие процессоры. Пособие составлено на основе информации, открыто предоставляемой производителями специализированных сигнальных процессоров. Предполагается, что пользователь данного пособия имеет некоторые навыки разработки программного обеспечения, а также знаком со спецификой в такой области техники, как электропривод и его компоненты. Введение В современном электроприводе с микропроцессорным управлением преобразователи частоты и тиристорные регуляторы напряжения являются одними из самых распространенных устройств управления электродвигателями. Наряду с классическими требованиями, предъявляемыми к данным устройствам (быстродействие, перерегулирование, КПД, наличие коммуникационных интерфейсов и т.д.), на первый план выходит себестоимость устройства и время его разработки. Одним из способов снижения себестоимости, повышения надежности работы и компактности является применение систем прямого цифрового управления на базе одного специализированного процессора, выполняющего все необходимые функции:
Программное обеспечение современных управляющих систем (в т.ч. электроприводами) представляет собой сложную систему многозадачных приложений. Основным требованием является исполнение задач в режиме реального времени, при котором все задачи должны выполняться строго к установленному времени и с заданной периодичностью. При этом увеличение скорости вычислений, как правило, повышает возможности системы в области точности отработки координат и скорости работы по коммуникационным интерфейсам. Исходя из требований к минимальным затратам на аппаратную реализацию и временные ограничения на разработку программного обеспечения, разработчик вынужден обеспечивать выполнение следующих условий: А) Для целей повышения эффективности работы самого устройства:
Б) Для повышения качества и снижения времени разработки программного обеспечения:
Традиционно разработки сложных программных комплексов содержат следующие этапы:
Примером существующих решений для встроенных систем на базе сигнальных процессоров можно назвать технологию «eXpressDSP» от корпорации Texas Instruments (США) . Данная технология поддерживает процессоры TMS320 серий С6000, С5000, С2000, и в ней достаточно полно реализованы этапы 1-3. В данном пособии будет рассмотрено применение некоторых ключевых моментов данной технологии для создания программного обеспечения систем управленя электродвигателями для процессоров серии С2000 TMS320F28xx. Среда программирования CodeComposerStudio. Использование симулятора Среда программирования CodeComposerStudio (CCS) предназначена для создания программного обеспечения, запускаемого на DSP-процессорах фирмы Texas Instruments. CCS содержит все необходимые инструменты для набора и редактирования программ, конфигурирования ядра реального времени DSP|BIOS, получения машинного кода с использованием компилятора языка С, загрузки машинного кода в процессор, запуска и отладки программ, в том числе и в режиме реального времени. CCS позволяет работать как с реальным устройством, так и его моделью в режиме симулятора. Симулятор позволяет заниматься отладкой программного обеспечения без наличия реального процессора, но при этом не поддерживает периферийные устройства на борту процессора и осуществляет вычисления со скоростью, отличной от скорости реального процессора. Таким образом, при работе с симулятором скорость выполнения программы будет в несколько раз меньше (поскольку компьютеру приходится моделировать работу всех системных устройств архитектуры ядра процессора), входные сигналы возможно только смоделировать, выходные сигналы не могут быть физически переданы во внешний мир и могут наблюдаться только по значениям переменных, невозможно смоделировать многозадачность. Однако для отработки логики работы расчетных процедур и некоторых других случаев симулятор оказывается доступным инструментом. Изначально необходимо с помощью утилиты CodeComposerStudioSetup ввести в CCS применяемые устройства. На рисунке 1 (слева) показано, что CCS может работать с отладочной платой eZdsp и симулятором процессора F2812. Рис.1 После запуска CCS в появившемся окне Parallel Debug Manager необходимо выбрать устройство, с которым будет происходить работа (в нашем случае это F2812 Device Simulator, см.рис.2). Примечание. Для установки драйвера платы eZdsp необходимо воспользоваться диском, поставляемым с платой. Драйвер с диска устанавливается поверх установленной версии CCS. Рис.2 После запуска основного окна CCS необходимо создать проект, создать текст программы, подключить его к проекту, оттранслировать, загрузить его в память, запустить на исполнение, убедиться в правильности выполнения программы. Ниже приведены инструкции по созданию простейшего приложения, позволяющего продемонстрировать работу простейшего цифрового фильтра.
//для использования чисел с плавающей запятой #include #include //объявление переменных программы float t=0, //время u, //входной сигнал filtr=0, //отфильтрованный сигнал k0=0.1, // коэффициент фильтра k0 k1=0.9; // коэффициент фильтра k1 void main() { while(1)// организация безусловных циклов вычислений { // начало цикла t=t+0.1; // имитация времени u=50*sin(t)+15*sin(100*t);// входной сигнал filtr=k0*u+k1*filtr;// отфильтрованный сигнал } // конец цикла }
----------------------------- sim_1.pjt - Debug ---------------------- Build Complete, 0 Errors, 0 Warnings, 0 Remarks После чего произойдет загрузка программы в память модели процессора.
Рис.3
Результатом работы программы должно быть окно, показанное ниже(графический экран и WatchWindow показывают изменения переменных), см. рис.4: Рис.4 Далее показан более сложный пример использования симулятора. В примере показана система позицирования между двумя конечными положениями (лифт на 2 этажа), созданная на основе модели двигателя постоянного тока, ПИ-регулятора скорости, контура положения на базе П-регулятора и логической системы управления. В примере создается зацикленный расчет работы системы. Происходит моделирование времени, работы двигателя постоянного тока, далее происходит расчет регуляторов скорости и положения, в завершение – система логического управления на основе смены состояний режимов работы в зависимости от координат системы и команд. Пример показывает возможность отладки программного обеспечения без наличия реальной системы управления, при этом затрагиваются основные моменты разработки процедур управления. Нижнее положение соответствует значению «0» в переменной pos, верхнее – «10». Срабатывание кнопок происходит при вводе в соответствующие переменные значения «1». #include // в файле используются расчеты с плавающей запятой // декларирование используемых переменных float t=0,dt=0.001; float w=0,i=0,u=0,R=3.6,L=0.034,Mc=1,Me=0,c=1.82,J=0.038,Mload; float k0=2+0.001/0.01,k1=2,input=0,input_prev=0,output=0,w_error=0; float w_set=0; float pos_set=0,pos=0,pos_error; int down_button=0,stop_button=0,up_button=0,mode=0; int up_lamp=0,down_lamp=0,down_move_lamp=0,up_move_lamp=0; void main()// процедура расчета { m1: // начало цикла // модель времени //-------------------------------------------------------------------- t=t+dt; // модель двигателя постоянного тока //-------------------------------------------------------------------- i=i+(u-R*i-c*w)/L*dt; // вычисление тока Me=i*c;// вычисление крутящего момента w=w+(Me-Mload)/J*dt;//вычисление скорости pos=pos+w*0.1;//вычисление положения // модель реактивной нагрузки (лифт с противовесом) //-------------------------------------------------------------------- if (w<0) Mload=-Mc;else if (w>0) Mload=Mc;else Mload=0; // регулятор скорости //-------------------------------------------------------------------- w_error=w_set-w;// расчет ошибки input=w_error;// передача сигнала ошибки на вход регулятора output=output+k0*input-k1*input_prev;// расчет регулятора input_prev=input;//запоминание текущего значения как // предыдущего // для следующего цикла расчета if (output>220) output=220; // ограничение // максимального значения if (output<-220) output=-220; u=output; //соединение сигнала регулятора // и напряжение якоря двигателя // регулятор положения //-------------------------------------------------------------------- pos_error=pos_set-pos;// расчет ошибки w_set=pos_error*0.25;// расчет положения // и передача задания на // регулятор скорости // управление сигнализацией положения //-------------------------------------------------------------------- if (pos<1) down_lamp=1;else down_lamp=0;// лампа //нижнего положения if (pos>9) up_lamp=1;else up_lamp=0; // лампа //верхнего положения // режим работы «остановлен» //-------------------------------------------------------------------- if (mode==0) { pos_set=pos_set; u=0;//обесточиваем двигатель w_set=0;//останавливаем регулятор скорости down_move_lamp=0; // выключили лампы // движения вниз up_move_lamp=0; // выключили лампы //движения вверх if (up_button==1) mode=1; //реакция на //нажатие //кнопки up if (down_button==1) mode=2; //реакция //на нажатие //кнопки down if (stop_button==1) mode=0; // реакция // на нажатие // кнопки stop } // режим подъема //-------------------------------------------------------------------- if (mode==1) { up_move_lamp=1; // включили лампы //движения вверх down_move_lamp=0; // выключили лампы //движения вниз pos_set=10;// задание целевого положения if (up_button==1) mode=1; //реакция // на нажатие // кнопки up if (down_button==1) mode=0; //реакция //на нажатие // кнопки down if (stop_button==1) mode=0; // реакция // на нажатие // кнопки stop if (pos>pos_set) mode=0;// требуемое //положение достигнуто } // режим опускания //-------------------------------------------------------------------- if (mode==2) { up_move_lamp=0; // выключили //лампы движения вверх down_move_lamp=1; // включили //лампы движения вниз pos_set=0; // задание целевого положения if (up_button==1) mode=0; //реакция // на нажатие кнопки up if (down_button==1) mode=2; //реакция // на нажатие кнопки down if (stop_button==1) mode=0; // реакция // на нажатие кнопки stop if (pos //положение достигнуто } goto m1;//конец цикла } При запуске программы и имитации включения кнопок возможно отслеживание отработки положения и срабатывания ламп сигнализации через окно WatchWindow. На графике, приведенном на рисунке 5, выводятся осциллограммы тока якоря и скорости. |
Учебно-методическое пособие Рекомендовано методической комиссией... Методы молекулярной диагностики: Учебно-методическое пособие. Авторы: А. Д. Перенков, Д. В. Новиков, С. Г. Фомина, Л. Б. Луковникова,... |
Учебно-методическое пособие Елабуга 2016 ббк 74. 58 Учебно-методическое... Методическое пособие предназначено для студентов 1 курса высших учебных заведений неязыковых специальностей |
||
Учебно-методическое пособие по клинической фармакологии Оренбург, 2007 Учебно-методическое пособие предназначено для самостоятельной работы студентов медицинских вузов, обучающихся по специальности «Лечебное... |
Методическое пособие Саратов 2008 г. Организация комплексной системы... Методическое пособие предназначено для руководителей и преподавателей- организаторов обж образовательных учреждений |
||
Учебно-методическое пособие ... |
Организация и технология документационного обеспечения управления учебно-методическое пособие ... |
||
Учебно-методическое пособие «Учебные игры и ситуационные задачи в... Учебные игры и ситуационные задачи в гинекологии: Учебно-методическое пособие / Под ред. А. А. Радионченко. – Томск: Сибгму,... |
Учебно-методическое пособие Казань 2010 Печатается по рекомендации... Учебно-методическое пособие по курсу «Организационное поведение» /Д. М. Сафина. – Казань: Казанский (Приволжский) федеральный университет;... |
||
Учебно-методическое пособие. Новосибирск, 2006 Учебно-методическое пособие предназначено инструкторам детско-юношеского и спортивного туризма с целью повышения уровня знаний и... |
Учебно-методическое пособие к лабораторным занятиям по курсу «Основы кристаллооптики» Практическое руководство по работе с поляризационным микроскопом для исследования петрографических объектов: Учебно-методическое... |
||
Учебно-методическое пособие организация инженерной защиты населения Учебно-методическое пособие разработано применительно к Программе обучения слушателей на курсах гражданской защиты Копейского городского... |
Учебно-методическое пособие Санкт-Петербург 2007 Автор: Черемисов... Учебно-методическое пособие предназначено для подготовки руководящего состава, специалистов гочс и пб, руководителей служб, аварийно-спасательных... |
||
Учебно-методическое пособие для студентов пм. 04.(07.) «Выполнение... Учебно-методическое пособие составлено в соответствии с требованиями Федерального Государственного образовательного стандарта по... |
Учебно-методическое пособие санкт-Петербург 2009г. Автор: Г. П. Подвигин... Учебно-методическое пособие предназначено для должностных лиц, специалистов го и рсчс организаций |
||
Учебно-методическое пособие Кемерово 2015 г. Согласовано: кроо «памск» Учебно-методическое пособие предназначено для студентов стоматологического факультета, гигиенистов стоматологических со средним медицинским... |
Федеральное государственное образовательное учреждение Высшего профессионального... Вакуумный практикум: Учебно-методическое пособие. Ростов-на-Дону, 2008. 55с |
Поиск |