Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая на печать.docx
Скачиваний:
5
Добавлен:
18.09.2019
Размер:
534.11 Кб
Скачать
  1. Применение управляющих эвм при испытаниях

Возможно создание программных центрифуг, в которых вращение вала, изменяющееся по заданному закону, воспроизводит входное (управляющее) воздействие.

Основным элементом такой центрифуги является следящий привод, преобразующий входной сигнал, изменяющийся по заданному закону, в угловую скорость вала. Привод должен обладать достаточными точностью и быстродействием. Кроме того, он должен позволять регулировать угловую скорость центрифуги в широких пределах, т.к. в процессе работы она должне непрерывно меняться.

Этими свойствами обладают двигатели постоянного тока, имеющие широкий диапазон регулирования угловой скорости и высокий КПД.

Система автоматического регулирования таких центрифуг может состоять из программирующего устройства, промежуточных усилителей, конечных усилителей – ЭМУ или управляемых усилителей и генераторов, элементов обратных связей, приводного (исполнительного) двигателя

  1. Калибровка измерительного комплекса

#define STAT 0x309 /*регистр состояния макетной платы*/

#define CNTRL 0x30C /*управляющий регистр макетной платы*/

#define ADC 0x308 /*АЦП: адрес и данные*/

#define STRTAD 0x30A /*регистр запуска преобразования*/

main ()

{

int per100, per500, adcx, slope, chastota;

char c =0

outp(CNTRL, 2): /*установка второго бита в управляющем регистре для разрешения*/

/*запуска программы преобразования*/

outp(ADC, 2): /*выбор канала 1*/

cprintf(«калибровка 1:задать частоту вращения n=100об/мин. \n»);

cprintf(«через 2 минуты нажмите любую клавишу. \n»);

while (!kbhit()); /*ждать нажатия клавиши*/

per100=get_data() /*получить значение перегрузок для частоты вращения 100 об/мин*/

cprintf(«калибровка 2: задать частоту вращения n=500об/мин \n»);

cprintf(«через 8 минут нажмите любую клавишу. \n»);

while (!kbhit()); /*ждать нажатия клавиши*/

per500=get_data()

slope = 400/(per500-per100); /*расчет коэффициента зависимости перегрузок от*/

/*частоты вращения*/

cprintf(«нажмите любую клавишу для расчета частоты вращения. \n»);

cprintf(«нажмите е для выхода из программы. \n»);

while(c! = ‘e’) /*повторять, пока не нажата клавиша е*/

{

if (kbhit() /*отсчет перегрузок, если нажата любая клавиша*/

{

adcx = get_data( );

chastota = slope*((adcx*882/rad)^0,5 – per100); /*расчет частоты вращения */

cprintf(«частота вращения = %d \n», chastota);

c = getch();

}

}

}

get = data( )

{

int datum;

outp(STRTAD); /*запуск преобразования*/

while(!(inp(STAT)&2)); /*ждать завершения преобразования*/

datum = inp(ADC);

return (datum);

}