Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 gru 2024, o 16:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 19 sie 2015, o 22:07 
Offline
Nowy

Dołączył(a): 10 mar 2015
Posty: 9
Pomógł: 0

Witam,
projektuję sterownik silnika, w którym zaimplementowany jest regulator PI. Napotkałem problem synchronizacji. Otóż wykorzystuję TIMER1 atmegi32 w trybie FAST, PWM 10-bit (mode 7 z noty katalogowej), preskaler ustawiony na 1. W jakich odstępach czasu powinien być realizowany pomiar i zadawanie nowej (wyliczonej przez regulator) wartości rejestru OCR1?
Znalazłem kod, w którym autor wykorzystuje takie same ustawienia jak ja i funkcje regulatora wywołuje co 1ms. Dlaczego?
Pozdrawiam i liczę na szybką pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2015, o 21:26 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Ważniejsza sprawa co jaki czas masz "świeży" wynik pomiaru prędkości, jak wykonujesz pomiar? Enkoder? Bo nic ci nie da (a nawet zaszkodzi) wyliczenie regulacji jeżeli nie będzie aktualnego pomiaru prędkości. Dlatego jeżeli masz np 1 albo 2 impulsy na obrót to mniejsze prędkości sobie odpuść. Natomiast jeżeli masz jakiś sensowny enkoder to regulator możesz wywoływać co zbocze z enkodera, pamiętając aby przy całkowaniu nie zapomnieć o pomiarze czasu dT

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2015, o 15:24 
Offline
Użytkownik

Dołączył(a): 01 sty 2014
Posty: 116
Pomógł: 14

Zasadniczo im częściej liczysz wszystko tym lepiej. Jeśli masz możliwość robienia wszystkich obliczeń kilka razy szybciej niż okres timera to zostaw tak jak jest albo jak nie dajesz rady wyrobić się z obliczeniami na czas, to chociaż całkuj najszybciej jak możesz a całą reszte licz na przyklad w przerwaniu od timera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sie 2015, o 14:22 
Offline
Nowy

Dołączył(a): 10 mar 2015
Posty: 9
Pomógł: 0

OK, zrozumiałem już. Teraz mam inne pytanie (też związane z PWM). Mianowicie w atmega32 ustawiłem Timer1 w tryb PWM z korekcją fazy (mode 3). Chcę wywoływać przerwanie w chwili, gdy licznik skończy zliczać w górę - ustawienie flagi OCnA/ICFn. Czy tej fladze odpowiada wektor przerwania TIMER1_COMPA_vect?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO