9.1. Arkusz kalkulacyjny czy pakiet obliczeniowy 9.2. MathCad - cechy 9.3. MathCad - funkcje 9.4. MathCad funkcje 9.5. Excel 9.6. Excel programowanie w VBA 9.7. Excel programowanie w VBA 9.8. Excel przykład aplikacji. Analiza pomiarów. 9.9. Excel przykład aplikacji 1
Przyczyny dużej popularności arkuszy kalkulacyjnych wśród inżynierów energetyków: procesy energetyczne obejmują dyscypliny, które charakteryzują się wciąż niedomkniętymi modelami: mechanika płynów niepewny opis turbulencji; spalanie dla gazów uznane modele tylko dla prostych węglowodorów (CH4) ; stąd np. brak w pełni wiarygodnych pakietów obliczeniowych 3-D. istnieje duża liczba rozwijanych od lat formuł empirycznych (np. wymiany ciepła), które łatwo można wykorzystać w arkuszu kalkulacyjnym; wykorzystanie pakietów obliczeniowych 3-D do takich zagadnień jak np. przepływ ze spalaniem w kotle energetycznym lub pakietów 0-D do symulacji bloku energetycznego jest niezwykle skomplikowane i wykonywane raczej w ośrodkach akademickich; znaczny koszt licencji komercyjnej popularnych pakietów (np. Fluent) Nieco inna sytuacja jest w mechanice dysponującej równaniami teorii sprężystości i algorytmami MES. Tu szeroko stosowane są pakiety obliczeniowe (np. COSMOS/M) 2
Główne cechy: arkusz kalkulacyjny (WYSIWYG) w arkuszu można umieszczać: - tekst, - równania matematyczne, - grafikę. możliwość korzystania z funkcji: - wewnętrznych MathCada, - własnych, zdefiniowanych w MathCadzie, - własnych, przygotowanych w C procedury rozwiązania układu równań nieliniowych Przykład 1 Oblicz moc cieplną grzejnika pokojowego dla danych: strumień wody: D 0.05 kg sek 1 parametry wlotowe: t 1 65 C p 1 0.3 MPa parametry wylotowe: t 2 55 C p 2 0.3 MPa Rozwiązanie: Q = D i 1 i 2 h_tp t 2 p 2 2.09 kw Q D h_tp t 1 p 1 biblioteka funkcji na własności wody i gazów w pliku thmcad2008v1.dll http://fluid.itcmp.pwr.wroc.pl/~zmodl/ 3
Funkcje własne w MathCadzie - hermetyzacja kodu A r 2 0.5 W r 10 C r 5 4.2 H r 3.8 O r 1 0.0 4 N r 1 S r 0.4 6 a un 0.9 0 d ash 10 V 0 0.0 8 89C r 0.3 75S r V O2 ( ) ( 1) 0.2 1 V 0 V N2 ( ) 0.7 9 V 0 0.0 08N r 0.2 65H r V CO2 ( ) 0.0 1 C r 0.3 75S r 1.8 6 6 V H2O ( ) 0.1 11H r 0.0 1 24W r 0.0 3 33O r 5.5 0 6 0.0 1 61 V 0 V sp ( ) V N2 ( ) V H2O ( ) V CO2 ( ) V O2 ( ) r H2O ( ) V H2O ( ) V sp ( ) r CO2 ( ) V CO2 ( ) V sp ( ) ash ( ) 1 0.0 1A r 0.0 1A r a un 1.3 06 V 0 0.9 0.8 sp 1.14.5150.7 0.6 sp 1.3 sp sd ash T 273 r r H2O ( ) r CO2 ( ) 0.7 8 1.6r H2O ( ) k gas rs 4300 sp k ash ash ( ) 3 T 2 2 d ash 1 exp k gas k ash s 0.1 1 0.3 7 T r 1000 0.5 600 800 110 3 1.2 10 3 1.4 10 3 4
rozwiązywanie układu równań nieliniowych Given f(x,y) = 0 g(x,y) = 0 (x,y)=find(x,y) metoda Levenberg-Marquardt Conjugate-Gradient Quasi-Newton własna metoda iteracyjna, współczynniki relaksacji rozwiązywanie równań różniczkowych zwyczajnych 5
Dodatek (biblioteka funkcji własnych): ThExcel4.xla ( Excel 2003), ThExcel5.xlam (Excel 2007) Instalacja dodatku. Umieścić bibliotekę w podkatalogu C:\Documents and Settings \zm\dane Aplikacji\Microsoft\Dodatki lub C:\Program Files\Microsoft Office\Office12\Library\ Aktywować przy pomocy: Przycisk Office Opcje Programu Excel Dodatki Przejdź ThExcel5 Po aktywacji bibliotek funkcje (np. h_tp(t,p) ) są dostępne z poziomu arkusza Złożone zagadnienia obliczeniowe lepiej zakodować w VBA (Visual Basic for Applications), który jest składnikiem Excel a. Dana aplikacja (w naszym przypadku Excel) jest środowiskiem uruchomieniowym dla Basic a. Kod programu napisanego w VBA zawsze zawarty jest w dokumencie utworzonym w Excelu. VBA nie pozwala na tworzenie samodzielnych skompilowanych aplikacji typu EXE. VBA pozwala w wielu przypadkach napisać aplikację nie ustępującą pod względem funkcjonalności programom napisanym przy pomocy takich narzędzi jak Delphi czy C++Builder. 6
Napisać aplikację w VBA obliczającą entalpię wody dla danych: t [ o C] i p [Mpa] Wykorzystać funkcję biblioteczną h_tp(t,p) 1. Upewnij się czy jest widoczna karta Deweloper na wstążce. 2. Jeśli nie - Przycisk Office Opcje Programu Excel Popularne Pokaż kartę Deweloper na Wstążce 3. Na arkuszu wstaw tekst temp1, press1, enth1. 4. W komórkach z prawej zdefiniuj nazwy (najlepiej takie same jak tekst obok) wykorzystaj do tego przycisk na karcie Formuły. Operowanie nazwą komórki zamiast jej adresu jest wygodniejsze przy pisaniu kodu 5. Załącz tryb projektowania i wstaw na arkusz przycisk (formant ActiveX) 6. Wywołaj edytor VBA do napisania procedury, która zostanie wykonana po naciśnięciu przycisku. wywołanie edytora VBA wstawianie formantu AciveX karta Deweloper edytor VBA wstążka przycisk komórki tekstowe komórki danych komórki wyników 7
1. W edytorze VBA utwórz moduł, Insert Module 2. Wypełnij moduł procedurą o nazwie np. MainProc(). 3. Opis procedury Option Explicit - obowiązkowe deklarowanie zmiennych, Option Base 1 - indeksowanie tablic zaczyna się od 1 Public Sub MainProc() - nagłówek funkcji będziedostępna w innych modułach Dim - deklaracje zmiennych... temp1 = Worksheets("Arkusz1").Range("temp1").Value - odczytanie wartosci z komórki o nazwie temp1 znajdującej się na arkuszu o nazwie Arkusz1... enth1 = h_tp(temp1,press1) obliczenie entalpii przy pomocy funkcji bibliotecznej... Worksheets("Arkusz1").Range("temp1").Value = enth1 zapisanie wartosci w komórce o nazwie temp1 znajdującej się na arkuszu o nazwie Arkusz1 4. Należy utworzyć odwołanie do dodatku w którym są funkcje biblioteczne: Tools References ThExcel5. 5. Jak wywołać funkcję MainProc po naciśnięciu przycisku wstawionego na arkusz z listy formantów: - aktywny tryb projektowania - wykonujemy doubleclick na przycisku edytor tworzy automatycznie zręby procedury CommandButton1_Click() (technologia rapid application development) 6. wpisujemy wywołanie Call MainProc 8
9
10