Overview
Version 3 (J. Simmons, 11/01/2015 04:14 pm) → Version 4/5 (J. Simmons, 11/01/2015 04:57 pm)
h1. Overview
{{toc}}
h2. The Need for MTK
As Mach 30 moves into more complex engineering projects, its development community will have a greater need to perform up front mathematical analysis to design, size, and predict the performance of those projects. Engineering analysis As open source hardware developers, it is essential that we document the fundamental principles, implementation, and results of those analyses. Ideally, we would create this type should be well documented (both documentation at the same time (and in principle and in order to follow the same environment) as we are creating those analyses (under Mach 30's commitment to its "Document as you act" OSHW values). Documenting engineering analysis makes it clear why and how it works as well as providing verification of the analysis (in implementation and results). Ground Rule).
This is where MTK comes in. MTK is combines the analysis capabilities of "Sage":http://www.sagemath.org/ (a Python based math analysis tool) with the document creation power of "LaTeX":http://www.latex-project.org/ to create a single environment for creating and documenting mathematical analyses using Python to code the analysis. analyses. As an added bonus, the use of Python for writing the analysis codes (through Sage) allows Mach 30 to take the analyses created and documented in MTK and use them directly in "CadQuery":https://github.com/dcowden/cadquery to drive our parametric CAD models when designing and making physical components.
h2. MTK Design
MTK's approach MTK combines Sage and LaTeX with support libraries for both packages to integrating engineering analysis deliver the required math and documentation capabilities. The mathematical analysis in implemented by running Python code in Sage. The Python units library, "Pint":http://pint.readthedocs.org/en/0.6/, is based on three included in the Sage environment so hardware developers can include units as a core principles of feature in every analysis. Consistently and correctly managing units is essential in engineering documentation:
# *Document before you act* - In preparation for engineering analysis, engineers must find projects as can be seen with "Mars Climate Orbiter":http://www.cnn.com/TECH/space/9909/30/mars.metric.02/. This probe missed its orbital insertion maneuver and was lost when the correct mathematical models, identify the key equations from those models, developers and demonstrate why operators mis-communicated about the selected models are units for the correct ones to use. This involves writing narratives orbital insertion burn.
The LaTeX IDE ("MacTex":https://tug.org/mactex/ on Macs and the equations covering these items "Kile":http://kile.sourceforge.net/ on Linux) provides a unified environment for creating and citing sources used to arrive at documenting the selected equations. This phase should also identify test cases for later verification efforts. MTK's mathematical analysis. The Python source code is integrated documentation environment (with support into the LaTeX document through two libraries. First, execution of the Python code is implemented through "SageTex":http://www.sagemath.org/doc/tutorial/sagetex.html, a library provided with Sage specifically for units, equations, calculations, importing Sage analyses and plots) makes it easy providing their results in LaTeX documents. Second, formatted source code can is included in the document for users review using the "Minted":https://code.google.com/p/minted/ LaTeX library. Including the source code with line numbers and syntax highlighting enables developers to capture this information in a format that supports adding additional information as easily cross reference implementation with documentation of the project progresses.
# *Document as you act* - During engineering analysis, modern engineers spend their time coding up fundamental principles behind the equations from selected mathematical models, preferably into reusable modules (functions, classes, etc). Rigorous verification analysis.
h2. MTK Workflow
An MTK analysis is composed of engineering analysis should provide commentary on two main components: the critical sections implementation of this code, showing how specific lines of code implement the required equations or methodologies (such as solver algorithms). MTK's unified analysis in Python and the documentation environment is critical of the analysis in LaTeX. A developer can start with either the implementation or the documentation. Note, Mach 30's OSHW Ground Rules urge developers to documenting in this way as it provides for seamless transition between coding interweave the two actions ("Document before, as, and documenting.
# *Document after you act* - Once act").
Regardless of the engineering analysis order of development, the Python source is complete, it needs to be verified. Verification should include integrated into the commentary mentioned above plus inspection of test case results. LaTeX document in two ways. This commentary can include plots The Python is imported for execution using SageTex commands and tables showing those results the Python is included for documentation using Minted commands. These files are created and narrative commentary to prove to readers that edited in MTK and the analysis is ready to be used. MTK's ability to run engineering analyses directly within its executed in the same typesetting step which produces the final document in the LaTeX IDE. The result is a PDF file containing the the documentation environment is essential to this part for and results of the documentation process.
analysis ready for presentation to other developers or inclusion in a project's overall documentation.
{{toc}}
h2. The Need for MTK
As Mach 30 moves into more complex engineering projects, its development community will have a greater need to perform up front mathematical analysis to design, size, and predict the performance of those projects. Engineering analysis As open source hardware developers, it is essential that we document the fundamental principles, implementation, and results of those analyses. Ideally, we would create this type should be well documented (both documentation at the same time (and in principle and in order to follow the same environment) as we are creating those analyses (under Mach 30's commitment to its "Document as you act" OSHW values). Documenting engineering analysis makes it clear why and how it works as well as providing verification of the analysis (in implementation and results). Ground Rule).
This is where MTK comes in. MTK is combines the analysis capabilities of "Sage":http://www.sagemath.org/ (a Python based math analysis tool) with the document creation power of "LaTeX":http://www.latex-project.org/ to create a single environment for creating and documenting mathematical analyses using Python to code the analysis. analyses. As an added bonus, the use of Python for writing the analysis codes (through Sage) allows Mach 30 to take the analyses created and documented in MTK and use them directly in "CadQuery":https://github.com/dcowden/cadquery to drive our parametric CAD models when designing and making physical components.
h2. MTK Design
MTK's approach MTK combines Sage and LaTeX with support libraries for both packages to integrating engineering analysis deliver the required math and documentation capabilities. The mathematical analysis in implemented by running Python code in Sage. The Python units library, "Pint":http://pint.readthedocs.org/en/0.6/, is based on three included in the Sage environment so hardware developers can include units as a core principles of feature in every analysis. Consistently and correctly managing units is essential in engineering documentation:
# *Document before you act* - In preparation for engineering analysis, engineers must find projects as can be seen with "Mars Climate Orbiter":http://www.cnn.com/TECH/space/9909/30/mars.metric.02/. This probe missed its orbital insertion maneuver and was lost when the correct mathematical models, identify the key equations from those models, developers and demonstrate why operators mis-communicated about the selected models are units for the correct ones to use. This involves writing narratives orbital insertion burn.
The LaTeX IDE ("MacTex":https://tug.org/mactex/ on Macs and the equations covering these items "Kile":http://kile.sourceforge.net/ on Linux) provides a unified environment for creating and citing sources used to arrive at documenting the selected equations. This phase should also identify test cases for later verification efforts. MTK's mathematical analysis. The Python source code is integrated documentation environment (with support into the LaTeX document through two libraries. First, execution of the Python code is implemented through "SageTex":http://www.sagemath.org/doc/tutorial/sagetex.html, a library provided with Sage specifically for units, equations, calculations, importing Sage analyses and plots) makes it easy providing their results in LaTeX documents. Second, formatted source code can is included in the document for users review using the "Minted":https://code.google.com/p/minted/ LaTeX library. Including the source code with line numbers and syntax highlighting enables developers to capture this information in a format that supports adding additional information as easily cross reference implementation with documentation of the project progresses.
# *Document as you act* - During engineering analysis, modern engineers spend their time coding up fundamental principles behind the equations from selected mathematical models, preferably into reusable modules (functions, classes, etc). Rigorous verification analysis.
h2. MTK Workflow
An MTK analysis is composed of engineering analysis should provide commentary on two main components: the critical sections implementation of this code, showing how specific lines of code implement the required equations or methodologies (such as solver algorithms). MTK's unified analysis in Python and the documentation environment is critical of the analysis in LaTeX. A developer can start with either the implementation or the documentation. Note, Mach 30's OSHW Ground Rules urge developers to documenting in this way as it provides for seamless transition between coding interweave the two actions ("Document before, as, and documenting.
# *Document after you act* - Once act").
Regardless of the engineering analysis order of development, the Python source is complete, it needs to be verified. Verification should include integrated into the commentary mentioned above plus inspection of test case results. LaTeX document in two ways. This commentary can include plots The Python is imported for execution using SageTex commands and tables showing those results the Python is included for documentation using Minted commands. These files are created and narrative commentary to prove to readers that edited in MTK and the analysis is ready to be used. MTK's ability to run engineering analyses directly within its executed in the same typesetting step which produces the final document in the LaTeX IDE. The result is a PDF file containing the the documentation environment is essential to this part for and results of the documentation process.
analysis ready for presentation to other developers or inclusion in a project's overall documentation.