<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=6891&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-30T18:45:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6891&amp;mode</id>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2014-04-30T18:45:06+01:00</updated>
<published>2014-04-30T18:45:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79717#p79717</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79717#p79717"/>
<title type="html"><![CDATA[Re: Algorytm do serwonapędu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79717#p79717"><![CDATA[
Ustawiasz przerwanie z częstotliwością która cię interesuje. W przerwaniu sprawdzasz czy wartość zadana jest równa z wykrytą, jeśli nie zmieniasz stan wyjścia na przeciwny, sprawdzasz czy wartość jest dodatnia czy ujemna i odpowiednio sterujesz kierunkiem obrotów. Jeśli wartości są takie same nic nie zmieniasz.<br /><br /><br />Coś takiego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 30 kwi 2014, o 18:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cudny90]]></name></author>
<updated>2014-04-30T17:13:29+01:00</updated>
<published>2014-04-30T17:13:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79707#p79707</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79707#p79707"/>
<title type="html"><![CDATA[Re: Algorytm do serwonapędu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79707#p79707"><![CDATA[
Regulator też będę potrzebował, ale to w przyszłości. (akurat do obrabiarki, do której robię to urządzenie nie mogę zastosować PID, ale tylko P, ponieważ nie może być tam przeregulowań)<br /><br />Nie chcę chwalić dnia przed zachodem słońca, ale chyba już sobie z problemem poradziłem. Właśnie testuję.<br /><br />Chodzi mi o funkcję, która wykona ilość przerwań od przepełnienia timera określoną ilość razy. To tak ogólnie mówiąc.<br />Bo w przerwaniu zmieniam stan wyjścia. A funkcja ma wykonywać określoną ilość zmian stanów wyjścia z określoną częstotliwością.<br /><br />PS: Problem jednak dalej aktualny <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2002">cudny90</a> — 30 kwi 2014, o 17:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-04-30T16:54:24+01:00</updated>
<published>2014-04-30T16:54:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79706#p79706</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79706#p79706"/>
<title type="html"><![CDATA[Re: Algorytm do serwonapędu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79706#p79706"><![CDATA[
Po prostu potrzebujesz regulator PID, bo ciężko uzyskać szybką i jednocześnie stabilną pracę w ujemnej pętli sprzężenia zwrotnego używając samego członu P.<br />Zarówno programów jak i algorytmów w sieci jest mnóstwo, dlatego nie będę ich tutaj przytaczał, ale głównie chodzi o wyznaczenie uchybu (różnicy wartości zadanej i mierzonej) i na tej podstawie wyliczenie sterowania regulatora.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 30 kwi 2014, o 16:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cudny90]]></name></author>
<updated>2014-04-30T16:28:08+01:00</updated>
<published>2014-04-30T16:28:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79705#p79705</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79705#p79705"/>
<title type="html"><![CDATA[Re: Algorytm do serwonapędu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79705#p79705"><![CDATA[
Nikt nie jest w stanie mi pomóc? Ja doznałem jakiegoś zaćmienia umysłu i nie umiem sobie z tym problemem poradzić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2002">cudny90</a> — 30 kwi 2014, o 16:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cudny90]]></name></author>
<updated>2014-04-26T19:45:29+01:00</updated>
<published>2014-04-26T19:45:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79299#p79299</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79299#p79299"/>
<title type="html"><![CDATA[Algorytm do serwonapędu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6891&amp;p=79299#p79299"><![CDATA[
Witajcie,<br />stworzyłem ten temat, ponieważ mam do Was prośbę.<br />Chciałbym, abyście pomogli mi wymyślić jakiś w miarę sensowny algorytm do sterowania serwonapędem.<br /><span style="text-decoration: underline">Nie potrzebuję kodu.</span><br />Potrzebuję sam algorytm.<br />Chodzi o sterowanie serwonapędem.<br />Sterowanie jest bardzo proste, wystarczy podawać sygnał prostokątny + do tego kierunek (albo 0, albo 1)<br />Częstotliwość wyjściowego sygnału powinna być zmieniana powiedzmy od 20kHz do 30kHz.<br />Muszę napisać funkcję, która będzie sprawdzała aktualną pozycję serwonapędu, nazwijmy ją x, porównywała z pozycją zadaną, obliczała różnicę i wysyłała tyle impulsów do serwonapędu, ile wynosi ta różnica (do tego sygnał kierunku w zależności, czy różnica jest większa, czy mniejsza od zera)<br />W sterowaniu ręcznym (które mi działa), robię to tak, że przycisk uruchamia timer, od którego jest ustawione przerwanie i w przerwaniu zmieniam stan wyjścia. Częstotliwość sygnału wyjściowego reguluję sobie zmianą preskalera i to wszystko mi działa.<br /><br />W sterowaniu automatycznym, napisałem funkcję taką pierwotną/wstępną, bez obliczania różnicy, działającą na zasadzie &quot;wyślij 5 impulsów&quot;, której argumentem nie jest pozycja zadana, tylko ilość impulsów, które mikrokontroler ma wysłać. Ustawiłem małą częstotliwość tak, żebym mógł liczyć (błyski diody), czy wysyła dobrą ilość.<br />W funkcji również uruchamiałem timer i w przerwaniu zmieniałem stan i zwiększałem flagę. Niestety nie działa mi to, ponieważ wysyła za dużą liczbę impulsów... Ale to jest nie ważne. Chciałbym poznać jakieś może ciekawsze metody <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Bo co dwie głowy (albo i więcej głów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ) to nie jedna.<br /><br />Mam nadzieję, że problem opisałem dość jasno.<br /><br />Dziękuję z góry za pomoc i pozdrawiam,<br />Adam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2002">cudny90</a> — 26 kwi 2014, o 19:45</p><hr />
]]></content>
</entry>
</feed>