Wprowadzenie

W roku 2024 pisałem:

Jak widać czasami łatwo pomylić pojęcia model i mechanizm, można jednak powiedzieć, że model to schemat obrazujący coś, zaś mechanizm to wyjaśnienie zjawiska (tego jak coś powstaje jak działa). Mechanizm można zobrazować w postaci modelu. Jeżeli dążymy by model był idealizacją, to wtedy właśnie:”Modelowanie polega na abstrahowaniu od szczegółów i stworzeniu idealizacji tak, by skupić się na istocie danej rzeczy. Dobry model opisuje wyłącznie mechanizm.” (Craver & Tabery, 2019)

Patrz: Mechanizm działania vs model systemu vs diagram – Jarosław Żeliński IT-Consulting

A co z komputerami i programami komputerowymi?

Nie da sie patentować kodu źródłowego, ale teza, że nie da się patentować oprogramowania nie jest prawdą. Dlaczego?

“Programming is not solely about constructing software—programming is about designing software.”

Projekt oprogramowania to (może być) schemat (zestaw schematów) blokowy opisujący i wyjaśniający mechanizm jego działania a ten mechanizm, realizowany przez komputer, może być częścią patentowanego urządzenia technicznego.

Opis wynalazku

Na poniższym schemacie pokazano opatentowany Regulator odśrodkowy Watta.

Jak to działa? Jest to mechanizm kontroli prędkości obrotowej wału maszyny parowej, pozwalający utrzymać stałą prędkość tego wału. Chroni to maszynę przed samozniszczeniem z powodu “rozbiegania”: ciśnienie pary powoduje, że niekontrolowana prędkość obrotowa wału maszyny rośnie aż do jego zniszczenia. Objaśnienie:

D – koło pasowe, które odbiera napęd z wału maszyny parowej (nie pokazanej na tym schemacie)

E – położenie ciężarków przy małej prędkości obrotowej (małej sile odśrodkowej)

I – położenie ciężarków przy większej prędkości obrotowej

F – pierścień ten zmienia położenie góra-dół zależnie od położenia ciężarków (za pośrednictwem dźwigni f i h)

G – punkt zawieszenia dźwigni H łączącej ruchomy pierścień F i dźwignię przepustnicy Z przewodu L doprowadzającego parę do maszyny

W efekcie wzrost prędkości obrotowej wału maszyny powoduje ograniczenie dopływu pary do maszyny co powoduje, zmniejszenie prędkości obrotowej wału maszyny parowej. Prędkość ta stabilizuje się, a jej wartość zależy od masy ciężarków. Jest to tak zwany mechanizm z ujemnym sprzężeniem zwrotnym, a przedmiotem patentu jest konstrukcja mechaniczna tego mechanizmu wykorzystującego siłę odśrodkowej.

Czym jest sprzężenie zwrotne? Jest to doprowadzenie sygnału odpowiedzi systemu (response) na wyjściu (efector) do sygnału (stimulus) na wejściu (receptor) w taki sposób że sygnał bodźca (stymulus) jest mieszany wg. określonej funkcji z sygnałem pobranym z wyjścia (feedback):

Mieszanie to określona funkcja matematyczna: może to być sumowanie (dodatnie sprzężenie zwrotne) lub odejmowanie (ujemne sprzężenie zwrotne),inne bardziej złożone (splot). Regulator Watta to system z ujemnym sprzężeniem zwrotnym: wzrost prędkości wału powoduje zmniejszanie ciśnienia pary na wejściu, funkcja to jest nieliniowa więc szybko dochodzi to stanu równowagi.

Czy można ten regulator zastąpić komputerem?

Aby sobie na to pytanie odpowiedzieć należy opracować model całego sterowanego urządzenia. W tym przypadku załóżmy, że jest to silnik parowy (znajdź regulator Watta):

napędzający maszyny na hali produkcyjnej:

SysML czyli narzędzie modelowania

Podstawowym celem budowy modeli jest zrozumienie (odkrycie) lub opracowanie (wynalazek) mechanizmu działania urządzenia (zjawiska).

Modelowanie polega na abstrahowaniu od szczegółów i stworzeniu idealizacji tak, by skupić się na istocie danej rzeczy. Dobry model opisuje wyłącznie mechanizm patrz także https://pl.wikipedia.org/wiki/Redukcja_ejdetyczna).

Powyżej pokazano nieformalne rysunki i schematy blokowe. Z uwagi na jednoznaczność przekazu w inżynierii, podobnie jak od dawna w matematyce, od niedawna stosowane są sformalizowane notacje graficzne. W inżynierii od dawna w użyciu jest standardowy rysunek techniczny, w inżynierii oprogramowania jest to notacja UML. Rozwód tradycyjnej inżynierii spowodował, że coraz więcej urządzeń zawiera w sobie komputer, który zastępuje niektóre elementy takie jak krzywki czy skomplikowane systemy kół zębatych. Niektóre te urządzenia w całości zastąpiono komputerem, np. zegar (patrz artykuł: Zegar).

Z uwagi na powyższe, coraz częściej mówi sie o mechatronice, a do tradycyjnej inżynierii wkracza notacja SysML . Jest to formalizm zbudowany na bazie notacji UML, abstrahujący całkowicie od branży inżynierii, skupia sie na traktowaniu urządzeń jako systemów czyli “zbioru elementów współpracujących w określonym celu”. Ten wpis to nie podręcznik SysML, zainteresowanych notacją odsyłam do oryginalnej specyfikacji i innych wpisów na tym blogu.

Model maszyny parowej

Kluczowym etapem modelowania jest zbudowanie szkieletu pojęciowego: typy elementów systemów z jakich jest (będzie) budowany. Taki szkielet modelu (metamodel) obejmuje typy elementów (mechaniczne, elektromechaniczne itp.) oraz ograniczenia czyli prawa fizyki i zależności oraz wielkości i ich jednostki miary, wymagane do modelowanie zjawisk (np. przepływu pary lub wzrostu ciśnienia).

Poniżej przygotowanie do modelowania maszyny parowej:

Na bazie powyższego powstaje model mechanizmu działania maszyny parowej:

Powyższe diagramy nie zastępują rysunków technicznych wykonawczych, celem ich tworzenia jest opisane tego co Craver nazywa “istotą działania”. Każdy z bloków wewnętrznych wymaga zaprojektowania, np. blok sterowania zaworem to nasz opisany wcześniej wynalazek: regulator Watta. jego działanie (rola jaka pełni) modelowania jest tak:

Zależność ciśnienia pary od otwarcia zaworu pary jest prosta i nie wymaga niczego poza zaworem, jednak realizacja ujemnego sprzężenia zwrotnego (tu y=F1(x)) wymaga czegoś więcej. Było to przedmiotem wynalazku jakim jest Regulator Watta. Jest to jednak urządzenie mechaniczne, narażone na uszkodzenia i jednak wymagające konserwacji.

Tu z pomocą przychodzi komputer. Komponent Sterowanie Zaworem można zbudować z pomocą komputera:

To prosty diagram jednak celem jego tworzenia jest zrozumienie zakresu projektu (design) oraz “co ma zostać zaprojektowane”. Tu aktorami są urządzenia wejścia wyjścia komputera. Oprogramowanie komputera sterującego:

Powyższy diagram pokazuje, architekturę aplikacji sterującej, prawdopodobnie API to sterowniki producentów sensora i serwomechanizmu. Moduł przeliczeń:

Podsumowanie

Po co to wszystko? To wszystko jest po to by:

  • zaprojektować i upewnić się, że projekt jest możliwy do realizacji (proof of concept),
  • zlecić implementację przemyślanego pomysłu i zachować prawa majątkowe do implementacji,
  • wiedzieć “jak to działa” nawet po wielu latach, bez potrzeby revers inżynierii kodu, który może być bardzo nieczytelny a koder niedostępny,
  • zachować prawa do oprogramowania bez względy na dewelopera, który wykona implementację.

Ten artkuł to “niemalże” pełna dokumentacja urządzenia i np. sterownika PLC. Możliwe jest uzupełnienie o interfejsy i serwer OPC-UA. Zależności realizowane przez komputer mogą być trywialne tak jak tu, a mogą to być bardziej wyrafinowane mechanizmy, jednak sposób ich udokumentowania zawsze wygląda tak jak tu. Bardziej wyrafinowane obliczenia można przekazać do współpracującego komputera na zewnątrz. Jednak za każdym razem architekturę należy przemyśleć i przetestować jej logikę na modelach. Implementacja na podstawie takiego modelu daje pewność uniezależnienia się od dewelopera i niskich kosztów (korekty na modelach są co najmniej o rząd wielkości tańsze).

Zapoznanie się z taką dokumentacją to kilka do kilkunastu minut, góra godzina. Studiowanie kodu źródłowego, a nie raz maszynowego (gdy koder nie wydał źródeł, co jest częste) to dni, tygodnie, miesiące.

Skąd się wzięło słowo patentowanie w tytule? Bo opatentować można urządzenie i jego mechanizm, ale nie kod ani algorytm. A mechanizm wyrażamy jako jego model działania a nie jako kod źródłowy dla komputera napisany w określonym języku programowania bo to tylko jedna, z wielu możliwych, implementacja (urzeczywistnienie) tego mechanizmu.

Źródła

{5085975:NZCQDD79};{5085975:CHQUCPGA};{5085975:LKGQJ85W};{5085975:LSFREFR4} apa default asc 0 53381

Jarosław Żeliński

Jarosław Żeliński: Po ukończeniu WAT w 1989 roku pracownik naukowy katedry Transmisji Danych i Utajniania. Od roku 1991 roku, po rozpoczęciu pracy w roli analityka i projektanta systemów przetwarzania informacji, nieprzerwanie realizuje kolejne projekty dla urzędów, firm i organizacji. Od 1998 roku prowadzi także samodzielne studia i prace badawcze z obszaru analizy systemowej i modelowania systemów (modele jako przedmiot badań: ORCID), publikując je nieprzerwanie także na tym blogu. Od 2005 roku, jako wykładowca akademicki wizytujący (nieetatowy), prowadzi wykłady i laboratoria (ontologie i modelowanie systemów informacyjnych, aktualnie w Wyższej Szkole Informatyki Stosowanej i Zarządzania pod auspicjami Polskiej Akademii Nauk w Warszawie.). Od 2020 roku na stałe mieszka w Szkocji (Zjednoczone Królestwo), nadal realizuje projekty dla firm i organizacji także w Polsce.

Dodaj komentarz

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.