SOFTWARE FRAMEWORK FOR Simulation of Deployable Optical Membrane Telescope Mirrors


Walter Gerstle1, Jijun Tang1, Vamsi Krishna Kalapala1,

Malcolm Panthaki2, Raikanta Sahu2

1Department of Civil Engineering, University of New Mexico

2Albuquerque High Performance Computing Center, University of New Mexico



The behavior of an optical membrane telescope mirror is fundamentally nonlinear, and hence its computer simulation presents a challenge. We have developed an integrated software framework for the purpose of numerical simulation and control of such membrane reflectors. Within this framework, a general-purpose nonlinear finite element program may be used to simulate the structural response of the membrane. A controller as well as sensors, actuators, and optics are included in the computer model. The integrated framework is designed to be useful for the development of a complete axially symmetric or fully 3D numerical model of the membrane reflector telescope. The framework is designed to simulate the telescope in stages from fabrication through deployment, and finally to calibration and operation. Important features of the simulation tool are its state-of-the-art computational geometry and graphics libraries, its highly general and abstract object-oriented data model, its inter-process client-server approach, and its interpreted functional command language.

KEYWORDS: telescope, membrane, control, space, deployable, adaptive optics, active control, fuzzy control, nonlinear


Large precision structures designed to withstand the rigors of outer space are required by the United States Air Force for radio frequency (RF) antennas, solar concentrators, and optical telescopes. Inflatable membranes present one possible design for this class of structures. Fig. 1 shows a photograph of the recent shuttle-launched Inflatable Antenna Experiment.

Inflatable structures are attractive because they afford weight and stowed volume reductions. Additionally, inflatable structures are self-deploying. The primary reflectors of these telescopes are envisioned to be of sizes up to 16 m in diameter. The required geometric precision of these reflectors is on the order of 1 mm for RF antennas and solar concentrators, down to 10 mm for optical telescopes. The system requirements for an optical space telescope demand a need for autonomous figure acquisition and structural control. Technical challenges lie in the precision construction and control of the inflatable membrane (out of Mylar or similar materials). But equally important technical challenges lie in the analysis and simulation of inflatable telescopes at various stages of their lives, including construction, transportation, inflation, calibration, and service.

Fig. 1 - The Space Shuttle-Launched Inflatable Antenna Experiment in Orbit.

The United States Air Force has recently undertaken the task of investigating the fundamental research necessary to construct large autonomously controlled telescopes using a membrane mirror for the primary optical element. Creating a pressure differential on a membrane, which inflates the thin film to some curvature, creates the optical elements of mirrors and lenses. Complications occur when this curvature is not the desired shape. The mounting techniques, material properties, and boundary control possibilities pose tremendous challenges and provide corresponding opportunities. One challenge is to investigate and develop computational methods, analytical tools and modeling techniques that will accurately predict and control the curvature of a thin membrane mirror under vacuum and edge control. Another challenge is to develop autonomous figure acquisition and control algorithms using the membrane computational simulator and a selected wave-front sensor. Autonomous figure acquisition and control will require the detectors and the membrane controls to be connected via an adaptive control loop. This coarse optical image aberration detection and control scheme is necessary to make these thin films viable options as optical components. Software must be developed to precisely calculate the shape of a thin film under a variety of conditions.

The simulation and control of a space-based deployable optical telescope with a membrane reflector is a complex task for which existing simulation tools are cumbersome at least, if not totally inadequate. A very simplified model of a membrane telescope reflector is shown in Fig. 2.


Fig. 2 - Simplified Physical Model of Membrane Reflector

Fig. 3 - Collaboration Chart for Simulation and Control of

Membrane Reflector shown in Fig. 2.

In this paper, we describe a software framework that is designed to be capable of efficiently and effectively performing such simulation and control. In our approach, as shown in Fig. 3, the controller (SoftLab) interacts with a fully parametric mathematical model of the telescope. This model is described by CoMeT (COmputational MEchanics Toolkit). CoMeT then acts as a client to various domain-specific computational server components, including, perhaps, for nonlinear structural analysis the general-purpose commercial software ABAQUS, and for optical simulation, the optical package MACOS.


SoftLab is a general-purpose intelligent controller developed at the University of New Mexico. SoftLab integrates a number of soft computing techniques, including linear control theory, fuzzy rule-based control, neural networks, and genetic algorithms. SoftLab is intended to respond to a growing demand for a user friendly, dynamic, and extensible software environment for intelligent control. SoftLab can interface either with real-time hardware or with simulated models, as described in this paper.

As shown in Fig. 3, SoftLab runs as a separate process that interacts with the parametric CoMeT script of the model. Although only input F and output P are shown in the figure, any number of input and output variables may be defined in the control model. Currently, interprocess communication is enabled through file read and write operations, although faster data transfer techniques (such as pipes) are possible.

SoftLab acts as a controller for the system model of the telescope, which is defined as a Computational Mechanics Language (CML) script, an extension of the Scheme interpreted functional programming language. A Scheme script for a simple axially symmetric model of a telescope reflector is presented in the Appendix.


CoMeT is an object-oriented framework for defining and solving computational mechanics problems [1-6]. CoMeT is more fully described at the website CoMeT performs modeling functions such as geometrical modeling, automatic meshing, application of sections and material specifications, and application of prescribed conditions. CoMeT can be used to create solid geometry, or it can capture geometric models created in CAD programs such as SolidWorks or AutoCAD. CoMeT can make use of finite element analysis applications such as ABAQUS, in client-server fashion. The CoMeT framework is specific to the domain of computational mechanics, yet is sufficiently general and flexible that modeling aspects not normally associated with computational mechanics, such as optical systems and mechanical systems can be naturally integrated into the CoMeT framework.

The architecture of CoMeT is very similar to the (apparent) architectures of MATLAB, Mathematica, and AutoCAD, with an interpreted functional command language Scheme, a LISP-like language [7] that accesses a core set of functions and objects. The domains of application of MATLAB and Mathematica are centered on mathematical objects such as numbers, functions, and matrices. AutoCAD is centered on geometry and has been designed as a drafting and design environment, with little attention given to computational mechanics uses. On the other hand, the domain of CoMeT is centered from the start on computational mechanics problems, with their associated geometries, meshes, material specifications, and prescribed conditions. Thus it is much more natural to use CoMeT for the solution of computational mechanics problems than MATLAB, Mathematica or AutoCAD.

ProEngineer is a comparable commercial application that is devoted to computational mechanics applications. However ProEngineer is limited to problems with linear response, and because it is proprietary, it would be very difficult to use this application to model an entire nonlinear control system like a space-based membrane telescope.

Another comparable application, called "Integrated Modeling of Optical Systems (IMOS)", for modeling of telescope systems has been developed on top of MATLAB, using ".m" files [8]. IMOS was written primarily for linear systems with relatively simple geometries and a limited number of degrees of freedom. These restrictions apply primarily because IMOS has no general concept of geometry (aside from the finite element description), and because of the slowness with which MATLAB runs on existing machines. A membrane, on the other hand, is fundamentally nonlinear and requires many degrees of freedom to fully describe its state. We therefore felt that IMOS, was not well-suited for the control and simulation of nonlinear membrane reflectors.

CoMeT is designed to be easily extensible. Its object-oriented data model is easily extended using the concept of inheritance. New functions are easily added and can be made available to users of CoMeT at the Scheme interface. Beside the control and simulation of membrane telescopes, many other domain-specific applications can be readily built upon the CoMeT framework.


We are continuing to develope a software system for the simulation and control of nonlinear membrane reflector telescopes. At the core of the system are the computational mechanics toolkit, CoMeT, and the controller SoftLab. The CoMeT can make use of existing domain-specific software, such as SolidWorks and AutoCAD for geometry definition, ABAQUS for structural analysis, and MACOS for optical simulation.

A prototype simulation of a nonlinear membrane reflector telescope has been implemented upon the Windows NT operating system. Parametric models of complex nonlinear and evolving systems can be easily created, as shown in the Appendix. The integrated control and simulation system holds promise for modeling deployable optical membrane telescopes and other systems that are both nonlinear in response and physically complex.


The financial support provided by the Air Force Research Laboratory under contract F29601-97-K-0143, the Autonomous Control in Engineering (ACE) Center; and the Albuquerque High Performance Computing Center is acknowledged. The technical help provided by Dan Marker and Richard Carreras is also gratefully acknowledged.




1. Atencio, L., Gerstle, W., Panthaki, M., and Sahu, R., "Object-Oriented Design and Development of a Computational Mechanics Toolkit", Proceedings of NASA University Research Consortium Technical Conference 97, Albuquerque, NM, Feb. 16 - 19, 1997.

2. Sahu, R., Gerstle, W. H., and Panthaki, M. J., "CoMeT - An Object-Oriented Framework for Computational Mechanics" Proc. 4th U.S. National Congress on Computational Mechanics, Aug. 6-8, 1997, Scientific Computation Research Center, Rensselaer Polytechnic Institute, Troy, N.Y., p. 205.

3. Funston, M. G., Valerio, R., and Gerstle, W., "Creation of Quantity: An Object-Oriented Reusable Class", Proceedings of NASA University Research Consortium Technical Conference 97, Albuquerque, NM, Feb. 16 - 19, 1997.

4. Sahu, R., Panthaki, M.J., and Gerstle, W., "CoDE - An Environment for Multi-Developer Software Development", Proceedings of NASA University Research Consortium Technical Conference 97, Albuquerque, NM, Feb. 16 - 19, 1997.

5. Panthaki, M., Sahu, R., and Gerstle, W., "An Object-Oriented Virtual Geometry Interface", 6th International Meshing Roundtable, Park City, Utah, Oct. 13-15, 1997, Sandia National Laboratories, Albuquerque, N.M., pp. 67-81.

6. Malanthara, A., Panthaki, M., Gerstle, W., and Sahu, R., "Object-Oriented Design of a Drawing Subsystem For a Computational Mechanics Toolkit", Proceedings of NASA University Research Consortium Technical Conference 97, Albuquerque, NM, Feb. 16 - 19, 1997.

7. Martin, E.C., Getting Started with Scheme Using the ACIS 3D Toolkit, Spatial Technology, Inc., Boulder, CO., 1994.

8. Needels, L., (Ed.) Integrated Modeling of Optical Systems User's Manual Release 3.0, JPL D-13040, Jet Propulsion Laboratory, California Institute of Technology, 1998.

9. Laskin, R.A., and San Martin, M., "Control/Structure system design of a spaceborne optical interferometer," AAS/AIAA Astrodynamics Specialist Conference, Stowe, Vermont, August, 1989.

10. Redding, D. and Breckenridge, W., "Optical Modeling of Dynamics and Control Analysis," J. Guidance, Control and Dynamics, 14, Sept. 1991.

11. Redding, D., Needels, L., Wallace, K., and Levine, M, COMP: Controlled Optics Modelling Package User Manual, Release 1.0, JPL D-9816, June, 1992.

12. Jung, J., Dohrmann, C., Witkowski, W., Wolfenbarger, P., Gerstle, W., Mitchell, S., Panthaki, M., and Segalman, D., "A Global Optimization Approach to Quadrilateral Meshing", 6th International Meshing Roundtable, Park City, Utah, Oct. 13-15, Sandia National Laboratories, Albuquerque, NM, 1997, p. 155.


APPENDIX - CoMeT Scheme Script for Membrane Reflector Model

;;COMET COMMAND-LINE SCRIPT for example problem

;; Start the ProjectTree.


;; Get a handle to the Model.

(define model (prt:projecttree-get-model))

;; Add a Stage to the ProjectTree.

(prt:projecttree-add-stage "AnalysisStage" "AS - 1")

;; Create an assemblyInstance and attach it to the model.

(define root-assembly-instance (prt:cdo-construct "assemblyInstance"))

(prt:cdo-link model root-assembly-instance)

;; Create an assembly and attach it to the root assemblyInstance.

(define asm (prt:cdo-construct "assembly"))

(prt:cdo-set-label asm "Assembly - 1")

(prt:cdo-link root-assembly-instance asm )

; construct a partInstance

(define part-instance1 (prt:cdo-construct "partInstance"))

(prt:cdo-set-label part-instance1 "PartInstance - 1")

; link the partInstance to the assembly

(prt:cdo-link asm part-instance1)

; construct a part

(define part1 (prt:cdo-construct "part"))

(prt:cdo-set-label part1 "Part - 1")

; link part to partInstance

(prt:cdo-link part-instance1 part1)

; define a vertex v1

(define v1 (gmt:vertex-construct (position 0 0 0)))

(prt:cdo-set-label v1 "Vertex - 1")

; define a vertex v2

(define v2 (gmt:vertex-construct (position 0 5 0)))

(prt:cdo-set-label v2 "Vertex - 2")

; define an edge between vertices v1 and v2

(define e1 (gmt:edge-construct "straight" v1 v2))

(prt:cdo-set-label e1 "Edge - 1")

; construct a PartGeometry object

(define part-geometry (prt:cdo-construct "partgeometry"))

(prt:cdo-set-label part-geometry "PartGeometry - 1")

; link the body to the part-geometry

(prt:cdo-link part-geometry e1)

; link the part-geometry to the part

(prt:cdo-link part1 part-geometry)

; construct a 1D Section

(define section1 (prt:cdo-construct "section1d"))

(prt:cdo-set-label section1 "Section - 1")

; link the section to the part

(prt:cdo-link part1 section1)

; construct a Layup

(define layup1 (prt:cdo-construct "layup"))

(prt:cdo-set-label layup1 "Layup - 1")

; construct a SectionComponent with the specified thickness

(define sectioncomponent1 (prt:cdo-construct "sectioncomponent" 10 ))

(prt:cdo-set-label sectioncomponent1 "SectionComponent - 1")

; link the layup to the section

(prt:cdo-link section1 layup1)

; link the sectioncomponent to the layup

(prt:cdo-link layup1 sectioncomponent1)

; construct a YoungsModulus with the specified value and unit(annotation optional).

(define ym (prt:cdo-construct "youngsmodulus" 100.0 "Pa" "annotation"))

(prt:cdo-set-label ym "Young's Modulus - 1")

; construct a PoissonsRatio with the specified value and unit(annotation optional).

(define pratio (prt:cdo-construct "poissonsratio" 0.3 "X" "annotation"))

(prt:cdo-set-label pratio "Poisson's Ratio - 1")

; construct a MaterialSpecification

(define matspec1 (prt:cdo-construct "materialspecification"))

(prt:cdo-set-label matspec1 "Material Specification - 1")

; link the YoungsModulus to the MaterialSpecification

(prt:cdo-link matspec1 ym)

; link the PoissonsRatio to the MaterialSpecification

(prt:cdo-link matspec1 pratio)

; construct a Linear Elastic Material-Model object

(define matmodel1 (prt:cdo-construct "linearelastic"))

(prt:cdo-set-label matmodel1 "Material Model - 1")

; link the MaterialModel to the SectionComponent

(prt:cdo-link sectioncomponent1 matmodel1)

; link the MaterialSpecification to the SectionComponent

(prt:cdo-link sectioncomponent1 matspec1)

; Make the GeometricDomain objects:

; construct a group

(define group1 (prt:cdo-construct "group"))

(prt:cdo-set-label group1 "GeometricDomain - 1")

; construct a group

(define group2 (prt:cdo-construct "group"))

(prt:cdo-set-label group2 "GeometricDomain - 2")

; construct a group

(define group3 (prt:cdo-construct "group"))

(prt:cdo-set-label group3 "GoemetricDomain - 3")

(gmt:group-add group1 v1) ; these are the vertices which will have

(gmt:group-add group2 v2) ; boundary conditions defined

; construct two DisplacementBC objects with three doubles for the direction

; of the displacement and a double for the displacement value.

; One will be for the roller, the other for fixed vertex.

(define pc1 (prt:cdo-construct "displacementbc" 1.0 0.0 0.0 0.0))

; x-direction is fixed

(prt:cdo-set-label pc1 "Displacement BC - 1")

(define pc2 (prt:cdo-construct "displacementbc" 0.0 1.0 0.0 0.0))

; y-direction is fixed

(prt:cdo-set-label pc2 "Displacement BC - 2")

; construct a traction object with the specified Pressure value.

(define pc3 (prt:cdo-construct "pointload" 0.0 -1.0 0.0 10))

(prt:cdo-set-label pc3 "Pressure - 1")

; Link the prescribed condtions to PrescribedConditionSpecification objects.

(define pcspec1 (prt:cdo-construct "prescribedconditionspecification"))

(prt:cdo-link pcspec1 pc3)

(define pcspec2 (prt:cdo-construct "prescribedconditionspecification"))

(prt:cdo-link pcspec2 pc1)

(prt:cdo-link pcspec2 pc2)

; Construct two PrescribedCondtionMediator objects and attach them to the

; Groups and link them to the Model:

(define pcmed1 (prt:cdo-construct "prescribedconditionmediator"))

(prt:cdo-link pcmed1 pcspec1)

(prt:cdo-link pcmed1 group1)

(prt:cdo-link model pcmed1)

(define pcmed2 (prt:cdo-construct "prescribedconditionmediator"))

(prt:cdo-link pcmed2 pcspec2)

(prt:cdo-link pcmed2 group3)

(prt:cdo-link model pcmed2)


;;;;;;;;;;;; End of mathematical model definition ;;;;;;;;;;;;;;;;


;; Mesh the edge

(define mesh (msh:edge-mesh e1 "u_equispaced" 5 1 #t))

(add mesh)


(drw:viewport-set-attribs "view_all" "set_camera_home")


;;;;;;;;;;;; End of numerical model definition ;;;;;;;;;;;;;;;;






;; Begin simulation control loop

(define P 10) ;define initial pressure

(define H 5) ;define radius of reflector

(define P0 0) ;define initial pseudo environmental pressure

(define mesh1 (Run:ABQ P H mesh))

(define step (lambda (n)

(do ((i 1 (+ i 1))) ((= n (- i 1)))

(set! P0 (sin (/ (* i Pi) 5)))

(define mesh1 (Run:ABQ P H mesh1))

(define F1 (ReadAbaqus))

(Run:SoftLab F1)

(system:sleep 1000)

(define P (ReadSoftLab))

(define P (+ P0 P))


(add mesh1)