mathcad automatisierter code-export nach c++ oder · pdf file1 gb speicherlimit (mathcad...
TRANSCRIPT
![Page 1: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/1.jpg)
19.11.2009 C. Meißner - PTC World 2009 Stuttgart 1
– Mathcad® –
Automatisierter Code-Export
nach C++ oder Windows-DLL
PTC World 2009 Stuttgart
Dipl.-Ing. Christian MeißnerSimulation Tools
www.simulationtools.de
![Page 2: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/2.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 2
Was ist Mathcad® ?
Arbeitsblatt
Text
Grafiken
Variablendefinitionen
Gleichungen in Standardnotation
Berechnungs-ergebnisse
Sehr übersichtliches, leicht zu erlernendes und leistungsfähiges Mathematikprogramm.
Beispiel:
![Page 3: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/3.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 3
1. Vorteile von Mathcad®
● Einfache Berechnungen(z.B. Dimensionierung von Maschinenelementen)
Haupteinsatzgebiete von Mathcad ®
● Lehre (z.B. Beispielaufgaben)
![Page 4: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/4.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 4
● Schnelle Entwicklung von (Test-)Algorithmen
1. Vorteile von Mathcad®
Haupteinsatzgebiete von Mathcad ®
○ Visualisierung in Diagrammen
○ Debugging-Funktion zur Fehlersuche
○ Selektive Neuberechnung
○ Übersichtliche Programmierung
○ Formatierte Kommentare
○ Im- und Export von vielen Dateiformaten
○ ...
► Mathcad® ist eine sehr gute Entwicklungs-, Berechnungs und Dokumentationssoftware
![Page 5: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/5.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 5
1. Vorteile von Mathcad®
Gleichungen in Standdardnotation
Große Funktionsbibliothek
Erweiterungspakete(Extensionpacks)
Bildverarbeitung, Dateizugriff, Datenanalyse, DGL-Löser,
Matrizen, Wahrscheinlichkeit, Zeichenfolgen, ...
DiagrammdarstellungDateneingabe
Excel
Integrierte Dokumentation
Datenanalyse, Bildverarbeitung,
Signalverarbeitung, Wavelets
Erweiterung durch DLL‘s
Pro/E-Schnittstelle
#include <stdio.h>void main(char *text)
![Page 6: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/6.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 6
2. Komplexe Berechnungen in Mathcad®
● Vorteile:
z.B. Handling von große Datenmengen
○ Viele unterstützte Dateiformate (Input/Output)
○ Sequenzielle Abarbeitung von Dateien, z.B. über Skripte
● Probleme:
○ Einheitliche Verwendung von 52(64)-bit-Variablen
○ 1 GB Speicherlimit (Mathcad® 14)
○ Zwischenergebnisse
● Beispiel:
Eine Synthesealgorithmus liefert 10 Mio. Getriebestrukturen mit je 8 Zähnezahlen, 6 Übersetzungen und 7 Bewertungsgrößen.
Mathcad®: Zähnezahlen: 8x64 bitÜbersetzungen: 6x64 bitBewertungen: 7x64 bit x 10 Mio. Varianteninsgesamt 1602 MB→ nicht vollständig lösbar
C++: Zähnezahlen: 8x7 bitÜbersetzungen: 6x16 bitBewertungen: 7x8 bit x 10 Mio. Varianteninsgesamt 246 MB→ vollständig lösbar
![Page 7: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/7.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 7
2. Komplexe Berechnungen in Mathcad®
z.B. Programm mit vielen Unterfunktionsaufrufen
y1(x1,x2)=f1(y2,y3)Hierachiestufe 1:
Hierachiestufe 2:
Hierachiestufe 3:
● Dasselbe Beispiel in C++ :
y2=f2(y4) y3=f3(y5)
y4=f4(x1,x2) y5=f5(x1,x2)
up-stream
down-stream
→ 12 Paramterübergaben (Schreiboperationen) in Mathcad®
● Beispiel in Mathcad® :
y1(x1,x2)=f1(y2,y3)
y2=f2(y4) y3=f3(y5)
y4=f4(x1,x2) y5=f5(x1,x2) Glo
bale
r S
peic
her
→ 8 Paramter-übergaben in C++
C++ ist u.a bei der Verwendung eines globalen Speichern schneller.
![Page 8: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/8.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 8
2. Komplexe Berechnungen in Mathcad®
Fazit aus Kapitel 2:
● Verschiedene Programmiersprachen haben verschiedene Vorteile
○ Mathcad®: schnelle Entwicklung
gute Visualisierung
…
○ C++: hohe Rechengeschwindigkeit
geringer Speicherbedarf
...
Ziel:
● Vereinen der Vorteile beider Systeme
Voraussetzung:● Bidirektionale Übergabemöglichkeit für Parameter
![Page 9: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/9.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 9
3. Erweiterungskonzepte von Mathcad®
Dateiverknüpfungen
Berechnung
Formelsammlung 1 Formelsammlung 2● Verknüpfen von
Mathcad®-Dateien
● Bessere Strukturierung
Komponenten● Bidirektionaler
Datenaustausch (z.B. nach EXCEL) Mathcad®-Berechnung
Excel
Dynamische Bibliotheken (DLLs)
● Compilierter Programmcode
● Sehr schneller Datenaustausch
● Programmcode sicher vor dem
Zugriff Dritter bzw. vor Manipulation DLL
Mathcad®-Berechnung
Funktionsaufruf
![Page 10: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/10.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 10
4. Erstellung und Verwendung von DLLs
Betriebssystem: Mircosoft Windows®
MS Word MS Excel
Hardware-DLL
Anwendungen
PTC Mathcad
Dynamische Bibliotheken (DLL‘s)
Kernel32.dll Windows API
eigene DLL
Funktions-aufruf
Funktions-beschreibung
• Beim Programmstart: Laden aller DLL‘s in den Speicher(z.B. in „C:\mathcad\userfi\“)
• Beim einem Funktionsaufruf in Mathcad: In Mathcad definierte Funktion?Mathcad – interne Funktion?DLL – Funktion?
neue DLL
Funktions-beschreibung
Vorteile:
Aktionen:
• einfache Erweiterung von bestehender Software (zusätzliche Funktionen)
• einfache Aktualisierung von Funktionen (Austausch der DLL)
![Page 11: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/11.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 11
4. Erstellung und Verwendung von DLLs
Ziel: Erhöhung der Rechengeschwindigkeit
Teil 1: Optimierung des Mathcad®-Programmcodes
Teil 2: Auslagerung von rechenintensiven Funktionen in eine DLL
Beispiel: Fahrzeugsimulation – vereinfachtes Modell
Rechenzeit einer einfachen 10s-Fahrdynamiksimulatio n
9,062 s
4,703 s
3,469 s
3,359 s
2,390 s
0 1 2 3 4 5 6 7 8 9 10 11
Vollständige Berechnung in MathCAD
Optimierung des MathCAD-Codes
Teile des Reifenmodells als DLL
Vollständiges Reifenmodell als DLL
Vollständige Fahrsimulation als DLL
Rechenzeit [s]
• Zusammenfassen von Funktionen, Preprozessing, Interpolationsroutinen, ...
• Schrittweises Auslagerung von Funktionen
• Zwischentest der Funktionen
• Reduktion der Übergabeparameter durch Ablegen im DLL-internen Speicher
Geschwindigkeitssteigerung bei dieser Anwendung um Faktor 3,8 !
Ausführungszeit auf 26% gesenkt !
![Page 12: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/12.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 12
Konvertierungstool
• www.SimulationTools.de
4. Erstellung und Verwendung von DLLs
Kurzanleitung zur Erstellung von DLLs:
C/C++-CodeMathcad-Sheet
V. 14
#include <stdio.h>void main(char *text){ ...}
händisch durch Abprogrammieren
Bildquellen: image.spreadshirt.net, www.abelhome.de
Compiler / Linkerfertige DLL
• Microsoft® Studio Entwicklungsumgebung
• OpenWatcom (www.openwatcom.de)
Sourcecode / Bibliotheken
+ von PTC mitgelieferte Dokumente:„Mcadincl.h“,„Mcaduser.lib“
Opti-mierungen
![Page 13: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/13.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 13
4. Erstellung und Verwendung von DLLs
Fazit:
● Speichern des Mathcad-Arbeitsblattes als *.xmcd
● Öffnen der *.xmcd-Datei im Mathcad-C-Konverter
● Ggf. benötigte Funktionen auswählen
● DLL speichern
● Abhängigkeiten werden geprüft
● C-Code wird erstellt
● C-Code wird zur DLL compiliert
● Dokumentation wird erstellt
Notwendige Arbeitsschritte:
● Bisher: DLL-Erstellung sehr aufwändig → wenige praktische Verwendung
● Neu: automatische DLL-Erstellung → Standardoptimierungstool
![Page 14: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/14.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 14
4. Erstellung und Verwendung von DLLs
1. Mathcad-Programm als unkomprimierte *.xmcd-Datei speichern
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
FL
FD
FVβD
Kräfte und Druckverteilungen am Gleitlager
F D=SoD⋅B⋅D⋅⋅∣w∣
2
F V=SoV⋅B⋅D⋅⋅̇
2
![Page 15: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/15.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 15
4. Erstellung und Verwendung von DLLs
2. *.xmcd-Datei im Mathcad-C-Konverter öffnen
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
![Page 16: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/16.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 16
4. Erstellung und Verwendung von DLLs
3. gewünschte Funktionen auswählen
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
Projektkurzzeichen
Funktionsauswahl
Automatisches Ermitteln der Abhängigkeiten von anderen Funktionen
![Page 17: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/17.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 17
4. Erstellung und Verwendung von DLLs
4. Ausgabeformat wählen
C-Code (*.h)
DLL-Code (*.c)
DLL-Datei (*.dll)
Dokumentation (*.pdf)
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
![Page 18: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/18.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 18
4. Erstellung und Verwendung von DLLs
5. Speichern – als DLL
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
● Erstellendes C-Codes
● Compilierendes DLL-Codes
● Kopieren der DLL in das Mathcad®- Verzeichnis „...\userfi“
● Registrieren der Hilfeeinträge
● Erstellen der Dokumentation
![Page 19: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/19.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 19
4. Erstellung und Verwendung von DLLs
5. Speichern – automatische PDF-Dokumentation
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
![Page 20: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/20.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 20
4. Erstellung und Verwendung von DLLs
6. Wieder-Einbinden in Mathcad
Arbeitsschritte am Beispiel „Gleitlagerberechnung“
Aufruf der in der DLL gespeicherten Sommerfeld-Funktion
![Page 21: Mathcad Automatisierter Code-Export nach C++ oder · PDF file1 GB Speicherlimit (Mathcad ® 14) Zwischenergebnisse](https://reader030.vdocuments.mx/reader030/viewer/2022012322/5a79ae647f8b9ab05f8b4f3f/html5/thumbnails/21.jpg)
20.11.2009 C. Meißner - PTC World 2009 Stuttgart 21
5. Zusammenfassung
● Mathcad als Leistungsfähige Software für Lehraufgaben, Einfache Berechnungen
und die Entwicklung von Berechnungsalgorithmen
● Erweiterung von Mathcad durch DLLs
● Erhöhung der Rechengeschwindigkeit
● Quellcodeschutz
● Erstellung von DLLs
● Bisher händisch und aufwändig
● NEU: automatisiert durch Konvertierungstool
● Ausgabeformate:
● DLL, C-Code, DLL-Code
● Inkl. Vollautomatischer Dokumentation
Vielen Dank für Ihre
Aufmerksamkeit
Dipl.-Ing.
Christian Meißner
SimulationToolsRöhrsdorfer Str. 1809117 Chemnitz
Telefon +49 (0) 371 – 2391446Telefax +49 (0) 371 – 2391447
[email protected] www.simulationtools.de