0
Tải bản đầy đủ (.doc) (186 trang)

Qui định kiểu dữ liệu

Một phần của tài liệu ỨNG DỤNG NEUROFUZZY TRONG ĐIỀU KHIỂN NHIỆT ĐỘ THÔNG QUA KIT AT89C52LVTN.DOC (Trang 151 -152 )

4. Chương trình trên máy tính

4.1. Qui định kiểu dữ liệu

Các tập mờ được đặc trưng bởi các điểm và hình dạng, luật được đặc trưng bởi tâp mờ vào, tập mờ ra, độ hỗ trợ, … tức mỗi thành phần là một kiểu dữ liệu cĩ cấu trúc.

4.1.1. Cấu trúc dữ liệu của tập mờ vào (ET, DET).

Như ta đã biết, mỗi tập mờ bất kể hình dạng được qui định bởi 4 điểm đặc trưng (tuy nhiên tùy theo dạng tập mờ mà cĩ thể bỏ một số điểm phía sau) nên cấu trúc của một tập mờ sẽ là :

Term = record

TermName: String; Shape: byte;

PointHeigh: array[1..4] of byte; PointBase: array[1..4] of SmallInt; end;

Trong đĩ, Termname là tên của tập mờ, chỉ cần thiết khi hiển thị và khi trao đổi tập tin với chương trình fuzzyTech. Shape chỉ hình dạng tập mờ theo qui định đã nĩi ở phần 3.4. PointHeigh và PointBase tương ứng với vị trí và độ phụ thuộc của điểm đặc trưng (0 hay 1 theo độ phụ thuộc ⇔ 0 hay 100 theo cách xử lý trong chương trình).

Xét trên tồn biến ngơn ngữ thì cho phép tối đa 9 tập mờ mỗi biến nên ta chỉ dùng một mảng 9 tập mờ cho một biến mà thơi :

LVAR = record

MinRange, MaxRange: SmallInt; TermNumber: byte;

TermSet: array[1..9] of Term; end;

[MinRange,MaxRange] là miền xác định của biến ngơn ngữ. Termnumber là số tập mờ cĩ trong biến ngơn ngữ và Termset là mảng các tập mờ đĩ.

4.1.2. Cấu trúc dữ liệu cho tập mờ ra (OUT)

Một tập mờ ra chỉ cần hai điểm đặc trưng bởi vì ta dùng kiểu singleton. Tuy nhiên, do cần phải giao tiếp với chương trình fuzzytech nên cần phải tương thích về các qui định. Trong chương trình fuzzyTech khơng qui định kiểu singleton nhưng tính như singleton khi dùng giải mờ kiểu CoM. Do vậy ta vẫn dùng kiệu cấu trúc dữ liệu cho các tập mờ vào đối với tập mờ ra nhưng phải dùng tập mờ dạng tam giác và lấy vị trí đỉnh của tam giác chính là vị trí của singleton.

4.1.3. Cấu trúc dữ liệu của luật

Chỉ gồm các ký tự (chuỗi) chỉ tập mờ nào của ET, DET ở phần if, các ký tự (chuỗi) chỉ tập mờ nào của OUT ở phần Then, và thêm giá trị hỗ trợ (cũng dùng ở dạng các ký tự để dễ hiển thị trên màn hình, nhưng khi tính thì phải chuyển sang giá trị số dùng hàm StrToInt chẳng hạn).

Rule = record

ETRule, DETRule, OUTRule, DoS: string; end;

Một phần của tài liệu ỨNG DỤNG NEUROFUZZY TRONG ĐIỀU KHIỂN NHIỆT ĐỘ THÔNG QUA KIT AT89C52LVTN.DOC (Trang 151 -152 )

×