PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Điều khiển (http://www.picvietnam.com/forum/forumdisplay.php?f=21)
-   -   Bộ điều khiển PID (http://www.picvietnam.com/forum/showthread.php?t=41)

falleaf 15-06-2006 01:05 PM

Trích:

Nguyên văn bởi hanhluckyly
Sao các bạn không viết 1 chương trình cụ thể trên con PIC nhi đọc là hiểu liền chứ e rồi (e+1) rồi sume,dote, rồi xicma e(i) loạn cả lên trông choáng nhức đầu bây giờ 1 bài toán cụ thể vậy đi:
- điều khiển tốc độ 1 động cơ 3600v/phút, encoder 540 xung/vòng
Hãy điều khiển động cơ này chạy với tốc độ 1800v/phút bằng bộ PID hay PD hay PI gì cũng được

mời các cao thủ nhào vô :) .

Đó là chương trình viết cho vi điều khiển đó. Đặt biến tên là dote, sume :) Nó quá cụ thể rồi còn gì, copy vào là chạy :).

Nếu bạn muốn xem các chương trình mẫu, hãy xem lại các bài viết của Hải Bắc, anh Hải Âu và của F, ở cả picvietnam và dientuvietnam.

Chúc vui

HaiAu2005 01-11-2006 07:01 PM

Có hai quyển sau về PID controllers, ai có nhu cầu thì download:

1. Autotuning of PID Controllers:
http://rapidshare.com/files/434431/A...ontrollers.pdf

2. PID Trajectory Tracking Control for Mechanical Systems
http://rapidshare.com/files/440275/P...al_Systems.rar

H.A.

falleaf 01-11-2006 08:41 PM

Các tài liệu này đã đựơc chuyển về tailieuvietnam

Chúc vui

candykitty 11-11-2006 08:25 AM

Theo ý kiến của mình, điều khiển PID là dạng phổ biến nhất hiện nạy, trên thực tế, các hệ điều khiển chỉ dùng PI là nhiều, hiếm khi đưa thêm khâu D vào. Còn về việc xác định các thông số đối tượng điều khiển, viết hàm truyền và tính các hệ số P,I của bộ điều khiển là việc không tưởng, không ai làm như vậy được vì vừa mất thời gian, vùa kg khả thi đối với các hệ điều khiển phức tạp. Người ta dùng phép thử "trial and error".

falleaf 11-11-2006 02:02 PM

Không hẳn như vậy bạn ạ.

Có rất nhiều phương pháp để xác định được hàm truyền, hoặc ước lượng được hàm truyền.

Ngoài ra, trong cuốn sách mà anh Phong cung cấp, báo cáo về phương pháp chọn hệ số PID cho 20 mô hình toán đã có nói rõ. Bạn xem phần thực hành >> tìm ngừơi thực hiện bộ điều khiển PID >> download trên tailieuvietnam.net...

Ngoài ra, trong phần này, mình sẽ gửi một bài báo mà em Hiếu, admin trang Khoa học và tuổi trẻ thực hiện (em Hiếu có lần gửi báo cáo cho mình, và gửi bài báo tham khảo khá hay cho một mô hình đơn giản). Báo cáo của em Hiếu thì mình đánh giá là chưa đạt, nên không cung cấp lên đây, vì em còn một số điểm chưa nắm rõ khi viết báo cáo (cách nay 1 năm rồi).

Như vậy, như mình nói trong phần thực hành, đó là cảm nhận, chứ không phải thử và sai. Phương pháp thử và sai chính là cái mà mình nói là cảm nhận ở đây, nhưng chúng ta không thể dùng nó mà không có định hướng. Thầy Nguyễn Phùng Quang có lần email trả lời mình là nếu không xác định được mô hình, hoặc ước lượng mô hình tốt, thì sẽ dẫn tới việc mất phương hướng điều khiển. Hay diễn giải ra, thì khi các bạn thử và sai, sẽ có thể xảy ra trường hợp các bạn đi đến chỗ càng thử càng sai và không biết được nên thử như thế nào nữa.

Cũng giống như chúng ta nói về GA. Có những khi chúng ta rơi vào một điểm cực tiểu địa phương, nếu dùng thử và sai, mà không có cái nhìn toàn cục, thì sẽ dẫn tới giai đoạn chúng ta không thể thoát ra khỏi điểm cực tiểu địa phương đó được.

Vậy thì PID cũng vậy, có thể đến một giai đoạn các bạn thử và sai không tìm được kết quả điều khiển nào tốt hơn, nhưng nhìn một cách tổng quát, nó không bao giờ như mong muốn.

Cũng là thử và sai, nhưng F khuyên các bạn không áp dụng thử và sai, mà dùng thử và sai để có được cảm nhận, và cái nhìn. Sau đó, hãy tìm hiểu thêm về các mô hình toán. Khi nhìn vào một đối tượng điều khiển, dự đoán mô hình toán của nó, phác thảo, khảo sát một số tham số cần thiết, ước lượng, tìm bộ điều khiển... >> Đó là phương pháp thử và sai "một cách khoa học".

Cũng đơn giản như bài toán cắm điện trở vào động cơ để cho hai động cơ chạy đồng tốc. Tại sao người ra nghĩ ra cách này? Cũng là từ mô hình động cơ, chứ không phải là từ cái chuyện "thử và sai".

Chúc vui

candykitty 11-11-2006 02:51 PM

Tất nhiên mình kg nói rằng xác định các thông số của bộ PI bằng cách "mò" bạn ạ, tất nhiên bạn phải có kinh nghiệm khi nhìn vào đáp ứng để điều chỉnh tới giá trị tối ưu. Tất nhiên trước khi thực hiện việc điều chỉnh, người ta phải bảo đảm rằng mô hình tổng quát là hội tụ.

Mecha 06-03-2007 09:19 PM

Trích:

Nguyên văn bởi candykitty (Post 5933)
Theo ý kiến của mình, điều khiển PID là dạng phổ biến nhất hiện nạy, trên thực tế, các hệ điều khiển chỉ dùng PI là nhiều, hiếm khi đưa thêm khâu D vào. Còn về việc xác định các thông số đối tượng điều khiển, viết hàm truyền và tính các hệ số P,I của bộ điều khiển là việc không tưởng, không ai làm như vậy được vì vừa mất thời gian, vùa kg khả thi đối với các hệ điều khiển phức tạp. Người ta dùng phép thử "trial and error".

Chức năng các thành phần trong bộ điều khiển PID:
- Thành phần P: cung cấp giải thông (bandwidth) mong muốn.
- Thành phần I: cung cấp hệ số khuếch đại bổ xung trong vùng tần số thấp để khử các nhiễu tần số thấp.
- Thành phần D: giữ vai trò chính trong ổn định hệ thống. Thành phần D phát huy vai trò trong vùng tần số cao.

Tóm lại, trong vùng tần số thấp thi I thực hiện vai trò của nó, trong vùng bandwidth thi P thực hiện nhiệm vụ của nó, còn lại vùng tần số cao thì D lo nốt. Trong vùng tần số thấp (nhỏ hơn bandwidth), hệ số Ki tiến đến vô cùng hoặc có giá trị rất lớn. Trong vùng tần số cao (lớn hơn bandwidth), hệ số Kd tiến đến vô cùng hoặc có giá trị rất lớn. Vì vậy tại bất kỳ điểm tần số nào, tín hiệu ra của PID cũng đạt một giá trị lớn để đảm bảo có thể triệt tiêu được sai lệch, nhưng nếu lớn quá sẽ gây ra hệ thống mất ổn định.

Trong các hệ thống Cơ điện tử, PD được sử dụng chủ yếu.

candykitty 18-03-2007 07:39 AM

Mình hiểu theo cách nghĩ của bạn:
P:Khâu tỷ lệ Proportion
D:Khâu vi phân Differential
I:Khâu tích phân Integration
Theo bạn, trong các hệ thống cơ điện tử, dùng PD là chủ yếu?
Theo mình, trong các hệ thống điều khiển (cụ thể là điều khiển động cơ điện), mình thấy chỉ dùng PI là chủ yếu.

Mecha 18-03-2007 08:00 AM

Trong motion control:
- Vòng điều khiển dòng điện thường dùng PI
- Vòng điều khiển tốc độ thường dùng P hoặc PI
- Vòng điều khiển vị trí thường dùng PD cho trường hợp điều khiển bám và PID cho trường hợp điều khiển chuyển động lặp đi lặp lại (như chuyển động của cái slide trong máy in ý). Vì vậy, đã dính đến điều khiển vị trí thì chắc chắn phải có thành phần D.

candykitty 18-03-2007 09:46 AM

Trích:

Nguyên văn bởi Mecha (Post 7797)
Trong motion control:
- Vòng điều khiển dòng điện thường dùng PI
- Vòng điều khiển tốc độ thường dùng P hoặc PI
- Vòng điều khiển vị trí thường dùng PD cho trường hợp điều khiển bám và PID cho trường hợp điều khiển chuyển động lặp đi lặp lại (như chuyển động của cái slide trong máy in ý). Vì vậy, đã dính đến điều khiển vị trí thì chắc chắn phải có thành phần D.

Đúng rồi bạn, nhưng xin bổ xung thêm (một cách cụ thể hơn), điều khiển dòng và tốc độ thường chỉ dùng PI điể điều khiển. Mình đã từng thêm khâu D vào, nhưng thực tế kg nầng chất lượng điều khiển lên bao nhiêu, nhưng lại làm hệ thống phức tạp hơn.

Về điều khiển vị trí, đúng là phải dùng tới khâu D!

Mecha 18-03-2007 04:20 PM

Trích:

Nguyên văn bởi candykitty (Post 7800)
Đúng rồi bạn, nhưng xin bổ xung thêm (một cách cụ thể hơn), điều khiển dòng và tốc độ thường chỉ dùng PI điể điều khiển. Mình đã từng thêm khâu D vào, nhưng thực tế kg nầng chất lượng điều khiển lên bao nhiêu, nhưng lại làm hệ thống phức tạp hơn.

Về điều khiển vị trí, đúng là phải dùng tới khâu D!

Trong phần điều khiển của máy CNC, mình thấy điều khiển dòng và tốc độ họ dùng PI, nhưng điều khiển vị trí họ chỉ dùng có khâu P thôi. Mình chỉ nhìn được sơ đồ khối bên ngoài nên không biết rõ khâu D họ làm thế nào. "Know-how" mà :)

thieuhuy 21-03-2007 12:36 AM

Chào các anh em!

Tớ đang làm điều khiển động cơ DC dùng PSoC và giao tiếp với PC104 qua đường RS232. Công việc truyền thông thì nhờ bác falleaf chỉ dẫn đã làm xong rồi. Hiện nay thì hệ thống hoạt động OK. Sai lệch tĩnh vào khoảng 10pulse (encoder 1000pulse/vòng). Vấn đề khó khăn hiện nay là tớ muốn (thực sự không phải tớ muốn mà là ông Thầy muốn) điều khiển để bám theo một hàm setpoint theo thời gian. Ở đây có nghĩa là các điểm setpoint tập hợp thành một dãy số mà động cơ phải bám theo để chạy. Nhưng tớ vẫn chưa làm đươc việc này. Tớ hoàn toàn không biết làm cách nào để hệ thống hiểu được để tự động chuyển sang setpoint kế khi đã đi đến điểm setpoint trước đó. Nhờ các anh em cao thủ chỉ giúp.

Cám ơn trước các anh em.

thieuhuy 21-03-2007 12:39 AM

Vấn đề thứ hai là không thể xác định được đồ thị đáp ứng theo thời gian của động cơ. Có anh em nào đã làm về vấn đề này chưa?

Mecha 21-03-2007 12:53 AM

Hồi 2001 tôi có làm cái mô hình thí nghiệm điều khiển vị trí (PID) dùng PLC S7-200 cho động cơ AC. Lâu quá rồi nên hiện chỉ tìm thấy hai cái hình này.

Điều khiển với setpoint là hàm 1(t)
Dùng PID cho vòng điều khiển vị trí
http://i13.photobucket.com/albums/a2...eotungdoan.jpg

Điều khiển bám
Dùng PD cho vòng điều khiển vị trí
http://i13.photobucket.com/albums/a2...eochutrinh.jpg

Trong cả hai trường hợp, vòng điều khiển tốc độ cùng PI.

Mecha 21-03-2007 01:02 AM

Còn đây là cái mô hình:

http://i13.photobucket.com/albums/a2...thucnghiem.jpg


Múi giờ GMT. Hiện tại là 01:13 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam