PDA

View Full Version : Bộ điều khiển PID


falleaf
31-05-2005, 01:09 AM
Cuốn sách này khá đơn giản, nhưng lại trình bày rất hay

Các bạn download tại đây: Closed Loop Control System (http://www.picvietnam.com/download/CLCS.pdf)

falleaf
31-05-2005, 01:15 AM
PID Control Book 2 (http://www.picvietnam.com/download/PIDcontrolbook2.pdf)

Cuốn sách này hình như hồi xưa mua 12$ thì phải... ???

Nhiep_Phong
04-06-2005, 10:36 PM
Điều khiển đc dùng PID cntroller. Đó là đồ án của tui đó.
Coming soon, se pót lên sau cho bà con đọc cho ý kiến. Có cả schematic, PCB, code bằng PICC.

falleaf
07-06-2005, 09:22 PM
Quan trọng là chú cho anh xin cái hình chụp cái bộ động cơ của chú, cho anh xem kết quả mô phỏng là oki..

zero2one
11-06-2005, 07:40 PM
em muốn tìm sách tiếng việt về PID thì nên đọc quyền nào ạ ?

falleaf
11-06-2005, 10:53 PM
Tài liệu về điều khiển nào cũng nói đến bộ điều khiển PID, vì nó là bộ điều khiển phổ biến nhất trên thế giới hiện nay.

Tuy nhiên, tôi recommend cuốn: Automatic Control Systems, bán ở nhà sách Xuân Thu TPHCM. Giá 170K, có kèm theo đĩa CD bài tập và một số chương trình mô phỏng Matlab.

nhutPC
26-06-2005, 06:17 AM
Ah Tiên Sinh Nhiep Phong đang làm PID hả, Tiểu mãu cũng đang làm nó, vậy mong tiên sinh post lên sớm sớm cho Tiểu mẫu được mở rộng tầm mắt nhé. Đa tạ Phong tiên sinh trước vậy.

falleaf
02-07-2005, 02:49 AM
Cho điểm bài cu Nhiếp 5/10, vì mới làm được nửa đường. Post lên cho anh em xem cái đi, bài chú viết khá cẩn thận, hiện giờ anh không có thời gian để giúp chú hoàn thành, chú post lên đây để mọi người cùng xem.

Ngoài ra, nếu sau 18/7 chú mới nộp bài thì ghé nhà anh nhé.

Nhiep_Phong
02-07-2005, 06:06 PM
Mạng chậm quá, biết cách upload rồi nhưng chẳng gửi nổi. Bó 2 tay, 3 chân :p

falleaf
02-07-2005, 09:50 PM
Nếu chú muốn, anh sẽ upload cái báo cáo của chú lên cho mọi người download. Anh chỉ upload cái phần pdf thôi, mấy phần mạch, nếu chú muốn thì chú cứ upload sau.

Chú nhớ chụp hình mấy cái động cơ, gắn tải, rồi các mạch mà chú đã làm... Để lên trên mạng cho anh em xem. Ở đây, anh rất cần các hình ảnh đó.

Bây giờ ở forum này, anh chủ trương chỉ chơi sản phẩm thực tế, chứ không chơi sản phẩm lý thuyết, vì thế, có cái hình là hay nhất.

tinhthanthep
04-07-2005, 12:39 AM
Bác nhiếp up load toàn bộ đề tài của bác lên đe, kể cả phần mạch và các phần khác. Chủ yếu để anh em học hỏi nhau là chính.

falleaf
04-07-2005, 07:19 AM
Đây là báo cáo (http://picvietnam.com/download/NhiepPhong.pdf) của Nhiếp Phong

falleaf
04-07-2005, 07:25 AM
Một số điểm lưu ý trong báo cáo:

- làm sao tìm được hệ số của bộ điều khiển?
- làm sao xác định sampling time?
- làm sao xác định hàm truyền của động cơ để xác định được bộ điều khiển PID?

- một số điểm trong báo cáo chưa rõ ràng, cần viết rõ hơn
- thuật toán tìm thông số điều khiển, thực ra là có phương pháp, nhưng hình như chú tham khảo câu chưa được chứng minh rõ ràng trong luận văn của anh? Bởi vì thực ra anh không muốn viết rõ ra cách làm này trong luận văn, chứ không phải không làm được. Nếu không làm được, thì làm sao tìm ra được kết quả đúng?

Gợi ý tham khảo cuốn sách: Automatic Control System (nhà sách Xuân Thu, nhà xuất bản Wiley, tác giả Benjamin).

Chúc cả nhà vui.

hio2
08-09-2005, 09:51 PM
Anh em đi trước , hay có ai nghiên cứu về điều khiển pid không ? Vào đây cho anh em học hỏi với !!

m2v
27-10-2005, 03:31 PM
Uh, bac nào post đường dẫn lên đi, mình cũng đang muốn nghiên cứu đây, thấy mấy cái máy SMT trong mình chạy ào ào lại rất chính xác, thấy ghiền luôn.
Muốn nghiên cứu về servo motor mà vẫn chưa có tài liệu. Bác nào có tài liệu thì giúp giùm nhé.
Mail của mình là mw_vn@yahoo.com
Thân chào!

odense
09-11-2005, 07:45 AM
Xin chào,
Tôi là người mới đến của diễn đàn này nhưng xin được đưa ý kiến riêng của mình:
Nếu bạn chỉ quan tâm đến việc sử dụng PID cho việc điều khiển two wheeled mobile robot thì thật sự là DỄ, nếu không muốn nói là rất dễ và là bài toán cơ bản nhất và được ứng dụng nhiều nhất cho robotics. Thực ra, robotist chủ yếu quan tâm đến giải bài toán PD là chính chứ ít ai cần giải bài toán PID cả vì thật sự PI hay PID dùng nhiều cho các hệ thống phức tạp hơn. Tại sao? Trước hết hãy xem nghĩa của từng từ P, I, D. Sâu đó, nếu bạn đã học quá lớp 11 thì đã hiểu được một điều đơn giản là:
- Đạo Hàm (quãng đường) = Vận Tốc
- Đạo Hàm (vận tốc) = Gia Tốc
- Tích phân (gia tốc)+ vận tốc ban đầu = vận tốc
- Tích phân (vận tốc) + quãng đường ban đầu = quãng đường đã đi.
Vậy bạn đã biết tại sao người ta chỉ quan tam đến PD là chính rồi phải không. Đơn giản có vậy thôi.
Nhân đây, xin được góp ý và bình luận thêm về sự kiện này: Có lẽ các bạn học quá nhiều về lý thuyết theo phương pháp dậy của các thầy, cô trên lớp mà quên đi rằng ý nghĩ và tính vận dụng của nó là gì? Đây chính là nhưng thảo luận mà cả đất nước chúng ta đang hướng đến đó. Mong các bạn cùng tôi suy ngẫm.
Tôi sẽ quay trở lại nếu như các bạn có nhưng câu hỏi khác liên quan thế nào để củng cố một closed feedback loop cho hệ thống của bạn nhé. Trước tiến tôi khuyên các bạn vào google.com để search với các keyword như là:
closed feedback loop, PD for two wheeled robot, PD for steering mobile robot, model of PID & PD, example of PD implementation for mobile robot.....
Tôi nghĩ phương pháp học tốt nhất là tự học.
Chúc các bạn thành công

Mecha
21-12-2005, 02:42 PM
1. DIGITAL CONTROL 2000: PAST, PRESENT AND FUTURE OF PID CONTROL
http://www.elsevier.com/wps/find/bookdescription.cws_home/621474/description#description
Ở đây có rất nhiều bài về PID và advanded PID controller, trong đó có một số bài về autoturning PID. Để lấy mấy bài này về phải mất tiền nếu không thì phải là member của elsevier. Bác falleaf xem có thể download được không ;)

2. The past, present and future of PID control
http://www-esaiiterrassa.upc.es/pid00/menu.htm
Đây là một hội nghị về PID, tổ chức năm 2000 tại Tây Ban Nha.

falleaf
21-12-2005, 05:04 PM
http://dientuvietnam.net/board/showthread.php?t=990&page=1&pp=10

Đây là một luồng thảo luận về PID tại dientuvietnam, hệ điều khiển là một lò nhiệt.

Về cuốn Proceeding thì em đang nghiên cứu thử anh Phong à, nhưng tình hình là khó kiếm, có lẽ phải hết tuần này, sang tuần sau mới nghĩ cách kiếm được, nhưng khả năng thua là 70%, vì cuốn sách đó bán 140$. Mà thường mấy cuốn Proceeding, nếu nó có bản ebook thì còn có cơ hội, chứ nó là loại xuất bản thành sách rồi thì coi bộ cũng hơi khó.

Anyways, sẽ tìm cách hiệu quả nhất để có được các tài liệu tốt nhất.

Chúc vui.

winddhdn
14-01-2006, 07:41 AM
mấy wuynh cho em hỏi ở Đà Nẵng có bán sách automatic control system không ? làm ơn chỉ giúp em ! Xin đa tạ!

scentoflove
30-04-2006, 05:28 PM
E đang làm đồ án điều khiển vị trí động dùng PID, phần điều khiển tĩnh (Kp, Ki, Kd là 3 const tìm được dựa trên simulink) thì e đã làm xong. Hiện e muốn làm tiếp về phần điều khiển động (Kp, Ki, Kd là hàm theo tải hoặc khi gắn 1 động cơ khác thì vẩn điều khiển được.
Anh Falleaf có sách nào nói về các thuật toán để tính 3 hệ số này auto trong quá trình đk cho e tham khảo

falleaf
12-05-2006, 12:19 AM
Về phần này, em tìm các tài liệu trên mạng với key word: PID autotuning.

Phần này anh cũng đang muốn có người làm thực tế và thí nghiệm giúp anh một vài thuật toán. Em cứ tìm các bài báo trên mạng, nếu như cần báo gì để xem, anh sẽ tìm cách download dùm em, đặc biệt là báo IEEE.

Ngoài ra, nếu có những khúc mắc phân tích gì, em cùng thảo luận với mọi người ở đây.

Chúc vui.

NTVinh
12-05-2006, 09:27 AM
Trích một phần bài viết của Nhiếp Phong:
Điều khiển vận tốc động cơ DC dùng bộ điều khiển PID.
‐ Δt là thời gian lấy mẫu.
Thành phần tích phân:
e(t) dt = lim Δt ‐‐> 0 ( Σ e(t) Δt ) . Do đó khi lấy gần đúng Δt = ε >0, ta có:
e(t) dt ≅ Σ e(i) Δt , i=0,1,2,3…
Thành phần vi phân:
de(t)/ dt = lim Δt ‐‐> 0 {[ e(t2) ‐ e(t1) ] / Δt }. Do đó khi lấy gần đúng Δt = ε >0,
de(t)/ dt = [e(i+1) ‐ e(i)]/ Δt , i= 0,1,2,3…
Tóm lại, ta có:
u(i)= Kp *e + Kd* [e(i+1) ‐ e(i)]/ Δt + Ki* Σ e(i) Δt
Đặt e_delta (i+1)= e(i +1) ‐ e(i)
e_sum (i+1) = Σ e(i) = e_sum (i) + e (i+1)
Trong công thức trên, thời gian sampling time Δt là rất nhỏ, ta bỏ
qua Δt.
Nhận xét:
Vấn đề của tớ muốn đề cập ở đây đó là thời gian trích mẫu Δt. Trong quá trình mà chúng ta nỗ lực số hóa cái phương trình PID liên tục thì ngoài việc chọn công cụ toán học tính: xấp xỉ phép vi phân, xấp xỉ phép tích phân thì, cái vai trò của thời gian trích mẫu Δt là rất quan trọng. Nó có thể quyêt định đến vị trí của điểm cực hệ kín sau khi số hóa. Ngoài ra, thời gian trích mẫu Δt, không thể nhỏ tùy ý được (tất nhiên nó phải >0 rồi) vì bị hạn chế bởi tốc độ tính toán của Vi điều khiển mà ta đang dùng. Câu: "Trong công thức trên, thời gian sampling time Δt là rất nhỏ, ta bỏ qua Δt". Xem ra không chặt chẽ lắm? "ta bỏ qua Δt?", hiểu Nhiếp Phong nhưng có lẽ ta không dùng từ như vậy?
Nguyen The Vinh.

scentoflove
12-05-2006, 11:56 AM
Theo bài trước

Tóm lại, ta có:
u(i)= Kp *e + Kd* [e(i+1) ‐ e(i)]/ Δt + Ki* Σ e(i) Δt
Đặt e_delta (i+1)= e(i +1) ‐ e(i)
e_sum (i+1) = Σ e(i) = e_sum (i) + e (i+1)

Khi tham khảo 1 vài luận văn của các anh khóa trước em thấy có thể chuyển

du(i)/dt=Kp*de/dt + Ki*e + Kd*d2e/dt2
với
de/dt=e(i)-e(i-1)
d2e/dt2= e-2*e(i-1)+e(i-2)

Ở đây em hiểu là ta cần đk trong 1 quá trình thì từng Δt u(i) chính là các giá trị vi phân tính gần đúng du(i)/dt. Ko biết em hiểu như vậy là đúng hay sai, các anh cho e biết ý kiến

NTVinh
12-05-2006, 01:01 PM
scentoflove viết cái gì thế???
Cậu xem lại cái phương trình này coi, phương trình của cậu đó:
du(i)/dt=Kp*de/dt + Ki*e + Kd*d2e/dt2
Hừm, cái gì mà lại du(i)/dt??? Cậu chưa hiểu Digital control lắm phải không?!
Nguyen The Vinh.

Phan Nam
14-05-2006, 05:35 PM
Xin chào mọi người, tôi là thành viên mới đăng ký, đọc thấy đề tài về PID thật hấp dẫn nên tham gia đôi chút. Nếu bài viết có chỗ nào chưa được mong bỏ qua và chỉ giáo.
Trong thực tế việc sử dụng điều khiển dạng PID được ứng dụng rất nhiều vào việc giải quyết các bài toán kỹ thuật. Việc sử dụng mạch điều khiển dạng PID chủ yếu nhằm giải quyết một vấn đề quan trọng là đáp ứng đầu ra( của một hệ nào đó mà chủ yếu là hệ thống truy theo) so với tín hiệu đầu vào. Với mong muốn là biên dạng của đáp ứng đầu ra "gần giống" nhất với biên dạng của tín hiệu đầu vào. Và như tất cả chúng ta đều biết việc làm cho đáp ứng đầu ra " giống hệt" tín hiệu đầu vào trên thực tế là điều không tưởng. Vì tất cả các hệ thống xung quanh chúng ta đều là hệ thống phi tuyến. Và một trong những tham số của hệ phi tuyến được quan tâm nhiều nhất chính là quán tính của hệ đang được khảo sát. Tuy nhiên trong các vấn đề mà các bạn đang thảo luận hình như mọi người chưa quan tâm nhiều đến vấn đề này. Nếu chúng ta không quan tâm đến vấn đề này thì ta không thể chọn được giải pháp tối ưu cho đề án mà ta đang thực hiện. Ví dụ, cũng là thuật toán PID đó áp dụng cho hệ điều khiển nhiệt khác hoàn toàn với việc điều khiển một con tàu đi theo một hải trình cho trước, hay việc điều khiển một động cơ DC 10W khống chế độ mở của một cửa van tự động rất khác với việc điều khiển một động cơ 10kW khống chế một bệ pháo bám theo mục tiêu theo sự chỉ huy của rada.... Trước khi uC, uP ra đời mạch PID dạng tương tự được dùng rất nhiều. Nếu bạn nào đang nghiên cứu về điều khiển dạng PID thì trước khi chúng ta số hóa quá trình này ta nên tìm hiểu với mạch tương tự trước đã. Vì suy cho cùng việc số hóa cũng chỉ để giải quyết các bài toán mà các dạng mạch tương tự đã là, và tổ chức lại với trình độ cao hơn thôi. Sau khi đã tường tận với mạch tương tự rồi ta tiếp tục làm với uC, uP.
Theo tôi để chủ để này cụ thể hơn, các bạn nên đưa ra các nội dung cụ thể hơn, ví dụ như:
- Mục tiêu của đề tài.
- Các giải pháp kỹ thuật cần đạt được.
- Phạm vi ứng dụng của đề tài.
- Các thông số cụ thể mà đề tài đang triển khai.
Cảm ơn các bạn đã đọc qua nội dung này.
Thân! Chào tất cả!

scentoflove
16-05-2006, 01:20 AM
Hôm bửa ko viết đoạn cuối vào, thực ra thay vì tính u=Kp*e+ki*sume+Kd*dote thi pwm=u nhưng nều dùng công thức du/dt=Kp*dote+Ki*e+Kd*dot2e thì pwm+=du
=>đạo hàm u rồi sau đó pwm lấy tích phân thì 2 công thức gần như nhau. Ý em muốn hỏi là ưu nhược điểm của từng cái

minhpic
22-05-2006, 07:00 PM
Nói chung lý thuyết là như vậy, chúng ta có thể đọc được ở đâu đó, chẳng qua có thể do chép lại các bạn không để ý có thể post nhầm, không sao cả nhưng ứng dụng lt này trong thực tế mới là điều chúng ta đang bàn ở đây, đàn em yếu về lý thuyết nhưng cũng vừa kịp hoàn thành một đề tài nhỏ đó là dùng luật đk pid để đk dc một chiều, và đang phát triển lên cả đk vị trí có sư huynh nào cho đàn em một vài lời khuyên, xin cảm ơn.

falleaf
15-06-2006, 02:00 AM
Các bạn học điều khiển PID, mong rằng bài báo này sẽ giúp ích cho các bạn, và mong các bạn đọc thật kỹ bài báo này, chúng ta sẽ tổng hợp kiến thức và sẽ cố gắng đưa ra được một giải pháp thiết kế và mô phỏng, và làm lại thí dụ của bài báo này.

Đây coi như là một đề tài của picvietnam, thực hiện chương trình mô phỏng lại cho bài báo này. Mong rằng các thành viên và các mod cùng chia sẻ về bài báo này.

Từ việc đọc bài báo này, F nghĩ rằng sẽ có những câu hỏi, và sẽ có những câu trả lời, nếu như không có gì làm cơ sở, thì chúng ta sẽ rất khó để thảo luận.

Đây là một cơ hội, anh yêu cầu Chính và Bắc đọc lại bài báo này và cố gắng thực hiện chương trình mô phỏng cho nó, đồng thời cũng là một bài học cần thiết cho tụi em.

Chúc vui

hanhluckyly
15-06-2006, 09:18 AM
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ô :) .

falleaf
15-06-2006, 01:00 PM
Chương trình mẫu F đã cung cấp ở dientuvietnam rồi, và Bắc cũng đã làm bài toán mẫu, có gửi báo cáo rồi. Các sách F giới thiệu trên kia cũng có đầy đủ. Kể cả một application note của microchip cũng có đầy đủ. Vì vậy, bài toán này không nhắc lại.

Lý do, cái này thì ai cũng cần làm, nhưng vì không chịu đọc lại các bài cũ mà chỉ muốn người khác cùng làm với mình, rồi đặt câu hỏi. Cái này là không nên. Việc thứ hai, người ta làm PID trên thế giới từ 70 năm nay, làm đến phát chán rồi, nhưng nhiều sinh viên mới làm được bộ PID, hí hửng muốn chứng tỏ mình, điều này cũng không cần thiết nữa, vì source code PID đã được cung cấp đầy đủ, và có thể gọi là quá đủ ở dientuvietnam và picvietnam. Với từng đó tài liệu, nếu chịu khó đọc, thì sẽ làm được.

Chúng ta ở đây, có hai đối tượng cần hỗ trợ.

Một là, những sinh viên chưa biết gì, chưa hiểu rõ bản chất về điều khiển, vì thực tế trên lớp dạy quá sơ sài, khi đó, cái cần giúp là giúp các em đó hiểu rõ về mặt bản chất. Cái này nếu không có một tài liệu hướng dẫn hoàn chỉnh, thì phải nói từng bước trực tiếp, do vậy đây là một đối tượng cần quan tâm.

Hai là, những người đã có kiến thức, tự học được từ những gì đã có, và họ thấy cái khó khăn nhất là có rất nhiều phương pháp để tìm bộ điều khiển PID. Tìm theo cách lý thuyết, tìm theo thực hành, tìm theo kinh nghiệm... Như vậy, bài báo F vừa gửi giúp đỡ cho đối tượng này.

Hy vọng, anh Hải Âu, anh Phong, sẽ dành thời gian để viết cho mọi ngừơi sơ bộ về điều khiển, hiểu rõ bản chất của một số khái niệm, vấn đề. Nói thực, rất nhiều bạn học điều khiển xong, nhưng các khái niệm bản chất không nắm vững, một số kiến thức nhớ sai, dẫn tới hồ đồ trong cách nghĩ. Nói chung, chúng ta cùng học, cùng trình bày vấn đề, một cách khoa học, logic, cẩn thận, chúng ta đâu phải là IQ dưới 100 mà không thể hiểu được? Nhưng chỉ số LƯỜI thì đôi khi hơi bị cao, đó là vấn đề, vậy thì hãy cố vượt qua chính mình.

Chúc vui

falleaf
15-06-2006, 01:05 PM
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/Autotuning_of_PID_Controllers.pdf

2. PID Trajectory Tracking Control for Mechanical Systems
http://rapidshare.com/files/440275/PID_Trajectory_Tracking_Control_for_Mechanical_Sys tems.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
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
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
Đú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/a262/dbphong/PicVN/Position%20Control/Dieukhienchaytheotungdoan.jpg

Điều khiển bám
Dùng PD cho vòng điều khiển vị trí
http://i13.photobucket.com/albums/a262/dbphong/PicVN/Position%20Control/Dieukhienchaytheochutrinh.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/a262/dbphong/PicVN/Position%20Control/Mohinhthucnghiem.jpg

Mecha
21-03-2007, 01:21 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?

Tôi nhớ hồi đó để tăng setpoint vị trí theo thời gian, tôi tạo một cái timer, mỗi khi có ngắt thì tăng setpoint lên một lượng. T của timer và lượng tăng càng nhỏ thì đường setpoint cho điều khiển bám sẽ càng mịn.

thieuhuy
21-03-2007, 02:20 AM
Thanks bac Mecha. To se thu xem sao.

linhnc308
22-03-2007, 01:11 PM
bác dùng invertor và servo driver thì ngon rồi, vấn đề bây h là muốn dùng PIC. Vấn đề của bạn thieuhuy ko phải là kô giải quyết đc. Năm ngoái tối cũng đã làm qua vềbook DK PID cho PIC. Dựa vào viêc thay đổi các tham số P, I, D thì đồ thị đáp ứng về cơ bản thay đổi tốt theo đúng luật DK, tuy nhiên vi mất khoang thời gian truyền thông lên PC nên tốc độ đáp ứng và bám theo setpoint tạm chấp nhận đc. Với lại PIC hồi đó mình dùng 876, đọc Encoder 400 xung mềm nên việc đáp ứng chậm chưa đạt chính xác cao có thể là do nguyên nhân đó, sau chuyển qua DsPIC và PIC18 thấy khả quan hơn.

Mình vì học DTVT nên nhiều vấn đề về DKTD còn beginer lắm, chỉ làm dc đến vậy. Thuật toán đk ta thực hiên trên chip, còn việc truyền tham số lên PC để vẽ đồ thị đáp ứng ko khó đâu, mình dung RS232 và VB6 vẽ dạng đồ thị khá tốt.
BT với bộ đk P thì ta chỉ cần đơn giản thực hiện phép toán sau.

1. error = |setpoint - currentpoint|
2. set_pwm_value(error*Kp);
... như vậy cũng đã tạm ổn. Cao hơn nữa ta thêm các hệ số Kp,Ki,Kd vào để sao cho bài toán tìm ra PWM value đạt giá trị sát với giá trị thực nhất. Tốc độ lấy mẫu từ encoder cũng cần phải nhanh (Dùng encoder cứng QEI sẽ làm tốt việc này vì số xung sẽ chính xác) từ đó ta đưa vào ĐK, khi đó sẽ đạt dc độ ổn định nhanh nhất.
Về Driver mình vẫn mới chỉ làm với DC Motor, còn AC Motor thì vẫn chưa làm đc. Cái này quan trọng vì trong công nghiệp đều đùng AC 1 pha và 3 pha.

Chúc thành công.

falleaf
22-03-2007, 02:40 PM
Hic, không có cái quả trị tuyệt đối đâu, nếu trị tuyệt đối thì nó mất ổn định ngay, vì lúc nào nó cũng tăng vù vù, càng tăng lố nó lại càng tăng PWM. Thế nào chạy một lúc rồi nó cũng chạy tới PWM = 100% mà không bao giờ giảm lại được. Thế là toi roài....

thangngo
29-03-2007, 01:49 PM
Tôi dọc về phương pháp điều chỉnh này trong 2 cuốn "Moderm control engineering" và "The PID control algorithm" thì thấy 2 kết quả khác nhau như sau.

Trong cuốn "Moderm control engineering" thì là 2 hình dầu tiên (1&2).

660

661

Cuốn còn lại là 2 hình cuối (3&4).

662

663

Điểm khác nhau ở đây là chổ cột Gain, một bên không chia cho K, bên còn lại thì chia.Tôi thực sự không hiểu lắm,mong mọi người giải thich dùm.Xin cảm ơn

P/s : tôi cũng đã tham khảo sách của cô Hà và thấy Lăng thì thấy 2 cuốn này lại cũng theo 2 cách như trên.

falleaf
29-03-2007, 02:33 PM
Công thức đó họ viết theo dạng nhân Kp ra bên ngoài, chỉ là cách viết khác nhau thôi, còn lại thì giống nhau mà.

Chúc vui

trungkien_0914373773
05-04-2007, 11:36 AM
Theo Linh noi thi Pic co the thiet ke de dung lam 1 bo: AC sevor driver

linhnc308
05-04-2007, 11:06 PM
Hic, không có cái quả trị tuyệt đối đâu, nếu trị tuyệt đối thì nó mất ổn định ngay, vì lúc nào nó cũng tăng vù vù, càng tăng lố nó lại càng tăng PWM. Thế nào chạy một lúc rồi nó cũng chạy tới PWM = 100% mà không bao giờ giảm lại được. Thế là toi roài....

Hic hic, e biet là thế nào đại ca cũng sẽ có bài :) . Đúng là ko có j qua mắt được đại ca, đặc biệt vấn đề liên quan đến điều khiển tự động. E tuy không đc học chính ngạch về dk nhưng khi tìm hiểu để làm thì thấy quả thật rất hay.
Quay lại với bài viết trước của e, đúng như a F nói, không có cái trị tuyệt đối đâu. Nếu bạn nào có làm theo rùi mà báo error hay bị cháy cái j thì cho tại hạ một lời xin lỗi. Cụ thể của thuật toán đó là như sau:

1. if (setpoint > currentpoint)
{
error = setpoint - currentpoint;
new = old + error*Kp;
set_pwm_value(new);
old = new;
}
else
{
error = currentpoint - setpoint;
new = old - error*Kp;
set_pwm_value(new);
old = new;
}
Thuật toán trên chỉ là dạng đơn giản, đúng với một mức độ nào đó. Còn thực tế đk còn nhiều vấn đề ví như quá dòng, quá áp, quá tải ta cũng cần đưa ra xử lý phù hợp.
Với bài toán đk DC motor, mục tiêu là đạt đếm giá trị setpoint nhanh nhất có thể, do đó ta cần tính toán các tham số Kp,Kd,Ki để có đc giá trị phù hợp.

Mấy lời của dân nghiệp dư, có j sai các đại ca, a F và a Nam chỉ giáo, phương châm của e là học cái hay, cái giỏi từ mọi người. :D

Mecha
06-04-2007, 03:09 AM
Để hạn chế mấy cái quá dòng, quá áp,... nên dùng thêm khâu khuếch đại bão hòa. Thực chất là đưa thêm vào hai giá trị Vmax, Vmin sao cho tín hiệu điều khiển luôn nằm trong [Vmin, Vmax].

Nên đưa thêm thành phần Ki và Kd vào (tùy theo yêu cầu) để nâng cao chất lượng điều khiển.

hoangtham
09-04-2007, 01:32 AM
Thanks!day dung la cai minh dang can

nam04clc
14-09-2007, 09:16 PM
Cuốn sách này khá đơn giản, nhưng lại trình bày rất hay

Các bạn download tại đây: Closed Loop Control System (http://www.picvietnam.com/download/CLCS.pdf)

sao chỉ có một chương thôi anh F ?

cmc
18-09-2007, 04:28 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/Autotuning_of_PID_Controllers.pdf

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

H.A.
Xin lỗi tôi download hai tài liệu này không được! Mong bạn sữa lại đường Link

vuthao
14-10-2007, 08:18 AM
em cũng đang làm bộ điều khiển pid số
đề tài của em là "thiết kế bộ điều khiẻn pid số dầu vào tường tự đầu ra on/off,
pwm hay điều khiển van có phản hồi vị trí van"
hic các bác gợi ý cách làm choi em mới
đè tài của em dùng vi xử lý

hampic
14-10-2007, 10:09 AM
Các tài liệu này đã đựơc chuyển về tailieuvietnam

Chúc vui

Bác F cho cái link bên này đi, đc ko? Hiện giờ e chỉ có acc bên này thôi, mà tạo acc bên kia nữa thì ko có thời gian vào, nếu gom về một chổ thì anh em dể dàng thuận tiện down hơn. Cảm ơn.

vuthao
17-10-2007, 11:12 PM
vậy đề tài của tui có phải là đối tượng điều khiển gồm hai khâu :thứ nhất là van , hai là role
vậy sơ đồ khối của tui là vi xử lý kết nối với van ,đầu ra của van kết nối với role
vậy tín hiệu phản hồi của van được ghép nói thế nào
hic giải đáp cho tui mới

HaiAu2005
18-10-2007, 10:08 AM
Bạn vuthao ở đây, hocmai ở dientuvietnam.net và lanquynh ở vagam.dieukhien.net là một người à? Vì thấy câu hỏi đều liên quan đến bài toán điều khiển độ mở của van cả. Nếu đúng là bạn lanquynh ở vagam.dieukhie.net, tôi nghĩ bạn cũng nên theo dõi trao đổi ở đó, có thể có ai đó sẽ gợi ý thêm.

Hải Âu

BKBamboo
03-05-2008, 02:24 AM
Cảm ơn đã chia sẻ!Mình đang làm PID

trankien1751984
05-05-2008, 02:14 PM
Cám ơn mọi người! Các bài viết rất có ích!

phanyen
06-05-2008, 11:26 AM
anh nhiep_phong oi !
a có thể gửi bản nháp của a cho e được không ! e đang cần nó . a gứicho e nhé !
nếu được a gửi sơm cho e theo địa chỉ : Mr.son84@gmail.com or nguyenson8486@yahoo.com
thanks !

phanyen
08-05-2008, 07:43 PM
bác nào có đề tài mẩu thì post lên cho ae tham khảo với . còn tài liều thì e tương đối nhiều . e sẻ gửi sau nhé ! nếu bác nào cần gấp thì hãy mail cho e theo địa chỉ này nè : Mr.son84@gmail.com or nguyenson8486@yahoo.com
thân chào !

falleaf
08-05-2008, 08:36 PM
http://www.picvietnam.com/forum//showthread.php?goto=newpost&t=485

Đề tài mẫu ở đây

Chúc vui

thaovma
09-05-2008, 10:15 AM
Chào a e, mình cũng đang làm nhiều về vấn đề PID, PID có nhiều dạng có cấu trúc khác nhau, các bạn có thể tham khảo thêm về PID và vấn đề autotuning ở trang web này: http://bestune.50megs.com/typeABC.htm, theo mình thì cũng rất hay, vì các mô hình PID ở đây đều được sử dụng rất rộng rãi trong các bộ điều khiển của các hãng nổi tiếng.

NATO308
27-05-2008, 03:10 PM
Các bạn thảo luận thật sôi nổi , tớ thấy thích lắm , thanks các bạn đã nhiệt tình tham gia

metden
20-06-2008, 09:08 AM
Minh dang lam bai ve PID dieu khien toc do dong co, nhung chua bao gio dung Pic chi biet ve 89c51. Ai biet giup minh voi nha.
Thank you!

nmhai
20-06-2008, 10:05 AM
Điều khiển PID có nhiều ứng dụng.
Điều khiển PID động cơ DC thì đã có các IC chuyên dụng, Quan trọng là phương pháp để tìm ra các thông số Ki, Kp, Kd, Il. Một vấn đề nữa là sẽ khó khăn khi dùng những động cơ công suất lớn hơn. Lúc này cầu H sẽ chiu dòng lớn, những IC cầu H sẽ không chiu được.
Điều khiển PID cho các bộ điều khiển nhiệt độ, loại này dùng PID cổ điển thì không cho kết quả tốt được (vọt lố ít nhất là 2-3 degree). Chỉ có dùng các thuât toán hiên đại hơn mới đáp ứng đc.

nguyendinhtuan
20-06-2008, 11:49 AM
Mình chưa có dịp làm Với PIC bộ điều khiển PID, vì vậy ai đã làm thì vui lòng Post chương trình hoàn chỉnh lên cho mình tham khảo với. mình gủi motchương trinh đã hoàn chỉnh chay rất tốt dùng với PSoC, bạn nào thích thì làm thử nhé.
thân,

nguyendinhtuan
20-06-2008, 12:00 PM
add miết ko dc. để thử tiếp lần sau vậy, còn schematic va PCB, giao diện nữa.

Mecha
20-06-2008, 12:02 PM
Mình chưa có dịp làm Với PIC bộ điều khiển PID, vì vậy ai đã làm thì vui lòng Post chương trình hoàn chỉnh lên cho mình tham khảo với. mình gủi motchương trinh đã hoàn chỉnh chay rất tốt dùng với PSoC, bạn nào thích thì làm thử nhé.
thân,

Bạn tham khảo tại đây:
Tìm người làm bài tập thực hành: Bộ ĐK PID động cơ DC
http://www.picvietnam.com/forum//showthread.php?t=485

nguyendinhtuan
20-06-2008, 12:07 PM
shcematic và PCB

nguyendinhtuan
20-06-2008, 12:10 PM
giao diện thì bó tay. mình sẻ up len rapidshare sau vậy.

metden
23-06-2008, 08:41 AM
theo minh nhung gi cac ban noi nen co mot bai nao do cu the, con lay cua nguoi nay nguoi kia the chang co gi moi va sang tao ca.

nmhai
23-06-2008, 09:49 AM
Chào a e, mình cũng đang làm nhiều về vấn đề PID, PID có nhiều dạng có cấu trúc khác nhau, các bạn có thể tham khảo thêm về PID và vấn đề autotuning ở trang web này: http://bestune.50megs.com/typeABC.htm, theo mình thì cũng rất hay, vì các mô hình PID ở đây đều được sử dụng rất rộng rãi trong các bộ điều khiển của các hãng nổi tiếng.

Điều khiển PID thì mình cũng đã làm nhiều rồi, nhưng mình làm điều khiển PID kinh điển. Nói chung là cũng dc nhưng không tối ưu. Mình cũng đang muốn làm một bộ điều khiển PId dùng Autoturning. Bạn có tài liệu nào có thể cho mình với. Trang web bạn đưa sao mình vào k dc. Thanks!

duongngocnghi
26-09-2008, 06:24 PM
mình đang chuan bị làm đồ án về bộ điều khiển PID bạn nao có tài lieu gi thi cho minh xin voi nhe!

dhbk3i
13-11-2008, 02:43 AM
có ai có tài liệu tiếng việt về điều khiển PID trong vi điều khiển không? Mình tìm hoài mà không được, có bác nào có kinh nghiệm về điều khiển pid chỉ giúp anh em cái, thanks

Mecha
27-11-2008, 06:55 AM
Mecha tìm được tài liệu khá hay về bộ điều khiển PID "Lectures on PID Controllers". Các vấn đề cơ bản về PID controllers được các tác giả trình bày rất đễ hiểu và súc tích.

nguyenbahai
01-01-2009, 03:33 AM
Cảm ơn anh Mecha, nhờ trang 34 cuốn anh gửi mà em hiểu hơn phương pháp Ziegler-Nichols, tụi em có làm thử bộ PID cho điều khiển vận tốc nhưng bị nhiễu khá nhiều. Anh có thể xem thêm vấn đề này tại đây ạ.

http://vagam.net/discuss.php?thid=5039

Em có 1 câu hỏi về chọn gain của bộ PID là, liệu phương pháp chọn gain Ziegler-Nichols có thể sử dụng cho tất cả mọi trường hợp (tức bất kỳ hệ thống nào ko anh?) Điều kiện để có thể áp dụng pp này là gì ạ?

Cảm ơn anh rất nhiều!

Mecha
03-01-2009, 06:19 PM
Theo anh được biết thì phương pháp Ziegler-Nichols (hay còn gọi là phương pháp thực nghiệm) có thể áp dụng để xác định thông số bộ điều khiển PID cho hầu hết các trường hợp với điều kiện là phải “bring feedback system at the border of instability” để xác định được Kth and Tth.

Một cấu trúc điều khiển tổng quát thường có hai khâu:

- Khâu điều khiển phản hồi feedback control (FC) có vai trò ổn định hệ thống. PID thường hay được dùng với chức năng này. Ưu điểm của PID là đơn giản và cho một chất lượng điều khiển có thể chấp nhận được. Tuy nhiên PID bị ảnh hưởng mạnh bởi nhiễu vì nhiễu theo đường phản hồi rồi qua khuếch đại của bản thân PID nên tín hiệu điều khiển luôn chứa đựng cả thành phần nhiễu => có thể làm hệ thống mất ổn định. Giải pháp là sử dụng bộ lọc biến trang thái (State Variable Filter SVF) hoặc Kalman filter để thu được tín hiệu “sạch” trước khi phản hồi về bộ điều khiển.

- Khâu điều khiển Feedforward Control (FFC) có vai trò nâng cao chất lượng điều khiển (giảm tracking error, tăng tốc độ đáp ứng, mở rộng bandwidth, giảm ảnh hưởng của system disturbances and nhiễu đo lường đến hệ thống).

Nguyên tắc của điều khiển FFC là tạo ra được nghịch đảo của đối tượng điều khiển (P^-1) và khi đó hàm truyền của hệ kín sẽ tiến tới 1 => output sẽ tiến tới setpoint. Nhưng thực tế là luôn tồn tại system disturbances tại đầu vào của đối tượng và nhiễu đo lường tại đầu ra của đối tượng cho nên thông số của đối tượng luôn biến đổi theo thời gian. Vì vậy mà các thông số của FFC chọn tại thời điểm ban đầu sẽ không thể tạo được P^-1 vì vậy mà cần phải có Learning Feedforward Control (LFFC) với khả năng thay đổi các thông số của FFC theo sự thay đổi của đối tượng để luôn tạo ra được P^-1. Cơ chế learning của LFFC thường được thực hiện theo hai cách: (i) learning dựa trên ổn định Lyapunov, nghĩa là các hệ số của FFC được chỉnh định sao cho thỏa mãn tiêu chuẩn ổn định Lyapunov (ii) learning dựa trên mạng nơ ron (MLP hoặc B-spline) với feedback control signal được sử dụng làm tín hiệu learning.

Tuy nhiên LFFC + FC vẫn bị ảnh hường bởi nhiễu do đường phản hồi feedback. Nên một giải pháp là switch off feedback control. Khi đó LFFC vẫn có thể đảm bảo tốt chất lượng điều khiển hệ thống.

nguyenbahai
04-01-2009, 03:04 AM
Cảm ơn Anh, Anh giải thích rất hay và thú vị

Đúng như anh nói, bài toán trên tụi em chưa làm FFC.
Một điểm nữa là tín hiệu vận tốc phản hồi đã được lọc trước khi gửi về theo hình sau.

http://farm4.static.flickr.com/3112/3163408453_4756ece327_o.png

Tín hiệu vận tốc lọc này liệu có phải đúng ý anh đã nói ở dòng này ko anh nhỉ? "bộ lọc biến trang thái (State Variable Filter SVF) hoặc Kalman filter để thu được tín hiệu “sạch” trước khi phản hồi về bộ điều khiển."

Cảm ơn anh và chúc anh vui vẻ ạ!

sonico
09-06-2009, 09:16 AM
Mình đang tìm hiểu điều khiển vị trí dùng thuật toán PID. Nhưng có một thắc măc là chức năng của bộ PID trong ứng dụng này là để làm gì...?
Ví dụ: như diều khiển tốc độ ĐC DC dùng thuật toán PID thì nhiệm vụ của bộ này là tự động băm xung để đạt đc tốc độ mong muốn.
Chúng ta cùng thảo luận nhé.....

sonico
24-06-2009, 12:33 PM
kô ai comment hết bùn quá ....

lequocbao
24-06-2009, 05:25 PM
thì để đạt được vị trí mong mún!

hungminhon
27-11-2009, 08:05 PM
mấy a chị ơi! ai có tài liệu về PID thì gửi cho em với

muitenxanh87
23-03-2010, 02:32 AM
PID thường dùng để điều chỉnh cho hệ thống nhằm đạt được chất lượng cơ bản còn nêú muốn đạt chất lượng cao hơn phải dùng các thuật toán nâng cao vòng ngoài.Một xu hướng gần đây dùng để điều khiển máy phát điện đồng bộ cực ẩn (có chứa thành phần phi tuyến) là dùng bộ điều khiển PI và chỉnh định bằng fuzzy mọi người nghĩ sao về vấn đề này.

chienthankid
07-05-2010, 12:54 AM
mấy cái hệ số Ki,Kp,Kd hình như ai cũng hiệu chỉnh để tìm ra đáp ứng tốt nhất chứ it người đi tính toán lắm, theo lý thuyết thì tính vẫn đc nếu biết những yêu cầu về :sai số xác lập , độ vọt lố, thời gian đáp ứng .....
về phần mô hình hóa đông cơ Dc thì các bạn tham khảo ở đây:http://www.ee.usyd.edu.au/tutorials_online/matlab/examples/motor/motor.html
ai có mạch công suất và điều khiển động cơ DC (ocard) thì cho mình xin với:chienthankid@gmail.com
thank

quynhnewversion
28-11-2010, 07:47 PM
Em dang lam va dieu khien may tien CNC nhung co cho em ko lam dc, VD san pham em tien phai la 28.9mm nhung ma san pham lai len 29mm. Co ai biet cach dieu chinh cho no xuong chinh xac 28.9mm dc ko, giup em nhe. Em tran thanh cam on.

no.nevermind
29-11-2010, 09:10 PM
cac anh oi! ai co tai lieu ve bo PID thi cho em it tai leiu
em doc mai~ tren mang ma chang hieu gi` ca?
mong cac anh giup do ga.nevermind@gmail.com

JohnnyNguyen
05-01-2011, 07:40 PM
cho e hỏi nếu muốn đầu ra bám theo tín hiệu đầu vào.hàm truyền là 1 khâu tích phân.hệ số phản hồi âm là k.nếu tính toán hệ số của bộ điều khiển PI thì tính toán kiểu gì ạ.
ko biết tính toán trên cơ sở tối ưu module hay tối ưu đối xứng dc ko ạ.

bluexylitol
06-01-2011, 03:25 PM
cho e hỏi nếu muốn đầu ra bám theo tín hiệu đầu vào.hàm truyền là 1 khâu tích phân.hệ số phản hồi âm là k.nếu tính toán hệ số của bộ điều khiển PI thì tính toán kiểu gì ạ.
ko biết tính toán trên cơ sở tối ưu module hay tối ưu đối xứng dc ko ạ.

Bạn cần nói rõ hơn. 1) tín hiệu vào là tín hiệu gì, 2) tham số đối tượng đã có chưa 3)hàm truyền ở đây là cái gì? vì vậy bạn có sơ đồ thì tốt
tối ưu module hay tối ưu đối xứng là phương pháp thực nghiệm. nếu tin hiệu vào là a*hàm step, và bạn đã biết tham số đối tượng thì có thể dùng pp gán điểm cực là được.

JohnnyNguyen
06-01-2011, 06:54 PM
Bạn cần nói rõ hơn. 1) tín hiệu vào là tín hiệu gì, 2) tham số đối tượng đã có chưa 3)hàm truyền ở đây là cái gì? vì vậy bạn có sơ đồ thì tốt
tối ưu module hay tối ưu đối xứng là phương pháp thực nghiệm. nếu tin hiệu vào là a*hàm step, và bạn đã biết tham số đối tượng thì có thể dùng pp gán điểm cực là được.

chả là e đang pải thiết kế phản hồi PI cho mạch Boost PFC.với sơ đồ như ở dưới,phần tính toán PI để bù sai số dòng điện và sai số điện áp e muốn dùng 1 trong 2 phương pháp ở trên để tính.
điện áp đầu ra dc so sánh với 1 giá trị điện áp Vref ở vòng lặp điện áp và sẽ sinh ra tín hiệu tham chiếu cho dòng điện đầu vào bám theo.
vòng điều khiển dòng điện sẽ quyết định thời điểm đóng mở van
hàm truyền ở khâu bù dòng điện và bù điện áp có dạng 1 khâu tích phân lý tưởng dạng k/Ls
các tham số cơ bản đều đã biết

bluexylitol
06-01-2011, 08:38 PM
theo mình thấy về cơ bản có 2 vòng điều khiển. theo mình thì có 2 cách
1. chọn tham số bộ trong trước (bù dòng) nếu biết hết tham số cứ viết hàm truyền mạch kín ra dòng phản hồi điểm cực là pp rất don gian co thể được. Rồi lại chọn tham số cho bộ ngoài (bù áp).
2. Nếu bạn chỉ cần 1 tham số có thể chạy thì theo mình cứ chọn bộ PI theo cach sau bang thuc nghiem: luc dau chi co khâu khếch dai hệ số K, thử gia tri sao cho sai lệch tĩnh là tuong doi nhỏ roi bat dau cho khâu tích phân vào và thử tiếp. Bản thân mạch của bạn phức tạp và thực tế hệ luôn phi tuyến.
P.s: minh ko thay lien quan gi den toi uu do lớn hay doi xung o day cả?

JohnnyNguyen
06-01-2011, 09:03 PM
theo mình thấy về cơ bản có 2 vòng điều khiển. theo mình thì có 2 cách
1. chọn tham số bộ trong trước (bù dòng) nếu biết hết tham số cứ viết hàm truyền mạch kín ra dòng phản hồi điểm cực là pp rất don gian co thể được. Rồi lại chọn tham số cho bộ ngoài (bù áp).
2. Nếu bạn chỉ cần 1 tham số có thể chạy thì theo mình cứ chọn bộ PI theo cach sau bang thuc nghiem: luc dau chi co khâu khếch dai hệ số K, thử gia tri sao cho sai lệch tĩnh là tuong doi nhỏ roi bat dau cho khâu tích phân vào và thử tiếp. Bản thân mạch của bạn phức tạp và thực tế hệ luôn phi tuyến.
P.s: minh ko thay lien quan gi den toi uu do lớn hay doi xung o day cả?

mình cứ nghĩ là có hàm truyền đối tượng,với khâu PI và hệ số phản hồi thì có thể thiết kế bộ điều khiển dựa trên 2 phương pháp trên được.:D
điều khiển tự động mình hơi kém,nên vấn đề về PID còn hơi mù mờ :(

bluexylitol
07-01-2011, 08:20 AM
mình cứ nghĩ là có hàm truyền đối tượng,với khâu PI và hệ số phản hồi thì có thể thiết kế bộ điều khiển dựa trên 2 phương pháp trên được.:D
điều khiển tự động mình hơi kém,nên vấn đề về PID còn hơi mù mờ :(

Mình bản thân cài đặt thuật toán PID rồi, bản thân manual method cũng là 1 pp khi thiet ke PID mà, hơn nữa đây là phương pháp đơn giản nhất mà vẫn có thể đạt yêu cầu đề ra, và mình cũng ko thấy tốn nhiều thời gian. hi vọng bạn sớm cài đặt thành công.

JohnnyNguyen
07-01-2011, 10:39 AM
Mình bản thân cài đặt thuật toán PID rồi, bản thân manual method cũng là 1 pp khi thiet ke PID mà, hơn nữa đây là phương pháp đơn giản nhất mà vẫn có thể đạt yêu cầu đề ra, và mình cũng ko thấy tốn nhiều thời gian. hi vọng bạn sớm cài đặt thành công.

mình đang tính toán hệ số kp,ki để lập trình cho vi điều khiển.đang tính toán để mô phỏng trên matlab :(

bluexylitol
07-01-2011, 11:15 AM
mình đang tính toán hệ số kp,ki để lập trình cho vi điều khiển.đang tính toán để mô phỏng trên matlab :(
có kết quả inform bạn nhé

HQVN
06-05-2011, 10:37 AM
nếu là anh thì reply lại nhé!
người quen mà!

ldvalecong
16-05-2011, 03:56 PM
Trong cac qua trinh dieu khien tu dong thi cac gia tri o dau ra la can phai duoc giam sat va dieu khien . Lay mot vi du rat don gian chinh la viec dieu khien mot dong co DC . Cac gia tri ma ta can kiemtra trong suot qua trinh hoat dong cua dong co do chinh la dong dien , van toc o val cua dong co , van toc cua co cau may sau khi da qua mot bo phan co khi (hop so , banh rang ... ) . Trong qua trinh lam viec day thi Moment cua tai thuong xuyen thay doi , ta xem gia tri thay doi do nhu mot ham nhieu va chinh nhieu ay se lam anh huong truc tiep den chat luong cua viec dieu khien . Vi the cac he thong dieu khien tu dong ngay nay thuong dung cac qua trinh hoi tiep de giam sat su thay doi , dong thoi dung cac regulator de duy tri cho he thong dat duoc mot chat luong thoa man yeu cau cua viec dieu khien .
Viec tinh tham số cho các regulator thì phụ thuộc vào giá trị của chính các hàm truyền tham gia trực tiếp vào quá trình (động cơ , bộ băm xung ....) . Lấy ví dụ nếu ta có một động cơ DC và bài toán đặt ra là làm sao cho trong quá trình khởi động giá trị dòng diện cực đại của động cơ không vượt quá 104,3% định mức thì trước tiên ta sẽ thiết lập một vòng hồi tiếp dòng điện sau đó lắp thêm một PI regulator (nguyên tắc cân bằng modul cho vòng mạch trong) . Ngoài ra để hệ thệm vững chắc thì ta có thể làm thêm một vòng hồi tiếp cho mạch ngoài với giá trị vận tốc của động cơ . Đối với vòng ngoài này thì thường trong các bài toán thực tế các kỹ sư sẽ thiết lập regulator theo nguyên tắc đối xứng (vận tốc cực đại > vận tốc định mức 3,1 % và quá trình xảy ra trong khoảng 8,7Tm với Tm là hằng số cơ của động cơ được tính theo công thức Tm=J/(c^2*R) . Thương regulator cho vận tốc là P regulator.
Ý nghĩa của những việc làm vừa nêu trên không gì khác hơn nhằm đảm bảo cho động cơ nhanh chóng lấy lại trạng thái cân bằng khi xảy ra nhiễu ở tải . Đây chỉ là trường hợp đơn giản khi điều khiển .Đối với các hệ phức tạp hơn ta có thể đo trực tiếp tải và làm cho nó một vòng hồi tiếp .
Với khuôn khổ có giới hạn trong một bài viết tôi khó có thể truyền đạt hết ý nghĩa của PID . Khi có điều kiện cụ thể sẽ đãng một bài khác có tính tổng quan hơn, Chúc vui

chimcon
15-06-2011, 06:44 PM
các bác post lên đi
code điều khiển động cơ dc đùng giải thuật pid?
mình đàng chuẩn bị lảm robocon cho mùa 2012
viết code điều khiển tốc độ động cơ dùng giải thuật pid , dùng encoder để đếm xung và khắc phục sai số bằng giải thuật pid.
cãm ơn.

tpcang
11-10-2011, 01:30 AM
Mình đang làm luận văn. Mình đã làm được tới điều khiển vận tốc bằng PID nhưng vẫn chưa điều khiển vị trí bằng PID thành công. Các anh(chị) có thể hướng dẫn giúp không? Xin cảm ơn rất nhiều!

hangocminh1989
14-10-2011, 01:25 AM
ô bạn tpcang oi, mình nhớ là đièu khiển vị trí, thầy mình bảo là không dùng i thì phải, không biết mình nói thế có sai không nhỉ

ariancdcdt06
08-11-2011, 04:55 PM
trong thực tế, nếu bạn không dùng I thì sẽ không khử hết error đươc! đây là thành phần có tác dụng sau khi các thành phần P và D không còn tác dụng nữa (khi gần đến setpoint)

duy.mta
09-11-2011, 05:01 PM
anh em ơi!minh mới học về điện,anh em nao chi hộ cho mình cách học với?Mình đặc thù la dân cơ khí!mình muốn ứng dụng vào ngành của mình dang học!ai giúp mình với nhe!có gì xin liên hệ gmail duyhvktqs.mta!cảm ơn mọi người!!!

tan_truong
15-12-2011, 07:36 PM
Chào cả nhà,
Hiện tại em đang làm luận văn tốt nghiệp và có dùng đến bộ điều khiển PID, khi mô phỏng trong simulink em dùng khối PID có sẵn trong thư viện vì nó hỗ trợ auto tuning luôn, mọi việc đều rất khả quan ngoại trừ 1 vấn đề đó là: "EM không hiểu hệ số N có ý nghĩa gì trong bộ điều khiển này"???
Anh chị em nào biết giải đáp giúp mình với, sắp tới ngày phản biện rồi
Cảm ơn cả nhà...
Thân chào.

vudinhthang1989
31-12-2011, 02:21 PM
các anh ơi, các anh có thể giúp em hiểu về PID tương tự không ạ?
cụ thể là PI tương tự để ổn định tốc độ ạ.

cụ thể : tín hiệu đặt là dương, tín hiệu phản hồi là âm
ban đầu : tín hiệu phản hồi bằng 0 => tín hiệu sai lệch tác động như thế nào ạ
về sau : tín hiệu phải hồi âm + tín hiệu đặt = 0 thì sẽ như nào ạ?

và cách chọn thông số của bộ điều khiển như nào ạ? em cảm ơn các anh nhiều.

khienpzo
31-12-2011, 10:58 PM
Hàm truyền test bằng matlab có thể sẽ thấm ra thôi ... bạn đã thử chưa ?? có công cụ mô phỏng mà ..Còn bộ điều khiển PID bạn cần phải tính toán ..Download cuốn "Lý thuyết điều khiển tự động , BKTPHCM or DHCN HCM" có viết ..

vudinhthang1989
02-01-2012, 01:05 AM
em muốn dựa trên lý thuyết về PID và khuếch đại thuật toán để đưa ra thông số và mạch thực ạ. anh có thể giúp em về lý thuyết đấy được ko ạ?

vudinhthang1989
02-01-2012, 01:12 AM
em đã xem cuốn Lý thuyết điều khiển tự động , BKTPHCM rất hay bác ạ. e cảm ơn bác

khienpzo
02-01-2012, 08:56 AM
Thì bạn làm một mạch thực đi điều khiển tốc độ động cơ DC chẳng hạn rồi làm giao diện điều khiển bằng máy tính mình ngồi mình thay đổi, tính toán có lẽ sẽ ổn ..còn không vẽ mạch giao tiếp máy tính mô phỏng Proteus rồi ngồi nghịch ..Thân

TIENDUONG_LK
22-02-2012, 10:08 PM
thi phai chinh lai luc ban dau minh xet dao thoi va do that cinh xac kich thuoc phoi xem thuoc do dung k.hi

TIENDUONG_LK
22-02-2012, 10:12 PM
mình đang làm đồ án cơ điện tử nghiên cứu matlab về fuzzy bạn gì đó cũng tính ứng dụng điều khiển động cơ là rất hay minh muốn làm nó làm đồ án tốt nghiệp lun nếu có bi quyết hay tài liệu các bạn gửi gmail cho minh nha.thanks các bạn nhiều.tienduong.lk@gmail,com

TIENDUONG_LK
22-02-2012, 10:14 PM
thi phai chinh lai luc ban dau minh xet dao thoi va do that cinh xac kich thuoc phoi xem thuoc do dung k.hi

hangocminh1989
24-02-2012, 07:57 AM
là sao ta, anh em ai có tài liẹu xin gửi......bó tay, muôn đời quen thuộc câu này, các bạn thực dụng quá, tài liệu hả??? tự mò trên mạng có mà đầy....lúc nào cũng xin, bực quá đi

thanhtrunghh
14-03-2012, 02:28 AM
bác nào up mạch thực đi (có ứng dụng trong thực tế thì hay)
toàn thấy mô phỏng thôi chán lắm