GET /api/v2/video/380
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "PyCon US 2011", "language": "English", "slug": "pycon-2011--optimal-aircraft-engine-tuner-selecti", "speakers": [ "Jeffrey Armstrong" ], "tags": [ "aircraftenginetuning", "casestudy", "pycon", "pycon2011", "scipy" ], "id": 380, "state": 1, "title": "Optimal Aircraft Engine Tuner Selection in Python", "summary": "", "description": "Optimal Aircraft Engine Tuner Selection in Python\n\nPresented by Jeffrey Armstrong\n\nA numerical algorithm for designing on-board aircraft engine diagnostics has\nbeen implemented in Python. Employing the optimization techniques within\nSciPy, the code performs a search for an optimal vector of parameters for\nestimating engine variables, including exhaust temperatures and thrust. The\nalgorithm exploits the numerical strengths of Python and SciPy for speed and\ninteroperability.\n\nAbstract\n\nAn emerging field of aircraft engine diagnostics is the inclusion of on-board\nengine performance tracking algorithms. These algorithms utilize data provided\nby a limited number of engine sensors to determine the current engine\nperformance, which tends to degrade over time. However, estimating engine\nperformance instantaneously is problematic due to the limited number of\nsensors normally available on a commercial aircraft engine.\n\nOne common practice is to estimate and track engine performance in software\nusing a Kalman filter, a mathematical construct for tuning a numerical model\nto better track actual measurements (1). A new technique has been devised to\noptimize the design of this filter in aircraft engine applications (2). An\noptimization procedure to aid in the design of the filter has been implemented\nin Python and exercised against the significant number of minimization and\noptimization strategies available in SciPy. The talk focuses on the design of\nthis optimization procedure in Python. The object-oriented nature of Python\noffers benefits over alternative numerical languages; speed, availability, and\nmaintainability played central roles in the selection of Python as the\nimplementation language. The availability of the multiprocessing module\nallowed for full utilization of modern multi-core CPUs, in contrast with often\nlimited commercial numerical computing packages, further improving\ncomputational speed.\n\nSome difficulties were encountered during this design exercise. Discussion of\nthese obstacles and their eventual solution is presented. Specifically,\niterative solvers for the discrete algebraic Riccati equation and the discrete\nLyapunov equation had to be authored in Python (3,4). Additional framework for\nworking with discrete state-space control systems was created, exploiting the\nobject-oriented features of the language (5).\n\nThe Python implementation was able to verify the solution of the optimization\nproblem. Comparison with an alternative, reference MATLAB implementation will\nbe presented briefly. The results of this research is planned to be presented\nat the American Society for Mechanical Engineers Turbo Expo 2011 Conference in\nJune, 2011 (6). The algorithm design in Python is meant to showcase the\nability to perform controls engineering tasks in the Python language\nefficiently.\n\n1. \u201cKalman Filter,\u201d Wikipedia: [](ht\ntp://\n\n2. Simon, D. L. and Garg, S., \u201cOptimal Tuner Selection for Kalman Filter-Based\nAircraft Engine Performance Estimation\u201d. Journal of Engineering for Gas\nTurbines and Power. March 2010, Vol. 132.\n\n3. \u201cAlgebraic Riccati Equation,\u201d Wikipedia: [\nbraic_Riccati_equation](\nn)\n\n4. \u201cLyapunov Equation,\u201d Wikipedia: [\ntion](\n\n5. \u201cState Space,\u201d Wikipedia: [\nspace](\n\n6. Simon, D. L., Armstrong, J. B., \"Application of an Optimal Tuner Selection\nApproach for On-Board Self-Tuning Engine Models,\" Proceedings of the ASME\nTurbo Expo 2011, GT2011-46408, 2011 (To Be Published).\n\n", "quality_notes": "", "copyright_text": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0", "embed": "", "thumbnail_url": "", "duration": null, "video_ogv_length": 136860815, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": "", "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "", "whiteboard": "", "recorded": "2011-03-11", "added": "2012-02-23T04:20:00", "updated": "2014-04-08T20:28:28.004" }