LỜI NÓI ĐẦU..............................................................................................................4
CHƯƠNG 1: LÝ THUYẾT MẠNG NƠRON..............................................................6
1.1 Nơron tự nhiên....................................................................................................6
1.2 Nơron nhân tạo....................................................................................................8
1.3 Mạng truyền thẳng và huấn luyện mạng theo thuật toán Brandt-Lin...............10
1.3.1 Mạng truyền thẳng.....................................................................................10
1.3.2 Thuật toán Brandt-Lin...............................................................................12
CHƯƠNG 2: GIỚI THIỆU ATMEGA 128................................................................16
2.1 Đặc điểm của Atmega 128 ...............................................................................16
2.2 Mô tả các chân ..................................................................................................18
2.3 Kiến trúc tổng quan của Atmega128 ................................................................21
2.3.1 Bộ nhớ của Atmega128 ............................................................................21
2.3.2 Tệp thanh ghi :..........................................................................................23
2.3.3 Port (cổng) vào ra .....................................................................................24
2.3.4 Giao tiếp với SRAM ngoài ........................................................................27
2.3.5 Cấu trúc ngắt của Atmega 128 .................................................................28
2.3.6 Bộ biến đổi A/D bên trong........................................................................31
2.3.7 Bộ truyền/nhận UART ..............................................................................32
2. 3.8 Bộ định thời .............................................................................................34
CHƯƠNG 3: MÔ PHỎNG HỆ THỐNG ĐIỀU KHIỂN ĐƯỢC THIẾT KẾ DỰA
TRÊN MẠNG NƠRON..............................................................................................37
3.1 Thiết kế bộ điều khiển PID-Neural có chỉnh định thích nghi trọng số của mạng
.................................................................................................................................37
3.1.1 Thuật toán chỉnh định trọng số...................................................................37
3.1.2 Kết quả mô phỏng......................................................................................39
3.2 Thiết kế bộ điều khiển sử dụng sai lệch làm đầu vào.......................................55
3.2.1 Thuật toán chỉnh định trọng số...................................................................55
3.2.2 Kết quả mô phỏng......................................................................................59
CHƯƠNG 4 : ỨNG DỤNG ĐIỀU KHIỂN ĐỐI TƯỢNG THỰC............................67
1
4.1 Động cơ điện một chiều....................................................................................67
nghiên cứu khía cạnh ứng dụng trong điều khiển của mạng nơron. Không giống các
lĩnh vực ứng dụng khác là việc tính toán mạng nơron được thực hiện bằng máy tính,
khi áp dụng vào điều khiển, mọi tính toán của mạng nơron đều được thực hiện bằng
vi điều khiển có tốc độ thấp hơn tốc độ máy tính rất nhiều nên yêu cầu thiết kế cấu
trúc mạng gọn nhẹ để phù hợp với vi điều khiển và tối ưu thời gian điều khiển được
đặt lên hàng đầu. Khi ứng dụng trong điều khiển cấu trúc mạng nơron sẽ bao gồm
luôn cả đối tượng điều khiển nên không thể sử dụng các luật học thông thường như
luật học lan truyền ngược mà cần tìm 1 luật học khác phù hợp hơn. Sau một thời gian
dài tìm kiếm, nhóm đã tìm ra được thuật toán Brandt-Lin làm giải pháp cho việc huấn
luyện mạng nơron. Thuật toán Brandt-Lin là sản phẩm do 2 nhà khoa học Robert D.
Brandt và Feng Lin đưa ra. Trong đồ án này, ngoài việc thực hiện tốt các mô phỏng,
nhóm đã tiến hành điều khiển thực tế được động cơ 1 chiều có công suất nhỏ và với
các yêu cầu điều khiển không cao.
Do hạn chế về dụng cụ thí nghiệm nên bộ điều khiển dựa trên mạng nơron của
nhóm mới chỉ ứng dụng điều khiển 1 đối tượng ở điều kiện đơn giản nên chưa thể
khẳng định sẽ điều khiển thành công với các loại đối tượng khác. Đồ án của nhóm
chắc hẳn còn nhiều sai sót mà bản thân các thành viên trong nhóm chưa phát hiện ra.
Do vậy nhóm rất hy vọng nhận được sự chỉ bảo của thầy cô, bạn bè và người đọc.
Chúng em, những thành viên trong nhóm làm đồ án xin gửi lời cảm ơn đến phó
giáo sư, tiến sĩ Phan Xuân Minh đã tận tình hướng dẫn chúng em hoàn thành đồ án
này. Ngay từ ban đầu cô đã đặt ra mục tiêu rõ ràng và cao giúp cả nhóm thấy rõ
4
những việc mình cần hoàn thành. Cô cung cấp cho nhóm những lời khuyên mang tính
định hướng đúng đắn khi nhóm gặp khó khăn trong quá trình nghiên cứu. Nhóm cám
ơn những người bạn đã hỗ trợ, cung cấp những tài liệu về mạng nơron quý giá và
giúp đỡ về mặt thiết kế, nhờ đó mà đồ án này được hoàn thành đúng hạn.
Hà Nội, ngày 30 tháng 5 năm 2007
Nhóm thực hiện đồ án
Nguyễn Ngọc Hải
Cao Thế Phong
xử lý thông tin. Hầu như tất các các chức năng logic của nơron được thực hiện ở
soma.
Axon: Đầu ra của nơron được gọi là axon.
1.2 Nơron nhân tạo
Hình 1.4: Nơ-ron nhân tạo
Cấu trúc một nơron nhân tạo (xem hình 1.4) bao gồm các thành phần sau:
Đầu vào
1 2
, ,...,
n
x x x
: Các đầu vào nhân với các trọng số
1 2
, ,...,
n
w w w
. Một đầu vào
có giá trị bằng 1 được gọi là 1 bias và được ký hiệu là
0
x
.
Hàm số đầu vào f tính tập hợp các tín hiệu đầu vào cho nơron
( , )u f x w=
, trong đó
x và w lần lượt là các vectơ đầu vào và trọng số. Thông thường chọn f là hàm tổng
1
n
i i
i
u x w
1
1
cu
a
e
−
=
+
(hình 1.5[c-1]) trong đó c là hằng số. Một hình thức khác của hàm
logsig là hàm logsig 2 cực:
( )
1
1
cu
cu
e
h u
e
−
−
−
=
+
(hình 1.5[c-1]) và hàm tansig:
( )
tanh
cu cu
cu cu
e e
u
là trọng số của nơron thứ i, có đầu vào là j, thuộc lớp thứ k.
11
i
x
là đầu vào thứ i, i=1,2,3
i
z
là đầu ra của nơron thứ i thuộc lớp ẩn, i=1,2,3.
o là đầu ra của lớp đầu ra.
1
net
,
2
net
lần lượt là hàm truyền của lớp ẩn, lớp đầu ra.
Tính đầu ra của các lớp:
Lớp ẩn:
(1) (1) (1) (1)
1 1 11 2 12 3 13
(1)
1 1 1
(1) (1) (1) (1)
2 1 21 2 22 3 23
(1)
2 1 2
(1) (1) (1) (1)
3 1 31 2 32 3 33
n
y
và nhiều tín hiệu
đầu vào khả tích
n
x
. Đầu vào và đầu ra của các nút được nối với nhau thông qua các
trọng số.
n
x
. Đặc tính động học của mỗi trạm được mô tả bằng một hàm nhân quả
:={ }
n n n
F : , n 1,2,...,N , X Y N® Î
trong đó
n
X
và
n
Y
là không gian đầu vào và đầu ra. Như vậy, đầu ra
( )
t
n
y
của nút
thứ n được xác định bằng phương trình sau
( ) ( )
( )
n n n
k
j j
E
w w w F x y
y y
l l l l' l l
l l
( ) ( )
g
+ -
=
¶
= -
¶
å
1 1
1
1
& &
(2)
thì chỉ số chất lượng
2
1
1
( )
2
n
m i
i
E y y
>0
là hệ số thích nghi.
Trong đó
ij
w
l
là trọng số liên kết của nút thứ j thuộc lớp l xuất phát từ nút thứ i.
j
y
l
là đầu ra của nút thứ thứ j thuộc lớp l.
l
ij ij i
x w y
-
=
1l l
.
là đầu vào của nút thứ j thuộc lớp l xuất phát từ nút thứ i.
q là số lượng nhánh ra xuất phát từ nút thứ j của lớp l
13
Chứng minh.
Hình 2.2: Một phần của mạng nơron
ij
ij ij ij
1
i
ij
=
=
' 1
ij ij
1
1
1
1 1' +1
jk
1
1
1
(1)
w ( )
( ) (2)
l l l l l
j j i
l
q
k
l l l l
k
j j k j
q
l l l
jk k
l l
k
j k
dE dE
à (1) :
1
(3)
w ( )
(3) ào (2) ta có :
1
w
l l l l l
k k j
q
l
jk
l l l l
k
j j j
m theo suy ra
dE dE
dy d F x y
thay v
dE E dE
w
dy y d y
+ +
+
=
=
∂
= +
∂
∑
∂
= −
∂
∑
&
&
' 1
ij ij
ij
1 +1 ' 1
jk ij
1
1 +1 ' 1
jk ij
1
w ( )
w
1 1
( w ) ( )
1
( w ) ( )
l l l l
i i
l l
j
q
l l l l l
jk i i
l l
k
= −
∂
∑
∑
&
&
&
15
CHƯƠNG 2: GIỚI THIỆU ATMEGA 128
2.1 Đặc điểm của Atmega 128
• Khả năng thực thi cao, công suất tiêu thụ thấp, bộ vi xử lý 8 bit
• Bộ vi xử lý với cấu trúc RISC :
Có thể tính toán 16 triệu lệnh trên 1s ở tần số 16MHz
Tạo ra đầy đủ các trạng thái
32 thanh ghi với mục đích làm việc và điều khiển thiết bị ngoại vi
Bộ nhớ chương trình không đổi và bộ nhớ dữ liệu :
Bộ nhớ dữ liệu chương trình là 128K Bytes với chu kì tẩy xóa cho bộ
nhớ là 10 000 lần
Bộ nhớ EEPROM là 4 K bytes với chu kỳ tẩy xóa là 100 000 lần
Có 4 K Bytes bộ nhớ SRAM nội
Có thể lựa chọn mở rộng không gian bộ nhớ ngoài lên 64 K Bytes
Có chế độ khóa để bảo mật chương trình
Giao tiếp SPI trong lập trình trong hệ thống
• Giao tiếp JTAG (theo chuẩn IEEE 1149.1) :
Có khả năng quét danh giới theo chuẩn JTAG
Mở rộng khả năng Debug trên chíp
Bộ nhớ chương trình, EEPROM, các cầu chì, khóa các bit thông qua
giao tiếp JTAG
• Các ngoại vi :
Hai bộ Timer/Counter 8 bit hoạt động riêng rẽ và có chế độ so sánh
nối trực tiếp với ALU (Arithmetic Logic Unit), cho phép truy cập 2 thanh ghi độc lập
bằng một chu kì xung nhịp. Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi
điều khiển dạng CISC thông thường. Atmega128 cung cấp những đặc tính sau: 128 K
bytes bộ nhớ chương trình, 4K bytes bộ nhớ EEPROM, 4K bytes SRAM, 52 chân với
17
mục đích vào ra thông thường, 32 thanh ghi làm việc với mục đích thông thường, bộ
đếm thời gian thực (RTC), 4 bộ Timer/Counter với chế độ so sánh và PWM, 2
USARTs, 8 kênh ADC 10 bit với khả năng lựa chọn đầu vào và lập trình được hệ số
khuếch đại, Watchdog timer có khả năng lập trình nhờ bộ tạo dao động bên trong,
giao tiếp SPI, bộ giao tiếp kiểm tra lỗi theo chuẩn IEEE 1149.1, chỉ dùng để debug hệ
thống và chương trình trên chip và khả năng lựa chọn 6 chế độ tiết kiệm năng lượng.
chế độ Idle ngừng hoạt động của CPU trong khi cho phép SRAM, Timer/Counter,
cổng SPI, hệ thống ngắt tiếp tục gọi hàm, chế độ power-down tiết kiệm lượng thanh
ghi nhưng ổn định cho xung giao động, ko hoạt động các hàm khác cho đến khi có
ngắt tiếp theo hoặc reset phần cứng. Ở chế độ power-save, Timer không đồng thời
tiếp tục hoạt động, mà cho phép người sử dụng dùng một Timer cơ sở trong khi các
thiết bị đang ở chế độ nghỉ. Chế độ giảm nhiễu cho ADC ngừng CPU và các module
vào ra ngoại trừ timer và ADC, để giảm nhiễu xuống thấp nhất trong quá trình biến
đổi ADC. Ở chế độ standby thạch anh dao động đang chạy trong khi các thiết bị khác
ở chế độ nghỉ. Ở chế độ standby mở rộng bộ dao động chính và timer không đồng bộ
tiếp tục chạy.
2.2 Mô tả các chân
• VCC : chân nguồn +5V
• GND: chân đất
• Port A
• Port B
• Port C
• Port D
• Port E
• Port F
tại.
Bộ nhớ SRAM bên trong được sử dụng cho ngăn xếp cũng như để lưu trữ các
biến. Trong thời gian có ngắt và gọi đoạn chương trình, giá trị hiện tại của bộ đếm
chương trình được lưu tữ trong ngăn xếp. Vị trí của ngăn xếp được chỉ thị bởi con trỏ
ngăn xếp.
Hình 2.4 : Định dạng bộ nhớ của Atmega128
Atmega 128 cung cấp hai cấu hình khac nhau cho bộ nhớ SRAM, có thế sử
dụng 4096 Bytes bộ nhớ ram trong hoặc 64 k Bytes bộ nhớ ram ngoài
22
Hình 2.5 : Không gian địa chỉ bộ nhớ SRAM
Bộ nhớ dữ liệu EEPROM của Atmega 128 là 4k Bytes, với chu kỳ tẩy xóa là
100 000 nghìn lần. sự truy nhập giữa EEPROM và MCU được mô tả như sau, nó
được chỉ rõ trong các thanh ghi địa chỉ, thanh ghi dữ liệu và thanh ghi điều
của EEPROM.
2.3.2 Tệp thanh ghi :
Atmega 128 có 32 thanh ghi đa chức năng. Một số trong các thanh ghi này còn
có các chức năng riêng, bổ sung . Các thanh ghi này được được đặt tên từ R0 đến
R31.tất cả các lệnh thao tác trên thanh ghi đều có thể truy nhập trực tiếp và truy nhập
trong chu trình đơn đến tất cả các thanh ghi. Nhưng một ngoại lệ là các lệnh SBCI,
23
SUIB, CPI, ANDI và ORI cũng như WI, các lệnh nay chỉ tác động đến các thanh ghi
R16 đến R31.
Các thanh ghi từ R26 đến R31 có các chức năng bổ xung thanh ghi R0 được
sử dụng trong các lệnh lạp bộ nhớ chương trình LPM, trong khi các thanh ghi R26
đến R31 được sử dụng làm các thanh ghi con trỏ như được minh họa trên hình 2.6
Hình 2.6: Tệp thah ghi của Atmega 128
2.3.3 Port (cổng) vào ra
Atmega 128 có tất cả là 7 Port từ PortA đến PortG. Tất cả các Port của AVR
đều có trở treo bên trong và được lựa chọn cho mỗi bit và có thể được đọc-chỉnh sửa-
SS
(chọn SPI là slave hay master)
25