Tải bản đầy đủ

PHÂN TÍCH NGUYÊN LÝ LÀM VIỆC MẠCH ĐIỀU KHIỂN SERVO DC DÙNG IC LM629

TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ
TRỌNG
KHOA ĐIỆN – ĐIỆN TỬ
----**----

PHÂN TÍCH NGUYÊN LÝ LÀM VIỆC MẠCH
ĐIỀU KHIỂN SERVO DC DÙNG IC LM629

BÁO CÁO TIỂU LUẬN ĐIỆN TỬ CÔNG NGHIỆP

NHÓM:
BÙI THIÊN ÁI
NGUYỄN TRUNG TRỰC
HOÀNG TRƯỜNG
KHANH


TP. HỒ CHÍ MINH – 2014

2





ĐẶC TÍNH CỦA LM629N:

I.GIỚI THIỆU CHUNG:

IC LM629 là vi xử lý chuyên dụng của hãng điện tử National, dùng để
điều khiển chuyển động của các loại động cơ DC servo và các cơ cấu
servo khác có tín hiệu hồi tiếp trả về lệnh pha 900 .Với khả năng tính toán
32bit và tập lệnh hỗ trợ mạnh, LM629 có thể sử dụng trong các ứng dụng
phức tạp mà vẫn đảm bảo thời gian thực và độ phân giải cao.LM629 hoạt
động ở tần số tối đa 6 hay 8 MHz.

Hình 1. Sơ đồ khối điều khiển dùng IC LM629
II. Khảo sát LM629N
1. Giới thiệu về LM629N :

3


Hình 2.IC LM629N
LM629N cũng có đặc tính giống như các LM 629, LM629N có tất cả 28
chân.
+ Chân 1 IN ngõ vào: nhận lựa chọn chỉ dẫn xung ngõ vào encoder.
Phải đặt mức 1 nếu không dùng. Chỉ dẫn được đọc khi các chân 1, 2, 3 ở
mức thấp.
+ Chân 2, 3 ngõ vào tín hiệu encoder A, B: nhận tín hiệu 2 pha
vuông góc được tạo ra bởi encoder incremental. Khi motor quay, tín hiệu
2 pha lệch 90 độ. Chú ý chân 2 và 3 chỉ được thay đổi trạng thái ít nhất
là sau 8 kỳ xung clock. Vì 4 trạng thái là cơ sở để giải mã encoder.
+ Chân 4 đến chân 11 Port tiếp nhận I/O D0-D7: port dữ liệu 2
hướng tiếp nhận xử lý. Dùng để viết lệnh hay dữ liệu vào LM629 và đọc
byte trạng thái hay dữ liệu từ nó, được điều khiển bởi CS (chân 12), PS
(chân 16), RD (chân 13), WR (chân 15).
4


+ Chân 12 ngõ vào chân chọn chip CS: dùng để chọn LM629 cho
hoạt động đọc và viết.

+ Chân 13 ngõ vào đọc RD: dùng để đọc trạng thái hay dữ liệu.
+ Chân 14 Gnd.
+ Chân 15 ngõ vào viết WR: dùng để viết lệnh hay dữ liệu.
+ Chân 16 ngõ vào chọn Port PS: dùng để chọn lệnh hay dữ liệu.
Chọn lệnh khi ở mức thấp. Theo mode được điều khiển từ chân 16:


Lệnh được viết đến port lệnh khi chân 16 = 0



Byte trạng thái được đọc từ port lệnh khi chân 16 = 0



Viết và đọc dữ liệu khi chân 16 = 1

+ Chân 17 ngõ ra ngắt HI: hoạt động mức cao khi có báo động một
điều kiện ngắt xảy ra.
+ Chân reset RST: phải được đặt ở mức thấp tối thiểu 8 chu kỳ.
Khi bị reset:


Hệ số bộ lọc và các thông số đều bằng 0



Set sai số vị trí cao nhất 7FFF và kết quả là thi hành lệnh
LPEI



Ngắt SBBA/SBPR bị vô hiệu hóa



Cho phép 5 ngắt khác



Đưa về vị trí ban đầu zero hay vị trí home



Được set trở lại trong thời gian 2048/fCLK

Tuy nhiên, sau reset nên đọc port trạng thái là 00. Nếu reset hoàn thành
thì từ trạng thái sẽ là 84h hay C4h.
2. Nguyên lý hoạt động:
2.1
Giới thiệu:
Sơ đồ khối ở hình 1 biểu thị một hệ servo sử dụng LM629. Vi xử lý
chủ giao tiếp với LM629 qua một port I/O để lập trình quỹ đạo vận
5


tốc hình thang và bộ lọc bù số. Ngõ ra PWM 8 bit giao tiếp với
mạch cầu H để cung cấp năng lượng cho động cơ hoạt động và tín
hiệu hồi tiếp cho vọng điều khiển vị trí lấy từ encoder loại tương
đối. Khối tạo biên dạng vận tốc hình thang sẽ tính toán quỹ đạo cần
thiết khi hoạt động ở kiểu vận tốc và kiểu vị trí. Khi hoạt động,
LM629 sẽ tính toán sai số vị trí bằng cách lấy vị trí mong muốn trừ
đi vị trí thực (hiện tại), sai số này được đưa vào bộ lọc số để điều
khiển. Bảng dưới là một vài thông số cơ bản của LM629.

Hình 3. Bảng thông số cơ bản của LM629
2.2
Hồi tiếp vị trí:
LM629 có thể giao tiếp với encoder tương đối loại 3 pha A, B, Z để
kiểm soát vị trí động cơ. Mỗi khi có tín hiệu chuyển mạch của xung
A hoặc B, thanh ghi vị trí của LM629 sẽ tăng giảm tương ứng.
Điều này giúp nâng cao độ phân giải encoder lên 4 lần. Tín hiệu từ
encoder được đồng bộ với xung clock của LM629.

6


Hình 4. Tín hiệu hồi tiếp từ Encoder

Tín hiệu từ xung Index dùng để nhận biết động cơ đã quay
được một vòng. Khi được lập trình, LM629 sẽ ghi lại vị trí tuyệt
đối của động cơ vào thanh ghi Index mỗi khi 3 tín hiệu của encoder
xuống mức logic thấp. Nếu encoder không có pha Index thì ngõ
vào Index của LM629 vẫn có thể được dùng để ghi lại vị trí Home
của động cơ. Trong trường hợp này, người ta bố trí sao cho khi
động cơ đến điểm Home sẽ làm một công tắc xuống mức logic thấp
và nối công tắc này vào chân Index. Khi đó LM629 sẽ ghi lại vị trí
động cơ vào thanh ghi Index và có thể gây ngắt vi xử lý chủ. Nếu
không sử dụng, chân Index nên nối lên mức logic cao.
2.3
Khối tạo biên dạng vận tốc :
7


LM629 điều khiển vị trí bằng với biên dạng vận tốc khi di chuyển
là hình thang. Trong kiểu điều khiển vị trí, vi xử lý chủ xác định
gia tốc, vận tốc tối đa và vị trí đích. LM629 dùng thông tin này để
tạo ra chuyển động bằng cách gia tốc cho đến khi đạt vận tốc tối đa
và giảm dần cho về không khi đạt vị trí. Giá trị của gia tốc và vận
tốc là bằng nhau. Trong suốt thời gian di chuyển, vận tốc cực đại
và vị trí đích có thể thay đổi được và động cơ sẽ tăng hay giảm gia
tốc cho phù hợp. Hình 5(a) là hình thang đơn giản lý tưởng, hình
5(b) là hình thang, có được khi vận tốc thay đổi trong những thời
gian khác nhau trong lúc chuyển động.

Hình 5 . Profile hình thang mẫu biểu diễn biên dạng vận tốc
8


Khi hoạt động ở kiểu vận tốc, động cơ tăng đến vận tốc xác định ứng
với gia tốc đặt trước và giữ vận tốc ổn định cho đến khi có lệnh dừng.
Nếu có nhiễu trong lúc hoạt động thì vận tốc trung bình vẫn không đổi
do LM629 sẽ tính toán bù trừ cần thiết. Nếu động cơ không đạt được vận
tốc đặt (ví dụ động cơ bị kẹt hoặc công suất không đảm bảo) thì vị trí yêu
cầu từ LM629 vẫn tiếp tục tăng dẫn đến sai lệch vị trí ngày càng lớn.
Nếu ngẫu nhiên lỗi này được khắc phục thì động cơ sẽ nhanh chóng đạt
vận tốc rất cao để đạt vị trí yêu cầu. Lỗi này có thể phát hiện được bằng
cách dùng lệnh LPEI, LPES.
Tất cả các thông số quỹ đạo có là số dạng 32 bit. Thông số vị trí là giá
trị có dấu. Giá trị gia tốc và vận tốc là số dương gồm 16 bit biểu thị phần
nguyên và 16 bit biểu thị phần thập phân.
Cách xác định các thông số yêu cầu như sau: Ví dụ động cơ có encoder
500 xung, yêu cầu tăng vận tốc từ 0 đến 600 v/ph sau đó giảm vận tốc và
dừng chính xác ở vị trí 100 vòng kể từ lúc bắt đầu. Cách tính thông số
như sau:
P = vị trí đích (đơn vị = số đếm encoder)
R = encoder * 4 (độ phân giải hệ thống)
R = 500 * 4 = 2000
P = 2000 * số vòng yêu cầu
= 2000 * 100 = 200000 = 30D40h (số Hex ghi vào LM629)
V = vận tốc (số xung encoder/mẫu)
T = thời gian lấy mẫu = 341 us (6MHz)
C = hệ số chuyển đổi = 1 phút/60 giây
khi đó V = R * T * C * vận tốc yêu cầu
9


và V = 2000 * 341E-6 * 1/60 * 600 = 6.82 xung/mẫu
V (nhân hằng số) = 6.82 * 65536 = 446,955.52 = 446,956 = 6D1ECh
cho A = số đếm/ tgian * tgian
A = R * T * T * gia tốc yêu cầu
= 2000 * 341E-6 * 341E-6 * 1 = 2.33E-4 (xung/sample/sample)
A (nhân hằng số) = 2.33E-4 * 65536 = 15.24 = 15 = 0Fh
Vận tốc, vị trí, gia tốc trên phải chuyển thành số nhị phân trước khi load
vào LM629. Giá trị vận tốc và gia tốc phải được nhân lên với 65536 để
đảm bảo giá trị là số nguyên. Chú ý là các giá trị này phải được làm tròn.
2.4
Bộ lọc bù PID :
LM629 dùng bộ PID số để điều khiển vòng kín. Biểu thức minh họa cho
PID:
n

u (n) = kp.e( n) + ki.∑ e(n) + kd [e(n' ) − e(n'−1)]
N =0

Ki, Kp, Kd là các thông số rời rạc được load bởi người dùng, được giới
hạn trong 16 bit.
Tinh chỉnh bộ lọc PID:
Việc tinh chỉnh bộ lọc PID được thực hiện qua hai bước. Bước 1
điều chỉnh thô và quan sát đáp ứng để giới hạn khoảng giá trị của tham
số. Bước 2 dùng LM629 kết hợp với mạch điện ghép thêm và dao động
ký để quan sát đáp ứng quá độ, tinh chỉnh tham số sao cho đạt đáp ứng
tốt nhất.
Xác định hệ số vi phân
Thành phần vi phân của bộ lọc làm giảm dao động và vọt lố, tăng độ ổn
định hệ thống, thành phần này tạo ra lực tỉ lệ với độ biến thiên vị trí động
cơ và là một hệ số có giá trị bằng Kd x ds.
10


Tham số Kd được tăng dần cho đến khi trục bắt đầu dao động với tần số
cao, sau đó tăng dần ds cho đến khi đạt đáp ứng thích hợp.
Thời gian lấy mẫu vi phân là số nguyên lần chu kỳ tính toán của
LM629 và có giá trị nhỏ hơn hằng số cơ khí của hệ thống từ 5 đến 10
lần. Điều này có nghĩa rằng đa số hệ thống chỉ cần giá trị nhỏ của ds, tuy
nhiên nhìn chung Kd và ds được điều chỉnh sao cho đạt giá trị lớn nhất
mà không làm hệ thống dao động.
Xác định hệ số tỉ lệ
Thành phần tỉ lệ cung cấp tín hiệu điều khiển tỉ lệ tuyến tính với sai
số vị trí. Nếu Kp quá thấp, hệ sẽ đáp ứng chậm khi có sai số vị trí. Ngược
lại, Kp rất lớn làm hệ đáp ứng nhanh làm hệ vọt lố và dao động.
Điều chỉnh Kp bằng cách tăng dần cho tới khi hệ bắt đầu dao động.
Xác định hệ số tích phân
Thành phần tỉ lệ làm giảm sai số hệ thống nhưng không thể triệt tiêu nó,
tuy nhiên khâu Ki có thể khử sai số xác lập này. Thành phần tích phân
tạo tín hiệu điều khiển tỉ lệ với sai số vị trí và tăng tuyến tính theo thời
gian.
Giá trị Ki lớn làm tăng đáp ứng nhưng có thể gây vọt lố và dao động.
Do đó điều chỉnh Ki sao cho đạt giá trị nhỏ nhất thỏa 3 đặc tính: độ vọt
lố, thời gian xác lập, thời gian khử sai số xác lập.
Thành phần giới hạn tích phân có tác dụng đặt giới hạn ngưỡng giá trị
cho thành phần tích phân. Nếu giá trị tích phân vượt quá giới hạn Il sẽ bị
xén bằng giá trị Il. Trong nhiều hệ thống, Il có thể thiết lập tới giá trị cao
nhất 7FFFH mà không gây tác dụng ngược. Nếu Il bằng 0, khâu tích
phân không có tác dụng điều khiển.
2.5

Hoạt động đọc và ghi của LM629:
11


Vi xử lý chủ ghi lệnh vào các chân của LM629 qua ngõ I/O port khi
chân PS\ = 0. Mã lệnh được truyền song song qua port giao tiếp và chân
WR\ tích cực, byte lệnh được chốt vào nhờ cạnh xuống của chân này.
Khi ghi lệnh cần phải đọc trạng thái và kiểm tra cờ trạng thái, gọi là cờ
bận (bit 0). Nếu bit báo bận ở mức logic cao thì không được ghi lệnh. Bit
báo bận không bao giờ ở mức logic cao trong thời gian quá 100us,
thường thì chỉ trong 15us khoảng đến 25us. Vi xử lý chủ đọc byte trạng
thái theo các tương tự, cho PS\ = 0 và đọc dữ liệu từ cạnh xuống của
chân RD, thông tin trạng thái được giữ trong thời gian RD\ ở mức logic
thấp.
Ghi và đọc dữ liệu hay trạng thái của LM629 kết thúc khi chân PS\ = 1.
Việc đọc và ghi luôn thực hiện theo từng 2 byte, và byte đầu tiên luôn là
byte có trọng số cao. Khi truyền dữ liệu theo từng word (2byte), nhất
thiết phải kiểm tra bit bận. Khi bit bận ở mức logic thấp thì có thể truyền
tiếp. Nếu bit bận ở mức logic cao thì phải kiểm tra lại liên tục cho đến
khi bit này được xóa mới tiếp tục truyền, nếu không thì lệnh sẽ bị bỏ qua
và báo lỗi. Bit bận sẽ lên cao ngay lập tức sau khi ghi byte lệnh, hoặc khi
đọc, ghi byte thứ 2.

12


Hình 6 . Hoạt động đọc Byte trạng thái

13


Hình 7 . Hoạt động ghi Byte lệnh

14


Hình 8 . Hoạt động đọc dữ liệu

Hình 9. Hoạt động ghi dữ liệu
15


2.6

Ngõ ra điều khiển động cơ :

LM629 cung cấp ngõ ra PWM 8 bit và chân tín hiệu điều khiển chiều
quay động cơ. Tương ứng chiều dương PWM tối đa là 127/128, chiều
âm là 128/128.

Hình 10. Ngõ ra PWM của LM629 với tần số hoạt động là 8MHz

Một số chú ý khi lập trình với LM629
Bắt tay truyền dữ liệu với vi xử lý chủ:
Các ứng dụng của LM629 đều đòi hỏi việc bắt tay truyền nhận dữ liệu
chính xác với vi xử lý chủ. Có hai cách thực hiện việc này: thông qua
ngắt với vi xử lý chủ hoặc liên tục hỏi vòng kiểm tra byte trạng thái. Hai
16


cách trên đều phải đọc byte trạng thái để xác định nguyên nhân ngắt cụ
thể.
Nếu thực hiện bằng cách gây ngắt ở vi xử lý chủ, lỗi có thể xảy ra nếu
trình phục vụ ngắt chứa lệnh truyền dữ liệu với LM629, trong khi
chương trình chính đang thực hiện truyền. Điều này sẽ gây lỗi lệnh
(command error) ở byte trạng thái và LM629 bỏ qua lệnh đó. Vì vậy để
an toàn, có thể cấm ngắt trước khi thực hiện lệnh giao tiếp với LM629 và
cho phép ngắt trở lại sau khi thực hiện xong.
Giới hạn tốc độ đọc Encoder:
Tần số đọc trạng thái Encoder lớn nhất quyết định bởi số chu kỳ nhỏ
nhất cần thiết để giải mã trạng thái eEcoder. LM629 cần ít nhất 8 chu kỳ
để thực hiện lệnh này tức là với thạch anh 8MHz ta có tần số đọc
Encoder lớn nhất là 1MHz (750 KHz nếu sử dụng thạch anh 6 MHz). Ví
dụ: Động cơ có Encoder 500 xung quay với vận tốc 30000 vòng/phút sẽ
có tần số chuyển mạch Encoder là 1 MHz.
Cập nhật gia tốc trong lúc chuyển động:
Không giống như vận tốc và vị trí, LM629 không cho phép cập nhật gia
tốc không thể cập nhật trong lúc chuyển động. Muốn làm được điều này,
trong lúc động cơ chuyển động ta dùng lệnh tắt động cơ bằng lệnh LTRJ.
Sau đó lại dùng lệnh LTRJ để nạp lại gia tốc mới rồi nạp lệnh STT để
cập nhật gia tốc này.
Khi sử dụng phương pháp này, LM629 coi như động cơ đang đứng yên.
Nếu động cơ có quán tính lớn và vẫn còn di chuyển lúc thực hiện lệnh
STT thì vòng điều khiển sẽ cố gắng đưa động cơ đạt quỹ đạo mới và có
thể gây sai số lớn ở ngõ vào bộ lọc PID gây bão hòa tính hiệu ngõ ra cho
đến khi vận tốc đạt được biên dạng yêu cầu. Đây là trường hợp quá tải
điển hình ở hệ hồi tiếp. Nó sẽ hoạt động kiểu vòng hở cho tới khi sai số
ngõ vào nằm trong khoảng điều khiển được và vòng hồi tiếp đóng lại.
Điều khiển theo cách này có đáp ứng khó lường trước và LM629 không
được thiết kế cho kiểu điều khiển này.
17


Tần số cập nhật lệnh:
Nếu LM629 được cập nhật quá thường xuyên bởi vi xử lý chủ, nó sẽ
không đảm bảo thực hiện đúng lệnh yêu cầu. Khi nhận được lệnh STT,
LM629 mới dừng việc thực hiện tính toán quỹ đạo hiện tại và giữ
nguyên giá trị ngõ ra. Vì vậy, quỹ đạo không được cập nhật quá 10ms
mỗi lần.
Độ phân giải quỹ đạo chuyển động
Độ phân giải vị trí động cơ là giá trị tích lũy. Sau mỗi chu kỳ, thuật toán
tính toán quỹ đạo cần thiết, cộng vận tốc vào vị trí yêu cầu và tính toán
vị trí tiếp theo. Muốn điều khiển động cơ ở vận tốc thấp thì vận tốc tính
theo xung encoder/chu kì lấy mẫu phải ở dạng số thập phân. LM629 hỗ
trợ việc này bằng cách cung cấp 16 bit thấp trong thanh ghi vận tốc 32
bit để chứa phần giá trị thập phân. Một ví dụ là với động cơ 500 xung
(2000 lần đếm sau 1 vòng quay) nối với LM629 hoạt động ở tần số 8
Mhz (tức chu kì lấy mẫu là 256us), nếu độ phân giải nhỏ nhất là 1 xung
encoder/chu kì lấy mẫu thì vận tốc tương ứng nhỏ nhất là 2 vòng/giây
hay 120 vòng/phút. Thực tế nhiều ứng dụng yêu cầu điều khiển ở vận tốc
thấp hơn nữa và điều này có thể giải quyết bằng cách nạp giá trị thập
phân cho gia tốc và vận tốc.
Độ phân giải vi trí, vận tốc và gia tốc
Sau mỗi chu kì tính toán, nếu cần tăng tốc thì thanh ghi gia tốc được
cộng vào thanh ghi vận tốc, và thanh ghi vận tốc lại được cộng vào thanh
ghi vị trí. Thanh ghi vị trí chỉ chứa giá trị nguyên nên phần thập phân của
vị trí được tích lũy sau nhiều chu kì cho đến khi đạt giá trị nguyên.
18


Khoảng giá trị của vận tốc được tính toán từ thanh ghi vị trí 32 bit. Bit 31
dùng để chỉ hướng, bit 30 để báo tràn khoảng giá trị vị trí. Nếu bit 30
được set (hay reset nếu động cơ chuyển động theo chiều ngược) khi hoạt
động, bit 4 của thanh ghi được set và có thể gây ngắt đến vi xử lý chủ. 30
bit còn lại cung cấp không gian lưu vị trí theo chiều dương và âm (1 073
741 824 xung mỗi chiều).
Vận tốc có độ phân giải 1/216 xung/chu kì và gia tốc có độ phân giải 1/216
xung/chu kì/chu kì và khoảng giá trị cũng là số 30 bit. Hai bit còn lại,
một bit dùng để phát hiện tràn giá trị và bit còn lại không sử dụng vi vận
tốc và gia tốc là số dương. Vì vậy có 14 bit (16383) chứa phần nguyên
và 16 bit chứa phần thập phân.

19



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×