Thông báo

Collapse
No announcement yet.

Gặp vấn đề khi làm mạch điều khiển động cơ bằng PID

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Gặp vấn đề khi làm mạch điều khiển động cơ bằng PID

    sao mình làm mô phỏng thì nó chạy êm ru mà lúc gắn vào mạch là nó tự chạy max tốc độ rồi ngưng rồi lại lặp lại . bác nào biết chỉ em với

    Click image for larger version

Name:	untitled12.jpg
Views:	1
Size:	121.4 KB
ID:	1419594

    code:
    #if defined(__PCM__)
    #include <16F877.h>
    #include<lib_lcd_4bit.c>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
    #endif
    #byte portc=0x07
    #bit in=portc.1
    double speed;
    int timer1;
    double count;
    int8 u,ng,ch,tr,dv;
    int32 s_xung,s_vong;


    #INT_EXT
    void InterruptExternal(){
    speed=speed+1;
    s_xung++;

    }

    #INT_TIMER1
    void InterruptTimer1(){
    count=count+1;
    timer1=timer1+1;
    s_vong=3*s_xung;
    s_xung=0;

    set_TIMER1(0x0BDC); //Nap lai gia tri cho Timer 1
    }
    void chuyen()
    {
    dv=s_vong%10;
    ng=s_vong/1000;
    tr=(s_vong/100)%10;
    ch=(s_vong%100)/10;
    }

    void main() {
    lcd_init();
    double uk;double uk_1;
    double ek;
    double ek_1;
    double ek_2;
    double Kp;
    double Ki;
    double Kd;
    double T;
    double ref;
    int8 u;

    speed=0;
    T=0.3;
    ref=400;
    uk=0;uk_1=0;ek=0;ek_1=0;ek_2=0;
    Kp=10;Ki=8;Kd=0.50;
    count=0;
    set_tris_d(0); //Thiet lap Port D o che do OutPut
    set_tris_c(0);
    enable_interrupts(INT_EXT); //Cho phep ngat NGOAI
    ext_int_edge(L_TO_H); //Ngat canh LEN
    setup_timer_2(t2_div_by_16,255,1);
    setup_ccp1(ccp_pwm);
    set_pwm1_duty(77);
    enable_interrupts(INT_TIMER1);//Cho phep ngat TIMER 1
    setup_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
    set_TIMER1(0x0BDC); //Ngat se tran sau 0.1giay
    timer1=0;
    enable_interrupts(GLOBAL); //Cho phep ngat TOAN CUC

    while(1){
    if(timer1==3){
    in=0;
    disable_interrupts(INT_EXT); //Khong cho phep ngat NGOAI
    disable_interrupts(INT_TIMER1);//Khong cho phep ngat TIMER 1
    ek=ref-speed;

    uk=uk_1+(Kp+Ki*T/2+Kd/T)*ek;
    uk=uk-(Kp+2*Kd/T)*ek_1;
    uk=uk+(Kd/T)*ek_2;

    if (uk>255){
    uk=255;
    }
    if (uk<0){
    uk=0;
    }

    uk_1=uk;
    ek_2=ek_1;
    ek_1=ek;

    u=uk;

    set_pwm1_duty(u);
    lcd_putcmd(line_1);
    chuyen();
    delay_us(10);
    printf(lcd_putchar,"speed=%u%u%u%u v/p ",ng,tr,ch,dv);
    speed=0;

    enable_interrupts(INT_EXT); //Cho phep ngat NGOAI
    ext_int_edge(L_TO_H); //Ngat canh LEN

    enable_interrupts(INT_TIMER1);//Cho phep ngat TIMER 1
    setup_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
    set_TIMER1(0x0BDC);
    timer1=0;
    }
    }
    }

  • #2
    Coi lại mấy hệ số kp,ki,kd thử xem sao.

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    • nguyendinhvan
      Trả lời cho Vấn đề về tốc độ quay
      bởi nguyendinhvan
      Sử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
      Hôm qua, 19:50
    • Andrea14
      Vấn đề về tốc độ quay
      bởi Andrea14
      Chào mọi người,

      Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
      12-12-2025, 12:42
    • bqviet
      Trả lời cho Đấu tắt điện cho máy tính bảng
      bởi bqviet
      Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
      06-12-2025, 17:17
    • nguyendinhvan
      Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
      bởi nguyendinhvan
      Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
      05-12-2025, 19:59
    Đang tải...
    X