1-Laboratoriya ishi



Yüklə 5,01 Mb.
səhifə1/6
tarix11.12.2023
ölçüsü5,01 Mb.
#144573
  1   2   3   4   5   6
1-4


1-Laboratoriya ishi
Tipik PD-rostlagichlarni tadqiq etish

  1. Kirish.

Diferensial rostlagichlar odatda yopiq tizimining vaqtinchalik yaxshilash uchun ishlatiladi. Bunda faqat D boshqaruvidan foydalanilmaydi, chunki u keraksiz yuqori chastotali shovqinni kuchaytiradi. Hosilaviy harakat ko'tarilish vaqtini va tebranishlarni kamaytiradi. Biroq, bu yopiq tizimning barqaror holatiga yaxshi ta'sir qilmaydi.Yuqoridagi fikrlar shuni ko'rsatadiki, P-D boshqaruvi bilan barqaror holat xatosini nolga teng qilib bolmaydi. Diferensial boshqaruv odatda yopiq tizim chiqishlaridagi tebranishlarni kamaytirish uchun ishlatiladi.
2. Laboratoriya ishidan maqsad. PD-rostlagichlarni ishlash prinsipi bilan tanishish va ularni tadqiq etish
Bizdagi sodda kontroller (Arduino) bilan olib borilishi mumkin bo'lgan eng oddiy PID rostlagichi, nurga bog'liq qarshilik (fotorezistor LDR) tomonidan qabul qilingan yorug'lik darajasiga asoslangan yorug'lik tarqatuvchi diod (LED) tomonidan xosil qilingan yorug'lik darajasini boshqarishdir. Biroq, ushbu oddiy tajribani LDR datchigini va LED ijro mehanizimini almashtirish orqali boshqa holatlarga ham qollash mumkin. Masalan, laboratoriya jarayoni xaroratni rostlashda elektr qidirgich qizdiradi va termopara xaroratni o’lchaydi. Bunday holda biz LEDni qizdirgich bilan, LDRni esa termopara bilan almashtirishimiz kerak bo'ladi.
Boshlash uchun bizga quyidagilar kerak bo'ladi:

  • Arduino mikrokontroler

  • Breadboard

  • Ulash simlari

  • LED (nur diodi)

  • LDR (fotorezistor)

  • 10kΩ potensiometr (o’zgaruvchan qarshilik)

  • 330Ω qarshilik

  • 10kΩ qarshilik



Qurilma yordmida SP () ni ma'lum qiymatga sozlaymiz va yorug‘lik nur diod i tarqatayotgan yorug‘lik shu SP ga to‘g‘ri kelishini kontroller (Arduino) fotorezistor yordami taqqoslab, rostlaydi. Biz yorug‘lik daraasini potensiometr yordamida o‘zgartirishimiz mumkin.
Qurilmaning ulanish sxemasi qo‘yidagicha:
Arduino ga fotorezistor, svetodiod, qarshiliklar va potensiometrni quyidagi sxema bo‘yicha uylaymiz. Fotrezistor va svetodiodni bir-biriga qarama-qarshi holatda bo‘lishini ta'minlaymiz.



PD rostlagichni ishini ta'minlovchi dastur qo‘yidagicha


#include

const int photores = A0; // LDR input pin
const int pot = A1; // Potentiometer input pin
const int led = 9; // LED output pin
double lightLevel; // Indirectly store the light level
// Tuning parameters
float Kp = 15; // Proportional gain
float Ki = 0; // Integral gain
float Kd = 0.1; // Differential gain
// Record the set point as well as the controller input and output
double Setpoint, Input, Output;
// Create a controller that is linked to the specified Input, Ouput and Setpoint
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
const int sampleRate = 1; // Time interval of the PID control
const long serialPing = 500; // How often data is recieved from the Arduino
unsigned long now = 0; // Store the time that has elapsed
unsigned long lastMessage = 0; // The last time that data was recieved

void setup()
{
lightLevel = analogRead(photores); // Read the set point
// Arduino has an analogueRead() resolution of 0-1023 and an analogueWrite() resolution of 0-255
Input = map(lightLevel, 0, 1023, 0, 255); // Scale the input
Setpoint = map(analogRead(pot), 0, 1023, 0, 255); // Scale the set point
Serial.begin(9600); // Initialise serial communications at 9600 bps
myPID.SetMode(AUTOMATIC); // Turn on the PID control
myPID.SetSampleTime(sampleRate); // Assign the sample rate of the control
Serial.println("Begin"); // Let the user know that the set up s complete
lastMessage = millis(); // Serial data will be recieved relative to this first point
}

void loop()
{
Setpoint = map(analogRead(pot), 0, 1023, 0, 255); // Continue to read and scale the set point
lightLevel = analogRead(photores); // Read the light level
Input = map(lightLevel, 0, 1023, 0, 255); // Scale the input to the PID
myPID.Compute(); // Calculates the PID output at a specified sample time
analogWrite(led, Output); // Power the LED
now = millis(); // Keep track of the elapsed time
if(now - lastMessage > serialPing) // If enough time has passed send data
{
Serial.print("Setpoint = ");
Serial.print(Setpoint);
Serial.print(" Input = ");
Serial.print(Input);
Serial.print(" Output = ");
Serial.print(Output);
Serial.print("\n");
// The tuning parameters can be retrieved by the Arduino from the serial monitor: 0,0.5,0 set Ki to 0.5.
// Commas are ignored by the Serial.parseFloat() command
if (Serial.available() > 0)
{
for (int x = 0; x < 4; x++)
{
switch(x)
{
case 0:
Kp = Serial.parseFloat();
break;
case 1:
Ki = Serial.parseFloat();
break;
case 2:
Kd = Serial.parseFloat();
break;
case 3:
for (int y = Serial.available(); y == 0; y--)
{
Serial.read();
}
break;
}
}
Serial.print(" Kp,Ki,Kd = "); // Display the new parameters
Serial.print(Kp);
Serial.print(",");
Serial.print(Ki);
Serial.print(",");
Serial.print(Kd);
myPID.SetTunings(Kp, Ki, Kd); // Set the tuning of the PID loop
}
lastMessage = now; // Reference the next serial communication to this point
}
}


Bu dastur yordamida biz PD koeffisientlarini o‘zgartirib turli qiymatlarni quyishimiz mumkin va bu natijani serial portda kuzatishimiz mumkin.
Ishni bajarish tartibi:
1. Arduino va montaj platasini ishga tayyorlaymiz.
2. Yuqoridagi sxema bo‘yicha elektron elementlarni ulaymiz
3. Dastur kodini PD koeffisientlarini hisoblangan qiymatlarga o‘zgartiramiz.
4. Komp'yuterga Arduino ni uylaymiz va kodni yozamiz.
5. Dasturni yuklab bo‘lgach SP (potensiometr) yordamida kerakli kiymatni tanlaymiz.
6. Ishlashini tekshirish uchun svetodiod va fotorezistor orasiga yupqa nur o‘tkazuvchi material quyamiz, agar fotorezistorga nur kamayishi bilan svetodiod ko‘p nur chiqarsa, demak PD kontroller ishchi holatda bo‘ladi.


Nazorat savollar:
1. Rostlash nima?
2. PD kontroller nima?
3. PD koeffisientlarni o‘zgartirish nima uchun kerak?

Yüklə 5,01 Mb.

Dostları ilə paylaş:
  1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə