View Single Post
Old 04-11-2006, 05:58 PM   #6
minhcuong
Đệ tử 2 túi
 
minhcuong's Avatar
 
Tham gia ngày: Jul 2005
Bài gửi: 26
:
Cập nhật file tạo S-Curve

Phiên bản này tốt hơn. Viết rõ ràng, và cẩn thận hơn. Đổi lại extension *.m để chạy trong Matlab.

các bạn có thể thay đổi thông số của DCMotor vào các parameter phía trên.

Xem trong Attach là S-Curve thực sự của motor tracking theo S-Curve tạo tuần tự.

Phương pháp của tôi rất đơn giản, tất nhiên không thể là best được vì tôi chỉ dùng duy nhất một vòng hồi tiếp vị trí:

Code:
error = ref_pos - enc_pos;
PWM = Kp*error +  Kd*(error - prev_error);
tải đoạn chỉnh cuối cùng Tail Zone:
có thêm thêm Iterm

Code:
if (error<prev_error){
   Intergrate_error -= prev_error;  //Anti windup
} else {
   Intergrate_error += prev_error;
}

if (Intergrate_error>threshold){  //threshold chọn từ 0.1~0.5 maximum của //PWM
Intergrate_error = threshold; 
}
PWM = Kp*error +  Kd*(error - prev_error) + Ki
Hình Kèm Theo
File Type: jpg SCurve.jpg (124.3 KB, 141 lần tải)
File Kèm Theo
File Type: txt SCurveGenerate.txt (5.0 KB, 130 lần tải)

thay đổi nội dung bởi: minhcuong, 04-11-2006 lúc 09:01 PM.
minhcuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn