Thông báo

Collapse
No announcement yet.

Tăng tốc-giảm tốc động cơ theo khoảng cách ???

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

  • Tăng tốc-giảm tốc động cơ theo khoảng cách ???

    Chào các bạn,
    Mình có một bài toán mà chưa tìm ra được lời giải tối ưu. Bài toán của mình như sau:
    Mình dùng 1 PLC (FX2N) + 1 bộ DA + 1 driver servo (Sanyodenki) để điều khiển 1 động cơ servo kéo 1 cơ cấu chạy qua chạy lại. Trong động cơ servo có built-in 1 encoder 2048 ppm. Động cơ này sẽ chạy theo 1 giá trị tham chiếu ( đặt trước khi khởi động). Động cơ sẽ chạy qua lại, động cơ dừng và đảo chiều ở 2 đầu (đoạn đường 12m), ban đầu khi khởi động động cơ tăng tốc, yêu cầu là sau khi chạy được 1 quãng đường x = 0.7m thì động cơ phải đạt được tốc độ định mức, sau đó chạy đều trong quãng đường 10.6m, còn 0.7 mét cuối cùng động cơ giảm tốc và đảo chiều (chu kỳ lặp lại)
    Vướng mắc của mình là tốc độ tham chiếu thay đổi ( do người vận hành cài đặt ban đầu) và động cơ phải luôn đạt tốc độ sau 0.7m tính từ vị trí ban đầu.

    Hướng giải quyết của mình: Mình chia nhỏ đoạn đường đó ra làm nhiều phần, dùng lệnh so sánh tốc độ cao để so sánh xung encoder hồi tiếp về ( xác định khoảng cách của động cơ servo), trong mỗi phần mình xuất ra 1 giá trị tham chiếu, đến phần cuối cùng thì Vref = Vmax. Tuy nhiên việc chia nhỏ chỉ có giơi hạn: 1. nếu chia nhỏ ( khoảng 4 lần) thì động cơ bị giật (mỗi khi tăng tốc - nhảy cấp), 2. nếu chia thành nhiều khoảng ( cỡ 10 khoảng) thì chương trình có vấn đề nếu chạy ở tốc độ cao (đáp ứng không kịp, mất xung)

    Mình post lên mong mọi người chia sẻ thuật toán xử lý

    Tks
    Last edited by Kekhukho; 29-11-2008, 16:11.
    Biển học vô bờ

  • #2
    1 phải turnning sero khi dã có tải, thường các servo driver đời mới có chức năng auto turnning , cái này phải xem trong manual để chỉnh

    2 Ac servo cũng cần thời gian tăng tốc và giảm tốc, cho dù có chia quảng đường ra làm nhiều phần mà tốc độ nhảy cóc thì servo vẫn báo lỗi, ví dụ cần 0,8S để tăng từ 0RPM lên 2000RPM thì okies, nhưng chia quảng dường 1 mét đầu tiên ra làm 5 phấn để chạy từ 0 lên 2000RPM, rồi nhảy cóc 0 - 400 800 1600 2000 thì servo vẫn báo lổi

    B/R

    Comment


    • #3
      Cơ cấu servo của là cơ cấu psl Pwm servo kiểu Analog servo kiểu cũ chưa có điều khiển vị trí ,Cho nên bạn phải dùng D/A Conv để điểu khiển theo PWM , Nhưng chưa có điều khiển vị trí nên , Bạn có thể PLC điễu khiển tăng tốc dần (acc ) tham số trong servo gọi là Accelerator times , Và Decc thời gian giảm tốc động cơ , Nhưng do không có điều khiển vị trí PID nên khi vướt mắt của bạn bạn là khi trở về trí nó bị không ở vị trí ban đầu !Muốn điều khiển vị trí bạn phải lấy 2 xung A&B từ Enc hồi tiếp vể để so sánh vị trí kêt hơp với PID lúc này sẽ xuất hiện các tham số turning (Kp,Ki,..)Bởi vì servo bạn là servo kiểu cũ nên ko có dk vị trí ,Các Ac servo đời điều có Pos control ,---> hiệu chỉnh tay turning open
      Còn chia nhỏ bước nhảy acc ( step acc ) nếu bước dài thì ko sao , nhưng bước ngắn thì động sẽ bị giật do độ torque tăng cao , Thử giảm độ torque bằng cách hạ điện cấp nguồn cho servo ( ko biết bạn dùng DC servo hay AC servo ...vì Ac servo giảm độ torque bằng cách khác ) Nếu dùng Dc servo khi hạ VCc tuyến tính tới mưc độ nào đo thì thì sẽ không bị giật động cơ ( nêu servo zin MR-J2R Mitshu ---> acc quá ngắn servo cũng báo lỗi thôi ,Vì vây phương án step acc ---> khó có có thể thực thi
      Giải pháp của mình cho bạn là nên
      Viết thêm 1 chương trình điều khiển vị trí dùng lện PID trong FX2N,
      Nhung mịnh vẫn chưa hiểu vướng mắt của bạn ỡ chổ nào ,Acc (d=0,7m , servo = ? rpm ,Tacc =? ( thời gian tăng tốc từ 0 - hết đoan 0,7m )
      Vì servo driver của bạn chưa có dk vị trí nên bạn phải tính tới tốc độ của servo trước rồi mới tính tới D , quãng đường chạy
      Gởi ý :

      từ ví dụ : 2000x (plc ) = Vmax(inp servo ) ,
      Nên dùng PLSY thì mới có ACC/dcc acc muôn không giât động cơ khi tăng tốc , khoảng ACc(x=0,7) bạn cho tần số xung servo ( châm thôi )----> đạt tới hết 0,7 ---> điểm 1m ( tăng như tốc preset )
      Professional Digital Genset & Hydraulic Furukawa ,Tamrock RockDrill
      email:
      forum : gensetvietnam.forumvi.com

      Comment


      • #4
        Cảm ơn các bạn đã quan tâm đến bài toán của mình
        Do lúc trưa vội quá nên mình không nói rõ được bài toán của mình. Ở đây ta bàn tới việc tăng tốc ( nếu làm được thì giảm tốc ok). Mình muốn nhấn mạnh mấy điểm quan trọng của bài toán này là: 1. điều khiển tăng tốc theo vị trí (vị trí của động cơ xác định được nhờ xung encoder hồi tiếp về), 2. xử lý ở tốc độ cao ( do tốc độ lớn và độ phân giải của encoder built-in cao). 3. Tốc độ tham chiếu không cố định (phụ thuộc vào người vận hành) nhưng khoảng cách đạt tốc độ max luôn là 0.7m. 4. Đcơ mình dùng là servo AC.
        Như vậy chỉ có thể tăng tốc theo khoảng cách. Mình định chuyển qua tăng tốc theo thời gian. Việc tính thời gian tăng tốc mình định áp dụng công thức học hồi xa lơ xa lắc:
        Vmax * Vmax - V0*V0 = 1/2 * a * S và S = v0 * t + 1/2 a * t *t
        Trong đó Vmax là vận tốc khi motor ở vị trí S = 0.7m ( gốc tọa độ tại vị trí khởi động)
        V0: vận tốc ban đầu ( tất nhiên = 0m/s)
        S = 0.7 m
        a: gia tốc
        t: thời gian tăng tốc

        Còn phương pháp chia nhỏ mình làm như thế này:
        Quãng đường 0.7m mình chia làm 7 đoạn. mỗi đoạn là 0.1m
        Như vậy mình chia giá trị vận tốc tham chiếu Vmax cho 7
        Trong đoạn đường đầu từ 0 - 0.1m : Vref = Vmax/7
        Trong đoạn từ 0.1-0.2 m: Vref = 2Vmax/7

        Đến đoạn cuối cùng 0.6-0.7m: Vref = Vmax
        Last edited by Kekhukho; 29-11-2008, 16:31.
        Biển học vô bờ

        Comment

        Về tác giả

        Collapse

        Kekhukho Chả có gì để nói cả Tìm hiểu thêm về Kekhukho

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

        Collapse

        Đang tải...
        X