Skip to content

dodanie 3 algorytmów fuzzy logic, P.S najważniejszy to nr.2#35

Open
OlciXs wants to merge 3 commits into
mainfrom
Fuzzy_Logic
Open

dodanie 3 algorytmów fuzzy logic, P.S najważniejszy to nr.2#35
OlciXs wants to merge 3 commits into
mainfrom
Fuzzy_Logic

Conversation

@OlciXs

@OlciXs OlciXs commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Dodanie pierwszych algorytmów fuzzy logic

Opis

FL1:

  • Płynny
  • Poniżej 10 nie grzeje powyżej 90 daje 100
    FL2:
  • Poniżej 50 to 0, powyżej i równo 50 to 100
  •   To jest ten najważniejszy
    

FL3:

  • Cykl 60
  • powyżej 45 -> 60 i poniżej 15 -> 0

Jak zostało to przetestowane?

suwalki_2010.docx
suwalki_2023.docx
wroclaw.docx

Copilot AI review requested due to automatic review settings July 9, 2026 18:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Dodaje trzy nowe warianty kontrolera RailHeatingController oparte o logikę rozmytą (Sugeno) do katalogu algorytmów benchmarku, aby można je było podmieniać w symulatorze (main_test.py) poprzez zmianę importu.

Changes:

  • Dodanie FL1: wyjście „płynne” z obcięciem <10% → 0% oraz >90% → 100%.
  • Dodanie FL2: wyjście binarne na podstawie progu 50% (najważniejszy wariant wg opisu PR).
  • Dodanie FL3: wyjście binarne realizowane jako PWM w oknie 60 s z obcięciem <15 s → 0 oraz >45 s → 60 s.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

File Description
Benchmark/benchmark/Algorytmy/Fuzzy_Logic_1.py Nowy kontroler fuzzy (ciągły), z obcięciami 0/100 w skrajnych zakresach.
Benchmark/benchmark/Algorytmy/Fuzzy_Logic_2.py Nowy kontroler fuzzy z progowaniem wyniku do 0/100 przy 50%.
Benchmark/benchmark/Algorytmy/Fuzzy_Logic_3.py Nowy kontroler fuzzy z generowaniem wyjścia PWM w cyklu 60 s.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +2 to +3
def __init__(self, t_zadana=3.0, max_switches_per_day=12, **kwargs):
self.T_ZADANA = t_zadana
Comment on lines +38 to +40
# Progi odcięcia małych opadów
jest_snieg = snow > 0.0
jest_deszcz = precip > 0.2
jest_snieg = snow > 0.0
jest_deszcz = precip > 0.2

# 1. Nowe obliczenie mocy rozmytej wykonywane RAZ na początku każdego cyklu (co 60s)
Comment on lines +2 to +3
def __init__(self, t_zadana=3.0, max_switches_per_day=12, **kwargs):
self.T_ZADANA = t_zadana
Comment on lines +38 to +40
# Progi odcięcia małych opadów
jest_snieg = snow > 0.0
jest_deszcz = precip > 0.2
jest_snieg = snow > 0.0
jest_deszcz = precip > 0.2

# 1. Nowe obliczenie mocy rozmytej wykonywane RAZ na początku każdego cyklu (co 60s)
Comment on lines +2 to +8
def __init__(self, t_zadana=3.0, max_switches_per_day=12, **kwargs):
self.T_ZADANA = t_zadana
self.OKRES_CYKLU = 60 # Okno czasowe PWM w sekundach (np. 1 minuta)

# Liczniki wewnętrzne do symulowania pracy czasowej
self.sekunda_cyklu = 0
self.wyliczona_moc = 0.0
Comment on lines +43 to +45
# Progi odcięcia małych opadów
jest_snieg = snow > 0.0
jest_deszcz = precip > 0.2
Comment on lines +72 to +73
if czas_wlaczenia > 45.0:
czas_wlaczenia = 60.0

# 1. Nowe obliczenie mocy rozmytej wykonywane RAZ na początku każdego cyklu (co 60s)
blad_T = self.T_ZADANA - hrt
t_ok, t_chlodno, t_mrozno, t_lodowato = self._fuzzifikuj_temperature(blad_T, hrt)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants