Thông báo

Collapse
No announcement yet.

Tiếp cận và đi sâu việc điều khiển động cơ BLDC

Collapse
This topic is closed.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Nguyên văn bởi daihang86
    To toanthang88, Em sẽ trả lời bác từng câu hỏi một
    - Từ uC có duy nhất 1 xung PWM đưa sang con 16V8(PLD). OK ?
    - Từ cảm biến HALL có ba tín hiệu về đúng không ? Đưa vào con PLD kết hợp với xung PWM, dựa vào bảng 2 của em dễ dàng điều chế tín hiệu đưa vào mạch driver . Còn thực hiện thế nào trong con PLD nếu bác biết thì hiểu ngay ? Còn không thì để mai em giải thích con PLD.
    Cảm biến hall đưa tín hiệu vị trí về PLD, để xác định khoảng đóng cắt cho BLDC quay, nó kết hợp với 1 xung từ uC ( xung này lưu thông tin về vận tốc cần điều khiển) kết quả là đưa ra 6 xung điều khiển vận tốc đúng không ạ, Theo tài liệu của 16V8 không nói về module hổ trợ PWM, muốn vậy bác phải viết code cho nó, chương trình sẽ rất dài, khó quản lí, và đương nhiên chất lượng điều khiển sẽ không được tốt nhất (ví dụ: trong quá trình hoạt động phải reset lại nhiều lần) ... Vậy so với một MCU có sẵn module PWM nó sẽ thế nào?

    Ngoài ra, con 16V8 không có hỗ trợ giao tiếp Hall và Encoder, lấy gì cho bác nhận thông tin đây.? Bác phải qua thêm cái khối gì nữa chứ?

    Comment


    • #17
      he he, To bác toanthang88 ơi, bác cho em hỏi bác có biết tí gì về con PLD không ? nó chỉ là một mảng lôgíc thôi, chứ làm gì có khổi PWM nào ? Còn dĩ nhiên con này thì không phải gán chân nào cũng được. Chả nhé em lại phải up lên cả code chương trình cho bác hả ? Còn em nói thêm tín hiệu từ HALL về hay từ encoder chỉ là tín hiệu xung thôi (logic). Nên bác dùng con PLD này ngon lành. Còn bác biết về PLD thì em với bác bàn luận tiếp, không thì bàn luận về không cảm biến. Quên bác cho em cái yahoo của bác. Có gì em với bác chat cho nhanh, chứ thế này khó nói chuyện

      Comment


      • #18
        Người ta sinh ra các Module để giảm chương trình viết code điều khiển, tăng tính ổn định hệ thống, tăng độ tin cậy, giảm độ phức tạp, ..... Bác code hóa mọi vấn đề trong lĩnh vực này rất phản thực tế.

        Chúng ta đang thảo luận để nhận ra cái gì là tối ưu. Nếu không có tác dụng cho bác thì cũng cho những người khác. Cách trả lời như vậy của bác có thể gọi là nguyên nhân gây ra xung đột, và phá tan tinh thần thảo luận.

        Cái "khối" em đề cập, 1 là một module hỗ trợ, 2 là một chương trình giao tiếp. Thay vì bác phải trả lời câu này, bác lại làm một câu "em không biết cái gì gì đó". Bác thấy vậy là vớ vẩn ko?
        Last edited by ToanThang88; 25-05-2006, 23:18.

        Comment


        • #19
          To toanthang88, bác thử up lên cái bác làm xem sao? Xem cái của bác tối ưu đên mức nào ?

          Comment


          • #20
            Tớ đọc thì thấy rằng cách của daihang86 cũng có thể được, song do uC đó không support đk động cơ nên ko thật sự tối ưu, ví dụ:
            -Không có 3 cặp PWM
            -Không có module QEI
            -Không có protect.
            Bởi thế có thể làm động cơ chạy, nhưng để tối ưu như các uC chuyên dụng thì rất khó.
            Bàn lại vấn đề của bạn daihang86, 16V8 sẽ làm nhiệm vụ đọc encoder, đọc Hall, rồi chuyển mạch PWM. Cứ cho lý tưởng là 16V8 đáp ứng được yêu cầu thực hiện giải thuật logic đó.Nhưng có lẽ bạn thiếu chân hướng cho phầnn này. Liên hệ giữa uC và 16V8 cần 1 chân counter đếm số xung, một chân để định xác định hướng. Vậy có lẽ bạn daihang86 thiếu chân này? còn việc tăng độ phân giải lên gấp 2 thì khối QEI cũng có thể, thậm chí lên được gấp 4.
            Phần driver cho mosfet/igbt(van) bạn daihang86 dùng IC gì nhỉ?

            Comment


            • #21
              Một số điểm lưu ý bác "DaiHang"

              Thứ 1: Khi bác đưa ra một sơ đồ, bác phải kèm theo một bài viết, để một người chưa biết ít nhất họ cũng hiểu cái điều bác nói bên trong đó là cái gì, và cái đó có đúng hay là sai.

              (Cho đến bây giờ em chưa khẳng định câu phát biểu của bác là đúng và đáng tin cậy)

              Thứ 2: Em công nhận bản thân mình không biết con 16V8 là loại IC gì, và không có lời biện hộ cho sự thiếu hiểu biết này.

              Thứ 3: Em là người phản biện bác, nếu em đã biết rõ cái bác đưa ra là đúng(tức biết rõ 16V8 và khả năng của nó thực hiện được...) thì em sẽ công nhận là bác đúng, cần phản biện bác làm cái quoái gì. Nếu bác giỏi thì giải thích cho người khác hiểu còn không giải thích được, bác hãy cẩn thận trong những lời nói của mình.

              Thứ 4: Khi bác muốn hỏi, ok, em sẵn sàng trả lời, thậm chí sẽ cố gắng trả lời thật cụ thể.
              Attached Files

              Comment


              • #22
                Đối với 1 bộ điều khiển BLDC điều khiển vòng kín (tức có hồi tiếp vận tốc) thì: "chỉ cần 1 con MCU là làm nên tất cả"

                Giải thích sơ đồ nguyên lí:

                Những tích hợp ngoại vi trên MCU (PIC18F4431)

                - 10 bit Analog-to-Digital converter module.
                Cho phép chuyển đổi một tín hiệu analog sang 10 bit tín hiệu số tương ứng
                Mục đích của khối này được sử để điều chỉnh tốc độ BLDC theo dạng tinh chỉnh (tức dùng biến trở - chân AD0 trên hình vẽ)

                - PWM module.

                Có tới 4 cặp có khả năng điều chế độ rộng xung (PWM).

                Trong BLDC chỉ sử dụng 3 cặp, kích đối nghịch. Dựa vào thông tin vị trí gởi về từ Hall sensor, uC tạo ra những khoảng đóng cắt thích hợp điều khiển động cơ BLDC chuyển động. Sử dụng những PWMs này để thay đổi điện áp trung bình đặt vào cuộn dây được điều khiển, do vậy tốc độ BLDC được thay đổi. (hình vẽ)

                - Motion feedback module

                Có 2 sub-module:
                + Input Capture module (IC)
                Dùng để giao tiếp Hall sensor
                + Quadrature Encoder Interface (QEI)
                Dùng để giao tiếp encoder

                Bởi vì chúng có cùng chân input nên chỉ 1 trong 2 module này được dùng trong cùng một thời điểm

                - Three external interrupts

                Có 3 ngắt ngoại vi, trong trường hợp sử dụng cả 2: cảm biến Hall và Encoder. Tín hiệu encoder được đưa về QEI, và tín hiệu Hall sensor được đưa về 3 ngắt ngoại vi này. (hình vẽ) Encoder đưa thông tin về tốc độ hồi tiếp (tốc độ thực của động cơ), được so sánh với tốc độ đặt (tại chân AD0), sai số có thể âm hoặc dương điều đó cho thấy tốc độ thực là lớn hơn hay nhỏ hơn tốc độ đặt, sai số được khuyếch đại qua thuật toán PID kết quả được dùng để điều chỉnh lại Duty cycle được tính toán lúc ban đầu (tức là PWM ứng với tốc tộ đặt ban đầu - AD0) kết quả đưa ra PWM mới (giá trị mục tiêu) kết hợp với thông tin từ Hall sensor, vậy 1BLDC được điều khiển.

                - PWM fault inputs.

                Có 2 fault inputs được kết hợp với PWM module. Mục đích chính của nó là vô hiệu hóa những tín hiệu PWM output và đưa chúng đi vào trạng thái không tích cực, hoạt động của fault inputs được thực hiện trực tiếp trong hardware, vì thế khi sự cố xuất hiện nó có thể được điều khiển nhanh chóng và PWM outputs được đặt vào trạng thái không tích cực đảm bảo an toàn cho những thiết bị công suất được nối tới những chân PWMs.

                Trong BLDC 2 fault inputs này được dùng cho bảo vệ quá áp và quá dòng (hình vẽ).

                + Bảo vệ quá áp.

                Điện áp busDC được theo dõi thông qua tín hiệu lấy từ bộ chia áp(giảm điện áp) được so sánh với 1 điện áp chuẩn qua opamp (hoặc 1 comparator). Ngõ ra opamp gởi về chân Fault B của uC. Khi Fault B xuống mức 0, sự cố xuất hiện.

                + Bảo vệ quá dòng.

                Sử dụng 1 điện trở Shunt làm cảm biến dòng, cho tín hiệu điện áp tỉ vệ với dòng điện đi qua nó, tín hiệu được khuyếch đại sau đó so sánh với một I_chuẩn. (dòng dự đoán sự cố). Tín hiệu gởi về Fault A, (xuống mức 0 sự cố xuất hiện).

                + Bảo vệ quá nhiệt.

                Sử dụng 1 điện trở cảm biến nhiệt, cho tín hiệu điện áp ngõ ra tỉ lệ với nhiệt độ, tín hiệu điện áp tồn tại dưới dạng analog được đưa vào ADC input của uC để theo dõi, vượt quá nhiệt độ cho phép, uC điều khiển dừng Motor. Temperature được đưa vào AD1 trên hình vẽ).

                Comment


                • #23
                  Có vẻ như cái hình này lấy trong một appnote của Microchip.
                  Rshunt là một điện trở bé để xác định lỗi khi quá dòng.(FaultA)
                  Còn cái mắt dưới lại là để xác định lỗi khi quá áp(FaultB).
                  Đây là một sch khá chuẩn đó(hic hic.. vừa post lên đã thấy bác Toanthang post 1 loạt rồi,,,công lực cao thâm khôn lường...he he).
                  -------------------

                  Comment


                  • #24
                    Nên chăng thêm một chân AD nữa để theo dõi dòng của động cơ, cơ chế này để kiểm soát tốt hơn cho động cơ khi hoạt động, ví dụ cảnh báo nếu dây đứt, kiểm soát công suất...hơn nữa PIC18F4331 đang thừa rất nhiều chân.

                    Phần khếch đại và comparator có thể dùng 2 chip chứa trong 1 opam cũng được, có thể bỏ phần khếch đại đi bởi có thể dùng các comparator rail to rail như LM393,LM339,LM311... kiểu opencolector.

                    Còn phân driver chắc bạn dùng mạch bootstrap? bạn nói rõ hơn phần này được ko? IC này có bán ở Việt Nam ko?

                    Comment


                    • #25
                      PIC có 3 ngắt "ngoài" thì chính xác hơn, em quen nói "ngoại vi" nên chỗ này chỉnh sửa lại 1 chút.

                      Comment


                      • #26
                        tí góp 1 cái mạch bootstrap

                        Sao các bác ko dùng con IC chuyên dụng lái bushless như
                        UC3625
                        UC3626
                        mấy con này dùng phần công suất rời, ngõ ra hỗ trợ driver mosfet công suất
                        Attached Files

                        Comment


                        • #27
                          Mình cũng đang quan tâm đến cái này , bạn có thể nói rõ hơn về phần cứng không , dùng loại IC nào , và đặt biệt là mình chưa kiếm đâu ra cái động cơ đó để "vọc"

                          Comment


                          • #28
                            Nguyên văn bởi ToanThang88
                            PIC có 3 ngắt "ngoài" thì chính xác hơn, em quen nói "ngoại vi" nên chỗ này chỉnh sửa lại 1 chút.
                            Nếu bạn chuyển sang dspic4011 thì sẽ rất nhiều ngắt(ngắt CN), và mở ra một chân trời mới, đặc biệt phần dùng phần xử lý số "CONTROL FUNCTIONS" như PID sẽ thấy nó vô cùng tiện lợi(tính năng này chỉ áp dụng cho họ dspic motor control).

                            Comment


                            • #29
                              Tranh luận sôi nổi wá, tôi cũng mới tìm hiểu cái Brussless này thôi, nên cũng không có nhiều ý kiến, Hiện tôi có 1 cái board , cái này tháo trong 1 cái bánh xe, mà cái bánh đó là động cơ Brussless, thì thấy là nó dùng 6FET để DK . giống như là bắn 6 xung như các bạn nói, trong đó có 3 cảm biến đặt lệch nhau 1 gốc khoảng 15 độ, trên mạch thì thấy có gắn 1 điện trở công suất loại sai số là 1% dòm i chang con diode công suất mà mình tra mã thì mới biết nó là R, bên cạnh đó nó còn có hồi tiếp nhiệt độ, tức là 1 cảm biến nhiệt dc áp vào miến nhôm tản nhiệt, còn phần dk thì chả biết là nó làm cái quái gì trong đó

                              Comment


                              • #30
                                chao moi nguoi minh dang muon hien thi van toc,chieu quay,quang duong cua dong co BLDC len man hinh LCD dung AT89C51 tin hieu vao la 3 cam hien hall cac ban giup minh voi

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X