1. Chu kỳ lấy mẫu = 10ms (T quá ngắn thì PWM ko ok, T quá dài thì nó ko mượt) 2. Thông số PID chỉ đúng tại setpoin A nếu đặt setpoin B thì PID sẽ ko còn hiệu nghiệm 3. Nêu điều xung 80% cho mạch cầu H (vì...) 4. Mục tiêu điều khiển tốc độ động cơ là phải làm sao thay đổi setpoin trong phạm vi làm việc thì động cơ vẫn hoạt động tốt trên những thông số PID đó
Chào bạn và thầy. Góp ý thêm là mình nên hạn chế ngay từ bước tính error. Bởi khống chế ở bước điều xung sẽ là quá muộn nếu thông số error quá lớn. Ví dụ : Set tốc độ là 150, như vậy error maxium sẽ là 255-150 = 105. Nhưng nếu error quá lớn, thì hệ thống đã chạy quá điểm set point và bắt đầu giảm dần nhưng chưa thể giảm về 105. Khi đó hệ thống sẽ mất rất nhiều thời gian để ổn định.
em thắc mắc chỗ: toc_do = xung đo đc/1500 * (1/T) * 60 (v/phút) theo em thì phải nhân T dưới mẫu vs 10^-3 thì mới ra đc (v/phút) chứ ạ : toc_do = xung đo đc/1500 * (1/T*10^-3) * 60 (v/phút)
Thưa thầy em tìm hiểu thì thấy encoder còn có loại 1 xung tín hiệu ra vậy thì nếu dùng loại 1 xung thì ta đưa chân thu của Encoder vào chân ngắt(2) hay vào chân đếm (4).mong thầy giải thích e cám ơn.
Thầy ơi cho em hỏi là số xung sau giảm tốc của động cơ e là 374 xung , tỷ số truyền là 1:34 thì em suy ra hộp số của em là 374 * 34 số xung / vòng hả thầy. Em xin cảm ơn
tính theo lý thuyết thì là vậy. Nhưng em coi chừng trường hợp con vi xử lí em đọc kịp xung encoder. nếu nó đọc sót xung thì lý thuyết sẽ ko còn giống với thực tế. còn nếu nó bắt kịp thì giống như em nói
nó ko theo kịp nhưng mà em biết nó ko he kịp bao nhiêu mà dám lấy liều 1500?? Thường ng ta giảm thiểu bằng cách giảm tốc độ động cơ lại, hoặc thông qua thực nghiệm để tính % số xung bị bỏ sót
Tại sao không sử dụng các phương pháp thống kê để đánh giá chất lượng điều khiển , ví dụ: độ lệch chuẩn ( standard deviation), giá trị trung bình ( average)....; để đánh giá mà chỉ nhìn vào đồ thị để đánh giá 1 cách cảm tính
chính xác là như vậy. Nhưng nó đòi hỏi phải hiểu cao hơn nữa, sâu hơn nữa, đi sâu vào hàn lâm. Nó chưa phù hợp dễ hiểu dễ làm để cập nhật nhanh cho các bạn sinh viên hay những người cần nắm nhanh giải thuật để thực hành những cái khôn quá phức tạp. Thực sự nếu có ai chịu khó làm những công trình như bạn nói mà up lên, share rộng rãi thì thật đáng quý
cho e hỏi e dùng động cơ DC encoder 334 xung không có hộp số ,lập trình điều khiển như thầy nhưng không được.vậy có phải dùng đúng động cơ có hôp số mới được k ạ?
Thầy có thể cho e xin code phần này được không ạ? Em có sử dụng code trên phòng thí nghiệm điều khiển tự động của trường nhưng báo lỗi Demxung không được khai báo trong phần này
bạn ơi cho mình xin code, với ảnh nối chân được không ạ; mình code y như video mà bị lỗi; mình rất mong bạn cho mình xin tham khảo với, mình cám ơn; đây là facebook của mình facebook.com/PutinRusian hoặc gmail của mình nguyennamhoai911@gmail.com
Em đang lo , kì này chúng em không biêt làm phần này thế nào, nhà em thì khó khắn mà em mà không lam ra cái " PID điều khiển tốc độ động cơ thì em chết mất" , Thầy hướng dẫn cho em làm cái này được không ạ, thầy cho em di động, có gì em hỏi thêm được không ạ.
cố gắng đọc thật nhiều tài liệu, biết mình ko qua thì mình khổ thì em cố gắng lên, mạnh dạn hỏi và yêu cầu thầy giáo phụ trách môn trên lớp hỗ trợ. Thầy cũng cố gắng bên cạnh việc mưu sinh cũng sẽ làm clip hỗ trợ cho mọi người, trong đó có em mà
Thầy ơi cho em hỏi một chút với ạ. Làm sao mình biết được hộp số của mình là bao nhiêu xung/ 1 vòng ạ. Em cũng dùng động cơ encoder tương tự nhưng với loại 26 xung. vậy em muốn tính được hộp số của mình là bao nhiêu thì tính như thế nào ạ. Em cảm ơn thầy ạ. :)
1. Chu kỳ lấy mẫu = 10ms (T quá ngắn thì PWM ko ok, T quá dài thì nó ko mượt)
2. Thông số PID chỉ đúng tại setpoin A nếu đặt setpoin B thì PID sẽ ko còn hiệu nghiệm
3. Nêu điều xung 80% cho mạch cầu H (vì...)
4. Mục tiêu điều khiển tốc độ động cơ là phải làm sao thay đổi setpoin trong phạm vi làm việc thì động cơ vẫn hoạt động tốt trên những thông số PID đó
Cảm ơn thầy !!
Học điện tử, mà thấy Thầy làm mấy cái này muốn chuyển qua đktđ luôn quá!
điện tử chuyê sâu vào nghiên cứu bên trong mạch điện tử, còn tự đồng điều khiển thì có xu hướng ứng dụng điện tử có sẵn để thực hiện.
Cảm ơn ạ..
Chào bạn và thầy.
Góp ý thêm là mình nên hạn chế ngay từ bước tính error.
Bởi khống chế ở bước điều xung sẽ là quá muộn nếu thông số error quá lớn.
Ví dụ : Set tốc độ là 150, như vậy error maxium sẽ là 255-150 = 105. Nhưng nếu error quá lớn, thì hệ thống đã chạy quá điểm set point và bắt đầu giảm dần nhưng chưa thể giảm về 105.
Khi đó hệ thống sẽ mất rất nhiều thời gian để ổn định.
mõm
@@johnynguyen840 sao thế cu? Có vấn đề gì hả :)))
@@embeddeddevzone5605 cu cái dcmm
Video rất rõ ràng. Thưa thầy cho em hỏi hiện tại hệ thống này không có độ vọt lố.
vì động cơ này có gắn hộp số, độ lì cao hơn, nên vọt lố khó thấy hơn đó em
em thắc mắc chỗ: toc_do = xung đo đc/1500 * (1/T) * 60 (v/phút)
theo em thì phải nhân T dưới mẫu vs 10^-3 thì mới ra đc (v/phút) chứ ạ : toc_do = xung đo đc/1500 * (1/T*10^-3) * 60 (v/phút)
thầy cho em hỏi cái này dùng chuẩn giao tiếp gì vậy ạ
e chào thày ạ. thầy cho e hỏi nếu mình dùng thêm thuật toán điều khiển mờ nữa thì mình phải làm sao ạ. e cảm ơn ạ
cho e hỏi làm sao để thay đổi thông số PID mà adruno tự nhận mà ko phải chạy lại chương trình như a ko ạ.
a oi nếu e muốn điều khiển 3 động cơ thì xài bao nhiêu pid a
thầy cho em hỏi có cái lý thuyết nào tính cái thời gian lấy mẫu như 0.01s thầy nói ko ạ.em cảm ơn
thầy có làm clip về lý thuyết pid rời rạc, pid số tập 1, tập 2, em tìm trong playlist và xem nhé
Tại sao thầy bảo không dùng cầu H cũng dc nhỉ? PID nếu bị vọt lố thì làm sao hãm được đúng tốc độ.
cho em hỏi sao không thấy cách anh Hoàng thực hiện sử dụng TimerOne để xử lý thời gian lấy mẫu hay TimerOne để ngắt như thế nào ạ ?
vấn đề là em cảm thấy không hiểu TimerOne để làm gì ạ
@@sfsfsdfsdf9485 theo em nghĩ timeOne giống như millis thôi anh , có nghĩa là cứ 100 milli s nó sẽ chạy hàm pid đó 1 lần ạ
thank a million
Bạn hiểu chỗ tại sao lại xung ++ vs -- không?
thầy cho em hỏi ,,muốn kiểm tra số xung của 1 động cơ sau khi qua hộp số với ạ
động cơ chạy giật cục rung lên, và độ lọt vố rất lớn thì phải chỉnh sao hả a
nếu muốn gọi hàm PID ra sử dụng vào 1 thời điểm thì sao ạ, trong bài của thầy là nó chạy liên tục khi có ngắt cạnh xuống
Em làm như hướng dẫn nhưng k hiểu vì sao chân số 3 của adruino không có tín hiệu, động cơ không quay ?
Minh Hoàng Nguyễn sao em mô phỏng trên proteus mà không ra được tốc độ đặt
Thưa thầy cho em hỏi , cái phần giá trị tốc độ đặt em cho = giá trị adc từ triết áp để đk có được ko thầy
Anh có thể giải thích cho em hai hàm timer1.initialire()
Timer2.attachInterrupt() đk ko.em cảm ơn
nếu muốn động cơ quay theo chiều ngược lại thì sao, video chỉ mới được 1 chiều của động cơ
cho em xin code arduino với ạ. Video em nhìn ko rõ .
Thưa thầy em tìm hiểu thì thấy encoder còn có loại 1 xung tín hiệu ra vậy thì nếu dùng loại 1 xung thì ta đưa chân thu của Encoder vào chân ngắt(2) hay vào chân đếm (4).mong thầy giải thích e cám ơn.
Thầy ơi cho em hỏi là số xung sau giảm tốc của động cơ e là 374 xung , tỷ số truyền là 1:34 thì em suy ra hộp số của em là 374 * 34 số xung / vòng hả thầy. Em xin cảm ơn
tính theo lý thuyết thì là vậy. Nhưng em coi chừng trường hợp con vi xử lí em đọc kịp xung encoder. nếu nó đọc sót xung thì lý thuyết sẽ ko còn giống với thực tế. còn nếu nó bắt kịp thì giống như em nói
nguyen van dong hai vậy không theo kịp thì em lấy con số 1500 được k thầy ?
nó ko theo kịp nhưng mà em biết nó ko he kịp bao nhiêu mà dám lấy liều 1500??
Thường ng ta giảm thiểu bằng cách giảm tốc độ động cơ lại, hoặc thông qua thực nghiệm để tính % số xung bị bỏ sót
Dạ em cảm ơn thầy :)
thưa thầy làm sao biết tốc độ max của động cơ là bao nhiêu ạ
em nghĩ đó chính là thông số của đông cơ đó anh , anh xem encoder của anh là bao nhiêu RPM chính là tốc độ max ạ
a cho e hoi chut sao e cam mà nó k nhận port v a
Em lam thuat toan PD nhu sau co dung k thay:
tocdo=(xung/200)*(1/T)*60;
xung=0;
E=tocdodat-tocdo;
alpha = T*Kp + Kd;
beta = -Kd;
Output = (alpha*E + beta*E1)/(T);//delta T
E1=E;
alpha beta là thông số gì đấy b ơi
Tại sao không sử dụng các phương pháp thống kê để đánh giá chất lượng điều khiển , ví dụ: độ lệch chuẩn ( standard deviation), giá trị trung bình ( average)....; để đánh giá mà chỉ nhìn vào đồ thị để đánh giá 1 cách cảm tính
chính xác là như vậy. Nhưng nó đòi hỏi phải hiểu cao hơn nữa, sâu hơn nữa, đi sâu vào hàn lâm. Nó chưa phù hợp dễ hiểu dễ làm để cập nhật nhanh cho các bạn sinh viên hay những người cần nắm nhanh giải thuật để thực hành những cái khôn quá phức tạp. Thực sự nếu có ai chịu khó làm những công trình như bạn nói mà up lên, share rộng rãi thì thật đáng quý
Thưa thầy sao không gán cho E 1 E1 và LastOutput ????
thưa thầy em vào serial plotter mà sao không xem được đồ thị ạ
cho e hỏi e dùng động cơ DC encoder 334 xung không có hộp số ,lập trình điều khiển như thầy nhưng không được.vậy có phải dùng đúng động cơ có hôp số mới được k ạ?
Thầy ơi thầy có code về DC điều khiển vị trí không ạ
cho e hỏi làm sao để khi thay các thông số kp,ki,kd mà động cơ tự chạy mà ko cần phải chạy lại chương trình adruno ạ
có nhiều cách lắm ạ ,anh có thể giao tiếp uart với laptop để nhập trực tiếp các thông số PID ý anh
anh ơi em không hiểu cái anpha beta , công thức pid sao lại như vậy ạ
PID rời rạc á bạn
Thầy có thể cho e xin code phần này được không ạ? Em có sử dụng code trên phòng thí nghiệm điều khiển tự động của trường nhưng báo lỗi Demxung không được khai báo trong phần này
Thầy ơi sao động cơ của em làm lại bị rung
bạn ơi cho mình xin code, với ảnh nối chân được không ạ; mình code y như video mà bị lỗi; mình rất mong bạn cho mình xin tham khảo với, mình cám ơn; đây là facebook của mình facebook.com/PutinRusian hoặc gmail của mình nguyennamhoai911@gmail.com
Thầy ơi sao em mô phỏng trên proteus với code thầy như vậy mà không chạy được ạ, thầy chỉ dùm em với ạ
ko hiểu
Em đang lo , kì này chúng em không biêt làm phần này thế nào, nhà em thì khó khắn mà em mà không lam ra cái " PID điều khiển tốc độ động cơ thì em chết mất" , Thầy hướng dẫn cho em làm cái này được không ạ, thầy cho em di động, có gì em hỏi thêm được không ạ.
cố gắng đọc thật nhiều tài liệu, biết mình ko qua thì mình khổ thì em cố gắng lên, mạnh dạn hỏi và yêu cầu thầy giáo phụ trách môn trên lớp hỗ trợ. Thầy cũng cố gắng bên cạnh việc mưu sinh cũng sẽ làm clip hỗ trợ cho mọi người, trong đó có em mà
@@d0o1n2g3h4a5i6 bây giờ làm sao để e mô hình hóa đối tượng được a. please help me
@@hocvachoi4350 th-cam.com/video/EtNSRSThyxM/w-d-xo.html
ko hi
.
Thầy ơi cho em hỏi một chút với ạ. Làm sao mình biết được hộp số của mình là bao nhiêu xung/ 1 vòng ạ. Em cũng dùng động cơ encoder tương tự nhưng với loại 26 xung. vậy em muốn tính được hộp số của mình là bao nhiêu thì tính như thế nào ạ. Em cảm ơn thầy ạ. :)
thầy nghĩ chỉ dùng thực nghiệm mà tính toán thôi (nếu ko muốn banh hộp số ra coi- hy sinh hộp số)
a tính được hộp số ra chưa a
giá trị PID mình tự mò à thầy, không phải tìm hàm truyền rồi tìm P tìm D tìm I à thầy
ừ, mò em ơi, vì đáp ứng hệ thống ko cho ra đẹp như lý thuyết để có thể dựa vào đó mà tính kp, ki, kd
Có ai giải thích cho mình số 1500 với ạ huhuhu
thầy ơi cho em xin file mềm với ạ . minhthuan070900@gmail.com > Em cảm ơn thầy ạ
thầy cho em xin code được không ạ, hongphong0961@gmail.com, em cảm ơn thầy ạ
Thầy ơi ! Cho em xin code arduino với ạ.em cám ơn thầy nhiều
email: bikaynguyen@gmail.com