Материал: Разработка windows-приложения на С для комплекта robox. Идентификация сервопривода метод. указания к лабораторной работе № 6

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

KillTimer(ghwndDlg, 2);

TimerEn=0;

DrawAccCurveEn=0;

CurveCnt=0;

fclose(file);

}

}

1.2. Разработать функцию static void DrawAccCurvefvoia), отобра­ жающую в окне приложения очередную точку эксперимента и записывающую ее значение в текстовый файл. В файл также записы­ вать момент времени, когда сервопривод достигнет целевой скорости.

static void DrawAccCurve(void)

{

char text[64]; DWORD t; float f;

if(DrawAccCurveEn){

CurveCnt++;

if (CurveCnt>249){ CurveCnt=0; DrawAccCurveEn=0;

Выключить двигатель.

Закрыть файл с результатами эксперимента;

}else{

t = timeGetTimeO;

f = ((float)t -(float) t_start)/1000;

if (ServoData.speed>=Speed&&AccTimeOK==0) { AccTimeOK=l;

sprintf(text,"Acceleration Time=%2.1f sec\r\n", f);

ErrorMessageList (text);

Fwrite(text,l,strlen(text),file);

}

sprintf(text,"%d: %d\r\n", CurveCnt,ServoData.speed);

fwrite(text,l,strlen(text),fîle);

Нарисовать текущую точку кривой в окне приложения, соеди­ нив ее с предыдущей.

cp.x=Xi_OFFSET+ CurveCnt; cp.y=Yi_OFFSET-abs(ServoData.speed)*8;

}

}

}

Функцию AccDrawCurve вызывать в обработчике таймера 2 по­ сле вывода считанных параметров сервопривода в соответствующие текстовые элементы окна приложения.

1.3. В case WM INITDIALOG вписать в Combo-box с именем

ЮМОDESELECT строку 13 с текстом-подсказкой о снятии кривой разгона сервопривода:

SendDlgItemMessage(hwndDlg, IDMODESELECT,

CBJNSERTSTRING, 13,

(LPARAM)"13-AccCurve");

Дописать действия по нажатию кнопки с именем 1DSETMODE - вызов выбранной из списка с именем IDMODESELECT функции сня­ тия кривой разгона сервопривода:

case IDSETMODE: i=SendDlgItemMessage(hwndDlg, IDMODESELECT,

CB_GETCURSEL, 0, 0); switch (i)

{

case 0:

II...

break;

case 8:

II...

break;

case 13:

StartAccCurve();

break;

2.РАСЧЕТ МОДЕЛИ СЕРВОПРИВОДА

Расчет осуществляется с помощью прикладного программного пакета System Identification Toolbox в программной среде MATLAB

2.1. Ввод экспериментальных данных

Построение модели начинается с формирования эксперимен­ тальных данных в виде файлов.

В качестве эксперимента выбраны следующие исходные дан­ ные САУ :

Г0 =0.1 К п = 0 £ „ = 0 .0 1 Кд = 0

Исходные данные для идентификации оформлены в виде табл. 2.1.

 

 

Таблица 2.1

 

Исходные данные для идентификации

 

t

X

У

0.0

10

0

0.1

10

2

0.2

10

3

0.3

10

4

0.4

10

5

0.5

10

6

0.6

10

7

0.7

10

7

0.8

10

7

0.9

10

7

1.0

10

8

1.1

10

8

1.2

10

8

1.3

10

9

Источник: https://studfile.net/preview/16721707/