Neskaidra loģika - veids, kā panākt kontroli, pamatojoties uz neprecīziem ievadiem

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā digitālās vadības laikmetā gandrīz katru ierīci kontrolē, izmantojot digitālā vadība līmenī, izmantojot 1 un 0. Bet tikai padomājiet, vai nav gluži nepraktiski domāt, ka katrs ikdienas procesu iznākums, ar kuru jūs sastopaties, ir atkarīgs tikai no diviem ievades stāvokļiem. Nē, noteikti. Vienkārši iedomājieties, kā jūsu māte gatavo kādu garšīgu ēdienu, un jūs nevarat atturēties sevi slavēt. Tātad, kā ēdiens kļūst tik garšīgs? Protams, pievienojot sastāvdaļas pareizā daudzumā un proporcijās. Tātad, kā viņa to pārvalda? Ar lieliskām skaitliskām zināšanām par lielumiem? Ne vienmēr. Viņa to dara ar zināmu ideju, kas nāk ar pieredzi. Šeit rodas ideja par vadības loģiku, kas izmanto ieejas stāvokļa pakāpes, nevis pašas ieejas, loģiku, kurai nav nepieciešami daži perfekti ievadi, bet tā darbojas tikai ar tipisku ieeju novērtējumu. Tā ir neskaidra loģika.

Kas ir neskaidra loģika?

Neskaidra loģika ir pamata vadības sistēma, kas balstās uz ieejas stāvokļa pakāpēm, un izeja ir atkarīga no ieejas stāvokļa un šī stāvokļa izmaiņu ātruma. Citiem vārdiem sakot, neskaidra loģiskā sistēma darbojas pēc principa piešķirt konkrētu izvadi atkarībā no ievades stāvokļa varbūtības.




Kā radās neskaidra loģika?

Fuzzy Logic 1965. gadā izstrādāja Lotfi Zadeh no Kalifornijas universitātes Berklijā kā veidu, kā veikt datoru procesus, pamatojoties uz dabiskām vērtībām, nevis uz binārām vērtībām. Sākotnēji to izmantoja kā datu apstrādes veidu, un vēlāk sāka izmantot kā kontroles stratēģiju.

Kā darbojas neskaidra loģika?

Neskaidra loģika strādā pie koncepcijas, kā izlemt rezultātu, pamatojoties uz pieņēmumiem. Tas darbojas, pamatojoties uz komplektiem. Katra kopa apzīmē dažus valodas mainīgos, kas nosaka iespējamo izejas stāvokli. Katrs iespējamais ievades stāvoklis un stāvokļa maiņas pakāpes ir kopas daļa, atkarībā no tā, kura tiek prognozēta izeja. Tas darbojas pēc If-else-the principa, t.i., Ja A un B, tad Z.



Pieņemsim, ka mēs vēlamies kontrolēt sistēmu, kur izeja var būt jebkurā kopā X ar vispārīgu vērtību x tā, ka x pieder X. Apsveriet konkrētu kopu A, kas ir X apakškopa tā, ka visi A locekļi pieder intervāls 0 un 1. Kopa A ir pazīstama kā neskaidra kopa un f vērtībaTO(x) pie x apzīmē x dalības pakāpi šajā kopā. Rezultātu izlemj, pamatojoties uz dalības pakāpi x komplektā. Šī dalības piešķiršana ir atkarīga no izejas pieņēmuma atkarībā no izejvielām un izejvielu izmaiņu ātruma.

Šīs neskaidras kopas tiek attēlotas grafiski, izmantojot dalības funkcijas, un izeja tiek izlemta, pamatojoties uz dalības pakāpi katrā funkcijas daļā. Par komplektu piederību lemj IF-Else loģika.


Parasti kopas mainīgie ir izejvielu stāvoklis un ievades izmaiņu pakāpes un izejas dalība ir atkarīga no ievades stāvokļa UN darbības loģikas un ievades izmaiņu ātruma. Vairāku ievades sistēmu mainīgie var būt arī dažādi ievadi, un izvade var būt iespējamais UN darbības rezultāts starp mainīgajiem.

Neskaidra vadības sistēma

Neskaidra vadības sistēma sastāv no šādiem komponentiem:

Neskaidra loģikas vadības sistēma

Neskaidra loģikas vadības sistēma

Fuzzifier kas pārveido izmērītos vai ievadītos mainīgos skaitliskās formās valodas mainīgajos.

Kontrolieris veic izplūdušās loģiskās darbības izejas piešķiršanai, pamatojoties uz lingvistisko informāciju. Tas veic aptuvenu pamatojumu, pamatojoties uz cilvēka interpretācijas veidu, lai sasniegtu kontroles loģiku. Kontrolieris sastāv no zināšanu bāzes un secināšanas dzinēja. Zināšanu bāze sastāv no dalības funkcijām un izplūdušajiem noteikumiem, kurus iegūst, zinot sistēmas darbību atbilstoši videi.

Defuzifikators pārvērš šo neskaidro izvadi par nepieciešamo izvadi, lai vadītu sistēmu.

Vienkārša vadības sistēma, izmantojot neskaidru loģiku, lai kontrolētu ventilatora ātrumu atkarībā no ieejas temperatūras.

Pieņemsim, ka vēlaties kontrolēt ventilatora ātrumu atkarībā no istabas temperatūras. Parastam lajam, ja telpas temperatūra ir tāda, ka viņš / viņa jūtas pārāk karsts, tad ventilatora ātrums tiek palielināts līdz pilnai vērtībai. Ja viņš / viņa jūtas mazliet karsts, tad ventilatora ātrums tiek mēreni palielināts. Ja viņš / viņa jūtas pārāk auksts, ventilatora ātrums tiek krasi samazināts.

Tātad, kā likt savam datoram to darīt?

Šādi mēs to varam sasniegt:

Ventilatora ātruma kontrolēšana, pamatojoties uz temperatūras ievadi

Ventilatora ātruma kontrolēšana, pamatojoties uz temperatūras ievadi

  • Temperatūras sensors mēra telpu temperatūras vērtības. Iegūtās vērtības tiek ņemtas un pēc tam nodotas fuzzifier.
  • Fuzzifier katrai izmērītajai vērtībai un izmērītās vērtības izmaiņu ātrumam piešķir valodas mainīgos.

Piemēram, ja izmērītā vērtība ir 40⁰C un augstāka, tad istaba ir pārāk karsta

Ja izmērītā vērtība ir no 30 ° C līdz 40 ° C, telpā ir diezgan karsts

Ja izmērītā vērtība ir no 22 līdz 28⁰C, telpa ir mērena

Ja izmērītā vērtība ir no 10 līdz 20⁰C, istaba ir auksta

Ja izmērītā vērtība ir mazāka par 10, istaba ir pārāk auksta.

  • Nākamais solis ir saistīts ar zināšanu bāzes darbību, kas satur informāciju par šīm dalībnieku funkcijām, kā arī noteikumu bāzi.

Piemēram, ja istaba ir pārāk karsta UN istaba ātri sasilst, tad iestatiet ventilatora ātrumu uz High

Ja istaba ir pārāk karsta UN istaba tiek lēni uzsildīta, tad iestatiet ventilatora ātrumu mazāku par augstu.

  • Nākamais solis ietver šī valodas izvades mainīgā pārveidošanu skaitliskos vai loģiskos mainīgos, ko izmanto ventilatora darbināšanai motora vadītājs .
  • Pēdējais solis ietver ventilatora ātruma kontroli, dodot pareizu ievadi ventilatora motora vadītājam.

Tātad, tas ir īss Fuzzy Logic pārskats, ir vēlams pievienot visus citus ievadus.