RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Điều khiển vị trí động cơ Servo dùng PID ( dành cho các bạn mới bắt đầu)

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • acmapy2000
    replied
    link cho phần Anti-winup

    Leave a comment:


  • phamvanhon23
    replied
    Nguyên văn bởi tri_cuong46 Xem bài viết
    Chào các bạn!
    Nhớ lại bao khó khăn, lạ lẫm khi mới bắt đầu làm quen với những ứng dụng đầu tiên dùng vi xử lý trong điều khiển động cơ servo, giao tiếp máy tính v.v... Hôm nay, rãnh rỗi mình cũng post lên diễn dàn báo cáo đồ án 1(cũng may là còn giữ được ^_^) của mình khi làm điều khiển vị trí động cơ servo sử dụng thuật toán PID.
    Đây chỉ là một đồ án nhỏ, còn nhiều thiếu sót nhưng mình nghĩ có thể cần thiết cho các bạn mới bắt đầu làm quen với điều khiển, nhất là các bạn quan tâm đến điều khiển động cơ DC.
    Nếu các bạn quan tâm mình sẽ post thêm chương trình cụ thể trên vi xử lý và máy tính. ( Sơ đồ nguyên lý mạch đã mất lầu rồi, các bạn có thể xem hình)
    chào bạn, bạn có thể xem giúp mình cái code Đk RC servo bằng 8051 này xem có sai sót j ko, mình đang nghiên cứu về nó, thanks bạn nhiều!!


    Mã code
    #include<reg52.h>
    #include<stdio.h>
    #include <intrins.h>

    sbit motor_pin = P1^0;
    sbit b0 =P3^0;
    sbit b45 =P3^1;
    sbit b90 =P3^2;
    sbit b135 =P3^3;
    sbit b180 =P3^4;

    void delay(unsigned ms)
    {
    while (ms--)
    {
    TMOD=0x01; //dùng timer 0 che^' ðo^. 1 ( 16bit )
    TH0=0xfc;
    TL0=0x18; //hai câu le^.nh na.p giá tri ðe^'m
    TR0=1; // cho phép timer 0 hoa.t ðo^.ng
    while (TF0); //cho+` TF0=1(co+` tràn =1 )
    TF0=0; //xóa co+` tràn
    TR0=0; // ngu+`ng Timer
    }
    }
    void main(){
    motor_pin = 1;
    if(b0 == 0){
    motor_pin = 1;
    delay(20); //0
    //delay(89); //180
    //delay(48); // 90
    motor_pin =0;
    delay(910);
    }
    if(b45 == 0){
    motor_pin = 1;
    delay(30); //45
    //delay(89); //180
    //delay(48); // 90
    motor_pin =0;
    delay(910);
    }
    if(b90 == 0){
    motor_pin = 1;
    //delay(30); //45
    //delay(89); //180
    delay(48); // 90
    motor_pin =0;
    delay(910);
    }
    if(b135 == 0){
    motor_pin = 1;
    //delay(30); //45
    //delay(89); //180
    delay(70); // 135
    motor_pin =0;
    delay(910);
    }
    if(b180 == 0){
    motor_pin = 1;
    //delay(30); //45
    delay(87); //180
    //delay(48); // 90
    motor_pin =0;
    delay(910);
    }
    }

    Leave a comment:


  • hoang ng
    replied
    bạn nào biết mạch điều khiển góc quay động cơ servo s3003 thì chỉ mình với mail của mình là : hngng2008@gmail.com
    thank

    Leave a comment:


  • nghia268
    replied
    ai có thể hướng dẫn em điều khiển góc quay của servo dùng PIC đc ko ah....e tìm hiểu mãi mà vẫn chẳng làm đc

    Leave a comment:


  • hoangdai
    replied
    chủ thớt nên nói rõ giải thuật PID, xử lý như thế nào, chứ tung hỏa mù code ASM lại làm các mem mới chóng mặt.

    Leave a comment:


  • TRUYENHINH
    replied
    chào các anh chi!

    em là thành viên mới của diễn đàn,em tìm dến đây mong dc các anh chị giúp đỡ.
    đồ án của em la: ĐK VỊ TRÍ ĐC DC DÙNG THUẬT TOÁN PID,EM SỬ DỤNG VI ĐIỀU KHIẾN P89V51 HIỂN THỊ GIAO TIẾP MÁY TÍNH,DÙNG NGÔN NGỰ ASEMLER VIET CHO VDK .thật là em còn rối bù ha,em len đây mong các anh chị có thế cho em sơ đồ mach nguyên lý,mong dc giúp đở,em chân thành cảm ơn các anh chị.

    Leave a comment:


  • TRUYENHINH
    replied
    giup em voi!

    chao anh tri cuong,anh cho em hoi,sao em cai phan mem prog studio roi,ma em tim con vi dieu khien P89v51 ko co vay a,em da cai cai file p89v51 anh dua roi ma sao tim cung hok co no.
    Last edited by TRUYENHINH; 11-05-2012, 23:13.

    Leave a comment:


  • idman68
    replied
    Không nếu điều khiển vời đông cơ servo AC thì sự dụng mạch trên được ko ? Và thay bộ PID trên bằng 1 PLC.

    Leave a comment:


  • tri_cuong46
    replied
    Ngoài ra có một số bạn hỏi về trình dịch cho file ASM.
    Ở đây mình dùng chương trình pro-studio để làm trình biên dịch.
    Các bạn phải thêm vào một file p89v51rx2.mc trong thu muc MC nơi chương trình được cài đặt.
    Mình gởi thêm file nạp, file p89v51rx2.mc và layout mạch điều khiển chính.
    Attached Files
    Last edited by tri_cuong46; 24-04-2010, 23:49.

    Leave a comment:


  • vansang
    replied
    mình có kit fpga spartan 3e đang cần bán . anh em có ai mua thì liên hệ với mình nhé (vansang_mta)

    Leave a comment:


  • tri_cuong46
    replied
    Còn về việc dùng timer2 để làm gì thì mình xin trả lời. Vì tốc độ động cơ thay đổi một cách liên tục và rất nhanh nên mình rất khó để để nhìn rõ nên mình dùng timer2 để tính giá trị trung bình để hiển thị lên cho để theo dõi. Mục đích mình đơn giản là vậy thôi!

    Leave a comment:


  • tri_cuong46
    replied
    Hi longthophi!
    Thông số của PID vị trí thì không cần phải vẽ đồ thị ra đâu bạn! chỉ cần biết được giá trị ngưỡng của hệ số P khi động cơ bắt đầu dao động và chu kỳ dao động là bao nhiêu là có thể tìm được hệ số kp, ki,kd tương đối tốt. Sau đó hiệu chỉnh sơ thì chất lượng sẽ rất tốt. Chương trình sẽ hoàn chỉnh hơn nếu bạn vẽ đồ thị lên trên giao điện VB.

    Leave a comment:


  • longthophi
    replied
    anh trí cường ơi. làm sao xác định được thông số kp,ki,kd.theo phương pháp Zeigler_nichols thi dựa vào Tgh rồi dựa vào công thức mà tính ra. vấn đề là em chưa vẽ được đồ thị thì làm sao mà bít được tgh là bao nhieu. không bít hồi đó anh xác định các thông số này ra sao xin anh chỉ cho

    Leave a comment:


  • longthophi
    replied
    anh cường ơi em nghien cưứ về chương trình vb anh viết em van chưa hiểu tại sao anh dung timer2 và một anh có thể gợi mở cho e biết về giả thuật diều khiển của anh dược không.về mạch điện em đã hoàn thành bay giờ còn viết chương trình. nhưng chưa biết hướng đi. mong anh giúp dỡ

    Leave a comment:


  • tri_cuong46
    replied
    Nguyên văn bởi longthophi Xem bài viết
    em cũng đang làm về đề tài này. không bít anh có thể cho em mail anh không . ì có vấn đề thắc mắc thì cũng dễ liên lạc với anh.mong anh chỉ giáo cho
    uh, bạn gởi cũng được, chỉ sợ mình hiện giờ đang bận nên ít check mail lắm. Nhưng cũng hay lên mạng kiếm thông tin. Bạn cứ làm, không hiểu thì post lên diễn đàn nhé! nếu giúp được mình rất sẳn sàng.
    tri_cuong46@yahoo.com
    Last edited by tri_cuong46; 08-01-2010, 20:48.

    Leave a comment:

Về tác giả

Collapse

tri_cuong46 Tìm hiểu thêm về tri_cuong46

Bài viết mới nhất

Collapse

Đang tải...