SlideServe
Menu
Préférences
© SlideServe · v2026

Temperature Cogeneration unit Control

roz avatar
23 diapositives · 377 Views · Oct 03, 2014

This document details an algorithm for temperature control within a cogeneration unit, focusing on maintaining optimal heat levels for efficient operation. The method utilizes fuzzy logic to assess input errors and derive appropriate output responses—heating, cooling, or no change—based on the relationship between desired and actual temperatures. It explores inputs such as error values and their rates, presenting a complex yet effective approach to temperature management in energy systems. A demonstration example is provided to illustrate the application of the control algorithm.

Temperature Cogeneration unit Control - slide 1
01 / 23Temperature Cogeneration unit Control
1 / 17

Télécharger la présentation

Temperature Cogeneration unit Control
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Temperature Cogeneration unit Control Riadenie teploty v kogeneračnej jednotke detailný opis algoritmu riadenia Š. Kozák-2003

  2. Demonštračný príklad – riadenie teploty u Ohrev FUZREG Riadený proces Tziad Chladenie T (Žiadaná hodnota (ref) Tziad) (Aktuálna hodnota T) e e´ u "N" = "negative" error or error-dot input level(záp.hod. e alebo e-e´) "Z" = "zero" error or error-dot input level (nul.hod. e alebo e-e´) "P" = "positive" error or error-dot input level(klad. hod. ealebo e-e´) "H" = "Heat" output response (riadiaci zásah u ohrev) "-" = "No Change" to current output (u bez zmeny – nemeniť akt. riad.zásah ) "C" = "Cool" output response(uochladzovanie)

  3. DEFINITIONS: Vstupy, výstupy, stavy) • INPUT#1: e("Error", positive (P), zero (Z), negative (N)) • INPUT#2: ė("Error-dot", positive (P), zero (Z), negative (N)) • CONCLUSION: ("Output", Heat (H), No Change (NC) (-), Cool (C)) • INPUT#1 System Status • Error = Command-Feedback • P=Too cold, Z=Just right, N=Too hot • INPUT#2System Status • Error-dot = d(Error)/dt • P=Getting hotter Z=Not changing N=Getting colder • OUTPUT Conclusion & System Response • Output H = Call for heating,- = Don't change anything.C = Call for cooling

  4. e de/dt

  5. KEY: • (e<0) "negative" error value (er<0) "negative" error-dot value • (e=0) "zero" error value (er=0) "zero" error-dot value • (e>0) "positive" error value (er>0) "positive" error-dot value

  6. apply: (e)=error, (er)=error-dot. • INPUT DEGREE OF MEMBERSHIP • "error" = -1.0: "negative" = 0.5 and "zero" = 0.5 • "error-dot" = +2.5: "zero" = 0.5 and "positive" = 0.5 • ANTECEDENT & CONSEQUENT BLOCKS (e = error, • er = error-dot or error-rate) 1. If (e < 0) AND (er < 0) then Cool 0.5 & 0.0 = 0.0 2. If (e = 0) AND (er < 0) then Heat 0.5 & 0.0 = 0.0 3. If (e > 0) AND (er < 0) then Heat 0.0 & 0.0 = 0.0 4. If (e < 0) AND (er = 0) then Cool 0.5 & 0.5 = 0.5 5. If (e = 0) AND (er = 0) then NoChng 0.5 & 0.5 = 0.5 6. If (e > 0) AND (er = 0) then Heat 0.0 & 0.5 = 0.0 7. If (e < 0) AND (er > 0) then Cool 0.5 & 0.5 = 0.5 8. If (e = 0) AND (er > 0) then Cool 0.5 & 0.5 = 0.5 9. If (e > 0) AND (er > 0) then Heat 0.0 & 0.5 = 0.0 Výstupná veličina – fuzzy množina • "negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = (0.00^2 + 0.50^2 + 0.50^2 + 0.50^2)^.5 = 0.866 • "zero" = (R5^2)^.5 = (0.50^2)^.5 (No Change) = 0.500 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = (0.00^2 + 0.00^2 + 0.00^2 + 0.00^2)^.5 = 0.000

  7. (neg_center * neg_strength + zero_center * zero_strength + pos_center * pos_strength) = OUTPUT • (neg_strength + zero_strength + pos_strength) • (-100 * 0.866 + 0 * 0.500 + 100 * 0.000) = 63.4% • (0.866 + 0.500 + 0.000)    The ROOT-SUM-SQUARE(RSS) method combines the effects of all applicable rules, scales thefunctions at their respective magnitudes, and computes the "fuzzy"centroid of the composite area. This method is more complicated mathematically than other methods, but was selected for this example since it seemed to give the best weighted influence to all firing rules. • "negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = (0.00^2 + 0.50^2 + 0.50^2 + 0.50^2)^.5 = 0.866 • "zero" = (R5^2)^.5 = (0.50^2)^.5 (No Change) = 0.500 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = (0.00^2 + 0.00^2 + 0.00^2 + 0.00^2)^.5 = 0.000

  8. EXAMPLE CASE 1 - ERROR= -1.0F

  9. INPUT DEGREE OF MEMBERSHIP • "error" = -1.0: "negative" = 0.5, "zero" = 0.5, "positive" = 0.0 • "error-dot" = +2.5: "negative" = 0.0, "zero" = 0.5, "positive" = 0.5 • 1. If (e < 0) AND (er < 0) then Cool 0.50 & 0.00 = 0.00 • 2. If (e = 0) AND (er < 0) then Heat 0.50 & 0.00 = 0.00 • 3. If (e > 0) AND (er < 0) then Heat 0.00 & 0.00 = 0.00 • 4. If (e < 0) AND (er = 0) then Cool 0.50 & 0.50 = 0.50 • 5. If (e = 0) AND (er = 0) then No_Chng 0.50 & 0.50 = 0.50 • 6. If (e > 0) AND (er = 0) then Heat 0.00 & 0.50 = 0.00 • 7. If (e < 0) AND (er > 0) then Cool 0.50 & 0.50 = 0.50 • 8. If (e = 0) AND (er > 0) then Cool 0.50 & 0.50 = 0.50 • 9. If (e > 0) AND (er > 0) then Heat 0.00 & 0.50 = 0.00 • "negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = • (0.00^2 + 0.50^2 + 0.50^2 + 0.50^2)^.5 = 0.866 • "zero" = (R5^2)^.5 = (0.50^2)^.5 (No Change) = 0.500 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = • (0.00^2 + 0.00^2 + 0.00^2 + 0.00^2)^.5 = 0.000

  10. (neg_center * neg_strength + zero_center * zero_strength + pos_center * pos_strength)(neg_strength + zero_strength + pos_strength) • (-100 * 0.866 + 0 * 0.500 + 100 * 0.000) • (0.866 + 0.500 + 0.000) • = OUTPUT • = -63.4% (cooling)

  11. EXAMPLE CASE 2 - ERROR = +1.25F

  12. INPUT DEGREE OF MEMBERSHIP • "error" = -0.5: "negative" = 0.25, "zero" = 0.75, "positive" = 0.0 • "error-dot" = +2.5: "negative" = 0.0, "zero" = 0.50, "positive" = 0.50 • 1. If (e < 0) AND (er < 0) then Cool 0.25 & 0.0 = 0.00 • 2. If (e = 0) AND (er < 0) then Heat 0.75 & 0.0 = 0.00 • 3. If (e > 0) AND (er < 0) then Heat 0.00 & 0.0 = 0.00 • 4. If (e < 0) AND (er = 0) then Cool 0.25 & 0.50 = 0.25 • 5. If (e = 0) AND (er = 0) then No_Chng 0.75 & 0.50 = 0.50 • 6. If (e > 0) AND (er = 0) then Heat 0.00 & 0.50 = 0.00 • 7. If (e < 0) AND (er > 0) then Cool 0.25 & 0.50 = 0.25 • 8. If (e = 0) AND (er > 0) then Cool 0.75 & 0.50 = 0.50 • 9. If (e > 0) AND (er > 0) then Heat 0.00 & 0.50 = 0.00 • "negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = (0.00^2 + 0.25^2 + 0.25^2 + 0.50^2)^.5 = 0.612 • "zero" = (R5^2)^.5 = (0.50^2)^.5 (No Change) = 0.50 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = (0.00^2 + 0.00^2 + 0.00^2 + 0.00^2)^.5 = 0.000

  13. (neg_center * neg_strength + zero_center * zero_strength + pos_center * pos_strength) = OUTPUT • (neg_strength + zero_strength + pos_strength) • (-100 * 0.612 + 0 * 0.50 + 100 * 0.000) = -55.1% (cooling) • (0.612 + 0.500 + 0.000)

  14. EXAMPLE CASE 3 - ERROR = 0.0F • INPUT DEGREE OF MEMBERSHIP • "error" = 0.0: "negative" = 0.0, "zero" = 1.0, "positive" = 0.0 • "error-dot" = +2.5: "negative" = 0.0, "zero" = 0.50, "positive" = 0.50 • 1. If (e < 0) AND (er < 0) then Cool 0.00 & 0.00 = 0.0 • 2. If (e = 0) AND (er < 0) then Heat 1.00 & 0.00 = 0.0 • 3. If (e > 0) AND (er < 0) then Heat 0.00 & 0.00 = 0.0 • 4. If (e < 0) AND (er = 0) then Cool 0.00 & 0.50 = 0.0 • 5. If (e = 0) AND (er = 0) then No_Chng 1.00 & 0.50 = 0.50 • 6. If (e > 0) AND (er = 0) then Heat 0.00 & 0.50 = 0.0 • 7. If (e < 0) AND (er > 0) then Cool 0.00 & 0.50 = 0.0 • 8. If (e = 0) AND (er > 0) then Cool 1.00 & 0.50 = 0.50 • 9. If (e > 0) AND (er > 0) then Heat 0.00 & 0.50 = 0.0 • negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = (0.0^2 + 0.0^2 + 0.0^2 + 0.50^2)^.5 = 0.50 • "zero" = (R5^2)^.5 = (0.5^2)^.5 (No Change) = 0.5 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = (0.00^2 + 0.00^2 + 0.00^2 + 0.00^2)^.5 = 0.000

  15. (neg_center * neg_strength + zero_center * zero_strength + pos_center * pos_strength) = OUTPUT • (neg_strength + zero_strength + pos_strength) • (-100 * 0.50 + 0 * 0.50 + 100 * 0.000) = -50% (cooling) • (0.50 + 0.50 + 0.000)

  16. EXAMPLE CASE 4 - ERROR = +0.5F • INPUT DEGREE OF MEMBERSHIP • "error" = +0.50: "negative" = 0.0, "zero" = 0.75, "positive" = 0.25 • "error-dot" = +2.5: "negative" = 0.0, "zero" = 0.50, "positive" = 0.50 • 1. If (e < 0) AND (er < 0) then Cool 0.00 & 0.00 = 0.0 • 2. If (e = 0) AND (er < 0) then Heat 0.75 & 0.00 = 0.0 • 3. If (e > 0) AND (er < 0) then Heat 0.25 & 0.00 = 0.0 • 4. If (e < 0) AND (er = 0) then Cool 0.00 & 0.50 = 0.0 >>>> • 5. If (e = 0) AND (er = 0) then No_Chng 0.75 & 0.50 = 0.50 >>>> • 6. If (e > 0) AND (er = 0) then Heat 0.25 & 0.50 = 0.25 • 7. If (e < 0) AND (er > 0) then Cool 0.00 & 0.50 = 0.0 >>>> • 8. If (e = 0) AND (er > 0) then Cool 0.75 & 0.50 = 0.50 >>>> • 9. If (e > 0) AND (er > 0) then Heat 0.25 & 0.50 = 0.25 • "negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = (0.0^2 + 0.0^2 + 0.0^2 + 0.50^2)^.5 = 0.50 • "zero" = (R5^2)^.5 = (0.5^2)^.5 (No Change) = 0.50 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = (0.00^2 + 0.00^2 + 0.25^2 + 0.50^2)^.5 = 0.354

  17. (neg_center * neg_strength + zero_center * zero_strength + pos_center * pos_strength) = OUTPUT • (neg_strength + zero_strength + pos_strength) • (-100 * 0.50 + 0 * 0.5 + 100 * 0.354) = -10.8% (cooling) • (0.50 + 0.50 + 0.354)

  18. EXAMPLE CASE 5 - ERROR = +1.0F • INPUT DEGREE OF MEMBERSHIP • "error" = +1.0: "negative" = 0.0, "zero" = 0.5, "positive" = 0.5 • "error-dot" = +2.5: "negative" = 0.0, "zero" = 0.5, "positive" = 0.5 • 1. If (e < 0) AND (er < 0) then Cool 0.00 & 0.00 = 0.0 • 2. If (e = 0) AND (er < 0) then Heat 0.50 & 0.00 = 0.0 • 3. If (e > 0) AND (er < 0) then Heat 0.50 & 0.00 = 0.0 • 4. If (e < 0) AND (er = 0) then Cool 0.00 & 0.50 = 0.0 • 5. If (e = 0) AND (er = 0) then No_Chng 0.50 & 0.50 = 0.5 • 6. If (e > 0) AND (er = 0) then Heat 0.50 & 0.50 = 0.5 • 7. If (e < 0) AND (er > 0) then Cool 0.00 & 0.50 = 0.0 • 8. If (e = 0) AND (er > 0) then Cool 0.50 & 0.50 = 0.5 • 9. If (e > 0) AND (er > 0) then Heat 0.50 & 0.50 = 0.5 • "negative" = (R1^2 + R4^2 + R7^2 + R8^2) (Cooling) = (0.00^2 + 0.00^2 + 0.00^2 + 0.50^2)^.5 = 0.500 • "zero" = (R5^2)^.5 = (0.50^2)^.5 (No Change) = 0.500 • "positive" = (R2^2 + R3^2 + R6^2 + R9^2) (Heating) = (0.00^2 + 0.00^2 + 0.50^2 + 0.50^2)^.5 = 0.707

  19. (neg_center * neg_strength + zero_center * zero_strength + pos_center * pos_strength) = OUTPUT • (neg_strength + zero_strength + pos_strength) • (-100 * 0.500 + 0 * 0.500 + 100 * 0.707) = +12.1% (heating) • (0.500 + 0.500 + 0.707)