Составитель:
канд. техн. наук, доцент кафедры автоматики и телемеханики Н.В. Андриевская
УДК 007.52 Р177
Рецензент:
д-р техн. наук, профессор С. Ф. Тюрин (Пермский национальный исследовательский политехнический университет)
Разработка windows-приложения на «С» для комплекта Р177 robox. Идентификация сервопривода : метод, указания к лабо раторной работе № 6 / сост. Н.В. Андриевская. - Пермь : Изд-
во Перм. нац. исслед. политехи, ун-та, 2021. - 20 с.
ISBN 978-5-398-02559-0
Рассмотрен шестой этап создания в ШЕ Pelles С диалогового приложения, позволяющего создать модель сервопривода. На этом этапе снимаются экспериментальные данные по угловой скорости сервопривода и рассчитывается модель сервопривода для дальней шего расчета регулятора угловой скорости сервопривода.
Издание ориентировано на студентов бакалавриата и магистра туры, направлений 27.03.04 и 27.04.04 «Управление в технических системах», 15.03.06 и 15.04.06 - «Мехатроника и робототехника», а также студентов других направлений и специальностей техниче ского профиля.
УДК 007.52
ISBN 978-5-398-02559-0 |
©ПНИПУ, 2021 |
|
СОДЕРЖАНИЕ |
|
1. |
Разработка функции снятия кривой разгона сервопривода |
.............4 |
2. Расчет модели сервопривода................................................................... |
8 |
|
|
2.1. Ввод экспериментальных данных................................................... |
8 |
|
2.2. Вызов графического интерфейса |
|
|
System Identification Toolbox................................................................. |
10 |
|
2.3. Импорт экспериментальных данных........................................... |
10 |
|
2.4. Построение модели........................................................................... |
13 |
|
2.5. Анализ моделей................................................................................. |
16 |
3. Ход выполнения работы ........................................................................ |
19 |
|
1 . РАЗРАБОТКА ФУНКЦИИ СНЯТИЯ КРИВОЙ
РАЗГОНА СЕРВОПРИВОДА
1.1. Разработать функцию void StartAccCurve (void) запуска экс перимента, формирующего данные необходимые для расчета моде ли сервопривода.
а) Объявить следующие глобальные переменные.
Указатель на файл, в котором будут сохраняться результаты эксперимента в текстовом формате:
static FILE*file;
Счетчик точек кривой разгона:
static UINT16 CurveCnt;
Флаг разрешения рисования кривой разгона в окне приложения:
static UINT8 DrawAccCurveEn;
Предыдущие координаты в окне приложения точки кривой разгона:
static POINT ср;
Время старта снятия кривой разгона:
static DWORD t start;
Целевая скорость разгона:
static INT 16 Speed;
Флаг достижения целевой скорости при разгоне:
static UINT8 AccTimeOK;
б) Объявить координаты начала рисования кривой разгона, на пример:
#define Xi_OFFSET 370
#defme Yi OFFSET 350
в) Шаблон функции запуска снятия кривой разгона:
static void StartAccCurve(void)
{
int i;
char text[16]; char *endptr;
if (CurveCnt==0){
file=fopen("AccCurve.txt",Mw+");//oTKpbiTHe файла для записи рез. cp.x=Xi_OFFSET ;
cp.y=Yi_OFFSET ;
Установить режим работы сервопривода SPEED. Нарисовать горизонтальную ось (время) кривой разгона. Включить двигатель.
DrawAccCurveEn=l;
TimerEn=l;
Считать из элемента редактирования с идентификатором
IDPOINT значение целевой скорости вращения (в переменную
Speed), коэффициенты пропорциональной, интегральной и диффе
ренциальной составляющей ПИД-регулятора. Установить значения коэффициентов.
/ГУстановка целевой скорости. set_point(MbCom.hCOM,servo_addr,Speed);
//Чтение текущего времени t_start = timeGetTime();
// Кривая разгона снимается с шагом 100 мс SetTimer(ghwndDlg,2,100,NULL); AccTimeOK=0;
}else{
Выключить двигатель.