1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Đo vị trí và điều khiển tốc độ của động cơ DC sử dụng bộ điều khiển PID tương tự

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi dothuy248, 15/08/2018.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. dothuy248

    dothuy248 Thành viên mới

    Tham gia ngày:
    15/08/2018
    Bài viết:
    1
    Đã được thích:
    0
    Đo vị trí và điều khiển tốc độ của động cơ DC sử dụng bộ điều khiển PID tương tự
    Bài viết này cho thấy cách thực hiện một bộ điều khiển PID tương tự, bao gồm điều chỉnh vị trí góc của trục động cơ DC, chỉnh sửa thiết kế để điều khiển tốc độ của nó, và điều chỉnh các thông số PID cho hiệu suất đáng tin cậy.
    Bài viết này tập trung vào việc thực hiện một bộ giáo dục để chứng minh hiệu quả của một bộ điều khiển PID trên phản ứng của một động cơ DC cố gắng để đạt được một vị trí cụ thể, trong trường hợp này, vị trí bằng không. Bộ giáo dục cũng có thể sửa đổi điều khiển PID để điều chỉnh tốc độ động cơ để đạt được tốc độ mong muốn cụ thể, bất kể tải trọng hợp lý trên động cơ.



    Tổng quan hệ thống chính
    Hệ thống được chia thành ba phần chính:

    1. Một bộ mã hóa quay, nó sẽ chuyển vị trí của trục động cơ DC như một tín hiệu tương tự được đưa vào bộ điều khiển PID tương tự. Điều này sẽ được thực hiện bằng cách sử dụng ma trận ma trận tín hiệu hỗn hợp có thể lập trình SLG46621.
    2. Một bộ điều khiển PID tương tự với 3 chiết áp để điều khiển các thông số PID. Điều này có một tín hiệu tương tự được đưa ra từ một điểm và thiết lập các điểm như vị trí số không. Phần này sau đó xuất ra một tín hiệu tương tự điều khiển tốc độ của động cơ. Tín hiệu này chưa phải là tín hiệu PWM. Phần này của hệ thống sử dụng quad op-amp SLG88104.
    3. Một máy phát xung PWM có tín hiệu tương tự điều khiển tốc độ của động cơ và đưa nó vào khối PWM trong hệ thống của chúng tôi. Sau đó nó cung cấp đầu ra khối PWM cho trình điều khiển động cơ để điều chỉnh trục động cơ đến vị trí mong muốn. Lưu ý rằng hướng của động cơ đã được biết đến từ tín hiệu phản hồi bộ mã hóa từ phần 1.
    Thông thường, vi điều khiển được sử dụng để thực hiện bộ điều khiển PID. Họ nhận được xung đầu vào từ bộ mã hóa, sau đó cấp chúng thông qua thuật toán điều khiển để xuất tốc độ động cơ. Tuy nhiên, điều này đòi hỏi sự phát triển phần mềm và nó có thể đòi hỏi rất nhiều thời gian và tiền bạc để phát triển một hệ thống đáng tin cậy. Việc triển khai GreenPAK không yêu cầu bất kỳ phát triển phần mềm hoặc phần cứng nâng cao bổ sung nào. PID dựa trên phần mềm có những hạn chế tùy thuộc vào vi điều khiển bạn sử dụng. Ngược lại, phần cứng PID cho phép bạn kiểm soát đáng tin cậy hơn khi có bất kỳ thông số nào bạn muốn ảnh hưởng đến phản hồi của bạn, nhưng phần cứng thường khó điều chỉnh hơn.

    Đối với giải pháp này để có thể tồn tại như một bộ giáo dục một số thành phần được yêu cầu:

    • Vỏ bọc được thiết kế tốt với công tắc bật / tắt, kiểm soát rộng các thông số PID và một màn hình LCD bổ sung hiển thị các giá trị của tham số.
    • Một tần số PWM có thể điều chỉnh từ khối PWM GreenPAK cho một phản ứng trơn tru.
    • Ổn định cho con trỏ gắn vào động cơ.


    Giải mã bộ mã hóa quay tăng dần
    Đầu ra của bộ mã hóa quay được hình thành bởi hai tín hiệu xung bị lệch pha 90º. Số xung tương quan với số lượng khe mà đĩa của bộ mã hóa bao phủ khi xoay tròn hoàn toàn. Ý tưởng chính của điều khiển vị trí là từ vị trí ban đầu (số không) của chúng ta, chúng ta cần tính số khe mà đĩa sẽ bao trùm theo hướng CW hoặc CCW. Số lượng sau đó sẽ giảm nếu đĩa đảo ngược hướng của nó. Ví dụ, nếu động cơ bắt đầu di chuyển theo chiều kim đồng hồ và đếm 5 xung (5 khe), sau đó quay trở lại vị trí ban đầu, nó cần di chuyển 5 lần theo hướng ngược chiều kim đồng hồ sao cho nó kết thúc ở vị trí bắt đầu.



    [​IMG]

    Hình 1. Đầu ra bộ mã hóa cầu thủ


    Chúng tôi sẽ sử dụng xung A và xung B để theo dõi vị trí và phát hiện hướng. Một bộ đếm lên / xuống đã được thực hiện bằng cách sử dụng khối GreenPAK sẽ tăng / giảm tùy thuộc vào hướng của động cơ. Tất cả các khối được đồng bộ thông qua bộ dao động nội bộ.

    Đầu tiên, tôi đã kiểm tra xem tôi cần bao nhiêu lần để trang trải tỷ lệ của mình theo một hướng và tôi thấy rằng tôi cần khoảng 30 lần đếm theo thiết kế của mình. Tôi đã sử dụng bộ đếm 8 bit để cải thiện độ chính xác. Sau đó, tôi đã thực hiện một mạch phát hiện hướng bằng cách sử dụng bộ giải mã phương trình có đồng hồ để xác định xem động cơ có đang di chuyển CW hay CCW hay không. Bộ đếm CNT4 / DLY4 / FSM1 được đếm mỗi khi có xung trên CW hoặc CCW. Một xung trên CW khiến bộ đếm đếm ngược và một xung trên CCW khiến bộ đếm đếm ngược. Bộ đếm được khởi tạo tới 127 (trong tổng giá trị tối đa 255 để cho nó nhiều chỗ để đếm lên hoặc xuống. Đầu ra được cho qua khối đầu ra song song SPI để ghim 12-20.

    Tôi đã thực hiện một bộ giải mã phương trình theo chu kỳ sử dụng một số DFF và một khối trễ ống. Khi A dẫn B có một xung trên CW, và khi B dẫn A có xung trên CCW. Sau đó, một giai đoạn cuối cùng (DFF3) đã được thêm với CW như một đầu vào và CCW như một đầu vào đồng hồ để đầu ra đảo ngược của DFF3 vẫn LOW khi động cơ quay theo chiều kim đồng hồ, và đầu ra sẽ vẫn HIGH khi động cơ quay ngược chiều kim đồng hồ.





    Hình 2. Bộ giải mã phương trình đồng hồ bằng cách sử dụng GreenPAK


    Bộ đếm sẽ giữ vị trí của bộ mã hóa quay cho đến khi nó được kích hoạt mặc dù xung trên CW hoặc xuống qua một xung trên CCW. Lưu ý rằng SLG46621 có 2 ma trận: bộ đếm 8 bit được thực hiện trong ma trận thứ hai; mạch giải mã cầu phương được thực hiện trong ma trận thứ hai. Các thành phần cần thiết để tạo tín hiệu PWM được tách ra giữa cả hai ma trận.



    [​IMG]

    Hình 3. Bộ đếm lên / xuống FSM


    [​IMG]

    Hình 4. Khối SPI


    [​IMG]

    Hình 5. Kết quả đầu ra song song SPI


    Chuyển đổi dữ liệu bộ mã hóa thành tín hiệu tương tự
    Bây giờ chúng ta có một giá trị dữ liệu số 8 bit cần được chuyển đổi thành tín hiệu tương tự để nó có thể được đưa vào PID tương tự. DAC tích hợp không hỗ trợ lấy đầu vào trực tiếp từ khối CNT4 / DLY4 / FSM1 vì vậy tôi đã triển khai một DAC 8 bit bên ngoài bằng cách sử dụng hộp số quad Dialog SLG88104 quad.



    [​IMG]

    Hình 6. DAC 8 bit


    Tôi đã chọn R là 10 k ohm, bit 0 là đầu ra song song đầu tiên SPI là pin 12 và vân vân. Điện trở có giá trị thấp nhất R tương ứng với đầu vào nhị phân có trọng số cao nhất Bit 7 (MSB) [27 = 128]. 2R, 4R, 8R, 16R, 32R và 64 R tương ứng với trọng lượng nhị phân của Bit 6 (26 = 64), Bit 5 (25 = 32), Bit 4 (24 = 16), Bit 3 (23 = 8), Bit 2 (22 = 4), bit 1 (21 = 2) và bit 0 (LSB) [20 = 1] tương ứng. Mối quan hệ giữa đầu vào số (bit 0 đến bit 7) và đầu ra tương tự VOUT như sau:

    [​IMG]

    nơi VREF là điện áp tham chiếu của mạch, là 3,3 V đối với SLG46621. Bộ khuếch đại tổng hợp được theo sau bởi một bộ khuếch đại đảo ngược để đảo ngược cực của điện áp để có được điện áp dương.

    Lưu ý, rằng nếu bạn đang sử dụng một nguồn cung cấp kép op-amp đầu ra của bạn sẽ có hai đường ray cung cấp và sẽ xoay giữa + ve và -ve. Bạn sẽ phải làm cho điện áp đầu ra này dương bằng cách sử dụng một op-amp khác để nó có thể được cấp cho mạch PID. Nếu bạn đang sử dụng một nguồn cung cấp duy nhất op-amp đầu ra của bạn sẽ swing giữa GND và + ve VCC và bạn sẽ không phải sử dụng một mạch chuyển đổi. Trong trường hợp này, bởi vì chúng tôi đang sử dụng SLG88104 op-amp, các trường hợp từ 194 đến 255 sẽ bị loại bỏ khi chúng ở trên 5 V - điện áp tối đa cho thiết bị.

    Trong kết quả của bài viết này, DAC được thực hiện trên một breadboard nhỏ.



    Trình diễn và triển khai bộ điều khiển PID bằng SLG88104
    Thuật ngữ PID là một từ viết tắt viết tắt của Proportional Integral Derivative. Bộ điều khiển PID là một phần của hệ thống phản hồi sử dụng các yếu tố ổ đĩa Tỷ lệ phần trăm, Tích phân và Dẫn xuất để kiểm soát một quy trình.

    Điều khiển PID là cần thiết vì có một số điều khó kiểm soát bằng các phương pháp tiêu chuẩn. Một ứng dụng tương tự đã được thực hiện để điều chỉnh đầu ra của nguồn điện sử dụng vi điều khiển PIC. PIC đọc điện áp đầu ra với bộ chuyển đổi ADC và điều chỉnh PWM để điều chỉnh đầu ra. Chiến lược điều khiển rất đơn giản: Nếu điện áp thấp hơn điểm đặt, hãy bật PWM. Nếu điện áp đo được cao hơn điểm đặt, sau đó tắt PWM. Nguồn điện PIC gần như hoạt động.

    Trong thực tế, bộ điều khiển PIC đã tạo ra điện áp đầu ra DC mong muốn. Thật không may, nó cũng đã có một AC gợn đáng kể cưỡi trên tín hiệu DC.

    Chiến lược kiểm soát này được gọi là kiểm soát bật-tắt hoặc bang-bang. Nhiều loại hệ thống sử dụng chiến lược kiểm soát này. Lấy lò trong nhà của bạn làm ví dụ khác. Khi nhiệt độ thấp hơn điểm đặt, lò đang bật. Khi nhiệt độ cao hơn điểm đặt, lò tắt. Cũng giống như nguồn điện, âm mưu của nhiệt độ theo thời gian dẫn đến một sóng sin.

    Đối với một số loại kiểm soát, bang-bang có thể chấp nhận được; cho những người khác, nó không phải. Bạn sẽ không muốn loại điều khiển này cho một mô tơ servo, những điều xấu sẽ xảy ra! Chỉ cần tưởng tượng: động cơ sẽ có toàn bộ sức mạnh theo một hướng và, khoảnh khắc tiếp theo, toàn bộ sức mạnh theo hướng khác. Bạn có thể thấy từ ngữ bang-bang đến từ đâu; servo đó sẽ không kéo dài!

    Bộ điều khiển PID có thể cung cấp một ổ đĩa được điều khiển, gần như thông minh cho các hệ thống. Bây giờ chúng ta sẽ kiểm tra các thành phần riêng lẻ của hệ thống PID.



    Bộ điều khiển tỷ lệ
    Thành phần tỷ lệ chỉ đơn giản là một khối tăng. Độ lợi được thiết lập bởi các giá trị của các điện trở như sau:





    Hình 7. Bộ điều khiển tỷ lệ


    Bộ điều khiển tích hợp
    Chúng ta có thể nghĩ về điều này như tích lũy (thêm) một số lượng theo thời gian. Trong bộ điều khiển PID của chúng tôi, chúng tôi đang tích hợp điện áp theo tiến độ thời gian. Điện áp đầu ra được cho bởi:

    [​IMG]





    Hình 8. Bộ điều khiển tích phân


    Vùng là một thành phần của điện áp và thời gian. Hãy kiểm tra hoạt động của một nhà tích hợp lý tưởng. Chúng ta có thể đơn giản hóa toán bằng cách làm cho thuật ngữ 1 / RC bằng 1 (tức là, cho R = 100 KΩ và C = 10 µF).





    Hình 9. Mối quan hệ giữa đầu ra và đầu vào trong bộ điều khiển tích phân


    Trong Hình 8, từ 0 đến 2 giây, có một sóng vuông 2 V được áp dụng cho đầu vào của bộ tích hợp. Đầu ra của bộ tích hợp vào cuối khoảng thời gian này là -4 V (nhớ mạch đang đảo ngược). Bộ tích hợp đã tích lũy tín hiệu 2 V trong 2 giây. Diện tích bằng 4. Từ T2 đến T4, không có điện áp nào được áp dụng cho bộ tích hợp. Đầu ra không thay đổi. Trong phần còn lại của sơ đồ này, bạn có thể thấy đầu ra của trình tích hợp thay đổi phân cực khi tín hiệu đầu vào thay đổi phân cực.

    Các cuộc thảo luận trước đó giả định một nhà tích hợp lý tưởng. Tụ điện thực sự sẽ có một số rò rỉ và sẽ có xu hướng tự xả. Ngoài ra, OpAmps thực có thể sạc tụ điện mà không có đầu vào. Nếu mạch được xây dựng như được vẽ, nó sẽ có khả năng bão hòa sau một vài phút hoạt động. Để ngăn chặn độ bão hòa này, hãy thêm một điện trở song song với tụ điện. Vì mục đích của chúng tôi, chúng tôi không quan tâm đến độ bão hòa. Chúng tôi sẽ sử dụng bộ tích hợp với các mạch khác để điều khiển điện tích trên tụ điện.



    Bộ điều khiển phái sinh
    Đạo hàm là phép đo tốc độ thay đổi. Mạch này trông giống như các bộ lọc thông cao bạn đã thấy trong sơ đồ khác. Tần số thấp bị suy giảm, trong khi tần số cao được phép vượt qua. Điện áp đầu ra được cho bởi:

    [​IMG]

    Tỷ lệ thay đổi tương đương với việc đo độ dốc của một đường thẳng. Độ dốc là thước đo sự thay đổi điện áp chia cho sự thay đổi về thời gian. Trong thuật ngữ toán học, điều này được gọi là điện áp delta trên thời gian delta hoặc đơn giản là dv / dt. Nếu chúng ta áp dụng một đoạn đường nối cho bộ phân biệt, chúng ta sẽ có điện áp đầu ra DC ổn định.





    Hình 10. Mối quan hệ giữa đầu vào và đầu ra trong một bộ điều khiển phái sinh


    Để đơn giản hóa toán, chúng ta sẽ để RC = 1. Từ thời gian 0 đến 2, điện áp thay đổi -4 vôn, trong khi thời gian thay đổi 2 giây. Do đó, độ dốc của đường này là -2. Đầu ra của bộ phân biệt sẽ bằng 2 - nhớ rằng giai đoạn đang đảo ngược.



    Sử dụng Bộ điều khiển PID làm Bộ điều khiển Vị trí trong Ứng dụng
    Điều đầu tiên cần lưu ý là đây là một quá trình song song. Các điều khoản P, I và D được tính toán độc lập và sau đó được bổ sung vào mùa hè Σ. Đầu vào cho vòng lặp này là điểm đặt - trong ứng dụng của chúng tôi, 0 VDC được sử dụng làm vị trí 0. Đầu ra là một tín hiệu mà chúng ta sẽ sử dụng để điều khiển tốc độ động cơ theo hướng thích hợp, như được xác định bởi bộ mã hóa. Bây giờ chúng ta sẽ kiểm tra từng điều khoản PID một cách độc lập để xem chúng có liên quan như thế nào.

    Ở phía xa bên trái của Hình 11, chúng ta thấy một giao lộ tổng hợp. Sự khác biệt giữa điểm đặt và phản hồi là lỗi của hệ thống. Nếu vị trí của động cơ đo được là dương, thì lỗi sẽ là âm (tức là cần phải hiệu chỉnh âm). Tương tự như vậy, nếu vị trí động cơ đo được là âm thì cần phải có hiệu chỉnh dương.





    Hình 11. Sơ đồ khối PID như một bộ điều khiển vị trí


    Lỗi được nhân với mức tăng của khối tỷ lệ thuận. Lưu ý rằng sơ đồ khối hiển thị điều này như là một giá trị âm. Điều này đã được thực hiện để sơ đồ khối và sơ đồ (được trình bày sau) sẽ nhất quán với nhau. Đầu ra bộ khuếch đại tỷ lệ được gửi đến giao điểm tổng hợp thứ hai, nơi mà dấu hiệu được đảo ngược lần nữa. Bộ khuếch đại được sử dụng để tăng điện áp tín hiệu đầu ra, vì vậy nó có thể được đưa trở lại GreenPAK đến khối PWM để xuất tín hiệu PWM điều khiển động cơ thông qua trình điều khiển động cơ.



    Hoạt động theo tỷ lệ
    Lưu ý: Lỗi phải có mặt!

    Hệ thống sẽ cố gắng sửa lỗi bằng cách xoay động cơ theo hướng ngược lại lỗi với tốc độ phù hợp.

    Cường độ của hiệu chỉnh được xác định theo tỷ lệ thuận lợi. Nếu không có lỗi, không có ổ đĩa tỷ lệ thuận.



    Hoạt động tích phân
    Tích hợp lỗi sau đó cung cấp tín hiệu hiệu chỉnh cho động cơ.

    Lưu ý: Lỗi phải có mặt!

    Phần tích phân tích lũy lỗi. Một lỗi nhỏ có thể trở thành một sự điều chỉnh lớn theo thời gian.

    Khi lỗi được tích lũy, động cơ buộc phải sửa lỗi.

    Trình tích hợp sẽ vượt qua điểm thiết lập. Nó phải tạo ra một lỗi để chống lại tín hiệu đầu vào để xả tụ điện.



    Hoạt động phái sinh
    Khi động cơ bắt đầu quay, điện áp đo bằng điện trở sẽ tăng hoặc giảm. Nếu chúng ta có điện áp thay đổi theo thời gian, chúng ta sẽ có một đoạn đường dốc! Độ dốc của đoạn đường nối này thay đổi theo tốc độ của động cơ. Nếu động cơ di chuyển nhanh, độ dốc cao. Do đó, đầu ra của giai đoạn phái sinh cũng sẽ cao.

    Lưu ý: Động cơ phải di chuyển!



    Máy phân biệt sẽ có điện áp đầu ra cao khi động cơ di chuyển nhanh và điện áp thấp khi động cơ di chuyển chậm.

    Tín hiệu này được áp dụng theo cách làm chậm động cơ.

    Nếu động cơ không di chuyển, bộ phân biệt có điện áp đầu ra 0.

    Các kết nối cho bộ phân biệt khác với các phần tỷ lệ và tích phân. Bộ phân biệt nhận đầu vào của nó trực tiếp từ điện trở. Do đó, nó chỉ đo tốc độ động cơ đang di chuyển. Nó không quan tâm đến điểm đặt.



    [​IMG]

    Hình 12. Sơ đồ mạch điều khiển PID tương tự cùng với các khối khác của hệ thống


    Tham số PID và các hiệu ứng của nó trên phản hồi hệ thống


    Hình 13. Tăng hiệu ứng của các tham số PID trên toàn bộ phản hồi của hệ thống


    Thực hiện các mạch bằng cách sử dụng SLG88104
    Tôi đã sử dụng một điện trở biến đổi để điều chỉnh điểm đặt cho mạch PID. Điểm đặt là giá trị ban đầu của bộ đếm là 127 tức là tôi cần khoảng 3,27 vôn. Các đầu vào của điện trở biến là VDD của SLG46621 để đặt hàng linh kiện này xem tại đây của chúng tôi và chúng tôi điều chỉnh đầu ra đến 3.27 V bằng cách sử dụng điện trở biến.

    Sau khi kiểm tra mạch PID ở trên, tôi cần tạo một bộ khuếch đại điện áp bằng một op-amp khác để khuếch đại tín hiệu đầu ra. Điều này làm cho sự thay đổi điện áp trở nên đáng chú ý hơn.



    [​IMG]

    Hình 14. Bộ khuếch đại điện áp không đảo ngược


    Để khắc phục vấn đề thêm một op-amp khác để sửa dấu hiệu của op-amp, tôi đã sử dụng cấu hình bộ khuếch đại không đảo ngược. Điện áp đầu ra được cho bởi:

    [​IMG]

    Tôi đã chọn R1 là 1 kΩ và R2 là 10 kΩ do đó điện áp được khuếch đại 11 lần so với tín hiệu ban đầu. Tín hiệu đầu ra sẽ thay đổi từ khoảng 0 đến 4,7 V.

    Lưu ý rằng: nếu bạn không sử dụng SLG88104, đừng quên + V và -V đến op-amp cho hoạt động thích hợp như thao tác được giải thích trong thao tác DAC.

    Tôi đã thực hiện một PCB bằng cách sử dụng phần mềm EagleCAD cho PID tương tự mà chấp nhận hoặc SLG88104 hoặc một LM358 để so sánh giữa đầu ra của cả hai bộ khuếch đại. PCB có các chốt thử cho tín hiệu đầu vào, tín hiệu đầu ra trước khi khuếch đại và điểm đặt. Sau đó, tôi thêm chân kiểm tra thông qua jumper cho tín hiệu đầu ra sau khi khuếch đại.



    [​IMG]

    Hình 15. Sơ đồ Analog PID sử dụng phần mềm Eagle trước khi khuếch đại điện áp




    Hình 16. Bảng mạch Analog PID sử dụng phần mềm Eagle trước khi khuếch đại điện áp


    Lưu ý, nếu bạn muốn sử dụng LM358 chỉ cần đặt IC bằng cách sử dụng chủ sở hữu của nó trong PCB. Nếu bạn muốn sử dụng SLG88104 kết nối các OpAmps từ bảng đánh giá SLG88104 với phần mở rộng của pin headers ở phía xa bên trái. PCB được gắn nhãn rõ ràng để dễ dàng kết nối và gỡ lỗi.

    Mạch khuyếch đại điện áp được làm riêng rẽ trong một bảng mạch nhỏ vì bạn sẽ không cần phải khuếch đại điện áp nếu bạn đang sử dụng LM358 tuy nhiên, bạn sẽ cần như vậy nếu bạn đang sử dụng SLG88104.



    SLG88104 so với LM358
    Mặc dù bạn sẽ cần phải thêm một op-amp phụ để khuếch đại điện áp khi sử dụng SLG88104 có một số lợi ích chính với op-amp này; nó ít nhiễu hơn, có phản ứng nhanh hơn để thay đổi tín hiệu đầu vào so với LM358, và nhỏ hơn đáng kể so với LM358, vì vậy mạch PID tương tự có thể được thiết kế lại bằng cách sử dụng các thành phần gắn trên bề mặt gọn hơn và vẫn thể hiện hiệu suất tương tự.



    Lấy tín hiệu tương tự
    Tín hiệu tương tự, điều khiển PWM đến khối PWM trong GreenPAK và đi ra từ mạch PID, là tín hiệu điều chỉnh duy trì tốc độ động cơ để đạt được vị trí bằng 0, với giá trị ban đầu là 127 (giá trị ban đầu của bộ đếm). Vì tín hiệu này là analog nên nó không thể được cấp trực tiếp cho trình điều khiển động cơ, trước tiên chúng ta phải nạp GreenPAK vào khối PWM. Sau đó chúng tôi sử dụng tín hiệu PWM đầu ra để duy trì tốc độ động cơ.

    Tôi đã sử dụng ứng dụng điều khiển động cơ servo AN-1057 lưu ý làm tham chiếu để điều chỉnh các tham số khối PWM.



    [​IMG]

    Hình 17. Kết nối Matrix0 cho khối PWM


    [​IMG]

    Hình 18. Kết nối Matrix1 cho khối PWM


    [​IMG]

    Hình 19. Tham số mạch PWM


    Lưu ý rằng, tại vị trí số không là giá trị ban đầu của chúng ta 127 động cơ sẽ không bao giờ dừng lại; các dao động có thể kích hoạt đếm lên hoặc xuống. Ngay cả khi chỉ có một điện áp nhỏ, động cơ sẽ tiếp tục dao động xung quanh vị trí 0. Tôi đã thực hiện một multiplexer để kiểm soát trạng thái của pin 5, mà nguồn cấp dữ liệu PWM cho trình điều khiển động cơ. Khi điểm zero-position xảy ra các trạng thái Q0 đến Q6 là HIGH và Q7 là LOW.

    Tuy nhiên, trong bất kỳ trường hợp nào khác, đầu ra pin 20 sẽ được kết nối với đầu ra của khối PWM dưới dạng tín hiệu PWM được nạp vào trình điều khiển động cơ. Điều này đảm bảo rằng động cơ sẽ phải dừng ở vị trí 0 với một số lỗi có thể chấp nhận được. Điều này là do tôi đã sử dụng các khối tương tự được sử dụng để điều khiển động cơ servo DC cần xung 1.5ms ở 0 độ và thủ thuật ghép kênh này đảm bảo không có đầu ra khi đếm là 127 nghĩa là vị trí 0.



    Chọn đúng hướng Pin để kết nối với Motor Driver
    Bây giờ, chúng ta hãy sửa lại kịch bản của chúng ta: động cơ khởi động ở vị trí 0, nếu chúng ta di chuyển nó theo chiều kim đồng hồ, nó phải di chuyển ngược chiều kim đồng hồ để chống lại chuyển động với tốc độ đầu ra thích hợp từ khối PWM để tới vị trí 0, hoặc ngược lại nếu di chuyển ngược chiều kim đồng hồ và đó là những gì chúng ta thực sự nhận được từ đầu ra DFF3. Vì vậy, di chuyển theo chiều kim đồng hồ sẽ tạo ra tín hiệu LOW được cấp cho trình điều khiển động cơ, vì vậy nó làm cho động cơ di chuyển ngược chiều kim đồng hồ để chống lại chuyển động với tốc độ đầu ra thích hợp từ khối PWM và ngược lại.

    Pin PWM trình điều khiển động cơ được kết nối với Pin 5 và chân hướng của bộ điều khiển động cơ được kết nối với chân 6.



    [​IMG]

    Hình 20. Chân ổ đĩa động cơ


    Hệ thống quan sát và sử dụng tài nguyên cuối cùng
    [​IMG]

    Hình 21. Sơ đồ khối hệ thống của điều khiển vị trí


    Cách hoạt động của hệ thống: Tóm tắt
    • Đầu ra bộ mã hóa động cơ có hai đầu ra: xung A và xung B, được sử dụng để cho tín hiệu hướng tới bộ điều khiển động cơ và mạch vuông góc để kích hoạt bộ đếm lên hoặc xuống tùy thuộc vào hướng của động cơ;
    • Bộ đếm lên / xuống 8 bit được sử dụng để đếm các khe của đĩa bộ mã hóa động cơ được bao phủ: theo hướng CW và xuống theo hướng CCW;
    • Dữ liệu này sẽ được chuyển thành tín hiệu analog sử dụng DAC bên ngoài, sau đó nó sẽ được cấp cho mạch PID tương tự và điểm đặt sẽ được đặt thành giá trị ban đầu của bộ đếm 127;
    • Điều chỉnh các thông số PID của hệ thống cho đến khi bạn nhận được đáp ứng ổn định thì đầu ra của PID phải là tín hiệu duy trì tốc độ động cơ. Đầu ra này không phải là tín hiệu PWM, vì vậy nó sẽ được đưa trở lại GreenPAK;
    • Tín hiệu tương tự sẽ đi qua khối ADC sau đó đến khối PWM để xuất tín hiệu PWM tương ứng;
    • Bây giờ chúng ta có tín hiệu PWM thích hợp và tín hiệu hướng từ mạch phát hiện hướng, cần được cấp cho trình điều khiển động cơ để điều chỉnh vị trí của động cơ.


    Điều chỉnh tham số PID
    Điều chỉnh PID là một quá trình phức tạp và nằm trong phạm vi của ghi chú ứng dụng.

    Đối với phạm vi của ứng dụng này, trong đó tập trung giới thiệu sinh viên với ý tưởng kiểm soát PID, thử và sai là cách hoàn hảo để điều chỉnh các tham số PID, vì bạn xem phản hồi của hệ thống và điều chỉnh các tham số để đạt được điểm ổn định không có quá tải hoặc dao động.

    Tuy nhiên, đối với động cơ mô-men xoắn nhỏ, nhỏ với ít hoặc không có bánh răng, một thủ tục bạn có thể sử dụng để có được một giai điệu cơ bản tốt là để thăm dò phản ứng của nó với một sự xáo trộn.

    Để điều chỉnh PID, hãy sử dụng các bước sau:

    • Đặt tất cả các lợi nhuận về 0;
    • Tăng độ lợi P cho đến khi đáp ứng với nhiễu là dao động ổn định;
    • Tăng độ lợi D cho đến khi dao động biến mất (tức là nó bị giảm thiểu nghiêm trọng);
    • Lặp lại các bước 2 và 3 cho đến khi tăng độ lợi D không dừng dao động;
    • Đặt P và D cho các giá trị ổn định cuối cùng;
    • Tăng tôi đạt được cho đến khi nó mang đến cho bạn đến điểm đặt với số dao động mong muốn (thông thường bằng không, nhưng một phản ứng nhanh hơn có thể có nếu bạn không nhớ một vài dao động của vượt qua).
    Sự xáo trộn bạn sử dụng phụ thuộc vào cơ chế gắn với bộ điều khiển. Thông thường, di chuyển cơ chế bằng tay ra khỏi điểm đặt và bỏ đi là đủ. Nếu các dao động phát triển lớn hơn và lớn hơn thì bạn cần giảm mức tăng P.

    Nếu bạn đặt D đạt được quá cao, hệ thống sẽ bắt đầu trò chuyện (rung ở tần số cao hơn so với dao động tăng P). Nếu điều này xảy ra, hãy giảm độ lợi D cho đến khi nó dừng lại.



    Bảng 1. So sánh giữa các phương pháp điều chỉnh PID





    Sửa đổi hệ thống kiểm soát tốc độ
    Số xung trên giây là tỷ lệ thuận với tốc độ của động cơ. Pulse A được giải mã để tạo ra một xung đếm ngược hoặc một xung đếm ngược. Để giải mã trong phần mềm, đầu ra A được đọc bởi bộ đếm phần mềm và số lượng trên giây là tỷ lệ thuận với số vòng quay mỗi giây.





    Hình 22. Bộ mã hóa mã hóa giải mã cho sơ đồ khối điều khiển tốc độ


    Sơ đồ khối hệ thống
    [​IMG]

    Hình 23. Sơ đồ khối hệ thống của điều khiển tốc độ


    Thực hiện Arduino
    Một thay thế cho việc sử dụng một GreenPAK để thực hiện điều khiển PID là sử dụng Arduino, một vi điều khiển phổ biến được sử dụng bởi những người có sở thích. So với một GreenPAK, giải pháp Arduino đòi hỏi một số kiến thức lập trình và không gian nhiều hơn đáng kể trong dự án kể từ khi Arduino và lớn hơn nhiều so với một GreenPAK. Ngoài ra, một chi phí GreenPAK ít hơn nhiều so với Arduino rẻ nhất.

    Ngoài ra, như đã đề cập ở trên, một bộ điều khiển PID tập trung vào phần mềm có những hạn chế. Việc triển khai PID trong phần cứng cho phép người dùng kiểm soát mọi tham số trong thiết kế nhưng có thể khó điều chỉnh hơn.




    #include
    #include

    double Setpoint, Input, Output;
    PID myPID(&Input, &Output, &Setpoint,1.002,0.0001,0.01, DIRECT);
    Encoder myEnc(2, 8);
    long oldPosition = -999;
    void setup() {
    Serial.begin(9600);
    pinMode(10,OUTPUT);
    pinMode(9,OUTPUT);
    Input = myEnc.read();
    Setpoint = 0;
    myPID.SetMode(AUTOMATIC);
    myPID.SetOutputLimits(-254,254);
    myPID.SetSampleTime(60);
    }

    void loop() {
    long newPosition = myEnc.read();
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    Input = myEnc.read();
    Serial.println(Output);
    myPID.Compute();
    if(Output > 0){
    Serial.println(newPosition);
    digitalWrite(10,HIGH);
    analogWrite(9,abs(Output));
    }
    else{
    digitalWrite(10,LOW);
    analogWrite(9,abs(Output));
    }
    }
    }



    Kết quả dự án
    Mỗi phần của hệ thống được thực hiện một cách kín đáo, sau đó các bộ phận được tích hợp với nhau và toàn bộ hệ thống đã được gỡ lỗi. Thiết kế PCB làm cho nó dễ dàng để gỡ lỗi hệ thống vì các chân thử nghiệm.

    Phần 1: Điều khiển vị trí và tốc độ của động cơ DC sử dụng bộ điều khiển PID tương tự

    Phần 2: Điều khiển vị trí và tốc độ của động cơ DC sử dụng bộ điều khiển PID tương tự

    Các bài kiểm tra sau đã được áp dụng trong khi xây dựng bộ giáo dục:

    1. Thử nghiệm đơn vị: Tôi chia ứng dụng thành từng miếng nhỏ và kiểm tra từng mảnh nhỏ một mình để hoạt động chính xác
      • GreenPAK lên / xuống truy cập với scaling: ý tưởng chính là di chuyển con trỏ thông qua việc mở rộng quy mô và xem tăng truy cập thông qua việc mở rộng, tôi tạo ra một mạch ngoài với 8 đèn LED để kiểm tra bộ đếm 8 bit và một LED riêng biệt khác. ON trong khi di chuyển CCW và OFF trong khi di chuyển CW cho biết tín hiệu chính xác của động cơ;
      • DAC mạch: Tôi xác minh rằng DAC hoạt động như mô tả trong phần 4 của ứng dụng này lưu ý;
      • Mạch PID tương tự không khuếch đại: trước khi thiết kế PCB, tôi đã tạo ra mạch PID tương tự bằng cách sử dụng bảng mạch khung và kiểm tra nó thông qua tín hiệu analog được đưa ra từ Arduino. Sau đó, tôi đã thử nghiệm nó thông qua tín hiệu đầu vào từ DAC 8 bit;
      • Mạch PID tương tự với khuếch đại: Tôi đã dò tìm đầu ra PID sau khi khuếch đại op-amp;
      • Trình điều khiển động cơ: Tôi đã thử nghiệm trình điều khiển động cơ với tín hiệu đầu vào và tín hiệu hướng từ cả việc triển khai Arduino và GreenPAK.
    2. Kiểm thử tích hợp: Tôi gắn các phần nhỏ của hệ thống với nhau và kiểm tra chúng như là các khối thiết kế.
    3. Kiểm tra hệ thống: Tôi đã thử nghiệm toàn bộ hệ thống dưới dạng hộp đen. Tôi bật bộ dụng cụ sau đó kiểm tra đáp ứng của động cơ đối với chuyển động của con trỏ.
    4. Thử nghiệm chấp nhận: đạt được các thông số hoàn hảo cho hệ thống ổn định và nhận thấy việc thay đổi giá trị của chiết áp ảnh hưởng đến phản ứng như thế nào. Tôi đã sử dụng các đường cong dưới đây làm hướng dẫn cho phản ứng hoàn hảo.




    Hình 24. Ảnh chụp màn hình Oscilloscope của hệ thống đạt được một phản hồi hệ thống ổn định


    [​IMG]

    Hình 25. Đường cong tham chiếu cho tham số P và I


    Hội đồng cuối cùng


    [​IMG]

    Hình 26. Lắp ráp cuối cùng của hệ thống trước khi đưa nó vào hộp




    Hình 27. Hình thức cuối cùng của bộ giáo dục


    Phần kết luận
    Lưu ý ứng dụng này chứng minh làm thế nào để thực hiện một vị trí và kiểm soát tốc độ của một động cơ DC. Điều này có thể được sử dụng như một bộ giáo dục để hiển thị các hiệu ứng của các chương trình điều khiển tỷ lệ, tích phân và đạo hàm cũng như hiệu quả của độ bão hòa, chống gió và tốc độ cập nhật bộ điều khiển về độ ổn định, vượt qua và lỗi trạng thái ổn định.

    Chỉ có một vài khối nội bộ của SLG46621V được sử dụng, để lại phần lớn các khối có sẵn để xây dựng các mạch khác xung quanh nó. Đây là một ví dụ lý tưởng của một IC tín hiệu hỗn hợp vì cả hai khối analog và kỹ thuật số được sử dụng trong ứng dụng này.

    Một màn hình LCD có thể được thêm vào sau để hiển thị các giá trị tham số PID.

    Việc triển khai GreenPAK không yêu cầu bất kỳ phát triển phần cứng hoặc phần mềm bổ sung nào khi so sánh với vi điều khiển. Ngoài ra, sự tập trung vào điều khiển PID theo phần cứng đảm bảo đáp ứng nhanh cần thiết cho bộ điều khiển PID tương tự.



    Tài liệu tham khảo

    Đối với các tài liệu và phần mềm liên quan, vui lòng truy cập trang sản phẩm của GreenPak .

    1. Phần mềm thiết kế GreenPAK , Tải xuống phần mềm và Hướng dẫn sử dụng
    2. Điều khiển vị trí và tốc độ AN-CM-xxx của Động cơ DC sử dụng Bộ điều khiển PID Analog.gp, Tệp thiết kế GreenPAK
    3. Công cụ phát triển GreenPAK
    4. Ghi chú ứng dụng GreenPAK


    Các bài viết trong ngành là một dạng nội dung cho phép các đối tác trong ngành chia sẻ tin tức, tin nhắn và công nghệ hữu ích với người đọc Tất cả Giới thiệu về Mạch theo cách nội dung biên tập không phù hợp. Tất cả các bài viết trong ngành đều phải tuân thủ các nguyên tắc biên tập nghiêm ngặt với mục đích cung cấp cho người đọc tin tức hữu ích, chuyên môn kỹ thuật hoặc câu chuyện. Các quan điểm và ý kiến được thể hiện trong các Bài viết Công nghiệp là những quan điểm của đối tác và không nhất thiết là quan điểm của All About Circuits hoặc các nhà văn của nó.

Chia sẻ trang này