Aktywne Wpisy
kamilek123 +249
Tumurochir +275
Przez fejki PiS w sprawie rzekomego torturowania przez "reżim Tuska" podejrzanego o pranie brudnych pieniędzy ks. Olszewskiego, Służba Więzienna otrzymała już kilkaset e-maili i telefonów od widzów TV Republiki z groźbami
https://x.com/SW_GOV_PL/status/1808143124495048859
Przed aresztem, gdzie siedzi ksiądz, odbyły się też protesty, a demonstranci domagają się uwolnienia duchownego, bo skoro ksiądz to na pewno niewinny i nie mógł kraść
#
https://x.com/SW_GOV_PL/status/1808143124495048859
Przed aresztem, gdzie siedzi ksiądz, odbyły się też protesty, a demonstranci domagają się uwolnienia duchownego, bo skoro ksiądz to na pewno niewinny i nie mógł kraść
#
Mam silnik spalinowy benzynowy, chcę żeby utrzymywał stałe obroty przy zmiennym obciążeniu.
Chciałem wykonać to w wersji "analogowej" ale po kilku tygodniach ciągłych porażek mam dość i liczę na pomoc kogoś kto ogarnia #esp #esp8266 lub #arduino #arduinonano.
Mam sygnał z cewki zapłonowej, 4 impulsy na każdy obrót wałka rozrządu czyli 2 impulsy na każdy obrót wału korbowego. Przepustnica jest elektroniczna, czyli silnik elektryczny na 12V zintegrowany z przepustnicą poprzez przekładnię. Działa w dosyć prosty sposób, po podaniu zasilania po prostu się otwiera, po zaniku zamyka się. Przy sterowaniu PWM można powoli uchylać i zamykać. Aktualnie jest zdemontowana sprężyna zamykająca dzięki czemu sama się nie zamyka. Trzeba podać sygnał o odwrotnej polaryzacji (poprzez mostek H), w każdej chwili mogę ją założyć.
Co ja bym chciał uzyskać? Silnik ma pracować w zakresie obrotów ok 750-3000obr/min, niestety jest zmienne obciążenie przez co raz ustawione obroty za chwilę się zwiększają lub zmniejszają. Mój zamysł jest taki że potencjometrem (np 0-5V) zadaję co chcę uzyskać, czyli zakres 0-5V ma odpowiadać obrotom 750-3000 (czyli 25-100Hz).
Gdzieś mi się przewinęła informacja że trzeba by to zrobić jako licznik liczący w górę i w dół, że jak zadane mam np 1V (1200obr/min [40Hz]) to układ porównuje to z sygnałem z cewki zapłonowej i jak częstotliwość jest za niska to podnosi wypełnienie sygnału o np 0,5%, po krótkim czasie (ciężko mi określić jaki to czas) znów sprawdza czy się zgadza, jak znów jest za mało to znów podnosi o 0,5% i tak aż do momentu jak uzyska w miarę równowagę (kilka procent dokładności), myślę że jak by były duże rozbieżności np zadane 3000obr, a faktyczne 1000 to mogło by zwiększać o 1 albo 2% co by szybciej osiągnąć zadane wartości. Identyczna sytuacja w przypadku za dużych obrotów, czyli zadane 1000 a faktyczne 3000 to powinno powoli zmniejszać wypełnienie żeby osiągnąć zadane wartości.
Sygnałem wyjściowym może być PWM lub sygnał 50Hz 1,5ms do sterowania serwomechanizmem.
Jedyne co wiem to że wartości sygnałów wejściowych trzeba przypisać do "tabel?", 0-5V=0,255 i 25-100Hz=0,255.
Jak pisałem mam aktualnie na stanie ESP8266 i ArduinoNano, prosiłbym o jakieś wskazówki lub informacje czy ktoś takie coś już budował i udostępniał wsady.
Na Arduino masz gotowe biblioteki PID, proponowałbym spróbować zrobić coś według przykładu i
@KokiX: Ok, będę coś szukał i kombinował.
A jak chcesz programować to długa droga przed tobą, zresztą kiedyś ci to tłumaczyłem.
@bambus94: Timer1 może posłużyć Ci do przechwytywania impulsów, czasy wrzucasz do bufora kołowego i w głównym programie wyliczasz średnią.
Z średniej ustawiasz kąt otwarcia przepustnicy.
Szybkość reakcji na zmianę obrotów ustalasz ilością zebranych próbek.
Tu też możesz wprowadzić korektę ilości zbieranych danych względem prędkości, większa - szybsza odpowiedź.
Następny
Do tego zastosowania potrzebuje regulatora PI inaczej nic nie osiągnie. Jeśli nie wie jak wystroić regulator to nawet najlepszy program mu nie pomoże. Po trzecie urządzenia które ma może i są precyzyjne ale mają okres regulacji tak długi, że pewnie nie możliwe jest uzyskanie w miarę stałych obrotów silnika pod zmiennym obciążeniem. Przecież nawet bez obciążenia obroty falują.
Fajnie, że piszesz mu, że timer1 może się nadać. Tak samo jak timer 0 i timer2. Poza tym za przechwytywanie impulsów odpowiada przerwanie na pinie a nie timer. Timer tylko liczy czas.
Musi obliczyć czas między impulsami, ustalić wartość sygnału (czas między impulsami), obliczyć odpowiedź PID przy jakiś tam początkowych wartościach, odpowiedź w dziedzinie czasu zmapować na odpowiedź w dziedzinie jakiejś tam (pewnie wypełnienie PWM) i stroić układ. Pierwsza i najtrudniejsza rzecz to okres regulacji. Później całe
Obroty nie muszą być idealne co do 1obr. +-100 to już będzie spoko. Obciążenie silnika niestety jest zmienne, i to znacznie, w jednej chwili może pracować na biegu jałowym, żeby za chwilę potrzebować 20kW, a za kolejną chwilę tylko 5kW.
@Analityk: Maksymalna moc jest potrzebna przy załączonej pompie wody, teoria mówi że potrzebuje ona ok 30kW, chociaż dalsza teoria mówi że przy zdławionym przepływie może to być 10-15kW (Wszystko przy ok 3000obr/min). Oczywiście chciałbym żeby uzyskiwać jak najszybciej, czyli zamykam hydrauliczny zawór kulowy i pompa rusza przy jak najmniejszym spadku obrotów (jak z 3000 spadnie do 2000 ale wróci
@bialy100k: AVR odpowiada za regulację napięcia, a za obroty silnika najczęściej jest układ mechaniczny z regulatorem odśrodkowym, który też już brałem pod uwagę.
Pompa i silnik hydrauliczny mają taki sam wydatek i chłonność więc obroty pompy powinny być prawie takie same jak silnika spalinowego.