Energooszczędność aplikacji embedded - Total Cost Operation.

W obecnych czasach wszelkie projekty są realizowane z uwzględnieniem wyłącznie czasu realizacji aplikacji i niskiego kosztu produkcji. Powoduje to, iż optymalizacja projektów idzie na plan dalszy. Dzieje się tak począwszy od projektów sprzętowych dotyczy nawet opracowania mikrokontrolerów, jak również oprogramowania. Od dawna mówiło się o systemach operacyjnych firmy Microsoft, iż jak są zbyt wolne to znaczy, że niech sobie klient kupi komputer z 2x szybszym procesorem i dokupi 2x więcej pamięci. Nikogo nie interesowały koszty dodatkowe związane z wykorzystaniem owego oprogramowania. Rozwiązywanie tego problemu takimi metodami jak w przypadku systemu Windows, załamuje się w przypadku aplikacji wbudowanych. Wynika to z przesłanek budowy sterowników wbudowanych. W przypadku sterowników mamy wiele sprzecznych trendów wpływających na funkcjonalność oraz cenę produkcji urządzeń. Podstawowe z nich to:

  • Cenach produkcji ma być jak najniższa;

  • Moc pobierana (tracona) przez urządzenie jak najniższa gdyż wpływa to na podniesienie kosztów przetwornic napięcia, zasilaczy, koszty zapewnienia odprowadzenia ciepła za pomocą dodatkowych radiatorów (nie dotyczy urządzeń projektowanych w Azji);

  • Moc pobierana jak najniższa dla urządzeń o zasilaniau akumulatorowym/bateryjnym aby czas pracy był jak najdłuższy (nie dotyczy urządzeń projektowanych w Azji);

  • Moc obliczeniowa jak najwyższa aby z zapasem starczyła na obsługę aplikacji i ewentualne przyszłe rozwinięcie aplikacji i dodanie funkcjonalności;

  • Wysoka niezawodność urządzenia;

  • Jak najniższe koszty opracowania urządzenia i oprogramowania (jedyny wyznacznik urządzeń projektowanych w Azji);

Z tych podpunktów możemy wskazać w zależności od aplikacji zbieżność celów bądź wręcz przeciwstawność osiągnięcia celów w zależności od aplikacji. Podstawowe cele do osiągnięcia to :

  • Niska cena;

  • Niski pobór mocy;

  • Jak najwyższa niezawodność.

Wymagamy, aby cena produkcji była jak najniższa. Koszt opracowania urządzenia ma coraz mniejsze znaczenie na cenę końcową wraz ze wzrostem wolumenu produkcyjnego. Warto zawsze przyłożyć się do właściwego opracowania, choć przy produkcji docelowej specjalizowanych urządzeń dopiero znaczenia nabiera przy wolumenie rzędu 100..1000szt. Przy mniejszej ilości urządzeń znaczenie ma niska cena opracowania. Generalnie ta granica jest dość płynna i należy ją szacować dla każdego projektu oddzielnie. Tym nie mniej dla produktów, które będą sprzedawanie przez wiele lat nawet w niewielkich ilościach rzędu kilkuset rocznie optymalizacja ma znaczenie.

W większości aplikacji z ceną jest zbieżne zmniejszenie mocy pobieranej/traconej w urządzeniu. W większości lecz nie zawsze. Ogólnie zmniejszenie tej mocy zapewnia mniejsze wymiary układów zasilania a co za tym idzie również i mniejszą cenę podzespołów. Równie często producenci wykorzystują podzespoły tańsze ale o większych stratach mocy. Wychodzą oni z kalkulacji iż koszt produkcji zapewni im wykorzystanie rozwiązań starych generacji sprzedawanych po bardzo niskiej cenie, lecz o kiepskich parametrach (większe straty mocy). W tym wypadku pozorna oszczędność na której zarabia producent powoduje, iż klient płaci za oszczędność w okresie eksploatacji cyklicznie w postaci zwiększonego rachunku za energię elektryczną czy częstszą wymianą baterii. Ja takie rozwiązania nazywam „partaniną na Chińczyka”.

Sprzeczny z ceną jest czas opracowania urządzenia. Aby przyspieszyć czas opracowania korzysta się z języków wysokiego poziomu. Najczęściej jest to język C czasem C++, rzadziej inne języki. Zapewnia to co prawda uniwersalność kodu źródłowego i łatwiejsze przeniesienie na inny sprzęt lecz kończy się zwiększeniem poboru energii elektrycznej. Czym krótszy czas opracowania tym mniej zoptymalizowane oprogramowanie. Najczęściej oprogramowanie nie podlega tzw. profilowaniu (od nazwy narzędzia). Profilowanie zapewnia zmniejszenie liczby wykonywanych rozkazów co pozwala obniżyć częstotliowść taktowania i zmniejsza pobór mocy. Równocześnie zprofilowanie oprogramowania i zmniejszenie takotowania procesora obniża również temperaturę pracy a co za tym idzie pozwala zwiększyć niezawodność pracy i wydłużyć czas pracy na bateriach/akumulatorach jak i zwiększa niezawodność urządzeń. Profilowany program zajmuje mniej miejsca w pamięci programu co pozwala użyć kontrolery o mniejszej pojemności pamięci programu a co za tym idzie tańsze.

Niezawodność urządzenia wymaga użycia jak najmniejszej liczby elementów, jak najniższej temperatury pracy elementów, odpowiedniej budowy oprogramowania zapewniającej detekcję uszkodzeń i zatrzymania urządzenia w tzw. „stanie bezpiecznym” Mniejsza liczba elementów jest przeważnie zbieżna z niską ceną produkcji. Jednak może być rozbieżna z niską złożonością oprogramowania a co za tym idzie może powodować wzrost czasu opracowania i poboru mocy przez mikrokontroler. Równocześnie Niezawodność urządzenia jest rozbieżna ze złożonością oprogramowania. Aby było ono naprawdę bezpieczne. Np zgodne z normami IEC60730 czy normą IEC61508 czy innymi powiązanymi normami wymaga zwiększenia ilości kodu co najmniej x2. Powoduje to podwojenie poboru mocy i zwiększenia mocy strat, oraz podniesienie temperatury urządzenia.

Zawsze zyskujemy na właściwym i przemyślanym projekcie elektroniki. Właściwym wyborze mikrokontrolera. Profilowaniu oprogramowania oraz dodaniu wstawek asemblerowcyh zmniejszających czas trwania najbardziej krytycznych czasowo elementów i wykonywanych najdłużej.

Jest to problematyka rozpatrywana przy każdym projekcie oddzielnie. Nie ma tutaj ścisłych reguł i schematów postępowania.

Studium przypadku.

Przypadek 1

W projekcie inteligentnego domu gdzie sterownik pracuje non-stop opracowałem zasilacz pobierający w stanie czuwania około 20uA przy 320V Daje to pobór mocy na poziomie 56VAh rocznie. Wydaje się dużo ale dla porównania podam, iż transformator o mocy wyjściowej 1VA do montażu SMD bez obciążenia w przeciągu 1 roku pobierze moc 8760VAh!!!! Jest to 156x większy pobór mocy. faktem jest, iż zasilacz energooszczędny nie jest izolowany galwanicznie, pozwala również dostarczyć przy pełnym obciążenie zaledwie 0,15VA lecz jest wystarczające do zasilania małego sterownika. Jednak koszt jego jest o 50% droższy od transformatora dającego 6,5x więcej mocy wyjściowej i jest bardziej złożony. Istnieje możliwość zastosowania układu scalonego nowej generacji przewidzianego do energooszczędnych aplikacji. Po obliczeniu rocznego poboru mocy nowoczesnej przetwornicy impulsowej uzyskałem 820VAh rocznie. Daje to 14,5x większy pobór roczny przy zbliżonej cenie wykonania zasilacza, ale maksymalna moc wyjściowa 1VA. Puki liczymy dla jednego urządzenia ktoś może machnąć ręką. Policzmy to dla inteligentnego domu z dziesięcioma urządzeniami zasilanymi przez 1 rok.

  1. transformator 1VA => 87kVAh

  2. transformator 0,5VA => 43,5kVAh

  3. energooszczędną przetwornicą impulsową nowej generacji 1VA => 8,2kVAh

  4. specjalizowaną przetwornicą energooszczędną 0,15VA => 0,56kVAh

Łatwo przeliczyć koszty roczne za energię elektryczną. Jeśli uwzględnimy, iż takie systemy po zamonotwaniu działają 20..40 lat efekt może być piorunujący.

Przypadke 2

System ochrony:

  1. Standardowe wykorzystanie transformatora 20VA o sprawności 60% rozpatrywany sam zasilacz. Cena 30zł.

  2. Elektroniczny zasilacz nowej generacji o mocy wyjściowej 20VA rozpatrywany sam zasilacz. Cena 65zł.

  3. Elektroniczny zasilacz dwustopniowy sam zasilacz dostosowany do energooszczędnego systemu ochrony. Cena 150zł.

Pobór mocy:

  1. 8,0VA

  2. 3,2VA

  3. 0,64VA

Roczne zużycie mocy:

  1. 50kVAh

  2. 28kVAh

  3. 5,6kVAh

Jako zadanie proponuję policzyć jak szybko zwróci się droższy zasilacz w stosunku do kiepskich transformatorów niskobudżetowych stosowanych obecnie w elektronice. Nadmienię , iż transformatory do druku mają sprawność na poziomie 50% i moc strat nieobciążonego transformatora wynosi tyle, ile mocy oddaje na wyjściu.

Myślę, iż wystarczająco zobrazowałem problematykę optymalizacji urządzeń szczególnie, iż nieznaczne podniesienie kosztów produkcji a co za tym urządzenia pozytywnie wpłynie na środowisko naturalnie. Równocześnie wynika z tego sugestia, iż klientowi nie należy przedstawiać samej ceny produktu, a TCO (Total Cost Operation) dla urządzenia aby mógł zobaczyć na wyliczeniu ile zaoszczędzi płacąc trochę wyższą cenę za lepiej opracowane urządzenie.

Aby oprogramowanie pobierało jak najmniej mocy należałoby zmniejszyć liczbę rozkazów wykonywanych przynajmniej w najczęściej wykonywanych częściach kodu programu. wymaga to czasem tylko zmiany algorytmu funkcji a czasem pomaga wyłącznie implementacja w czystym assemblerze.