Patent Description:
Vehicles such as aircraft and spacecraft each incorporate numerous different systems that require testing and troubleshooting during manufacture and assembly. Because of economy of space, these systems are often deeply embedded within various assemblies that form the vehicle. For example, because access is limited due to the spacecraft's design, the system components are difficult to access when failures occur during testing. Moreover, the motors used in spacecraft assemblies are hardened in order to survive in a radiation environment. These motors that are deeply embedded within a vehicle assembly are the usual suspects when failures occur. Also, during system operation and testing, higher system constraints typically preclude various motor parameters from being included in telemetry at a rate that allows system anomalies to be sufficiently understood. Furthermore, disassembly of a vehicle assembly in order to remove a component creates cost and scheduling issues. Removal of a controller or its motor requires testing be repeated. What is needed, without interfering with system operations, is external access to all motor operational parameters including rapid collection of real time data that allows detailed analysis of motor operations. A motor controller interface is described in <NPL>.

According to one aspect, a method for diagnosing a failure detected by a system control managing a vehicle is provided as defined by claim <NUM>.

According to another aspect, a FPGA is provided as defined by claim <NUM>.

A diagnostic interface for diagnosing a source of a failure is also described. The diagnostic interface is configured from a FPGA embedded in an assembly of a vehicle. The FPGA accesses real-time data from a controller and utilizes the real-time data with VHDL for performance modeling of the controller. The diagnostic interface utilizes the performance modeling of the controller to ascertain whether or not the controller is the source of the failure.

Additional features and advantages are realized through the techniques of the invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with the advantages and the features, refer to the description and to the drawings.

The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:.

The diagrams depicted herein are illustrative. There can be many variations to the diagram or the operations described therein without departing from the invention as defined by the claims. For instance, the actions can be performed in a differing order or actions can be added, deleted or modified. Also, the term "coupled" and variations thereof describes having a communications path between two elements and does not imply a direct connection between the elements with no intervening elements/connections between them. All of these variations are considered a part of the specification.

In the accompanying figures and following detailed description of the disclosed embodiments, the various elements illustrated in the figures are provided with two or three digit reference numbers. With minor exceptions, the leftmost digit(s) of each reference number correspond to the figure in which its element is first illustrated.

Various embodiments of the invention are described herein with reference to the related drawings. Various connections and positional relationships (e.g., over, below, adjacent, etc.) are set forth between elements in the following description and in the drawings. These connections and/or positional relationships, unless specified otherwise, can be direct or indirect, and the present invention is not intended to be limiting in this respect. Accordingly, a coupling of entities can refer to either a direct or an indirect coupling, and a positional relationship between entities can be a direct or indirect positional relationship. Moreover, the various tasks and process steps described herein can be incorporated into a more comprehensive procedure or process having additional steps or functionality not described in detail herein.

Additionally, the term "exemplary" is used herein to mean "serving as an example, instance or illustration. " Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" may be understood to include any integer number greater than or equal to one, i.e. one, two, three, four, etc. The terms "a plurality" may be understood to include any integer number greater than or equal to two, i.e. two, three, four, five, etc. The term "connection" may include both an indirect "connection" and a direct "connection.

For the sake of brevity, conventional techniques related to making and using aspects of the invention may or may not be described in detail herein. Accordingly, in the interest of brevity, many conventional implementation details are only mentioned briefly herein or are omitted entirely without providing the well-known system and/or process details.

Referring to <FIG>, there is shown an embodiment illustrating a vehicle which may be any type of vehicle such as, for example, aircraft, spacecraft, space station, satellite, land vehicles and marine vehicles used while implementing the teachings herein. For explanation purposes, the vehicle is hereinafter simply referred to as a spacecraft <NUM>. However, the teachings herein are not to be limited to only spacecraft.

In one or more embodiments, the spacecraft <NUM> is configured from multiple preconstructed assemblies such as assemblies <NUM>, <NUM> shown in <FIG>. Although the spacecraft <NUM> is depicted as having only the two assemblies <NUM>, <NUM>, any number of assemblies may be utilized to configure a vehicle such as the spacecraft <NUM>. Each of the assemblies is manufactured to include one or more interior systems. For example, in <FIG> the assembly <NUM> includes interior systems <NUM>. However, each assembly may have any number of interior systems <NUM>. An interior system <NUM> can be, for example, a life support system, air revitalization system, pressure control system, and the like. Each system may include, for example, various subsystems depending on the intended function such as controllers, processors, fans, actuators, valves, regulators, motors, generators, heat exchangers, carbon dioxide removal systems, trace contaminant control, smoke detectors and the like. Depending on the type of vehicle, such as a spacecraft or space station, the interior systems and subsystems may be hardened against radiation so that they may function and survive within a radiation environment.

Still referring to <FIG>, the spacecraft <NUM> includes a system control <NUM> for monitoring and managing the operation and behavior of the spacecraft <NUM> as well as the interior systems <NUM>. In particular, the system control <NUM> receives telemetry data from the spacecraft <NUM> which it uses to monitor the spacecraft's health. The telemetry data contains sampled data to provide information about its internal systems <NUM>. The system control <NUM> is a computerized system similar to a general-purpose computing system that is radiation hardened and that is allocated with mission and internal system requirements which define the system control's operational modes and states. <FIG> illustrates an exemplary embodiment of the physical components (i.e., hardware) of the control system <NUM>.

<FIG> depicts a field programmable gate array (FPGA) based diagnostic circuitry for a space environment for implementing one or more embodiments of the teachings herein. An assembly <NUM> of a vehicle, for example the spacecraft <NUM>, includes the FPGA <NUM>. The FPGA <NUM> includes programable circuity for providing one or more controllers <NUM>. Each controller <NUM> is configured to control at least one internal system <NUM> such as, for example, the life support system within the space craft <NUM>. Because of the FPGA <NUM>, the data acquired from the internal system <NUM> is highspeed data including real-time data. In one or more embodiments, the highspeed data received by the FPGA <NUM> is at a rate that exceeds a data rate of the system control <NUM> of the spacecraft <NUM>.

In the example of <FIG>, both the FPGA <NUM> and an electric motor <NUM> are embedded within the assembly <NUM>. The controller <NUM> controls the electric motor <NUM> for use with an HED pump of an internal system <NUM>. In one or more embodiments, the motor <NUM> is driven by commands issued by a drive stage <NUM>. The controller <NUM> includes a logic analyzer in the form of hardware description programming language such as, for example, Very Highspeed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) for performing analytical performance modeling of the controller <NUM>. The VHDL <NUM> provides a diagnostic interface <NUM> that utilizes the highspeed data to model the performance of the controller <NUM> to investigate potential failure modes and determine possible effects while the controller <NUM> drives the operation of the function of the internal system <NUM>. In one or more embodiments, despite the internal system <NUM> and the corresponding one or more subsystems being radiation hardened, the diagnostic interface <NUM> allows external access to operational parameters of the radiation hardened subsystem.

In one or more embodiments, the controller <NUM> is interchangeable with another different controller <NUM>, of the same FPGA <NUM> or some other FPGA of the same assembly <NUM>, in order to control the same internal system <NUM> of the spacecraft <NUM>. In such case, the modeling performance is then performed via the different controller <NUM>. The controller <NUM> can be identified via the diagnostic interface <NUM> and then the identity of the controller <NUM> and the highspeed data from the controller <NUM>, at a suitable data rate for the control system <NUM>, can be provided to the system control <NUM>.

Upon a failure being detected, for example a failure detected by the system control <NUM> of the spacecraft <NUM>, the FPGA <NUM> receives an indication of the failure from the system control <NUM> of the spacecraft <NUM>. Receipt of the indication of the failure then initiates the performance modeling by the VHDL <NUM>. The FPGA <NUM> then utilizes the performance modeling of the controller <NUM> by the VHDL <NUM> to ascertain whether or not the controller <NUM> is the source of the indicated failure. In one or more embodiments, from within an environmentally hardened system, the highspeed output of the VHDL <NUM> includes ascertaining from the performance modeling of the controller <NUM> that the controller <NUM> is the source of the failure. Also, in one or more other embodiments, the output of the VHDL <NUM> includes ascertaining from the performance modeling of the controller <NUM> that the controller <NUM> is not the source of the failure. In either case, ascertaining whether or not the controller <NUM> is the source of the failure precludes disassembly of the assembly158 in order to ascertain from the performance modeling whether or not the controller <NUM> is the source of the failure. In other words, utilizing the FPGA <NUM> with the VHDL <NUM> allows ascertaining whether or not the controller <NUM> is the source of the failure to be free from disassembly of the assembly <NUM> and the interior system <NUM> of the spacecraft <NUM>. From within an environmentally hardened system, the output from the VHDL <NUM> also includes, for example, depending on the function of the interior system, the duty cycle of the motor, HED position, motor phase current, drive stage commands, motor speed, stall detection, and current limit density. The data is received and analyzed by the VHDL <NUM> to allow real-time external output for understanding detected failures and anomalies despite the controller <NUM> being embedded within an environmentally hardened system.

Referring to <FIG>, an embodiment illustrating physical components of the control system <NUM> is shown. In a basic configuration, the control system <NUM> includes at least one processing unit <NUM> and a system memory <NUM>. According to an aspect, depending on the configuration and type of control system <NUM>, the system memory <NUM> comprises, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. According to an aspect, the system memory <NUM> includes an operating system <NUM> and one or more program modules <NUM> suitable for running software applications <NUM>. According to an aspect, the system memory <NUM> includes a diagnostic module <NUM> for providing diagnostic information via a diagnostic interface of the FPGA <NUM>. The operating system <NUM>, for example, is suitable for controlling the operation of the control system <NUM>. In one or more embodiments, diagnostics module <NUM> can initiate via the FPGA <NUM> performance modeling of the functioning of one or more interior systems <NUM>. Moreover, upon the diagnostics module <NUM> detecting a failure, the system control <NUM> can issue a notification to the FPGA <NUM> indicating the failure.

Furthermore, aspects are practiced in conjunction with a graphics library, other operating systems, or any other application program, and is not limited to any particular application or system. This basic configuration is illustrated in <FIG> by those components within a dashed line <NUM>. According to an aspect, the control system <NUM> has additional features or functionality. For example, according to an aspect, the control system <NUM> includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in <FIG> by a removable storage device <NUM> and a non-removable storage device <NUM>.

As stated above, according to an aspect, a number of program modules and data files are stored in the system memory <NUM>. While executing on the processing unit <NUM>, the program modules <NUM> (e.g., diagnostics module <NUM>) perform processes including, but not limited to, one or more of the stages or steps of the method <NUM> illustrated in <FIG>. According to an aspect, other program modules are also used.

According to an aspect, the control system <NUM> has one or more input device(s) <NUM> such as a keyboard, a mouse, a pen, a sound input device, a touch input device, etc. In one or more embodiments, the input device may be a recorder receiving a video feed from one or more video cameras. The output device(s) <NUM> such as a display, speakers, a printer, etc. are also included according to an aspect. The aforementioned devices are examples and others may be used. According to an aspect, the control system <NUM> includes one or more communication connections <NUM> allowing communications with ground control and other computing devices. Examples of suitable communication connections <NUM> include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.

Turning to <FIG>, one or more embodiments may include a method <NUM> for diagnosing a failure detected by a system control managing a vehicle. The flow diagram of <FIG> illustrates the method <NUM> that includes process block <NUM> for receiving highspeed data at a FPGA embedded in an assembly of the vehicle, the FPGA comprising a controller and a digital diagnostic interface, the diagnostic interface configured for utilizing hardware description programming language for performance modeling of the controller, wherein the controller is configured to control at least one internal system of a plurality of internal systems within the vehicle. The method <NUM> also includes process block <NUM> for modeling performance of the controller via the hardware description programming language while the controller drives functioning of the at least one internal system. Also, the method <NUM> includes process block <NUM> for receiving at the FPGA an indication of a failure from the system control of the vehicle and process block <NUM> for utilizing the performance modeling of the controller to ascertain whether or not the controller is a source of the failure.

In one or more embodiments, the method <NUM> may also include where receiving highspeed data includes receiving high speed data at a rate that exceeds a data rate of the system control of the vehicle. The method <NUM> may also include where receiving highspeed data includes receiving real-time data. The method <NUM> can include ascertaining from the performance modeling of the controller that the controller is not the source of the failure. Also, the method <NUM> can include precluding disassembly of the assembly in order to ascertain from the performance modeling of the controller whether or not the controller is the source of the failure and the controller controlling a motor of the at least one internal system within the assembly of the vehicle. The method <NUM> may also include the diagnostic interface providing to the system control identification of the controller and access to the highspeed data from the controller. The method <NUM> can include where the vehicle is a spacecraft and the internal systems within the spacecraft are hardened against a radiation environment and where at least one internal system of the assembly of the spacecraft is a life support system. The method <NUM> may also include where the hardware description programming language is VHDL. The method <NUM> can also include interchanging the controller with another different controller configured to control the same at least one internal system of the vehicle.

Claim 1:
A method for diagnosing a failure detected by a system control (<NUM>) managing a vehicle, the method comprising:
receiving (<NUM>) data at a field programmable gate array, FPGA (<NUM>), embedded in an assembly of the vehicle, the FPGA comprising a controller (<NUM>), wherein the FPGA (<NUM>) comprises VHDL diagnostic code (<NUM>) for performance modeling of the controller, wherein the controller is configured to control at least one internal system of a plurality of internal systems within the vehicle;
modeling (<NUM>) performance of the controller via the VHDL diagnostic code while the controller drives functioning of the at least one internal system;
the method being further characterized by the steps of:
receiving (<NUM>) at the FPGA an indication of a failure from the system control of the vehicle (<NUM>); and
utilizing (<NUM>) the performance modeling of the controller to ascertain whether or not the controller is a source of the failure.