PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Thực hành (http://www.picvietnam.com/forum/forumdisplay.php?f=20)
-   -   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)

thanhdai 31-03-2009 02:48 PM

Em đã làm xong bộ điếu khiển dc servo chạy rất ok , đã kết nối với bộ điều khiển cnc tốt có một đoạn phim nhưng không biết làm thế nào pót lên để các bác góp ý

nhatson.elec 31-03-2009 04:44 PM

gởi lên youtube roi post link bác ah

b/r

Mecha 31-03-2009 05:23 PM

Trích:

Nguyên văn bởi sandro_bk (Post 24187)
Cái PID này người ta đã làm từ rất rất lâu rồi,cái thread này cũng đã tạo ra từ rất lâu mà đến nay cũng chỉ kết thúc ở công thức PID,thật đáng thất vọng,
có điều khi làm lý thuyết là 1 chuyện,thực nghiệm là 1 chuyện,mô phỏng chạy rất ok nhưng thực nghiệm thì lại ko có thông số động cơ?vậy là cuối cùng cũng phải mò mấy hệ số KP,Ki,Kd,

@sandro_bk
- Thành viên mgdaubo có thắc mắc về phần công thức nên tôi cung cấp một chút thông tin cho bạn ý.
- Topic này tính đến nay đã có gần 75 nghìn lượt xem và ít nhiều các nhóm cũng đã có kết quả cho nên không thể nói là đáng thất vọng được. Hơn nữa đây là diễn đàn nên việc "học hành" ở đây không giống như trên lớp. Khi tham gia điễn đàn, không ai bắt ai phải thi, phải nộp báo cáo, thuyết minh đầy đủ cả.
- Đề tài tuy đã kết thúc nhưng các thông tin trong topic này vẫn còn giá trị của nó. Các thành viên mới vẫn có thể tham khảo và áp dụng vào công việc học tập của mình.

sandro_bk 31-03-2009 07:38 PM

gửi bác Mecha,ở đây em thật sự ko có ý gì cả,thật sự cái PID này người ta đã làm lâu lắm rồi,bây giờ mình làm lại,việc mở ra topic này là rất hay,nhưng cách làm theo kiểu phong trao hô hào rồi tất ngấm,em nói chỉ muốn để sau này có topic nào cũng hay như vầy nên làm có quy củ,ví dụ hướng dẫn từng module của PIC cần sử dụng,recommend nên dùng con PIC nào?tại sao?về thiết kế phần cứng về,giải thuật chung,....mô phỏng rồi thực nghiệm,để nếu ko đi đến cuối cùng thì các bạn lứa sau muốn làm cũng có cơ sở,chứ đã hơn 400 bài rồi mà vẫn có bạn hỏi về công thức PID,thì những bài trước đó nói về cái gì?
Cái DC này em đã làm 2,3 cái rồi,nhưng PID toàn mò,vì sao?ko có thông số động cơ mà thực tế đâu phải lúc nào em cũng có thể có được thông số động cơ để tìm hệ số PID theo lý thuyết này,lý thuyết nọ,rõ ràng thực tế rất khác với lý thuyết,
Ở đây,em biết các bác mod và bang chủ đều rất giỏi,em ko dám chê ai,nhưng chúng ta có thể làm tốt hơn thế này phải ko các bác?

thanhdai 02-04-2009 10:19 AM

EM MỚI LÀM XONG CÁI NÀY . CHẠY THẤY CŨNG KHÁ TỐT INPUT <100Kz ĐIỀU KHIỂN PID NHƯNG HIỆN TẠI CHỈ NHỎ HƠN 40VOL. EM ĐANG LÀM CÁI SẺVO 200VOL - 20A BỊ MẮC KẸT CÁI NGUỒNG XUNG , BÁC NÀO CÓ CÁI NGUỒN DAO ĐỘNG NGHẸT NÀO CHẠY TỐT CHO EM XIN ĐƯỢC KHÔNG, VÌ LÀM ÁP CAO PHẢI CÓ NHIỀU NGUỒN ĐIỀU KHIỂN RIÊNG .
MONG CÁC BÁC GIÚP ĐƠ&

http://www.youtube.com/watch?v=TTu06sOmMRA

gà mờ 06-04-2009 03:16 AM

Chào các bác em cung làm về đề tài pid điều khiển động cơ và cũng tìm các hệ số kp,ki,kd theo phương pháp thực nghiệm có điều động cơ của em khi chạy không tải thì đáp ứng khá tốt ở tốc độ cao . còn khi cho tốc độ nhỏ khoảng 30v/phút thì nó lại chạy rật cục,em thử rất nhiều giá trị pid mà không làm thay đổi tình hình . vả lại khi cho tải vào thì nó mất ổn định . Bác nào đã làm Pid cho động cơ với cả hai vòng phản hổi,dòng điện và tốc độ cho em xin mạch điện và chương trinh để tham khảo với
THANKS!!!

Mecha 06-04-2009 04:02 AM

Trích:

Nguyên văn bởi gà mờ (Post 24389)
Chào các bác em cung làm về đề tài pid điều khiển động cơ và cũng tìm các hệ số kp,ki,kd theo phương pháp thực nghiệm có điều động cơ của em khi chạy không tải thì đáp ứng khá tốt ở tốc độ cao . còn khi cho tốc độ nhỏ khoảng 30v/phút thì nó lại chạy rật cục,em thử rất nhiều giá trị pid mà không làm thay đổi tình hình . vả lại khi cho tải vào thì nó mất ổn định . Bác nào đã làm Pid cho động cơ với cả hai vòng phản hổi,dòng điện và tốc độ cho em xin mạch điện và chương trinh để tham khảo với
THANKS!!!


Khi thay đổi giá trị của tải, bạn đã tính lại thông số cho PID chưa?

Với vòng điều khiển dòng và tốc độ, bạn chỉ nên dùng PI thôi. Thành phần D có thể là nguyên nhân (phần mềm) gây cho đáp ứng động cơ của bạn bị giật. Ngoài ra có thể còn do thiết kế phần cứng của bạn nữa.

gà mờ 08-04-2009 12:22 AM

trưởng lão cho em hỏi công thức PID dùng cho dong điện thì cũng giống công thức của tốc độ phải không vậy.em tìm trên mạng nhưng ít thấy nói về dùng pid để điều chỉnh dòng điện ,vì chúng em không được đào tạo bài bàn về điều khiển nên nhờ trưởng lão nói chi tiết một chút
THANKs

mtuankct 08-04-2009 12:45 AM

Về công thức tổng quát thì PID cho mạch tốc độ hay dòng điện đều như nhau, vấn đề là ở bộ tham số, người ta có nhiều cách để tính toán các bộ tham số cho mỗi mạch vòng (các đối tượng cần thiết kế là khác nhau nên các bộ tham số là khác nhau) bạn có thể tìm đọc cách thiết kế các bộ tham số trong nhiều sách khác nhau về đk tự động, truyền động điện

Mecha 08-04-2009 06:00 PM

Như bạn mtuankct đã trả lời, công thức PID cho vòng dòng điện và tốc độ là như nhau (thường là PI). Chỉ khác nhau ở thông số P và I của bộ điều khiển. Vòng điều khiển dòng yêu cầu tốc độ đáp ứng phải nhanh hơn vòng tốc độ nên chu kỳ trích mẫu sẽ phải nhỏ hơn. Tương tự nếu vòng ngoài cùng là điều chỉnh vị trí thì chu kỳ trích mẫu của vòng tốc độ cũng phải nhỏ hơn chu kỳ trích mẫu của vòng điều chỉnh vị trí.

Chu kỳ trích mẫu được chọn theo định lý Nyquist-Shannon (http://en.wikipedia.org/wiki/Nyquist...mpling_theorem) thì tần số lấy mẫu được chọn > 2 lần bandwidth của hệ thống (tức là chu kỳ mẫu nhỏ hơn 2 lần):

- Bandwidth của vòng điều chỉnh dòng điện vào khoảng 10^6 rad/s (chu kỳ khoảng 6 micro giây) => chu kỳ lấy mẫu tầm 3 micro giây. Mô phỏng với chu kỳ lấy mẫu nhỏ như thế này thì oki những khi lập trình thực tế thì vòng điều khiển (real-time) với chu kỳ lấy mẫu nhỏ như thế này là không tưởng. Nên thực tế thường thực hiện lấy mẫu cỡ 0.1 mili giây (10kHz).
- Bandwidth của vòng điều chỉnh tốc độ vào khoảng 120-150 rad/s (20-25Hz) => tần số trích mẫu vào khoảng > 40-50Hz. Tuy nhiên thực tế thường chọn f của vòng điều chỉnh tốc độ vào khoảng 1kHz.
- Bandwidth của vòng điều chỉnh vị trí vào khoảng 30-40 rad/s (5-6Hz) => tần số trích mẫu vào khoảng > 10-12Hz. Tuy nhiên thực tế thường chọn f của vòng điều chỉnh vị trí vào khoảng 100Hz.

Thực hiện 3 tần số trích mẫu khác nhau trên cùng 1 hệ thống điều khiển real-time sẽ là một vấn đề. Cách đơn giản nhất là dùng tần số trích mẫu cơ bản = 10kHz, rồi dùng biến counter trong vòng lặp để giảm tần số trích mẫu xuống cho vòng tốc độ và vị trí. Ví dụ counter=10 sẽ được f=1kHz, counter=100 sẽ được f=100Hz.

gà mờ 08-04-2009 10:40 PM

Cảm ơn trưởng lão ! Từ gợi ý của anh em làm như vầy không biết có đúng không mong anh chỉ giáo giùm thêm (tạm thời em tiến hành làm hai vòng phản hồi là tốc độ và dòng.) như sau:
Bước 1:
Thực hiện vòng phản hồi tốc độ với chu kỳ 100msec
ev=Vset-Vcur;
ev_cur = ev + evlast; // e_cur sai so hien tai
ev_sum+= ev_cur;
ev_del=ev-elast;
duty +=((kp*ev)+(ki*ev_sum)+(kd*ev_del)); // Công thưc tinh PID(không biết += hay chỉ = thôi anh nhỉ)
if(duty >511) //gioi han PWM 9Bit
{ duty =511; }
if(duty <0) {duty =0; }
evlast=ev;
Bước 2 từ duty em suy ra điện áp Uư= (duty/TOP)*Umax (top =511)
--> Iset = (Uư-kb*ω)/Rư
---> sau đó em cũng thực hiện phản hồi dòng như trên chu kỳ 10msec
ei=I set-Icur;
ei_cur = ei + eilast;
ei_sum+= ei_cur;
ei_del=ei-eilast;
duty +=((kp*ei)+(ki*ei_sum)+(kd*ei_del));
if(duty >511)
{ duty =511; }
if(duty <0) {duty =0; }
eilast=ei;
Pwm = duty;
Anh xem giúp xem em làm vậy có được không nếu không thì anh chỉ giúp em cách lồng hai vòng phản hồi này vào nhau với nếu mà lồng được cả vòng phản hồi vị trí nữa thì càng tốt
Em cảm ơn!!!

Mecha 09-04-2009 01:38 AM

Bạn chú ý những chỗ in đậm:
- Đây là PID số nên bạn phải có chu kỳ trích mẫu trong công thức.
- Tín hiệu ra của vòng điều chỉnh tốc độ được dùng làm setpoint cho vòng điều chỉnh dòng điện.

Code:


// Cho mach vong toc do:
// ham truyen PI trong s-plane: uOutvantoc = Kvantoc [1 + 1/(s*Tivantoc)] errorV
Tvantoc = 0.1; // sampletime = 100ms
errorV = Vref - Vcur;
uPvantoc = Kvantoc * errorV;
uIvantoc = uIvantoc_previous + ( ( Kvantoc * Tvantoc * errorV ) / Tivantoc );
uOutvantoc = uPvantoc + uIvantoc;
uIvantoc_previous = uIvantoc;
 
 
// Cho mach vong dong dien:
// ham truyen PI trong s-plane: uOutdong = Kdong [1 + 1/(s*Tidong)] errorD
Tdong = 0.01; // sampletime = 10ms
errorD = uOutdong - Dcur;
uPdong = Kdong * errorD;
uIdong = uIdong_previous + ( ( Kdong * Tdong * errorD ) / Tidong );
uOutdong = uPdong + uIdong;
uIdong_previous = uIdong;


gà mờ 20-04-2009 01:05 AM

Anh mecha ! cho em làm phiền chút trong công thức trên của anh có nói tín hiệu điều chỉnh vòng tốc độ được dùng làm setpoint của vòng phản hồi dòng có nghĩa là mình đặt luôn uOutdong = uOutvantoc hay gì bởi vì nếu làm như thế thì setpoint sẽ bị thay đổi nên em hỏi lại mong anh chỉ rõ thêm nữa
Cảm ơn anh!!

hutdragon 25-05-2009 03:10 AM

Trích:

Nguyên văn bởi Mecha (Post 24522)
Như bạn mtuankct đã trả lời, công thức PID cho vòng dòng điện và tốc độ là như nhau (thường là PI). Chỉ khác nhau ở thông số P và I của bộ điều khiển. Vòng điều khiển dòng yêu cầu tốc độ đáp ứng phải nhanh hơn vòng tốc độ nên chu kỳ trích mẫu sẽ phải nhỏ hơn. Tương tự nếu vòng ngoài cùng là điều chỉnh vị trí thì chu kỳ trích mẫu của vòng tốc độ cũng phải nhỏ hơn chu kỳ trích mẫu của vòng điều chỉnh vị trí.

Chu kỳ trích mẫu được chọn theo định lý Nyquist-Shannon (http://en.wikipedia.org/wiki/Nyquist...mpling_theorem) thì tần số lấy mẫu được chọn > 2 lần bandwidth của hệ thống (tức là chu kỳ mẫu nhỏ hơn 2 lần):

- Bandwidth của vòng điều chỉnh dòng điện vào khoảng 10^6 rad/s (chu kỳ khoảng 6 micro giây) => chu kỳ lấy mẫu tầm 3 micro giây. Mô phỏng với chu kỳ lấy mẫu nhỏ như thế này thì oki những khi lập trình thực tế thì vòng điều khiển (real-time) với chu kỳ lấy mẫu nhỏ như thế này là không tưởng. Nên thực tế thường thực hiện lấy mẫu cỡ 0.1 mili giây (10kHz).
- Bandwidth của vòng điều chỉnh tốc độ vào khoảng 120-150 rad/s (20-25Hz) => tần số trích mẫu vào khoảng > 40-50Hz. Tuy nhiên thực tế thường chọn f của vòng điều chỉnh tốc độ vào khoảng 1kHz.
- Bandwidth của vòng điều chỉnh vị trí vào khoảng 30-40 rad/s (5-6Hz) => tần số trích mẫu vào khoảng > 10-12Hz. Tuy nhiên thực tế thường chọn f của vòng điều chỉnh vị trí vào khoảng 100Hz.

Thực hiện 3 tần số trích mẫu khác nhau trên cùng 1 hệ thống điều khiển real-time sẽ là một vấn đề. Cách đơn giản nhất là dùng tần số trích mẫu cơ bản = 10kHz, rồi dùng biến counter trong vòng lặp để giảm tần số trích mẫu xuống cho vòng tốc độ và vị trí. Ví dụ counter=10 sẽ được f=1kHz, counter=100 sẽ được f=100Hz.

cho em hỏi cách tính cái Bandwidth của vòng điều chỉnh dòng điện,tốc độ như thế nào vậy bác

baodinh88 30-05-2009 04:18 PM

hic
 
Trích:

Nguyên văn bởi Mecha (Post 5780)
Mecha xin cung cấp một số tài liệu về vấn đề chỉnh định thông số cho bộ điều khiển PID:

1. PI and PID controller tuning rules for time delay processes: A summary
http://www.tailieuvietnam.net/downlo...0processes.pdf
Tài liệu tiếng Anh, tập hợp khoảng 60 phương pháp chỉnh định PID cho nhiều dạng mô hình đối tượng có trễ khác nhau.

2. Một số khái niệm cơ bản về lý thuyết điều khiển PID, điều khiển mờ và mờ lai PID.
http://www.tailieuvietnam.net/downlo...BPG.221205.pdf
Tài liệu tiếng Việt nhưng hiện vẫn còn đang trong giai đoạn xây dựng.

3. Một phần mềm viết bằng Basic cho phép tính toán thông số bộ điều khiển PID theo phương pháp Reinisch
http://www.tailieuvietnam.net/downlo...D_Reinisch.zip
Phần mềm tự động tính toán thông số bộ điều khiển PID cho các đối tượng quán tính bậc nhất, bậc hai và các đối tượng theo mô hình của Reinisch; xét ổn định theo tiêu chuẩn Routh và vẽ đồ thị đáp ứng quá độ. Trong phần mềm đã có phần hướng dẫn sử dụng.
Chú ý: sử dụng không đúng các bước rất dễ bị báo lỗi. Thông cảm chạy lại từ đầu!;)

Falleaf: Các tài liệu này đã được chuyển về kho. Nếu sau này bị mất link của ftp, các bạn tìm lại bằng tên trong www.kho.tailieuvietnam.net.

link death roi bac oi !!

nguyenluong 30-05-2009 09:52 PM

Nếu vậy thì rất tuyệt. Nhưng bác F nói rõ đề tài đi, làm trong thời gian bao lâu, và nộp đề tài qua phương tiện gì?

king0205 15-06-2009 07:35 PM

sao du an toi day lai ket thuc?ket qua cac ban da dat duoc chua?bac F cung ko con port bai len nua vay?de tu mao mui hoi.co gi bo qua nhe!

chuc vui!

TQN1234 17-06-2009 12:14 PM

Thấy đề tài hay mà lại bị bỏ bê thế này thì hơi tiếc. Mình xin đóng góp cái luận văn của mình làm từ năm 2005. LV này làm về đề tài đk tay máy 3 bậc tự do dùng động cơ DC, có dùng thuật toán PID để điều khiển vận tốc và vị trí động cơ. Lúc làm mô hình, mình đã điều khiển chính xác được vị trí (số vòng quay hay số xung) và tốc độ của động cơ đối với tải thay đổi, Có thể cho động cơ quay với vận tốc rất thấp, chẳng hạn 1 v/p mà vẫn bảo đảm moment...
Nếu bạn nào có đam mê thì nghiên cứu để phát triển tiếp nhé. Lúc đó có tham vọng làm mô hình máy CNC nhưng không có tiền đầu tư, và cũng chẳng có nhiều thời gian nữa, đành bỏ lỡ một thời đam mê, hic hic.

qtiem 17-06-2009 12:31 PM

Hic, dùng acc kia không up được file. Thử dùng acc này cũng thế. MÌnh úp lên MF, các bạn chịu khó down nhé
http://www.mediafire.com/download.php?mt1nqlzgoza
Mà tại sao mình hay bị log out lắm. Mỗi lần log out, đăng nhập lại bị báo sai pass, chán :(

anhga 14-07-2009 10:50 AM

Đề tài hay nhưng kết thúc k có hậu:D
Việt Nam mình k ít người làm được bài toán này rồi nhưng ít người chịu chia sẻ. Nếu có chia sẻ thì cũng k hết mình. Có lẽ nước mình nghèo nên các bậc tiền bối giũ miếng kiếm xiền.
Em có vài lời tâm sự vậy thôi. Hy vọng các đề tài hay sẽ có kết thúc có hậu.

biengam 13-09-2009 11:02 PM

Còn tham gia được không
 
Chào mọi người, không biết kế hoạch này còn thưc hiện không, một ý tưởng rất hay như thế này cần duy trì và phát triển chứ nhỉ.Nếu còn thì tôi xin được tham gia, tôi học dh lạc Hồng.

greenfield 21-09-2009 12:33 AM

Em đang định làm mạch điều khiển động cơ dùng L298 bác nào có sơ đồ úp lên cho em xem với. Chúc mọi người vui vẻ!

thienhaiblue 19-10-2009 12:16 PM

uhm! Chào all mọi người! 1 năm trước khi mình còn gà mờ về điều khiển động cơ! Và mình cũng đã đọc qua luồng này và cũng đã đọc all các mục roài! Mình nhận thấy cái gì cũng vậy! căn cơ phải cứng rồi mới tính đến bước tiếp theo! giống như cố nhân đã dạy "chưa học bò đã lo học chạy" Bởi vậy trước khi chúng ta muốn điều khiển động cơ theo các thuật toán trên trời dưới đất gì đó thì cũng phải có một cái mạch driver cho động cơ thiệt tốt cái đã! Chứ chơi kiểu relay đóng ngắt mà đòi PID thì khác gì bắn pháo hoa chơi! :D .Nhưng mà nói đi thì cũng phải nói laị mình thấy có rất nhiều ý bạn đã viết bài ý kiến về việc chưa có ai post một mạch thực sự hoàn chỉnh lên cho mọi người tham khảo, ngay cả bac namqn cũng chỉ post mạch IR2110 bản ko đầy đủ chức năng! Cứ làm theo cái mạch đó thì chắc là phải chạy mua linh kiện dài dài! Chấp nhận là ở đây để cho mọi người chủ động tìm hiểu đi nữa thì cũng phải có nền tảng để mà dựa theo!
Còn 1 điều nữa mình muốn gửi đến những người đã từng đọc luồng này làm thành công mà không chịu chia sẻ cho mọi người là "Đừng có chỉ biết nhận, mà hãy biết chia sẻ"
để đi đầu phong trào mình xin chia sẻ mạch công suất của mình làm và đã test chạy rất tốt!
+chạy ở PWM 20k và duty đáp ứng từ 0 đến 95%
+chống quá dòng và deadtime phần cứng là 3us
+ OPTO cach ly high speed 6N137 10MHZ
+Nguồn nuôi chia làm 2 nguồn: 15V cho driver và 0V đến 100V cho động cơ!
+Có chế độ shutdown
Nơi mua linh kiện:
OPTO 6N137 + IR2110 Mua ở tiệm bên phải tiệm Ngọc nhìn từ trước vào giá 17K và 20k;
Cách linh kiện dán trong mạch mua tại chip lê trần 88 đường nguyễn kim!
file .zip các bạn down về bỏ đuôi zip di và mở bằng orcad layout!
Hy vọng sẽ giúp ích được cho mọi người!
http://dientuvietnam.net/forums/atta...2&d=1255919116
http://dientuvietnam.net/forums/atta...1&d=1255918788

nguyenbahai 10-05-2010 03:43 PM

Trích:

Nguyên văn bởi greenfield (Post 29679)
Em đang định làm mạch điều khiển động cơ dùng L298 bác nào có sơ đồ úp lên cho em xem với. Chúc mọi người vui vẻ!

Bạn có thể xem tài liệu L298 tại đây (tiếng Việt) và tự làm một cái driver với giá vài chục ngàn.
http://vagam.dieukhien.net/bibliogra...&name=DSH00001

Hoặc nếu không thích tự làm thì có thể mua tại đây dùng IC 18200 (sản phẩm do nhóm của mình sản xuất và bán, nếu bạn khó khăn tài chính thì apply chương trình Bạn và Hocdelam thì có thể mua giá rất rẻ < 3-8USD).
http://sanpham.hocdelam.org/index.ph...tid=1:hang-doc

http://sanpham.hocdelam.org/images/s...20version2.jpg

xinhgai1010 15-05-2010 08:42 PM

các bác làm xong thì share cho mọi người chiêm ngưỡng nhé !

vanmanh1988 11-06-2010 05:04 PM

mấy bác cho em hỏi tí.tại sao khi sử dụng động cơ dc thì anh fall không đồng ý sử dụng động cơ có bộ giảm tốc.
em thấy động cơ có bọ giảm tốc thì làm tăng moment tải đầu ra rất nhiều mà.
mong các bác chi cho.

inoob 13-07-2010 02:40 AM

Mấy cái tải sắt (như hình sau) làm thế nào (hay mua ở đâu) thế ạ?
http://i32.photobucket.com/albums/d2...nam/Anh024.jpg

emilvv 14-07-2010 07:24 PM

nêd help
 
please send me project files to tét the DC sẻvo ..

emilvv [ @ ] gmail.com

nanshi90 13-09-2010 11:02 PM

em chỉ biết về AT89C51 , AT89C52, 8051 chứ PIC thì chưa biết gì hết vì không được học, để tìm hiểu và đi sâu về pic thì tôi phải bắt đầu từ đâu vậy các bạn? Xin hãy giúp tôi với, tôi cảm ơn rất nhiều! Tiến Tuyên
tientuyen2010@yahoo.com

semipower 14-09-2010 09:53 AM

Bạn đã biết AT (hoặc một dòng VDK nào đó) thì việc học PIC sẽ không gặp nhiều khó khăn. Ngay trên diễn đàn này cũng có nhiều thông tin cho bạn. Vì vậy điều đầu tiên là bạn phải tìm đúng "luồng", không post nhầm.

dangvanchanh 17-10-2010 04:54 AM

tham gia
 
Trích:

Nguyên văn bởi falleaf (Post 3497)
Hiện nay, diễn đàn chúng ta đã có một số thành viên là các anh đang học và đã tốt nghiệp Tiến sĩ tham gia giúp đỡ hoạt động cộng đồng (anh Nam, anh Phong, anh Hùng, anh Lâm).

Thiết nghĩ rằng một số bài toán mang tính chất cơ bản về các lĩnh vực: Điều khiển, Robot, và công suất là những điều rất cần thiết và cơ bản. Chúng ta không chỉ nên trao đổi không thôi, mà nên có những bạn sinh viên theo làm thực tế và thực hiện những bài thí nghiệm mà chúng ta thảo luận ở đây.

Nếu làm được như vậy, chúng ta sẽ có thể có những tư liệu sống cho những công việc tiếp theo.

Một thí dụ điển hình, đó là bài toán điều khiển PID cho động cơ DC chẳng hạn. Chúng ta cứ phải nói đi nói lại mãi về bài toán này một cách rất mất thời gian. Chính vì để không mất thời gian nữa, tại sao chúng ta không cùng nhau làm một bài thực hành, trong đó các anh sẽ đứng trên quan điểm của mỗi người, hướng dẫn làm thế nào để thực hiện một bộ điều khiển PID cho động cơ DC, từ việc mô phỏng, tính toán và giảng giải.

Nhiệm vụ của các bạn sinh viên, đó là thực hành, và chụp hình lại sản phẩm của mình, công bố các thiết kế mà các bạn đã học và đã thực hiện được, làm tư liệu cho picvietnam. Điều này vô cùng quan trọng.

Còn rất nhiều bài toán dạng kinh điển như vậy.

Yêu cầu:
- Các bạn phải làm việc (yêu cầu này là số 1)
- Các bạn cần phải tự trang bị phần cứng thí nghiệm (riêng về PIC để làm, picvietnam sẽ chỗ trợ cho các bạn PIC để làm, còn lại các phần cơ khí, các bạn phải tự làm).
- Cần có đôi chút hiểu biết cơ bản về lập trình PIC, biết sơ sơ về module PWM, sơ sơ về encoder, sơ sơ về động cơ DC ... (ý F nói ở đây, đó là chúng tôi sẽ hướng dẫn các bạn đi từng ly từng tí, để đi đến một kết quả hoàn toàn đầy đủ).

Công việc phải làm:
- Mua một động cơ DC, càng to càng tốt (tuỳ theo khả năng và số tiền có thể), thực ra to thì nó đẹp, và các đặc tính, dải vận tốc có thể nhìn rõ ràng hơn, không sử dụng hộp số, nhưng phải có encoder. Encoder độ phân giải càng cao càng tốt.
- Mua một cục sắt gắn vào trục động cơ, làm thành các cục khác nhau như sau: cục trụ tròn, cục trụ vuông, cục trụ chữ nhật, và một cục méo tùm lum, gắn vào trục động cơ để làm tải.
- Thiết kế mạch điều khiển động cơ DC (làm mạch in, làm càng đẹp càng tốt, nhớ sử dụng PIC, dsPIC càng tốt nếu thích).
- Tất cả gắn trên một cái bệ, thích làm bệ gì cũng được.

Đó là công việc về phần cơ mà các bạn phải làm. Giải đáp luôn phần chi phí, các bạn làm xong, hoàn toàn có thể giữ sản phẩm của mình, vì tiền các bạn bỏ ra mua đồ. Riêng PIC, picvietnam sẽ hỗ trợ các bạn, mỗi người tham gia dự án 2 con PIC để làm việc.

Chúng tôi sẽ xem xét lại chi phí có thể, và có thể cung cấp thêm một số công cụ khác để các bạn làm việc nữa. Nhưng việc này để sau.

Trong quá trình làm, yêu cầu các bạn thường xuyên cung cấp hình ảnh, tài liệu, thiết kế, source code... tất cả, vì đây là một dự án mở.

Cuối cùng, sau khi các bạn làm xong hết mọi thứ, các bạn có thể bán lại sản phẩm cho picvietnam để picvietnam làm sản phẩm trưng bày, hoặc có thể giữ lại làm kỷ niệm tuỳ thích.

Picvietnam thực sự muốn mua lại mô hình đó, nếu các bạn làm ra và các bạn học được chút gì đó, vì sau này, cũng với mô hình đó, chúng ta còn có thể làm các bộ điều khiển khác nữa, và mô hình sẽ được picvietnam lưu giữ, điều này sẽ rất tốt.

Tiếc rằng hiện nay picvietnam quá thiếu người ... ở Vietnam :D.. nên không thể làm được các mô hình này, và vì vậy, chúng tôi cần các thành viên sinh viên tình nguyện, tham gia vào hoạt động này.

Bạn nào có nguyện vọng, đăng ký trực tiếp trên diễn đàn, chúng ta sẽ cùng thực hiện.

may dai ca cho e tham gia nua...dang tim hieu PID

blackmask 20-10-2010 12:31 PM

Không biết mục này còn hoạt động không vậy ?

blackmask 20-10-2010 12:41 PM

1 Attachment(s)
Kì này có làm cái đồ án hơi giống cái này nhưng mà điều khiển vị trí của vít me -đai ốc
Vừa mới thiết kế xong phần cơ khí.Đợi thi xong giữa kì làm tiếp phần điện với giao tiếp máy tính nữa,nhưng không biết có kịp không
Sau đây là mô hình của mình:

nguyenthang 01-11-2010 11:01 AM

Trích:

Nguyên văn bởi falleaf (Post 3517)
Như vậy rất hay rồi, các bạn khi viết bài, đăng ký chính thức luôn đi, hãy xác định rõ bằng câu: "mình tham gia". Bởi vì nhiều khi các bạn còn lưỡng lự, chúng ta sẽ phải mất nhiều thời gian để xác định rõ hướng.

F tính sơ sơ chi phí mà các bạn phải đầu tư để các bạn xem rõ:

Động cơ, giá khoảng 100K/cái.
Mạch chạy PIC, trên đó có bộ driver điều khiển động cơ đơn giản (giai đoạn thiết kế mạch điều khiển động cơ DC, hiển nhiên chúng ta có anh Nam đủ khả năng hướng dẫn, nhưng F muốn các bạn tự sáng tạo, hoặc tự học, anh Nam sẽ tư vấn trực tiếp trên đây, mọi thiết kế phải được công bố thì mới được tư vấn, không trả lời thư riêng nữa.) Mạch này từ 100 - 200K (2 con PIC sẽ được picvietnam cung cấp), nên có thể các bạn chỉ tốn khoảng 100K cho việc làm mạch in và mua mấy con FETs thôi.
Các bạn phải mua một bộ encoder tốt, gắn vào động cơ, có thể ở tầm khoảng 500xung/vòng (để có thể đọc lên tới 2000 xung/vòng). Loại này, hồi trước F mua giá là 70K (có kèm một cái động cơ nhỏ 502 xung/vòng), nhưng bây giờ thì không biết thế nào rồi, qua đợt robocon không biết giá có biến động gì không?
Sau nữa, các bạn ra chợ, mua mấy cục sắt cân ký, tốt nhất nên chọn mấy cục tròn và vuông sẵn có, mua như vậy thì nó rẻ. Đây là đối với những bạn muốn làm bộ thí nghiệm tương đối lớn. Các bạn sẽ tốn khoảng 100K nữa cho phần cơ và mấy thứ linh tinh.

Như vậy, các bạn sẽ tốn tổng cộng khoảng 400K để làm một bộ thí nghiệm đẹp, chất lượng cao.

Có lẽ F sẽ xem lại, chúng ta sẽ chọn 877A hoặc 16F91x để thực hành, vì đây là dòng PIC thông dụng nhất, nó sẽ là bài thí nghiệm kinh điển, vả lại, về mặt tính năng hoàn toàn oki cho thí nghiệm này, dùng vi điều khiển 8bit là quá đủ. Ai có các thiết kế đặc biệt, công bố, chất lượng mà mọi người cảm thấy đạt yêu cầu (thiết kế mạch in, mạch nguyên lý cho driver tốt), muốn làm bằng dsPIC, picvietnam cũng sẵn sàng hỗ trợ.

Đó là tất cả số tiền mà các bạn phải chi, để thực hiện phần cứng thí nghiệm.

Riêng bạn nào có ý định làm việc với picvietnam (sau khi F về nước và sang Hàn lại, sẽ mở khoá đào tạo mod lần 2, ý đồ rất rõ ràng, càng ngày càng chuyển giao diễn đàn lại cho những người trẻ hơn, có tâm huyết, xây dựng đội ngũ mod hùng hậu hơn), muốn bắt đầu làm việc với picvietnam và ở SG, đến gặp trực tiếp anh Đăng, hoặc bạn Chính. Theo F biết, cộng với cái encoder của anh Phứơc hỗ trợ, thì hiện picvietnam có 2 cái encoder độ phân giải cao, rất phù hợp cho dự án này.

(*Rất xin lỗi các bạn ở HN lần này, vì các bạn ở HN, đã có may mắn hơn ở HCM khi có bác BA mở lớp dạy PIC định kỳ, trong HCM không có, vậy thì lần làm thí nghiệm này, các bạn nhường cho các bạn HCM nhé, nhưng các bạn vẫn có thể tham gia tự làm bình thường, chỉ là không làm việc trực tiếp với nhóm PIC ở HCM thôi).

Tất nhiên, các bạn sẽ làm việc trực tiếp với Nguyễn Trung Chính (mod) để xây dựng mô hình mẫu cho picvietnam.

Chú ý, mô hình mẫu, cố gắng làm thật đẹp, thật bắt mắt.

Sau khi làm xong mô hình, picvietnam chỉ xin phép mượn các bạn mô hình để chụp hình mà thôi, và mong rằng các báo cáo thí nghiệm của các bạn, cũng có các hình ảnh thực tế. Khi đó, chúng ta sẽ tuyên bố chính thức xoá sổ bài toán điều khiển PID cho động cơ DC.

Dự án này sẽ còn được tiếp tục dài hạn, với các bộ điều khiển khác nhau, cũng chỉ cần thực hiện trên cùng một mô hình.

Tất cả những gì thảo luận, các anh ở đây sẽ thảo luận trước mặt các bạn luôn, và hoàn toàn không có thảo luận riêng. Có thể khi làm việc trong trường, các thầy của các bạn cho rằng bài toán quá dễ, không hướng dẫn kỹ lưỡng, nhưng đây là một sản phẩm của picvietnam, và các bạn cũng là những người đóng góp công sức, tiền bạc vào đó, chúng ta đã làm, thì làm tới cùng, làm cho ra hồn ra cháo luôn.

Cụ thể, phần điều khiển, có anh Phong, anh Nam, bạn ami, và F sẽ hỗ trợ, phần mô phỏng, anh Phong, anh Nam và ami, phần lập trình PIC, anh Nam, ami và F. Các anh Chung Tấn Lâm (mod, nhưng đang bận đi công tác), anh Hải Âu cũng rất thường vào với chúng ta, cũng làm về điều khiển.

Như vậy, không có lý gì chúng ta không thể làm được việc. Chỉ cần quan trọng, các bạn vững chí, và mong muốn một sản phẩm là một bộ thí nghiệm hoàn thiện, chúng ta sẽ làm, cùng nhau làm.

Chúc vui.

ý tưởng hay thiệt.

tôi đang muốn làm mạch điều khiển động cơ điện DC (dùng nguồn từ 5 - 24 VDC). sử dụng cổng song song để ghép nối, code phải gán phím T để tăng tốc, phím G giảm tốc, Phím D để đảo chiều, phím Q để dừng đông cơ.

hiện tại mình định làm mạch dùng: IC cầu H lm 298 và Pic, vậy có cần phải lắp thêm tầng công suất để cấp nguồn cho tải không?

mong các bác chỉ giáo thêm. Xin đa tạ các bác trước!

- nguyenthangcv@gmail.com.
- langtusay83@yahoo.com.vn
- DT 0986 703 229

tuyetmuavienxu 10-01-2011 08:14 PM

Các anh kiên trì thiệt. Làm đề tài này mấy năm luôn :D

prolove101189 12-01-2011 09:57 PM

anh ơi em ở xa lắm nhưng niềm đam mê về điện tử thì em có. các anh có thể up lên từng bước làm để giúp mọi người yêu thích ở xa cùng làm không?

hangocminh1989 31-03-2011 11:09 AM

Trích:

Nguyên văn bởi bluepine (Post 5755)
Chào mọi người, em hiện đã điều khiển được động cơ dùng PID, số liệu khá chính xác (sai lệch về tốc độ rất nhỏ). Tuy nhiên chỉ điều khiển được với một tải cố định thôi, khi gỡ cục tải ra thì không còn đúng nữa nên em nghĩ các thông số PID thay đổi khi tải thay đổi. Anh F cho em hỏi có cách nào tính các thông số PID theo sự thay đổi của tải không?
Đây là chương trình em đã chạy tốt với 1 tải cố định

Code:

#include <16f877a.h>
#fuses HS,NOPROTECT,NOWDT,NOBROWNOUT
#use delay (clock = 20000000)
// Giao tiep vi dieu khien
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, bits=8)        // Giao tiep RS232

#include <stdlib.h>
#include <string.h>
#include <math.h>
#include<ctype.h>

#byte PR2 = 0x92

int16 e2;
int16 e1;
///////////////////////////////////////////////////////

int16 v_set = 250;

/////////////////////////////////////////////////////////
int16 v_cur;
int16 e_sum;
int16 e_del;
int16 flag_timer1;


///////////////////////////////////////////////////////////
unsigned long kp =5;
unsigned long ki = 0.62;
unsigned long kd = 10;
////////////////////////////////////////////////////////////


int16 pw_duty;
int16 counted_round_value;
int16 temp_timer0;
int16 update_counted_round_value;

#byte TMR0 = 0x01      //timer0 REGISTER
#byte TMR1_L = 0X0E
#byte TMR1_H = 0X0F

#define START_VALUE_TIMER0  55  //tri khoi tao ban dau cua timer0 55, so xung dem duoc moi khi ngat la 255 - 55
#define START_VALUE_TIMER1    15535  //tri khoi tao ban dau cua timer1 65536-15536

#INT_TIMER0 // ngat timer0 tang bien len 1
void TIMER0_int()
{

      set_timer0(START_VALUE_TIMER0);
      counted_round_value++;

}

#INT_TIMER1 // ngat timer0 tang bien len 1
void timer1_int()
{

      set_timer1(START_VALUE_TIMER1);


      temp_timer0 = get_timer0();

      if (temp_timer0 == 0){
      temp_timer0 = 255;
      }
      v_cur = counted_round_value*400 + 2*(temp_timer0 - START_VALUE_TIMER0);
      set_timer0(START_VALUE_TIMER0);
      counted_round_value = 0;
      //printf("%ld\t",pw_duty);
      flag_timer1 = 1;
}


void init_timer0()
{

  setup_timer_0(RTCC_EXT_H_TO_L | RTCC_DIV_2); // timer0 dung xung ngoai va chia xung vao


  setup_timer_1(T1_INTERNAL | T1_DIV_BY_4); // moi lan tran timer1 la 50000*4* (1/5) uS = 40ms

  set_timer0(START_VALUE_TIMER0);
  set_timer1(START_VALUE_TIMER1);
  enable_interrupts(GLOBAL);
  enable_interrupts(INT_TIMER0);
  enable_interrupts(INT_TIMER1);
}

void init_PWM(int16 frequency){

  setup_ccp1(CCP_PWM); // initiate PWM
  PR2 = 20000000/4/frequency - 1; // set PWM period

  setup_timer_2(T2_DIV_BY_1,255,1);  // initiate time 2  The cycle time will be (1/clock)*4*t2div*(period+1)
                                      //  (1/20000000)*4*1*(255+1) =  51.2 us( will over flow every 51.2 us, will intrup every 51.2 uS or 19.5 khz;

}

void cal_pid(){

long temp_kp;
long temp_ki;
long temp_kd;
  e2 = v_set - v_cur;
  e_sum += e2;
  e_del = e2 - e1;
  e1 = e2;

  temp_kp = kp*e2;
  temp_ki = ki*e_sum;
  temp_kd = kd*e_del;
  pw_duty +=temp_kp;

  if (pw_duty <1000)
    pw_duty += temp_ki;
  if (pw_duty <1000)
    pw_duty += temp_kd;
  if (pw_duty <256) // vi khi pw_duty <256 thi PWM chi dieu rong xung 8 bit                                                                                    /                        //chu khong phai  10 bit,
    pw_duty = 256;
  if (pw_duty >1000) // bao hoa
    pw_duty = 1000;

printf(" \t%ld", v_cur); // truyen toc do xung ve may tinh hien thi tren Hyperterminal
}

void main()
{
  int8 timer0_value;

  init_timer0();
  init_PWM(19500);

  while(true){
      if (flag_timer1 ==1){
      flag_timer1 = 0;
      cal_pid();
      set_pwm1_duty(pw_duty);
      }
  }
}

mến

bạn ơi, cái file mạch của bạn mình đọc không được, bạn xem lại được không, mình sài orcad 9.2
thanks

quocyenkcd 01-05-2011 05:18 PM

Ai có code C lập trình cho PIC điều chế PWM cho bộ inverter để có điện áp đầu ra dạng sin tần số 50 Hz không?

Hard 23-05-2011 09:47 AM

Trích:

Nguyên văn bởi quocyenkcd (Post 44561)
Ai có code C lập trình cho PIC điều chế PWM cho bộ inverter để có điện áp đầu ra dạng sin tần số 50 Hz không?

Vụ này bác qua diễn đàn điện tử tham khảo nhé, không nên post bài ở đây làm loãng chủ đề. Làm xong thì tui sẽ open source cho các bác góp ý.

Quay trở lại chủ đề, đề tài này đã có ai làm xong chưa? còn tiếp tục không vậy? Tui cũng rất muốn tham gia vụ này nhưng ở chỗ tui không thể nào kiếm được cái động cơ nào để làm thực tế cả.

songmai 11-11-2011 02:03 PM

có bác nào từng làm hay nghiên cứu về PID vị trí không ah..........giúp em với @_@ em đang làm đồ án về nó mà chưa biết giải thuật như thê nào.........mong các bác giúp đỡ em @_@


Múi giờ GMT. Hiện tại là 02:39 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