![]() |
Trích:
unsigned long ki = 0.0092. nếu khai báo như thế này thì ki là số nguyên phải không? Nếu vậy thì ki ở đây sẽ bằng 0. Không biết tôi có sai chỗ nào không. Các bạn góp ý nhé :D |
Hai vấn đề bạn jean thảo luận đều đúng.
Nếu không dùng directive #TYPE signed để định nghĩa lại kiểu mặc định là signed thì các khai báo int16 đều được CCS C hiểu ngầm là số không dấu => có vấn đề, vì sai số nên được biểu diễn bằng số có dấu. kd, ki đều dùng kiểu số thực khi đặt giá trị, nhưng lại khai báo là unsigned long. Có 2 khả năng xảy ra, CCS C sẽ chuyển kiểu biểu thức thành kiểu của biến (có vấn đề) hay chuyển kiểu của biến thành float để có thể chứa giá trị của biểu thức (không có vấn đề). Tôi không dùng CCS C nên không thể đánh giá được. Nhờ các bạn khác có sử dụng CCS C đánh giá vấn đề này. Nói chung, không nên để trình biên dịch làm chủ chúng ta, mà chúng ta nên làm chủ trình biên dịch, tức là hiểu rõ phải viết code C ra sao để có được kết quả mong muốn. Nếu chưa hiểu được trình biên dịch sẽ dịch code đang đặt nghi vấn ra sao, tại sao chúng ta không viết code thử nghiệm, biên dịch nó, và đánh giá kết quả bằng việc mô phỏng/thử nghiệm. Thân, |
cầu h dùng ir2101
1 Attachment(s)
Xin các cao thủ chỉ giúp xem mạch cầu h này có vấn đề gì không, cách chọn CV1,CV2 như thế nào
|
Trích:
Giá trị CV2 có thể chọn là 1 uF, dùng tụ tantalum 16 V (hoặc 25 V), đặt càng gần IR2101 càng tốt. Thân, |
Hỏi Về Cầu H Ir2101
Nhân tiện xin hỏi nếu làm cầu h bằng ir2101 thì chất lượng có cao không vì con này kích dòng hơi nhỏ (0.3A). Nếu thay BYV79E bằng n5819 thì có sao kô vì byv79e khá mắc. Cầu h này có thể chạy 20khz được không (nếu bỏ các bộ đệm BJT).
chúc thắng lợi! |
Trích:
Có thể dùng 1N5819 để thay cho BYV79E, tuy nhiên điện áp của rail nguồn của cầu H không nên vượt quá 40 V (tốt nhất là không vượt quá 35 V). Cầu H này có thể chạy tốt ở tần số 20 kHz. Thân, |
các anh cho em hỏi nếu dùng LM393 để nâng điện áp PWM 5v lên 12V rồi đưa vào IR2101 mà không cần dùng opto có được không, như vậy chắc là sẽ nâng được tần số PWM lên phải không ạ
|
Trích:
Việc dùng optocoupler hay không là tùy người thiết kế. Câu trả lời cho câu hỏi của bạn là được: bạn có thể nối thẳng tín hiệu logic đến ngõ vào của IR2101, không cần qua optocoupler. Tất nhiên khi không có optocoupler thì giới hạn tần số do đáp ứng chậm của optocoupler sẽ không còn. Nói vậy không có nghĩa là muốn nâng tần số lên bao nhiêu cũng được, vì còn nhiều yếu tố ràng buộc khác. Thân, |
Các bác giúp em với
1 Attachment(s)
Em có sơ đồ mạch trong file đỉnh kèm. Em muốn điều khiển tốc độ 4 động cơ dùng 2 con slave Pic 16f876a và dùng L298.
|
cảm ơn anh, em cứ tưởng phải đúng 12v mới được, em cũng muốn ghép qua lm393 để cách li luôn giữa mạch pwm và mosfet vì lm393 có dạng open drain mà
|
Trích:
Vậy còn dòng, đk làm chi, và như thế nào.vận tốc hay vị trí có thể làm thông qua encoder.Dòng thì sao.Em coi các bài hướng dẫn mô hình( tut trên dieukhien.net) thì thấy làm phần dòng,nhưng thực tế thì ko biết áp dụng như thế nào.Các bác giúp dùm.. |
|
Trích:
Thân, |
đại khái là mô hình trên Mfile và simulink, đk dòng và số vòng quay như mong muốn.
Nhưng em ko hiểu mình đk dòng làm gì khi đk số vòng quay và vị trí, thực hiện 3 vòng như bác sphinx nói trên trong khi với PIC chỉ cần đọc encoder, tính sai số, viết hàm PID thế là có số vòng hay vị trí mong muốn. |
Có lẽ như bác nam nói, mọi người đã hoàn thành cả rồi.
|
Tôi đang làm đồ án về PID dùng để điều khiển nhiệt độ lò nhiệt, thiết bị sử dụng là màn hình HMI có tên là ST402 của hãng Pro-face. Nhưng cái khó là phải viết Script cho PID. Có gì mong anh em chỉ giáo! Cảm ơn nhiều!
|
các bác ơi, vậy là cái đề án này vẫn còn đang dở dang ah, đã có ai làm thành công chưa ah, các bác post lên cho newmember bọn em học hỏi với
|
bác F chủ trì vụ này sao ko cho bọn em thêm ý kiến j thế, em đọc hết 28 trang rồi mà vẫn thấy dự án bỏ ngỏ, đến thời điểm này là 2 năm rồi mà chưa thấy có một bài báo cáo hoàn chỉnh, hay 1 bạn nào đó thông báo đã làm chạy thành công.
Khẩn mong bác F cho thêm ý kiến, nếu có bác post luôn bài báo cáo thì tốt quá Thân |
Vấn đến này đã giải quyết rồi mà, bạn đọc kỹ lại các trang và xem trang 20,21,22.
|
em đã xem các trang đó rồi, nhưng mọi nguòi chưa ai chạy đuọc hoàn chỉnh cả, mà cũng ko co post bài kiểu như báo cáo lên, các sơ đò mạch, thuật toán.... Rất mong anh chủ trì vụ này tổng kết lại cho bọn em với,
|
anh F ơi cho bọn em chút ý kiến đi, bọn e đang mong a từng ngày 1
|
HD để tài
Trích:
|
Các bác cho em hỏi ý nghĩa những dòng sau(copy trong code mấy bài trên ):
1) v_set = 350; v_set là tốc độ động cơ tính bằng xung hay là tính bằng vòng/phút hay tính bằng gì? 2) Các thông số Kp,Ki,Kd lấy ở đâu? unsigned long kp =2.5; unsigned long ki = 0.0092; unsigned long kd = 0; 3) Giải thích giùm em đoạn code sau: void cal_pid() { 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 } |
em muốn tham gia quá.nhưng không biết đăng kí thế nào đây! với lại em mới vào học pic gần đây nên còn gà lắm.mong các bác giúp đỡ.
|
chà! vừa pót thì lại sai rum. mong các mod bỏ qua. em muốn tham gia thí nghiêm mà bác F đưa ra.nhưng không biết đăng kí thế nào đây! với lại mới học pic nên còn gà lắm mong các bác chỉ giáo. em rất muốn tham gia.
|
em cũng muốn tham gia nhưng thấy mình hơi muộn hơn mọi người, ko biết bây giờ tham gia có đuợc ko vậy bác F? em cũng đang cố gắng xem lại các trang cũ để bắt kịp mọi người, nếu có thể tham gia được,khi nào có mô hình em sẽ post lên để cùng a e trong diễn đàn cùng trao đổi
|
Trời đất
Như vậy thì còn j tốt bằng hả anh.Em cũng đang làm một đề tài về robot cứu nạn .Nếu em muốn tham gia thì có được không hả anh.Em phải làm những gì để có thể tham gia được ,mong anh chỉ bảo. Cảm ơn anh nhìu nhìu nhé |
có bác nào có tài liệu liên quan tới mạch cầu H thì giúp với.thanks các bác nhiều nhiều
|
Trích:
|
Chủ đề này đang rất hay sao ko thấy các bác thảo luận nữa vậy? Tui đang cố học pic để có thể tự làm một bộ, mong các bác thảo luận tiếp để anh em còn học hỏi chứ!
|
Cái chủ đề này xong lâu rồi bạn ơi. Cố gắng xem lại mà làm. Mình thấy có đủ hết rồi đó.
|
3 Attachment(s)
em mới thiết kế mạch điều khiển động cơ mà không biết có hoạt động ổnko, mong các cao thủ góp ý giùm e,thanks every body
|
Trích:
Thân, |
em chào anh Hiệp , em đang học lớp CĐT do thầy Chung Tấn Lâm phụ trách . sáng nay anh đã đứng lớp dạy tụi em đó . em rất muốn tham gia chương trình mà anh đã đề ra này . anh cho em đăng ký với nhé . em có 1 cái động cơ servo 400 xung /vòng rùi . em đang đăng kí mua PIC 16f887 mà anh giới thiệu hồi sáng đó , còn mạch nạp thì em dự định sẽ tự làm thông qua tìm hiểu trên PVN (có rất nhiù nên em chưa biết chọn loại mạch nạp nào , anh có thể cho em ý kiến ko ạ ? ) . em đang tìm hiểu về Matlab và giải thuật PID . còn về mạch điều khiển thì em đang xoắn óc đây ạ , chưa đâu vào đâu hết (em chỉ mới tìm hiểu hk này thôi ) . mong các anh chỉ dạy thêm ạ .
|
em chào anh Hiệp , em đang học lớp CĐT do thầy Chung Tấn Lâm phụ trách . sáng nay anh đã đứng lớp dạy tụi em đó . em rất muốn tham gia chương trình mà anh đã đề ra này . anh cho em đăng ký với nhé . em có 1 cái động cơ servo 400 xung /vòng rùi . em đang đăng kí mua PIC 16f887 mà anh giới thiệu hồi sáng đó , còn mạch nạp thì em dự định sẽ tự làm thông qua tìm hiểu trên PVN (có rất nhiù nên em chưa biết chọn loại mạch nạp nào , anh có thể cho em ý kiến ko ạ ? ) . em đang tìm hiểu về Matlab và giải thuật PID . còn về mạch điều khiển thì em đang xoắn óc đây ạ , chưa đâu vào đâu hết (em chỉ mới tìm hiểu hk này thôi ) . mong các anh chỉ dạy thêm ạ .
|
Chào mọi người không biết luông này còn hoạt động không nhỉ,em đang rất cần bộ thông số của động cơ Nisca nhãn hiệu NF5475E . Em tìm trên trang web của Nisca nhưng thông số nó cho chỉ có momen xoắn , hệ số mômen km,chứ chẳng thấy J,b,La,Ra đâu cả . Bác nào có cho em xin với
Thanks! |
Luồng này kết thúc rùi sao các bác? Một kết thúc rất là "vietnam" mình :D : Lúc mới bắt đầu các bác giới thiệu đề tài rất hoành tráng bao nhiêu dự định,vơí những mục đích và tham vong lớn lao vậy mà kết thúc chỉ thế này thôi sao không có nổi một cái báo cáo thậm chí tối thiểu là cái kết luận đề tài xem là đã làm đc những gì ,mức độ thành công của đề tài đến đâu(hay các bác làm được thì giữ lại làm bí kíp cho mình luôn hi...:d) . Em đã kiểm tra lại một lượt từ đầu tới cuối luồng thì thấy có mỗi nhóm bác bluepine là đi gần tới cùng (phải chăng vì cái động cơ của bác đó có datasheet nên có được đủ các thông số?) em nói vậy vì thấy với các loại động cơ của các nhóm khác không có đây đủ thông số thì đều không có kết quả cuối cùng (chẳng hạn như nhóm của bác tinhthanthep em thấy tắt ngóm từ phần làm pid...). Em nghe nói phương pháp Ziegler – Nichols 2 không cần đến hàm truyền vẫn tính được các hệ số pid (trích nội dung:Thay bộ điều khiển PID trong hệ kín bằng bộ khuếch đại. Sau đó tăng hệ số khuếch đại tới giá trị tới hạn kth để hệ kín ở chế độ biên giới ổn định, tức là có dạng dao động điều hòa . Xác định chu kỳ Tth của dao động sau do suy ra các hệ số kp,ki,kd) không biết phương pháp này thế nào nhỉ . các bác cao thủ còn tâm huyết với đề tài này xin chỉ giáo cho em với
thanks |
Cho em hỏi: biểu thức toán học của PID là
Code:
U(t) = Kp*e(t) + Ki*tich_phan(e(t)) + Kd*vi_phan(e(t)) ; (1) Code:
duty = duty + Kp*e2 + Ki*e_sum + Kd*e_del; (2) Em có làm thử theo công thức thứ (2) mà mới để Kp = 1; Ki = Kd = 0; mà động cơ đã vọt lố, giao động mạnh rồi, phải dùng tay ghì bánh xe lại (tải rất lớn) thì động cơ mới đỡ giao động ??? |
http://i13.photobucket.com/albums/a2...screte_PID.jpg
Trên đây là công thức tính PID (cấu trúc song song) rời rạc đã được đề cập đến trong rất nhiều sách. Kp, Ti, Td: thông số của PID Ts: chu kỳ trích mẫu <code> // sense: đọc dữ liệu từ sensor ek = ref – pv; // pv = present value // calculate & anti-windup limits uk = theo công thức; if ( uk > ukmax ) uk = ukmax; else if ( uk < ukmin ) uk = ukmin; // update biến trạng thái ek-2 = ek-1; ek-1 = ek; uk-2 = uk-1; uk-1 = uk; // actuate: ghi dữ liệu ra actuator outPortUk.data()->Set(uk); // ví dụ 1 lệnh gửi dữ liệu ra output port </code> Chú ý tuần tự thực hiện nên là: sense(), calculate(), update(), actuate(). Astrom and Wittenmark có đề xuất là “writing first”, khi đó tuần tự thực hiện sẽ là actuate(), sense(), calculate(), update(). Tuy nhiên trong vấn đề này mỗi người có một quan điểm khác nhau. |
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, |
Múi giờ GMT. Hiện tại là 06:33 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