<?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=7656&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-03T12:06:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7656&amp;mode</id>
<entry>
<author><name><![CDATA[lukasz139]]></name></author>
<updated>2014-07-03T12:06:22+01:00</updated>
<published>2014-07-03T12:06:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86537#p86537</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86537#p86537"/>
<title type="html"><![CDATA[Re: Nieprawidlowe dzialanie regulatora PID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86537#p86537"><![CDATA[
<a href="http://forum.atnel.pl/_obrazki/o/3374/70b7a94fb11fe341e9429a665b6a43fa.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3374/70b7a94fb11fe341e9429a665b6a43fa.jpg" alt="Obrazek" /></a><br /><br />Stosuje driver Irs2113 dla tranzystora. Jak pisalem wczesniej dla napiecia podawanego &quot;sztucznie&quot; z zewnatrz wypenienie zmienia sie wedlug oczekiwac jednak po podlaczeniu do wyjscia BUCKA uklad zachowuje sie jak opisalem wczesniej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3374">lukasz139</a> — 3 lip 2014, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2014-07-03T09:26:20+01:00</updated>
<published>2014-07-03T09:26:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86532#p86532</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86532#p86532"/>
<title type="html"><![CDATA[Re: Nieprawidlowe dzialanie regulatora PID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86532#p86532"><![CDATA[
Może kolega by napisał ile wynosi to napięcie BUCK bo może jest wyższe niż napięcie zasilania uC albo jest takie małe... Może schemat przetwornicy z podłączoną atmegą bo z kolegi schematu nie da się wiele powiedzieć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 3 lip 2014, o 09:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukasz139]]></name></author>
<updated>2014-07-03T07:17:46+01:00</updated>
<published>2014-07-03T07:17:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86526#p86526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86526#p86526"/>
<title type="html"><![CDATA[Re: Nieprawidlowe dzialanie regulatora PID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86526#p86526"><![CDATA[
[syntax=c]volatile int pomiar;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3374">lukasz139</a> — 3 lip 2014, o 07:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2014-07-02T23:33:46+01:00</updated>
<published>2014-07-02T23:33:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86517#p86517</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86517#p86517"/>
<title type="html"><![CDATA[Re: Nieprawidlowe dzialanie regulatora PID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86517#p86517"><![CDATA[
Jakiego typu jest zmienna pomiar?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 2 lip 2014, o 23:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukasz139]]></name></author>
<updated>2014-07-02T21:29:46+01:00</updated>
<published>2014-07-02T21:29:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86513#p86513</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86513#p86513"/>
<title type="html"><![CDATA[Nieprawidlowe dzialanie regulatora PID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7656&amp;p=86513#p86513"><![CDATA[
Witam,<br /><br />Jestem w trakcie budowy regulatora PI dla przetwornicy BUCK. Moj klopot polega na niewlasciwym dzialaniu regulatora po podlaczeniu napiecia wyjsciowego BUCK'a do kanalu przetwornika ADC. <br />Jesli na wejscie przetwornika odpowiedzialne za pomiar wielkosci wyjsciowej regulowanego obiektu podam sygnal z zasilacza, ktory dowolnie zmieniam (0-5V) wypelnienie przebiegu PWM zmienia sie plynnie i wszystko dziala, zgodnie z dobranymi nastawami regulatora. Jednak po podlaczeniu wlasciwego napiecia wyjsciowego z przetwornicy moj przebieg PWM i napiecie BUCK'a wyglada nastepujaco:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3374/5fa4a07d8a1a2fd01e0eb11fe869e78a.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3374/5fa4a07d8a1a2fd01e0eb11fe869e78a.JPG" alt="Obrazek" /></a><br /><br />Schemat podlaczenia uC i ADC jak w linku:  <!-- m --><a class="postlink" href="http://2.bp.blogspot.com/-vhUemQW3GDM/Toyvftw5-SI/AAAAAAAABM4/K6MMU78cbOI/s1600/ADC_wersja_03.gif" >http://2.bp.blogspot.com/-vhUemQW3GDM/T ... sja_03.gif</a><!-- m --><br /><br />Zamieszczam ponizej fragment kodu odpowiedzialny za pomiar i algorytm regulatora:<br /><br />[syntax=c]volatile const uint8_t adc3 =(0&lt;&lt;REFS0)|(0&lt;&lt;REFS1)|(1&lt;&lt;MUX0)|(1&lt;&lt;MUX1) ;<br />volatile uint8_t firstTime = 1;<br /><br /><br /><br />int main(void)   <br />{ <br /> <br />  pomiar=200;  //Inicjalizacja, wartosc poczatkowa dla bitu OCR1.<br /><br /> lcd_init();<br /> <br />LCD_DISPLAY(LCDDISPLAY);   <br /> <br />LCD_LOCATE(2,0);<br /><br />lcd_puts(&quot;PID CONTROLLER&quot;);<br />   <br />ADMUX = adc4;    // Wewnetrzne zrodlo odnienieniau<br />   // ADMUX  =   (1&lt;&lt;ADLAR);  //Wyrownanie wyniku do lewej <br />    ADCSRA |= 1&lt;&lt;ADATE; <br />   //Wlaczenie free running mode <br />    SFIOR = 0; <br /><br />  //Odpal pierwsza konwersje ADC i odblokowuje przerwanie po zakonczeniu przetwarzania <br />    ADCSRA |=(1&lt;&lt;ADIE)|(1&lt;&lt;ADEN)|(1&lt;&lt;ADPS0)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS2);<br />DDRA &amp;=~(1&lt;&lt;ADCIN1); //ustawienie wejscia ADC <br />DDRA &amp;=~(1&lt;&lt;ADCIN1); //ustawienie wejscia ADC <br />ADCSRA |= (1&lt;&lt;ADSC);<br />   <br />   DDRD |= (1&lt;&lt;PD3);<br />   PORTD |= (1&lt;&lt;PD3);<br />   DDRD |= (1&lt;&lt;PD5);<br />   <br /><br />   TCCR1A |= (1&lt;&lt;COM1A1)|(0&lt;&lt;COM1A0) //Stan niski przy porownaniu<br />          |  (0&lt;&lt;WGM10)|(1&lt;&lt;WGM11); //Tryb 14 (FAST PWM)  <br />  <br />   TCCR1B |= (1&lt;&lt;CS10)|(1&lt;&lt;WGM12)|(1&lt;&lt;WGM13);  //Brak preskalera <br />                          <br />  <br />   ICR1 = 1200;    //Wartosc maksymalna (dla trybu 14)  <br />                 //a wiec czestotliwosc = CLK/ICR1 = 6.7kHz  <br />  <br />   OCR1A=pomiar;    //Wartosc poczatkowa porównania A (Wyjscie OC1A - PB1),  <br />                   <br /><br /> _delay_ms(2000);<br /> <br />      // Nastawy regulatora PI<br />      kp=5;<br />      ki=1;<br />      T=100; //Okres sprobkowania, zalezny od preskalera dla przetwornika ADC w trybie free running<br /> <br />  sei();  //Odblokowanie przerwan.<br /><br />//Program glowny<br />   while(1)<br />{<br />//Wartosc zadana zdefiniowana jako 800 (dla porownania bezposrednio ze wskazaniem ADC)<br />error&#91;1&#93;=800-pomiar;<br /><br />//Wyswietlenie wartosci zadanej, rzeczywistej i bledu<br />    sprintf(Error,&quot;%d&quot;,pomiar);<br /> <br /> LCD_LOCATE(0,1);<br /> <br /> lcd_puts(Error);<br /> <br />  sprintf(Error1,&quot;%d&quot;,zadana);<br /> <br />  LCD_LOCATE(6,1);<br />  <br />  lcd_puts(Error1);<br />  <br /> <br />  LCD_CLEAR;<br /><br />  <br />//Algorytm PID<br /><br />//Dzialanie czlonu proporcjonalnego<br /> Kp=(error&#91;1&#93;)*kp;<br /> //Dzialanie czlonu calkujacego<br /> Ki=ki*(error&#91;1&#93;+error&#91;2&#93;)/2*T;<br /><br /> //Sygnal sterujacy//Aktywny czlon proporcjonalny<br /> wypelnienie=Kp;<br /><br /> //Ograniczenie sygnalu sterujacego<br /> <br />    <br /> if (pomiar&lt;800)<br /> {<br /> if(wypelnienie&gt;ICR1)<br /> {  OCR1A=ICR1;<br /> }<br /> else<br /> {<br /> OCR1A=wypelnienie;<br /> }<br /> }<br />   <br /> if (pomiar&gt;800)<br /> {<br /> <br /> OCR1A=0;<br /> }<br /><br />}<br />}   <br /><br /><br />ISR(ADC_vect)<br />{<br /><br /> pomiar=ADCL+ADCH*256;<br /><br /><br />}[/syntax]<br /><br /><br />Czestotliwosc PWM wynosi 6.7kHz. Przez ponad 2ms wypelnienie jest 100% po czym spada do 0 przez kolejne 2ms. Jezeli jako sygnal mierzony podam napiecie z zewnetrznego zrodla (zasilacza) wypenienie zmienia sie zgodnie z zalozeniami, czestotliwosc jest poprawna.<br />Bede bardzo wdzieczny za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3374">lukasz139</a> — 2 lip 2014, o 21:29</p><hr />
]]></content>
</entry>
</feed>