pyvideo.org: Videos of Jeffrey Armstronghttp://pyvideo.org/speaker/195/jeffrey-armstrong/rssen-usSat, 27 Jul 2013 00:00:00 -0500500PyOhio 2010: Implementation of a Numerical Simulation in Pythonhttp://pyvideo.org/video/515/pyohio-2010--implementation-of-a-numerical-simula<p>Description</p>
Implementation of a Numerical Simulation in Python
Presented by Jeffrey B. Armstrong
The Python programming language is well suited for numerical computation under
a variety of circumstances. Python offers advantages over competing free and
commercial technologies, including price, functionality, and maintainability.
Specifically, the combination of mature numerical libraries and liberal
licensing allow complex simulations to be coded with ease and to be made
available to nearly all interested parties. !NumPy/!SciPy, database access,
networking, and optimization techniques are examined in detail with respect to
numerical computation. A practical example involving an aerothermal commercial
turbofan aircraft engine simulation showcases these advantages. An aircraft
engine is broken down into discrete stages, including compressors, turbines,
and other flow-related components. Commonalities between components, such as
rotation and the presence of inlet and exit conditions, map cleanly to the
object-oriented nature of Python. Based on simulation needs and hardware
availability, Python allows for the parallel computation of simulations
without the expense and complexity of commercial parallelization packages.
Jeffrey Armstronghttp://pyvideo.org/video/515/pyohio-2010--implementation-of-a-numerical-simulaPyOhio 2011: Bringing Modern Python to the Atarihttp://pyvideo.org/video/540/pyohio-2011--bringing-modern-python-to-the-atari<p>Description</p>
Bringing Modern Python to the Atari
Presented by Jeffrey Armstrong
The Atari ST continues to fulfill a niche in the computing world amongst
hobbyists. Later Atari computers, such as the TT030 and Falcon030, and the
numerous clones are relatively competent 32-bit machines. To this day, the
open source FreeMiNT operating system continues to be developed, bringing a
UNIX-like environment to these computers.
Jeffrey Armstronghttp://pyvideo.org/video/540/pyohio-2011--bringing-modern-python-to-the-atariA Text Adventure in Pythonhttp://pyvideo.org/video/2270/a-text-adventure-in-python<p>Abstract</p>
Ever want to write interactive fiction using your favorite language? Using only the Python standard library, one can write a modestly functional text adventure from scratch. This interactive talk will quickly walk through the process, touching a number of standard library modules, from command lines to string handling to data storage, that can help bring a game to life.Jeffrey ArmstrongSat, 27 Jul 2013 00:00:00 -0500http://pyvideo.org/video/2270/a-text-adventure-in-python14. preshrunk-cotton: Windows Help Files for Lazy Peoplehttp://pyvideo.org/video/753/14-preshrunk-cotton-windows-help-files-for-lazy<p>Abstract</p>
Generating a Compiled HTML Help (CHM) file is often necessary when
distributing applications on Microsoft Windows platforms. However, many
developers may dislike authoring HTML and/or cannot use Microsoft’s help
tools. preshrunk-cotton streamlines the creation of CHM files by allowing the
author to quickly write documentation in Textile markup and build the help
file on almost any platform.
Jeffrey ArmstrongSun, 11 Mar 2012 00:00:00 -0600http://pyvideo.org/video/753/14-preshrunk-cotton-windows-help-files-for-lazyOptimal Aircraft Engine Tuner Selection in Pythonhttp://pyvideo.org/video/380/pycon-2011--optimal-aircraft-engine-tuner-selecti<p>Description</p>
Optimal Aircraft Engine Tuner Selection in Python
Presented by Jeffrey Armstrong
A numerical algorithm for designing on-board aircraft engine diagnostics has
been implemented in Python. Employing the optimization techniques within
SciPy, the code performs a search for an optimal vector of parameters for
estimating engine variables, including exhaust temperatures and thrust. The
algorithm exploits the numerical strengths of Python and SciPy for speed and
interoperability.
Abstract
An emerging field of aircraft engine diagnostics is the inclusion of on-board
engine performance tracking algorithms. These algorithms utilize data provided
by a limited number of engine sensors to determine the current engine
performance, which tends to degrade over time. However, estimating engine
performance instantaneously is problematic due to the limited number of
sensors normally available on a commercial aircraft engine.
One common practice is to estimate and track engine performance in software
using a Kalman filter, a mathematical construct for tuning a numerical model
to better track actual measurements (1). A new technique has been devised to
optimize the design of this filter in aircraft engine applications (2). An
optimization procedure to aid in the design of the filter has been implemented
in Python and exercised against the significant number of minimization and
optimization strategies available in SciPy. The talk focuses on the design of
this optimization procedure in Python. The object-oriented nature of Python
offers benefits over alternative numerical languages; speed, availability, and
maintainability played central roles in the selection of Python as the
implementation language. The availability of the multiprocessing module
allowed for full utilization of modern multi-core CPUs, in contrast with often
limited commercial numerical computing packages, further improving
computational speed.
Some difficulties were encountered during this design exercise. Discussion of
these obstacles and their eventual solution is presented. Specifically,
iterative solvers for the discrete algebraic Riccati equation and the discrete
Lyapunov equation had to be authored in Python (3,4). Additional framework for
working with discrete state-space control systems was created, exploiting the
object-oriented features of the language (5).
The Python implementation was able to verify the solution of the optimization
problem. Comparison with an alternative, reference MATLAB implementation will
be presented briefly. The results of this research is planned to be presented
at the American Society for Mechanical Engineers Turbo Expo 2011 Conference in
June, 2011 (6). The algorithm design in Python is meant to showcase the
ability to perform controls engineering tasks in the Python language
efficiently.
1. “Kalman Filter,” Wikipedia: [http://en.wikipedia.org/wiki/Kalman_filter](ht
tp://en.wikipedia.org/wiki/Kalman_filter)
2. Simon, D. L. and Garg, S., “Optimal Tuner Selection for Kalman Filter-Based
Aircraft Engine Performance Estimation”. Journal of Engineering for Gas
Turbines and Power. March 2010, Vol. 132.
3. “Algebraic Riccati Equation,” Wikipedia: [http://en.wikipedia.org/wiki/Alge
braic_Riccati_equation](http://en.wikipedia.org/wiki/Algebraic_Riccati_equatio
n)
4. “Lyapunov Equation,” Wikipedia: [http://en.wikipedia.org/wiki/Lyapunov_equa
tion](http://en.wikipedia.org/wiki/Lyapunov_equation)
5. “State Space,” Wikipedia: [http://en.wikipedia.org/wiki/State-
space](http://en.wikipedia.org/wiki/State-space)
6. Simon, D. L., Armstrong, J. B., "Application of an Optimal Tuner Selection
Approach for On-Board Self-Tuning Engine Models," Proceedings of the ASME
Turbo Expo 2011, GT2011-46408, 2011 (To Be Published).
Jeffrey ArmstrongFri, 11 Mar 2011 00:00:00 -0600http://pyvideo.org/video/380/pycon-2011--optimal-aircraft-engine-tuner-selecti