- •Курсовой проект
- •Содержание
- •Введение
- •Классификация методов измерения, анализ влияния факторов на измерение
- •Неразрушающие методы и приборы
- •Нормативные документы
- •Методы испытаний
- •Центрифуга ц 1/150
- •Статические характеристики приборов
- •Применение управляющих эвм при испытаниях
- •Калибровка измерительного комплекса
- •Заключение
- •Список литературы
Применение управляющих эвм при испытаниях
Возможно создание программных центрифуг, в которых вращение вала, изменяющееся по заданному закону, воспроизводит входное (управляющее) воздействие.
Основным элементом такой центрифуги является следящий привод, преобразующий входной сигнал, изменяющийся по заданному закону, в угловую скорость вала. Привод должен обладать достаточными точностью и быстродействием. Кроме того, он должен позволять регулировать угловую скорость центрифуги в широких пределах, т.к. в процессе работы она должне непрерывно меняться.
Этими свойствами обладают двигатели постоянного тока, имеющие широкий диапазон регулирования угловой скорости и высокий КПД.
Система автоматического регулирования таких центрифуг может состоять из программирующего устройства, промежуточных усилителей, конечных усилителей – ЭМУ или управляемых усилителей и генераторов, элементов обратных связей, приводного (исполнительного) двигателя
Калибровка измерительного комплекса
#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);
}