Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

regulacja obrotów silnika atmega bascom

21 Paź 2013 08:04 2445 6
  • Poziom 23  
    Witam
    Chciałm zrobić automatyczną regulację obrotów silnika. Pierwszy silnik napędza drugi silnik który pracuje jako prądnica i muszę wraz ze zmianą obciążenia prądnicy regulować obroty silnika tak aby uzyskać stałe napięcie na wyjściu prądnicy. Do sterowania zastosowałem Atmegę 8. Napisałem taki programik i niby działa, ale ... regulacja jest zbyt wolna. Czy ma ktoś jakiś pomysł jak to rozwiązać ?
    Kod: bascom
    Zaloguj się, aby zobaczyć kod

  • Poziom 19  
    Witam
    Widzę dwie możliwe przyczyny takiego zachowania.
    1 Wyświetlacz LCD - jego obsługa pochłania sporo czasu więc lepiej wywalić poza główną pętlę programu - niech się odświeża raz na jakiś czas
    2 Zmienne typu single - ich liczenie zajmuje w Bascomie dużo czasu - warto przemyśleć zmianę
    Nie analizowałem całego kodu ale wydaje mi się że to są dwaj główni winowajcy.
  • Poziom 23  
    A czy napisanie PID coś zmieni. Pytam w ten sposób bo nigdy nie pisałem PID i nawet nie za bardzo wiem jak się za to zabrać.

  • Poziom 19  
    Wszystko zależy od mechanicznej dynamiki układu. Ale bez względu na to jaki algorytm zostanie zastosowany w sterowniku najważniejszą rzeczą jest to żeby był szybszy od zmian w części mechanicznej. Możesz stworzyć świetny PID ale jeśli jego reakcje nie będą nadążały za mechaniką to całość będzie źle działała. Najczęściej jest tak, że prosty warunek porównawczy ale szybko działający będzie skuteczniejszy od skomplikowanej ale wolnej procedury regulacji.
  • Poziom 23  
    I tutaj kolego masz rację. Zeby się to ładnie wszystko wyświetlało użyłem do tego celu instrukcji select case. Jak usunę "wyświetlanie" to układ reaguje dosłownie w momencie - jak błyskawica.
    Więc pojawił się kolejny problem. Jak to wyświetlać żeby nie spowalniało to procedury regulacji.
  • Pomocny post

    Poziom 19  
    A jak często musisz odświeżać informacje na wyświetlaczu?
    Może wystarczy raz na np. dwie sekundy?
    Masz przecież wolny jeszcze timer - możesz wykorzystać go w przerwaniu aby odświeżał wyświetlacz. Taka chwilowa "niedyspozycja" kontroli będzie w zasadzie nie zauważalna dla silnika.
  • Poziom 23  
    W zasadzie to nie musi być często odświeżany, nie pomyślałem o takim rozwiązaniu. Spróbuję jeszcze jutro nad tym posiedzieć. Dzisiaj już mi głowa pęka - a w takiej sytuacji źle się myśli.