MONTHLY PROGRESS REPORT CONTRACTOR: University of California at Berkeley TITLE: Open Control Platform REPORT PERIOD: 4/15/00 - 5/15/00 SPONSOR: Boeing Subcontract, Air Force Research Laboratory (AFRL) REPORT PREPARED BY: Edward A. Lee 1. Research Status Software Architecture ===================== Domains ------- We have made progress in understanding the role of "domains" in the OCP. A domain is the definition of the interaction of components, and the software that supports this interaction. Multi-domain modeling means hierarchical composition of heterogeneous models is allowed. By allowing heterogeneous composition, domains can be more specialized than a single universal component interaction mechanism would have to be. This helps avoid creeping featurism, and helps enable verification of designs. The data replication mechanism that currently exists in the OCP/Boldstroke, which is significantly different from the event-channel mechanism, can be viewed as another domain in a framework of domains. In discussions with Georgia Tech and Boeing, we have clarified that a number of domains are needed besides those based on the CORBA event channel with real time extensions. In particular, at least the following needs are immediately evident: - High-sample-rate, periodic event handling - Stream-based component interaction - Control reconfiguration management - Time-triggered, synchronous modeling - Continuous-time domain In order to achieve heterogeneous composition across domains, domains need to be able to: - Share a consistent notion of time. - Share signals/params across levels of the hierarchy. - Export interfaces to other domains. - Import components designed in another domain. Embedded Hybrid Models ---------------------- In preparation for the April 27-28 SEC Working Group meeting in St. Louis, the issue came up of how to use embedded hybrid systems models in fault detection and adaptation examples. Jie Liu and Xiaojun Liu proposed a simple demonstration example that shows how this can work. Their example, which Jie implemented in a few days in Ptolemy II, consists of two vehicles, one following another. The leading vehicle publishes position, velocity, and force information, time stamped. The following vehicle uses this information to implement a PID controller to follow the leading vehicle. The following vehicle includes a model of the continuous dynamics of the leading vehicle, and checks the published data for consistency with this model. As long as the data is consistent, the data is trusted. However, if the data and the model deviate significantly, then the following vehicle adapts by switching to a control mode that does not rely on this data. Jie's implementation uses the CT (continuous-time), FSM (finite-state machines), and DE (discrete-event) domains of Ptolemy II. It uses Java Spaces as an event channel (we did not yet have access to the OCP), and uses Jini for service discovery. Work with Boeing OCP ==================== On May 4, 2000, we received a very preliminary release of the OCP from Boeing. Christopher Hylands, Ben Horowitz, Christoph Meyer, and Sonia Sachs have worked to varying degrees with the software. They quickly discovered that we cannot run the software with Windows 2000 (the Tornado toolset for VxWorks does not run on Windows 2000), and so they had to downgrade a lab PC to Windows NT. They also configured a machine to run Linux and were able to compile it. They reported a number of issues to Boeing, and received superb support from Brian Mendel. Meetings ======== On April 13, 2000 we met with David Corman and Brian Mendel of Boeing at Berkeley to discuss our interaction on the OCP. We agreed that we would integrate Ptolemy II into an early version of the OCP, and discussed long-term planning for a more coherent architecture that uses the domain concept from Ptolemy II. We demonstrated the use of Jini and Java Spaces for service discover and publish-and-subscribe interactions in Ptolemy II. On April 27-28, 2000, we participated in the SEC Working Group meeting in St. Louis, where Edward Lee chaired the Hybrid systems subgroup. At that meeting, we described the car tracking Ptolemy II application (see above) and described the domain concept and how it fits with the OCP software architecture.