Bulanık Mantık Kod

Konusu 'Bulanık Mantık (Fuzzy Logic)' forumundadır ve zhr_a tarafından 15 Aralık 2013 başlatılmıştır.


  1. zhr_a

    zhr_a Üye

    Katılım:
    15 Aralık 2013
    Mesajlar:
    1
    Beğenilen Mesajları:
    0
    Ödül Puanları:
    1
    Arkadaşlar bana acil bugün içerisinde c veya c# ile yazılmış bulanık mantık ile ilgili çok basit bir uygulama ve kodları lazım yardımcı olabilir misiniz? Sitede bir çok araştırma yaptım ancak bulunan bilgiler seviyemin üzerinde anlamam oldukça güç.Lütfen çok acil.
     
  2. laparga

    laparga Üye

    Katılım:
    14 Mart 2009
    Mesajlar:
    108
    Beğenilen Mesajları:
    3
    Ödül Puanları:
    3
    Meslek:
    Elektronik Ar-Ge
    Burayı inceleyebilirsiniz..

    Fuzzy Logic in C
     
  3. laparga

    laparga Üye

    Katılım:
    14 Mart 2009
    Mesajlar:
    108
    Beğenilen Mesajları:
    3
    Ödül Puanları:
    3
    Meslek:
    Elektronik Ar-Ge
    http://www.phaedsys.com/principals/bytecraft/bytecraftdata/bcfuzlogic.pdf
    Belgesinden bir örneğin bi kısmı burayı da inceleyebilirsin.Anlamadığın biryer olursa sorabilirsin.İyi çalışmalar..

    Example of PID Controller:

    Int OldError,SumError;
    int process(void);

    LINGUISTIC Error TYPE int MIN -90 MAX 90
    {
    MEMBER LNegative { -90, -90, -20, 0 }
    MEMBER normal { -20, 0, 20 }
    MEMBER close { -3, 0, 3 }
    MEMBER LPositive { 0, 20, 90, 90 }
    }

    LINGUISTIC DeltaError TYPE int MIN -90 MAX 90
    {
    MEMBER Negative { -90, -90, -10, 0 }
    MEMBER Positive { 0, 10, 90, 90 }
    }

    LINGUISTIC SumError TYPE int MIN -90 MAX 90
    {
    MEMBER LNeg { -90, -90, -5, 0 }
    MEMBER LPos { 0, 5, 90, 90 }
    }

    CONSEQUENCE ManVar TYPE int MIN -20 MAX 20 DEFUZZ cg
    {
    MEMBER LNegative { -18 }
    MEMBER SNegative { -6 }
    MEMBER SPositive { 6 }
    MEMBER LPositive { 18 }
    }

    FUZZY pid
    {
    IF Error IS LNegative THEN ManVar IS LPositive

    IF Error IS LPositive THEN ManVar IS LNegative

    IF Error IS normal AND DeltaError IS Positive
    THEN ManVar IS SNegative

    IF Error IS normal AND DeltaError IS Negative
    THEN ManVar IS SPositive



    IF Error IS close AND SumError IS LPos
    THEN ManVar IS SNegative

    IF Error IS close AND SumError IS LNeg
    THEN ManVar IS SPositive

    }

    void main (void)
    {
    while(1)
    {
    OldError = Error;
    Error = Setpoint - Process();
    DeltaError = Error - OldError;
    SumError := SumError + Error;
    pid();
    }
    }
     
    Son düzenleme: 25 Aralık 2013
Yüklüyor...
Benzer Konular
  1. antugari
    Mesaj:
    6
    Görüntüleme:
    2.850
  2. sefaxxxxx
    Mesaj:
    0
    Görüntüleme:
    2.293
  3. pcMühendis
    Mesaj:
    0
    Görüntüleme:
    2.066
  4. musa_
    Mesaj:
    5
    Görüntüleme:
    3.210
  5. ohmckm
    Mesaj:
    7
    Görüntüleme:
    3.121
  6. vatansever44
    Mesaj:
    3
    Görüntüleme:
    2.109
  7. yusufgani.27
    Mesaj:
    6
    Görüntüleme:
    2.104
  8. gozkayar
    Mesaj:
    6
    Görüntüleme:
    7.058
  9. MuraTh
    Mesaj:
    5
    Görüntüleme:
    6.144
  10. MuraTh
    Mesaj:
    48
    Görüntüleme:
    57.331

Sayfayı Paylaş