PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Điều khiển (http://www.picvietnam.com/forum/forumdisplay.php?f=21)
-   -   pid ổn định tốc độ động cơ (http://www.picvietnam.com/forum/showthread.php?t=5303)

nhat925 14-11-2009 10:07 AM

pid ổn định tốc độ động cơ
 
e đang làm đồ án về ổn định tốc độ động cơ(tốc độ k thay đổi khi thay đổi tải).nhờ mấy bác xem dùm cho e phần lập trình pid của em như thế này là được chưa??cho e hỏi cái thời gian mình đọc encoder về ví dụ là 10ms.thì cái T trong công thức pid là 10*10^-3 đúng k ạ?
http://www.mediafire.com/?nodwyywjntu.
cho e hỏi nữa.mình muốn mô phỏng cái pid này thì nên dùng cái gì để mô phỏng được.nếu dùng matlab thì k có hàm truyền của động cơ?protues có thể mô phỏng được k

dung h 15-11-2009 01:13 AM

điều khiển ổn định tốc độ động cơ bắng phương pháp pid rất hay! bạn ơi bạn có thể nói rõ hơn về phương pháp này và cách bạn điều khiển pid trong chương trình của cậu
bạn thông cảm mình đọc chương trình của cậu o hiểu lắm!
thanks

nhat925 15-11-2009 09:23 AM

chương trình của em nhằm mục đích là ổn định tốc độ với sự thay đổi của tải.do mấy cái Ki,kp,kd chưa tìm ra nên e để thế.trong phần khai báo sửa lại mấy cái e0,e1,e2,u0 là những số có dấu.mục đích so sánh e0 với +- 200 là nhằm để hạn chế sai số thôi.ví dụ khi giá trị sai lệch lớn hơn 200 vòng thì mình cho U0=0,để hạn chế tốc độ.e k biết a k hiểu bài e chỗ nào nên cũng hơi khó nói.có gì thì a nói rõ hơn cho e với nha.
còn một cái nữa e muốn hỏi mọi người là e tạo xung vuông 10khz ở chân ccp1.(tần số thạch anh là 20Mhz,setup_timer_2(T2_div_by_4,124,1).thế mà khi mô phỏng bằng protues(cho osilicope vào chân ccp1 để quan sát và tính chu kỳ xung thì thấy nó k ra như thế.nó ra chu kỳ cỡ 3.6ms.tức là tần số nó nhỏ hơn.e k hiểu tại sao.đoạn code e viết ra để tạo xung nè.mọi người xem thử.
#include "E:\doan\123\123.h"
#use delay(clock=20000000)
#byte porta=0x05
#byte portc=0x07
#byte portd=0x08
main()
{


set_tris_c(0x01);
setup_ccp1(ccp_pwm);
setup_timer_2(T2_DIV_BY_4,124,1);//tao ra xung 10khz
set_pwm1_duty(100);


}

dung h 15-11-2009 02:57 PM

bạn có thể nói cách tìm ra các tham số của pid la Ki,Kp,Kd không?
khi ta có tốc độ cần ổn định v, tốc độ phản hồi từ ecoder?
mình thấy trong chương trình của bạn chưa làm điều đó thì phải,
mình chưa thấy cái biến set_speed bạn lấy giá trị ở đâu thế?

còn mình thấy với các timer số bạn setup timer2 như vậy cho f =10k là đúng đây chứ.
bạn dùng pic f bao nhiêu thế?

vinasheva 15-11-2009 06:20 PM

setup_timer_2(T2_DIV_BY_4,124,1);//tao ra xung 10khz
set_pwm1_duty(value);

Như vậy thì mình cho giá trị value từ 0 đến 123 sẽ được duty từ 0% đến 100%. Như vậy còn ít giá trị quá. Có ai biết cách nào làm tăng độ nhuyễn của duty dc k?

dung h 15-11-2009 07:08 PM

Trích:

Nguyên văn bởi vinasheva (Post 31281)
setup_timer_2(T2_DIV_BY_4,124,1);//tao ra xung 10khz
set_pwm1_duty(value);

Như vậy thì mình cho giá trị value từ 0 đến 123 sẽ được duty từ 0% đến 100%. Như vậy còn ít giá trị quá. Có ai biết cách nào làm tăng độ nhuyễn của duty dc k?

không phải value từ 0->123 mà là từ 0->496 tức băng 124*4
bạn kiểm tra lại xem khi bạn nạp 496 vào value thi xung ra mới đầy

nhat925 15-11-2009 09:30 PM

mình đã tìm ra được lỗi sai của cái xung rồi.do trong con pic ở mô phỏng k để là 20Mhz.nên nó bị sai.hihi.à.cái set_speed là tốc độ đặt.mình định đặt là 1000 vòng.đặt trong phần mềm chớ k có lấy ở ngoài.còn ki,kp,kd thì thực hiện dựa theo phương pháp Nigelr_nichols.do mình chưa tìm đc nên mình để đó.cái đọc encoder là cái real_speed đó bạn.

nhat925 17-11-2009 12:06 AM

cái vấn đề trong cái pid mà e đang cần hỏi là cái Udk của em nó ngược ngược.ví dụ.trong mô phỏng khi e làm vận tốc thực lớn hơn so với vận tốc đặt thì cái U nó lại dương.ngược lại khi mà vận tốc đặt lớn hơn vận tốc thực thì U nó âm làm cho k có xung ra.mấy anh xem dùm cho e cái set_pwm(value) của là đúng trong trường hợp này k??e thấy nó sai sai sao đó
http://www.mediafire.com/?wnzwezyuiwg

ngoctuan522 23-11-2009 07:55 AM

sao minh ko thấy đường linh để xem bài của Nhat925 vậy? Nếu được nhờ ban quản trị hoặc bạn gửi qua mail (ngoctuan522@gmail.com)cho mình với.Mình cũng đang làm đồ án với nội dung như bạn. Thanks..


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

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