Powrot

P u b l i k a c j e . . .
Marek Skowroński : Metody obiektowe w projektowaniu układów pompowych
Tradycyjne programowanie proceduralne i relacyjne bazy danych nie są w stanie sprostać wymaganiom stawianym przed współczesnym oprogramowaniem inżynierskim. W referacie omówiono zagadnienia związane z wykorzystaniem do tego celu programowania obiektowego i obiektowych baz danych.

1. WPROWADZENIE

  W tradycyjnym podejściu do projektowania układów pompowych projektant rozpoczyna od stworzenia schematu, który ma realizować określoną funkcję celu. Schemat ten tworzą abstrakcyjne elementy pojęciowe takie jak: pompa, rurociągi, armatura, natężenie przepływu, rzędne itp. Następnie projektant typuje uogólnione wzory obliczeniowe, które wiążą podstawowe cechy tych elementów. W kolejnym kroku, na podstawie tych wzorów, określane są wymagane parametry techniczne elementów składowych układu. Na podstawie tych wymagań, projektant przystępuje do wyboru elementów dostępnych na rynku i w końcowej fazie dokonuje obliczeń właściwości układu, z uwzględnieniem parametrów realnie dostępnych elementów.
  Opisana metoda postępowania ma szereg niedogodności:
  • czasochłonność (często obliczenia prowadzone są metodami iteracyjnymi),
  • mała odporność na błędy strukturalne (brak systemowego zabezpieczenia przed odwoływaniem się do błędnych danych, szczególnie przy układach złożonych),
  • ograniczona liczba analizowanych zmiennych i sprzężeń zwrotnych,
  • ograniczona liczba analizowanych wariantów rozwiązań.
      Mimo to metoda ta, przy odpowiedniej staranności i wiedzy projektanta, niewątpliwie jest skuteczna i daje dobre wyniki.
    Znacznym postępem i ułatwieniem w projektowaniu układów jest, powstałe w ostatnich latach, oprogramowanie komputerowe, napisane w oparciu o proceduralne języki programowania i relacyjne bazy danych. Oprogramowanie to umożliwia większy dostęp do informacji źródłowej, udostępnia nowe metody obliczeniowe, a także zmniejsza pracochłonność. Obecnie jednak oprogramowanie to dochodzi do kres swoich możliwości, w odniesieniu do przetwarzania informacji technicznej. Aby był możliwy dalszy rozwój, należy pokonać tę barierę. Konieczne jest zastosowanie nowych rozwiązań informatycznych, które będą lepiej dopasowane do zagadnień technicznych, dzięki czemu możliwe będzie tworzenie lepszego oprogramowania inżynierskiego.
      Najbardziej obiecujące wyniki daje programowanie obiektowe, skojarzone z obiektowymi bazami danych. Nowe systemy obiektowych baz danych dają możliwość lepszego modelowania informacji o fizycznych obiektach technicznych, o bardzo rozbudowanej strukturze. Systemy te udostępniają także mechanizmy operacji na strukturach specyficznych dla danego obiektu i modelowania jego zachowań.

    2. PROGRAMOWANIE OBIEKTOWE I OBIEKTOWE BAZY DANYCH

    2.1 Programowanie obiektowe

      Fizyczne obiekty techniczne, występujące w układach pompowych, charakteryzują się złożoną strukturą cech opisujących ich działanie. Szczególnie odnosi się to do opisu własności i zasad działania pomp. Dobrym rozwiązaniem w tym przypadku jest odwzorowanie modelu matematycznego pompy na informatyczną strukturę obiektu.
      Powstałe w ostatnich latach obiektowe języki programowania dostarczają wydajnych narzędzi, pozwalających na zastosowanie metod obiektowych w przetwarzaniu informacji technicznej.
      Podstawowa różnica pomiędzy podejściem tradycyjnym a obiektowym polega na tym, że przy wykonywaniu procedur są im przekazywane dane, natomiast w obiektowym aktywuje się metodę dla danych zawartych w polach obiektu.
      Obiekt jest złożoną strukturą, na którą składają się "pola" przygotowane do przechowywania danych oraz "metody" określające czynności wykonywane na informacjach zawartych w polach.
      W programie zmienna obiektowa POMPA może być dowolnie złożonym modelem matematycznym fizycznej pompy. Obiekt ten może np. zawierać pola parametrów nominalnych Qn, Hn, Pn oraz metodę DajSprawnośćNominalnąPompy, która oblicza sprawność na podstawie danych zawartych w tych polach. Wykorzystanie metody zdefiniowanej w obiekcie, która widzi tylko "swoje" dane do obliczania sprawności, zapewnia automatyczną kontrolę poprawności wywołań, co jest jedną z podstawowych zalet programowania obiektowego.
      Obiekt może być zdefiniowany jako niezależny lub jako potomek istniejącego obiektu.   Tak więc np. definiując obiekt PompaGórnicza, jako potomka "zwykłej pompy" zdefiniowanego w obiekcie Pompa, dziedziczy on po przodku wszystkie jego cechy, właściwe dla pomp w ogóle, oraz dodatkowo będzie miał zdefiniowane cechy właściwe jedynie dla pomp górniczych. Postępując w ten sposób możemy stworzyć całe drzewo genealogiczne obiektów, reprezentujących różne typy pomp, o różnych własnościach, wywodzące się ze wspólnego korzenia.
      Obiekt w sensie programowym może także reprezentować bardziej złożoną strukturę, składającą się z wielu obiektów np. obiekt "UkładPompowy" będzie się składał z pól zawierających obiekty: Pompa, Rurociąg i Ciecz oraz metody DajPunktPracy.
      Obiektowe języki programowanie pozwalają na operowanie, podczas obliczeń, zmiennymi obiektowymi, będącymi modelem matematycznym całego obiektu rzeczywistego. Dodatkową zaletą tego podejścia jest możliwość definiowania obiektu na dowolnym poziomie ogólności, przeprowadzanie na nim obliczeń a następnie pogłębianie uszczegółowienia opisu obiektu, bez utraty kontroli nad uprzednio stworzoną strukturą zależności.
      W programowaniu nieobiektowym bardzo niebezpieczne jest modyfikowanie struktury danych, gdyż trzeba sprawdzić konsekwencje w całym programie. W programowaniu obiektowym zmiana struktury ogranicza się do obiektu, którego dotyczy.
      Jednym z podstawowych wymagań stawianych oprogramowaniu jest trwałość danych i wyników. Oznacza to, że dane i wyniki obliczeń muszą być dostępne po zakończeniu działania aplikacji. Tę cechę programów zapewniają systemy bazodanowe.

    2.2 Relacyjne bazy danych

      Systemy relacyjnych bazy danych oparte są o płaskie dwuwymiarowe tablice danych i zdefiniowane relacje między nimi. Systemy te są dobrze dopasowane do przetwarzania informacji o prostej strukturze np. dużych ilości informacji finansowych. Natomiast nie są wydajne przy przechowywaniu informacji technicznych. Informacje o fizycznych obiektach technicznych mają z reguły bardzo złożoną strukturę. Powoduje to rozbudowę bazy w kierunku mnożenie liczby tablic i relacji. Zarządzanie takim systemem stwarza dla programisty znaczne trudności.

    Rys. 1. Współpraca aplikacji obiektowej z relacyjną bazą danych

    2.3 Obiektowo-relacyjne bazy danych

      Rozwiązaniem przejściowym jest wykorzystanie mechanizmów relacyjnych i zdefiniowanie w ograniczonej formie obiektów w bazach danych. W tym przypadku metody przechowywanie są w aplikacji, lecz ich aktywacją i sterowaniem zarządzają systemy bazodanowe. W aplikacji tworzony jest moduł sprzęgający, zawierający mechanizmy współpracy z bazą, które mogą być udostępniane innym aplikacjom.
      Wielodostęp do takiej bazy jest jednak utrudniony, gdyż każda aplikacja musi się odwoływać do metod zawartych we wspólnym module sprzęgającym.

    Rys. 2. Współpraca aplikacji obiektowej z obiektowo-relacyjną bazą danych

    2.4 Obiektowe bazy danych
        Obiektowe bazy danych wprowadzają nowe elementy do dotychczas stosowanych sposobów przechowywania informacji. Podstawową zaletą tych baz jest możliwość przechowywania modelu matematycznego całego obiektu rzeczywistego, a więc nie tylko danych, ale również modelu jego zachowań.

    Rys. 3 Współpraca aplikacji obiektowej z obiektowo-relacyjną bazą danych

      W systemach obiektowych różne aplikacje mają bezpośredni dostęp do całego obiektu, wraz z jego strukturą i metodami. Przetwarzanie i nadzór na strukturą obiektu przekazany jest do systemu obsługi bazy danych, a nie jest nadzorowany, jak dotychczas, na poziomie aplikacji przez programistę. Daje to możliwość budowy spójnych baz obiektów technicznych bez redundancji.

    2.5 Narzędzia do tworzenia aplikacji bazodanowych

      Istnieją języki programowania, oferujące pełną integrację z obiektowymi bazami danych. Jednak ze względu na koszty wdrożenia, technologia ta nie jest obecnie dostatecznie rozpowszechniona.
      Na obecnym etapie do tworzenia aplikacji ogólnodostępnych skuteczniejszym rozwiązaniem jest zastosowanie quasi-obiektowych baz danych, które wykorzystują do przechowywania informacji o obiektach i ich strukturze dostępne standardy baz relacyjnych.

    3. UKŁAD POMPOWY W UJĘCIU OBJEKTOWYM

      Najogólniej rzecz ujmując układy pompowe mogą być traktowane jako obiekty złożone, powstałe przez agregację wielu innych obiektów złożonych oraz obiektów atomowych.

    Rys. 4 Drzewo układów pompowych

      W świecie realnym nie istnieją proste zasady dziedziczenia własności przez obiekty złożone po obiektach składowych. W tych obiektach ścieżki dziedziczenia biegną w nieskończoność i uwikłane są ich powiązania. W odwzorowaniu wirtualnym, w obecnie stosowanych językach programowania, funkcjonują wyłącznie obiekty o strukturze drzewiastej. Wymaga to od programisty odwołania się od wiedzy inżyniera-projektanta układów pompowych i podjęcia, na podstawie wiedzy czysto technicznej, decyzji, jakie elementy i na jakim poziomie należy uznać za podstawowe.
      Ponieważ układy pompowe posiadają pewne cechy wspólne, możliwe jest stworzenie ich modeli matematycznych o strukturze drzewiastej.

    4. ZASTOSOWANIE METOD OBIEKTOWYCH DO OBLICZANIA ZŁOŻONYCH UKŁADÓW POMPOWYCH

    4.1 Elementy układu pompowego

      Złożony obiekt - układ pompowy powstaje przez agregację takich obiektów jak:
  • rura
  • pompa
  • zbiornik
  • zawór
  • ciecz
  • itp.

    Rys. 5 Struktura obiektów Rura i Pompa

      Dla każdego z obiektów, reprezentujących elementy przepływowe, możliwe jest zdefiniowanie metody DajCharakterystyke zwracającej jego charakterystykę przepływu H = f (Q,x1, x2, ...). Charakterystyka ta, w prostych modelach, może być jedynie funkcją natężenia przepływu, a w bardziej zaawansowanych może być funkcją wielu zmiennych. Bezpośredni wpływ na przebieg tej charakterystyki mają parametry i własności przetłaczanego medium, zdefiniowane w obiekcie CIECZ.
      Przykładowe charakterystyki przepływu tych elementów pokazano na rysunku 6.

    Rys. 6. Charakterystyki przepływu obiektów: A-rura, B-pompa, C-zbiornik, D-zawór.

    4.2 Algorytm obliczania układu

      Podstawowym zagadnieniem obliczania układu pompowego jest znalezienie natężenia przepływu wszystkich obiektów tworzących układ. Po określeniu natężenia możliwe jest wyznaczenie innych parametrów, np. rozkład ciśnień.
      Strukturę układu najwygodniej jest opisać jako graf, w którym węzły odpowiadają połączeniom, a krawędzie (linie łączące węzły) odpowiadają obiektom tworzącym układ. Każdy obiekt układu ma zadeklarowane dwa węzły, z którymi jest połączony.

    Rys. 7. Graf obiektu przepływowego.

      Większość układów pompowych może być przedstawiona jako graf o strukturze drzewiastej. Graf drzewiasty jest spójny i acykliczny.
      Przedstawiony układ można rozwiązać metodą charakterystyk zredukowanych względem dowolnego węzła, jednym z algorytmów grafowych. Dobre wyniki daje zastosowanie algorytmu rekurencyjnego.

    4.3 Algorytm sumowania charakterystyk

      Dzięki programowaniu obiektowemu możemy odwoływać się do rzeczywistego kształtu charakterystyki przepływu każdego z obiektów. Zastępcze charakterystyki przepływu obiektów połączonych szeregowo i równolegle będą powstawały przez manipulowanie obiektami w całości, co daje możliwość uwzględnienia wszelkich anomalii ich przebiegu w ogólnej charakterystyce układu.

    Rys. 8. Graf układu pompowego


    Rys. 9 Charakterystyka przepływu rurociągu

      Rysunek 9 przedstawia charakterystykę pojedynczego rurociągu z widocznymi strefami o różnym charakterze przepływu.

    4.4 Interfejs graficzny

      Zastosowanie środowiska graficznego, programowania obiektowego i obiektowej bazy danych daje możliwość tworzenia aplikacji, w których naturalne operowania obiektami w znacznym stopniu przypomina montowanie realnego układu pompowego. Szczególne znaczenia dla użytkownika ma zastosowanie technik graficznych do najbardziej uciążliwych i pracochłonnych operacji wprowadzania danych, jakimi jest definiowanie struktury układu i pobieranie informacji z bazy.
      Odwzorowanie struktury realnego układu pompowego w postaci grafu polega na przypisaniu obiektom pary wierzchołków. Do tego typu operacji znakomicie nadaje się wskaźnik myszki i obsługa zdarzeń WskażWęzeł i DołączObiekt. Zapis grafu w strukturę indeksową odbywa się już bez udziału użytkownik, przez wywołanie odpowiedniej metody obiektu UkładPompowy .
      Do pobierania informacji z bazy i przepisywania jej do obiektów reprezentowanych przez graf układu, najdogodniej jest wykorzystać metodę przeciągnij i upuść. Każdy z obiektów ma zdefiniowany obszar w środowisku graficznym, który stanowi aktywne złącze danych. Wskazanie w bazie danych dowolnego obiektu, przeciągnięcie i upuszczenie go na złączu, powoduje pobranie informacji z bazy i umieszczenie jej w aplikacji.

    Rys. 10 Interfejs graficzny układu pompowego

    5. WNIOSKI

      Dowodem na przydatność metod obiektowych do obliczeń inżynierskich jest stale rosnąca liczba wdrożonych aplikacji. Oprogramowanie tego typu, dzięki bardziej przyjaznemu interfejsowi, pozwala na wydajną, interaktywną współpracę projektanta z komputerem.
      Ułatwienie obsługi oprogramowania w znacznym stopniu odciąża projektanta z najbardziej czasochłonnych prac, umożliwia łatwy dostęp do często złożonych metod obliczeniowych i pozwala na znacznie głębszą analizę działania układów, praktycznie niemożliwą bez zastosowania komputera.
      W najbliższej przyszłości należy się spodziewać wykreowania standardu systemu obiektowych baz danych, dopasowanych do obliczeń inżynierskich, co powinno zaowocować znaczącym postępem w jakości oprogramowania inżynierskiego.
      Dzięki łączności internetowej możliwy będzie rozwój oprogramowania współpracującego z rozproszonymi, obiektowymi bazami danych oraz rozwiązywanie wielu problemów technicznych przez bezpośrednią konwersację inżyniera z systemami eksperckimi, umieszczonymi na serwerach komercyjnych.

    Literatura
    Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT Warszawa 1996.
    Biedugnis S.: Metody informatyczne w wodociągach i kanalizacji, OWPW Warszawa 1998.
    Grabarczyk C.:Przepływ cieczy w przewodach, ENVIROTECH Poznań 1997.
    Jędral W.: Pompy wirowe odśrodkowe OWPW Warszawa 1996.
    Lausen G., Vossen G.: Obiektowe bazy danych WNT Warszawa 2000.

    Powrot