Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. float wartosc_zadana=20;
  2. float sterowanie=0;
  3. #include "math.h"
  4. float Kp=2;
  5. float Ti=40;
  6. float Td=0.15;
  7. float uchyb_poprzedni = 0;
  8. float uchyb = 0;
  9. float temp_pokoju = 18;
  10. float temp_zewnetrzna = 16;
  11. float czesc_calkujaca = 0;
  12. float czesc_rozniczkujaca = 0;
  13. float sygnal_sterujacy = 0;
  14. float zaklocenie = 0;
  15. float otwarcie_okna = 1;
  16. int licznik = 0;
  17. float wyjscie_z_obiektu_1 = 0;
  18. float wejscie_do_drugiego_obiektu = 0;
  19.  
  20. void setup() {
  21. // put your setup code here, to run once:
  22. Serial.begin(9600);
  23.  
  24. }
  25.  
  26. void loop() {
  27. // liczymy uchyb i zapisujemy poprzedni uchyb
  28. uchyb_poprzedni = uchyb;
  29. uchyb = wartosc_zadana - temp_pokoju;
  30. // Sterowanie
  31. // Całkowanie
  32. if (czesc_calkujaca <= 70)
  33. {
  34. czesc_calkujaca += (1/Ti) * uchyb;
  35. }
  36. else
  37. {
  38. czesc_calkujaca = 70;
  39. }
  40. // Rożniczkowanie
  41. czesc_rozniczkujaca = (uchyb_poprzedni - uchyb)* Td;
  42. //Sygnał sterujący
  43. if (sygnal_sterujacy < 100)
  44. {
  45. sygnal_sterujacy = Kp * (uchyb + czesc_calkujaca + czesc_rozniczkujaca);
  46. }
  47. else
  48. {
  49. sygnal_sterujacy = 100;
  50. }
  51.  
  52. //Obiekt klimazytatora
  53. wyjscie_z_obiektu_1 = wyjscie_z_obiektu_1 * 0.607 + 2* (1 - 0.607) * sygnal_sterujacy;
  54.  
  55. // zaklocenie
  56. zaklocenie = ((temp_zewnetrzna - temp_pokoju)* 0.5) * otwarcie_okna;
  57.  
  58. wejscie_do_drugiego_obiektu = wyjscie_z_obiektu_1 + zaklocenie;
  59. //Obiekt pokoju
  60.  
  61. temp_pokoju = temp_pokoju * 0.936 + (1 - 0.936) * wejscie_do_drugiego_obiektu;
  62.  
  63. if(licznik <= 100)//Wykonywane co 1 sek
  64. {
  65. Serial.println(String(temp_pokoju) + String(" ; ") + String(sygnal_sterujacy) + String(" ; ") + String(zaklocenie));
  66. licznik = 0;
  67. delay(10);
  68. }
  69. licznik++;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement