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.




