Цифровой пид-регулятор температуры
Заказать уникальную курсовую работу- 34 34 страницы
- 4 + 4 источника
- Добавлена 15.06.2016
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Содержание 3
1. Принцип действия автоматических регуляторов 4
1.1 Пропорциональные регуляторы 4
1.2 Пропорционально-интегральные регуляторы 4
1.3 Пропорционально интегрально-дифференциальные регуляторы 5
1.4 Подбор коэффициентов регулирования ПИД регулятора 6
1.5 Частота сбора данных и выполнения цикла управления 7
2. Разработка структурной схемы ПИД регулятора температуры 8
3. Разработка принципиальной схемы и печатной платы 10
3.1 Микроконтроллер 10
3.2 Датчик температуры 16
3.3 Силовое реле 17
3.4 Индикатор состояния регулятора 18
3.5 Стабилизатор напряжения 18
3.6 Разработка печатной платы 20
4. Разработка программы ПИД регулятора и моделирование 22
4.1 Алгоритм программы 22
4.2 Код программы 23
4.3 Отладка 23
Выводы 32
Перечень ссылок 33
возд. добавить
+ KP*(ERRX) // значение пропорциональное текущей ошибке
+ KI*PERDT*(CMNDVX - (ADRCX + ADRCXM1)/2)
+ (KD/(6*PERDT))*((ERRX - ERRM3X)
+ 3*(ERRM1X - ERRM2X));
printf("PIDcontrol: KP=%f, KI=%f, KD=%f, ERRX=%f, OLDDTY=%f, NEWDTY=%f, T=%f ,iT=%i " , KP, KI, KD, ERRX, OLDDTY, NEWDTY, CurrTargTemp, iCurrTargTemp);
if (NEWDTY > 1.99609){ /* test for result being in usable */
NEWDTY = 1.99609; /* limits and set PWM duty cycle if */
}
else if (NEWDTY < 1.0){ /* beyond saturation */
NEWDTY = 1.0;
}
ADRCXM1 = ADRCX; /* update A/D result for next cycle */
ERRM3X = ERRM2X; /* update error pipeline */
ERRM2X = ERRM1X;
ERRM1X = ERRX;
OLDDTY = NEWDTY; /* update old duty cycle for next calculation period */
pwm_val = ((int)(NEWDTY * 100.0)) - 100; /* Вычисление ШИМ из расчитаного NEWDTY */
printf("pwm_val=%i, \n\r", pwm_val);
}
void init(void);
void main(void){
init(); // Начальная инициализация
/* kp = .18, ki = 6.0, kd = .009 */
KP = 0.18;
KI = 6.0;
KD = 1;
#asm("sei") // Global enable interrupts
while (1){
#asm("nop")
delay_ms(1);
PWM_counter++; // Циклическое изменение внутреннего счетчика для отработки ШИМ
if (PWM_counter>=100){
PWM_counter=0;
}
if (PWM_counter>=pwm_val){ // Отработка ШИМ
PWM_out=ON;
}
else{
PWM_out=OFF;
}
}
}
void init(void){
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=Out Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0<
PORTB=(0<
// Port C initialization
// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0<
PORTC=(0<
// Port D initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=In Bit0=Out
DDRD=(1<
PORTD=(0<
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=(0<
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 125,000 kHz
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer Period: 0,1 s
// Timer1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<
TCNT1L=0x2C;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=(0<
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=(0<
UBRRL=0x33;
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<
// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AVCC pin
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<
// SPI initialization
// SPI disabled
SPCR=(0<
// TWI initialization
// TWI disabled
TWCR=(0<
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 7
// RD - PORTD Bit 5
// EN - PORTD Bit 6
// D4 - PORTD Bit 4
// D5 - PORTD Bit 3
// D6 - PORTD Bit 2
// D7 - PORTD Bit 0
// Characters/line: 16
lcd_init(16);
}
Для оценки работы данной программы было задано значение температуры стабилизации 500 (С, начальная температура емкости – 220 (С. График напряжения на выходе термодатчика с чувствительностью 0,73 мв/(С, иллюстрирующий работу регулятора, полученный в результате моделирования показан на рис. 4.4.
Рисунок 4.4 – График сигнала на выходе термодатчика
Из этого графика видно, что регулятор успешно отработал установление температуры 500(С через 45 секунд с момента включения. Таким образом, программа ПИД регулятора работоспособна.
Выводы
В результате выполнения данной работы были рассмотрены принципы автоматического регулирования. Среди рассмотренных детально изучен метод построения ПИД регуляторов.
На основании данного метода был спроектирован терморегулятор, разработана его структурная и принципиальная схемы, а также разработана печатная плата.
Разработанная схема и модель в Proteus показала работоспособность с программным обеспечением, реализующим метод ПИД регулирования. Таким образом, задачи технического задания можно считать выполненными
Перечень ссылок
1. Мирошник И.В. Теория автоматического управления. Линейные системы. СПб.: Питер, 2005.
2. Поляков К.Ю. Теория автоматического управления для «чайников». СПб.: 2008
3. http://m.eet.com/media/1112634/f-wescot.pdf
4. http://radiokot.ru/forum/viewtopic.php?t=23242
3
2. Поляков К.Ю. Теория автоматического управления для «чайников». СПб.: 2008
3. http://m.eet.com/media/1112634/f-wescot.pdf
4. http://radiokot.ru/forum/viewtopic.php?t=23242
Вопрос-ответ:
Как работает цифровой ПИД регулятор температуры?
Цифровой ПИД регулятор температуры работает на основе принципа пропорционального, интегрального и дифференциального управления. Он сравнивает текущую температуру с заданной и вычисляет ошибку управления. Затем он применяет коэффициенты пропорциональности, интеграции и дифференциации к этой ошибке, чтобы установить оптимальный сигнал управления.
Какие типы регуляторов существуют?
Существуют пропорциональные, пропорционально-интегральные и пропорционально-интегрально-дифференциальные регуляторы. Пропорциональные регуляторы используют только пропорциональную составляющую для управления процессом. Пропорционально-интегральные регуляторы добавляют к пропорциональной составляющей интегральную составляющую для устранения постоянной ошибки управления. Пропорционально-интегрально-дифференциальные регуляторы добавляют к пропорциональной и интегральной составляющим дифференциальную составляющую для улучшения быстродействия системы.
Как подбираются коэффициенты регулирования ПИД регулятора?
Коэффициенты регулирования ПИД регулятора подбираются экспериментальным путем. Сначала устанавливают коэффициент пропорциональности на небольшое значение, чтобы избежать колебаний системы. Затем постепенно увеличивают его, пока система не будет откликаться достаточно быстро. Затем подбирают коэффициент интеграции и дифференциации для устранения остаточных ошибок и улучшения быстродействия системы.
Какая частота сбора данных и выполнения цикла управления используется?
Частота сбора данных и выполнения цикла управления может быть разная в зависимости от конкретного случая. В промышленных системах частота может быть от нескольких раз в секунду до нескольких тысяч раз в секунду. Важно подобрать оптимальную частоту с учетом требуемой точности и быстродействия системы.
Какие этапы включает разработка цифрового ПИД регулятора температуры?
Разработка цифрового ПИД регулятора температуры включает следующие этапы: разработка структурной схемы ПИД регулятора, разработка принципиальной схемы и печатной платы, выбор и программирование микроконтроллера, тестирование и отладка системы.
Как работает цифровой ПИД-регулятор температуры?
Цифровой ПИД-регулятор температуры основан на комбинации трех компонентов: пропорционального, интегрального и дифференциального. Пропорциональная составляющая управляет выходным сигналом пропорционально разнице между заданной и текущей температурой. Интегральная составляющая запоминает и корректирует ошибку в управлении со временем. Дифференциальная составляющая предвосхищает изменения температуры и корректирует выходной сигнал.
Какие существуют типы регуляторов?
Существуют пропорциональные, пропорционально-интегральные и пропорционально-интегрально-дифференциальные регуляторы. Каждый из них имеет свою особенность в регулировании температуры.
Как происходит подбор коэффициентов регулирования для ПИД-регулятора?
Подбор коэффициентов регулирования для ПИД-регулятора происходит итерационно. Он основан на анализе отклика системы на изменение коэффициентов. Цель заключается в достижении стабильного и быстрого регулирования температуры.
Какая частота сбора данных и выполнения цикла управления рекомендуется для цифрового ПИД-регулятора?
Рекомендуется выбрать частоту сбора данных и выполнения цикла управления, так чтобы было достаточно точности измерения и быстроты реагирования на изменение температуры. Обычно используются частоты в диапазоне от 1 до 10 Гц.
Как происходит разработка принципиальной схемы и печатной платы для ПИД-регулятора температуры?
Разработка принципиальной схемы и печатной платы для ПИД-регулятора температуры включает выбор и размещение компонентов, проведение трассировки соединений, создание гербер-файлов для производства печатных плат. Также необходимо учесть требования к изоляции и теплоотводу, чтобы обеспечить надежную работу устройства.
Как работает цифровой ПИД регулятор температуры?
Цифровой ПИД регулятор температуры работает на основе принципа обратной связи. Он сравнивает текущую температуру с заданной и вычисляет ошибку регулирования. Затем он использует эту ошибку для расчета корректировок выходного сигнала, который управляет нагревательным элементом или контролирующим устройством, чтобы поддерживать заданную температуру. ПИД регулятор состоит из трех компонентов: пропорциональной, интегральной и дифференциальной.