The present invention relates to a system and method suitable for accepting values from a data source, and more particularly to a mechanism that enables the incorporation of data into a graphical modeling environment upon action of a drag-and-drop operation.
Various classes of graphical models describe computations that can be performed on computational hardware, such as a computer, microcontroller, FPGA, and custom hardware. Classes of such graphical models include time-based block diagrams, such as those found within Simulink®, from The Math Works, Inc. of Natick, Mass., state-based and flow diagrams, such as those found within Stateflow®, from The Math Works, Inc. of Natick, Mass., data-flow diagrams, circuit diagrams, and software diagrams, such as those found in the Unified Modeling Language. A common characteristic among these various forms of graphical models is that they define semantics on how to execute the model.
Historically, engineers and scientists have utilized time-based graphical models in numerous scientific areas such as Feedback Control Theory and Signal Processing to study, design, debug, and refine dynamic systems. Dynamic systems, which are characterized by the fact that their behaviors change over time, are representative of many real-world systems. Time-based graphical modeling has become particularly attractive over the last few years with the advent of software packages, such as Simulink®. Such packages provide sophisticated software platforms with a rich suite of support tools that makes the analysis and design of dynamic systems efficient, methodical, and cost-effective.
A dynamic system (either natural or man-made) is a system whose response at any given time is a function of its input stimuli, its current state, and the current time. Such systems range from simple to highly complex systems. Physical dynamic systems include a falling body, the rotation of the earth, bio-mechanical systems (muscles, joints, etc.), bio-chemical systems (gene expression, protein pathways), weather and climate pattern systems, etc. Examples of man-made or engineered dynamic systems include: a bouncing ball, a spring with a mass tied on an end, automobiles, airplanes, control systems in major appliances, communication networks, audio signal processing, nuclear reactors, a stock market, etc. Professionals from diverse areas such as engineering, science, education, and economics build mathematical models of dynamic systems in order to better understand system behavior as it changes with the progression of time. The mathematical models aid in building “better” systems, where “better” may be defined in terms of a variety of performance measures such as quality, time-to-market, cost, speed, size, power consumption, robustness, etc. The mathematical models also aid in analyzing, debugging and repairing existing systems (be it the human body or the anti-lock braking system in a car). The models may also serve an educational purpose of educating others on the basic principles governing physical systems. The models and results are often used as a scientific communication medium between humans. The term “model-based design” is used to refer to the use of graphical models in the development, analysis, and validation of dynamic systems.
Dynamic systems are typically modeled in simulation environments as sets of differential, difference, and/or algebraic equations. At any given instant of time, these equations may be viewed as relationships between the system's output response (“outputs”), the system's input stimuli (“inputs”) at that time, the current state of the system, the system parameters, and time. The state of the system may be thought of as a numerical representation of the dynamically changing configuration of the system. For instance, in a physical system modeling a simple pendulum, the state may be viewed as the current position and velocity of the pendulum. Similarly, a signal-processing system that filters a signal would maintain a set of previous inputs as the state. The system parameters are the numerical representation of the static (unchanging) configuration of the system and may be viewed as constant coefficients in the system's equations. For the pendulum example, a parameter is the length of pendulum and for the filter example; a parameter is the values of the filter taps.
Generally, graphical analysis and simulation methods, such as the block diagram method, are used in modeling for design, analysis, and synthesis of engineered systems. The visual representation allows for a convenient interpretation of model components and structure and provides a quick intuitive notion of system behavior.
During the course of modeling and simulation, there are often different requirements relating to data input into the model. Some input may be required of the user operating the model. Other input may be stored prior to operating the model in a manner that enables the model to access the input as necessary. However, for the initial indication of where selected information is located, and to set up a link or provide selected information efficiently, there is no convenient mechanism. A user has to access the model and, knowing information such as an electronic address, manually enter the address information to provide a link to selected information. Such incorporation of selected information is not automated in the existing art.
There is a need for a system and method for automatically incorporating selected information into a graphical model within a block diagram modeling and/or simulation environment. The present invention is directed to a solution to address this need.
In accordance with one embodiment of the present invention, in a graphical model environment, a method of retrieving selected information includes selecting one of selected information and a reference to the selected information for incorporation. The at least one of the selected information and the reference to the selected information are automatically incorporated into the graphical model environment, such that a graphical representation is created in the graphical model environment referencing the at least one of the selected information and the reference to the selected information.
In accordance with aspects of the present invention, the graphical model environment includes a graphical representation of a model simulation. The selected information and the reference to the selected information can be disposed in a remote location relative to the graphical model environment. The graphical model environment can be disposed in a first pane, and at least one of the selected information and the reference to the selected information can be disposed in a second pane.
In accordance with further aspects of the present invention, the step of automatically incorporating includes identifying one or more properties of at least one of the selected information and the reference to the selected information; comparing the one or more properties to a preference; and implementing a routine to incorporate at least one of the selected information and the reference to the selected information into the graphical model environment. The one or more properties can include at least one of a file name, a file type, a file location, a reference name, a reference type, and a reference location. The preference can include instructions provided by a user providing parameters for the incorporation, a database, and/or a default database.
In accordance with further aspects of the present invention, the method further includes querying a user for instruction during the automatic incorporation of at least one of the selected information and the reference to the selected information into the graphical model environment.
In accordance with further aspects of the present invention, at least one of the selected information and the reference to the selected information can be a data source, a function, an output sink, and/or can required at least one input.
In accordance with further aspects of the present invention, the step of selecting at least one of the selected information and the reference to the selected information for incorporation can include a user dragging and dropping an iconic representation of one of at least one of the selected information and the reference to the selected information into the graphical model environment, and/or a user cutting and pasting an iconic representation of at least one of the selected information and the reference to the selected information into the graphical model environment.
In accordance with further aspects of the present invention, a configuration of a block in the simulation environment incorporating at least one of the selected information and the reference to the selected information can be periodically automatically updated.
In accordance with further aspects of the present invention, the step of automatically incorporating the reference to at least one of the selected information and the reference to the selected information into the graphical model environment includes creating a block supporting at least one of the selected information and the reference to the selected information.
In accordance with one example embodiment of the present invention, in a graphical model environment, a system for retrieving selected information includes an incorporation mechanism for selecting at least one of the selected information and a reference to the selected information for incorporation. The incorporation mechanism automatically incorporates the selected at least one of the selected information and the reference to the selected information into the graphical model environment, in a manner such that a graphical representation is created in the graphical model environment referencing the at least one of the selected information and the reference to the selected information.
In accordance with one example embodiment of the present invention, a medium for use in a simulation environment on an electronic device is provided. The medium holds instructions executable using the electronic device for performing a method of retrieving selected information. The method includes selecting at least one of selected information and a reference to the selected information for incorporation; and automatically incorporating at least one of the selected information and the reference to the selected information into the graphical model environment, in a manner such that a graphical representation is created in the graphical model environment referencing the at least one of the selected information and the reference to the selected information.
The present invention will become better understood with reference to the following description and accompanying drawings, wherein:
An illustrative embodiment of the present invention relates to a system and method wherein a graphical model, such as a block diagram simulation, is configured to accept values from a data source or other data representation of selected information having a textual or graphical representation suitable for drag-and-drop operation. The data source can be, for example, a data file, a data stream, or a link to a data location. The graphical model is automatically modified by dragging the data representation (textual or graphical) such as an icon, and dropping the icon on a work area of the graphical model. In response, the graphical model automatically adds a block (or other graphical representation) to the graphical model and configures the block appropriately. The specific type of block added to the graphical model depends in part on the type of the data source accessed. Additional parameters of the block can also be set, either with default values, programmatically determined values, or through input by the user.
It should be noted that the electronic device 500 is merely representative of a structure for implementing the present invention. However, one of ordinary skill in the art will appreciate that the present invention is not limited to implementation on only the described device 500. Other implementations can be utilized, including an implementation based partially or entirely in embedded code, where no user inputs or display devices are necessary. Rather, a processor can communicate directly with another processor or other device.
Turning now to example embodiments of the present invention, the method and system of the present invention operate in a block diagram simulation environment, such as that of Simulink®. The block diagram simulation environment is otherwise referred to herein as the graphical model. One of ordinary skill in the art will appreciate that there are a number of different graphical modeling and simulation applications that make general use of blocks or other graphical representations to model or simulate conditions, events, designs, operations, and the like. Accordingly, the present invention is intended for use on all such graphical applications.
The present invention is generally directed to a system and method for retrieving selected information and incorporating the selected information into the graphical model.
As referred to herein, the selected information, and the reference to the selected information (such as an icon or other representation) are intended to include both singular and plural forms. More specifically, the selected information can be a single input item, or a collection or plurality of input items. Likewise, the reference to selected information can be both a single reference to a single input or a plurality of inputs, as well as a plurality of references to inputs.
Furthermore, in the embodiments described herein, it is assumed that the origin of the selected information is in a location discrete from that of the graphical model. The selected information can be, for example, in a remote location relative to the graphical model, such as a file location on the same electronic device that is not a part of the graphical model; in a file location on a different electronic device connected through a network to the electronic device 500 hosting the graphical model; in a file location on a remote hardware device physically, electronically, or wirelessly connected with the electronic device 500 hosting the graphical model; or in another file location that can in some manner communicate with the graphical model in a manner that would allow the transfer of information. Accordingly, as utilized herein, the phrase “selected information” is intended to refer to a number of different forms of information, including but not limited to data, functions, inputs, outputs, tables, data structures, databases, links, sources, sinks, and/or references to any of the aforementioned forms of information.
The method continues by automatically incorporating the selected information into the graphical model (step 306). The automatic incorporation of the selected information can occur in a number of different embodiments. The selected information itself can have two basic forms. A first embodiment of the selected information is one of a data file, or other actual file, containing the selected information. A second embodiment of the selected information is one of a reference to a data file, or other file, containing the selected information. In the case of the data file, or other actual file, the information contained in the file can be copied or cut and paste into the graphical model. In such an embodiment the result is that the selected information is disposed within the graphical model. The graphical model need not access a remote file or remote location to obtain the selected information. In the case of the reference to the data file, or other file, a link to the file is what is actually deposited into the graphical model. Accordingly, when the graphical model requires the selected information, the graphical model must appropriately access the link to the remote location containing the selected information. The link can be, for example, a stream of data, a hyperlink to a remote location, and the like.
An example embodiment illustrating the discrete location of the selected information from the location of the graphical model is illustrated in
In the example embodiment illustrated, the user has selected a Speech.wav file 406 from the application window 402 and drag-and-dropped it into the graphical model window 404 to create block 410. In addition, the user has selected a MotionData.avi file 408 from the file directory window 400 and drag-and-dropped it into the graphical model window 404 to create block 412. In each instance, the user can also have performed a select, cut, and past operation to transfer the data files to the graphical model window 404. In addition, it should be noted that the block 410 is representative of a data file that has actually been incorporated into the graphical model shown in the graphical model window 404. Whereas, the block 412 is representative of a link to a data file; thus, the graphical model has incorporated a link to the MotionData.avi file 408. In both instances, a block was created (block 410 and block 412) in the graphical model.
Instead of a block, such as block 410 and block 412, the graphical model may be configured in other ways to provide input from data files. An explicit or virtual connection from the data file to an input port, to a data line, or to another appropriate input that accepts data can be invoked using the drag-and-drop or other data transfer operation. In all instances, the graphical model automatically opens an appropriate component and populates that component with details from the data file, possibly including the directory path to the file, and other data file specific information.
As previously mentioned, the present invention is not limited to inputting data files, and links to data files. The selected information can include data files, links to data files, as well as a source of streaming data, a hypertext link, or some other location designation. Block 414, for example, is representative of a URL from a web browser that has been drag-and-dropped into the graphical model of the graphical model window 404. Thus hypertext links, and other links, can be transformed into blocks of the graphical model. Another example is the drag-and-drop of an executable file that effects the transfer of data from a data acquisition device, such as a device driver application. All such files and links to files are anticipated by the features of the present invention.
Thus, the selected information incorporated by the operation of the present invention can originate with a data source, a function, and/or some other form of an output sink. The resulting block, such as blocks 410, 412, 414, or 420 (see below) can require one or more ports, such as the example inputs and outputs illustrated, once configured within the graphical model.
In addition, it should be noted that the drag-and-drop, or other data transfer operation, can be implemented between another graphical modeling application, such as LabView® or Hypersignal®, both from National Instruments Corporation, into the graphical model window 404. This is illustrated by a foreign graphical model window 418 containing a foreign block 416. The user can drag-and-drop the foreign block 416 to the graphical model to from a new foreign block 420, which may have one or more inputs, outputs, or other ports. Upon introduction of the new foreign block 420, the present invention automatically configures the block 420 to enable appropriate data transfer with the foreign block 416.
The present invention automatically incorporates the data, function, or other information of the selected information into the graphical model. The automatic incorporation can be executed a number of different ways, including that which is illustrated in the flowchart of
The one or more properties is compared to a preference database (step 432) or some equivalent. The preference database can contain instructions provided by a user providing parameters for the incorporation of the selected information. Alternatively, the preference database can be a default database that contains standard instructions for the incorporation of the selected information if the user has not provided any specific incorporation instructions or preferences. In even further alternative, the preference database does not need to be a database per se, but can have a number of different formats for collecting and providing information that can be referenced and compared with the one or more properties.
Based at least in part on the information learned from the comparison with the preference database, a routine is implemented to incorporate the selected information into the graphical model (step 434).
It should be noted that at any point along the above-described method, a user can be queried for instruction during the automatic incorporation of the selected information into the graphical model. The query can take the form, for example, of a pop-up window asking a question and providing options, or a field to receive text based instruction. The query, and the entire automated process, can also incorporate the use of a GUI wizard that guides the user through the process of selected information incorporation. If at any point along the incorporation process the graphical model requires some instruction not already provided or available, such instruction can be obtained by querying the user.
One specific example of user input comes upon the formation of the block within the graphical model. Upon completion of the block, or just prior to completion of the block, the user can be queried as to additional parameters of the block, such as appearance, display, content, inputs and outputs, and the like. Such parameters can also be configured, or re-configured, by the user after the block has been formed in the graphical model in accordance with general operation of the graphical model and the application operating the model. If no user interaction is solicited, or provided, the block parameters can also be set with default values, or programmatically determined values as is understood by one of ordinary skill in the art.
It should further be noted that the incorporation of the selected information, because it is automated, can periodically automatically update a configuration of a block (e.g., block 410, 412, 414, or 420) in the graphical model incorporating the selected information.
The method of the present invention is executed by a system for retrieving selected information, an example embodiment of which is illustrated in
The automatic incorporation of the selected information involves reference to a preference such as a preference database 454. The preference database can be included within the incorporation mechanism 452, or can be referenced by the incorporation mechanism 452 as illustrated.
In addition, in accordance with one example embodiment, the incorporation mechanism 452 makes use of a GUI wizard to guide a user through the incorporation process. Accordingly, a wizard generator 456 can be provided. Again, the wizard generator 456 can be provided either as a part of the incorporation mechanism 452, or it can be provided by, for example the operating system, and merely referenced by the incorporation mechanism 452.
The system for retrieving selected information 450 is illustrated as one example embodiment of the present invention. Various elements of the system for retrieving selected information 450 can reside within the system 450, or can be referenced by the system 450. In addition, the functions of each of the various elements can be provided in part or in whole as shown or by combining or referencing other components made available to the graphical model and block diagram modeling and simulation environment, such that the present invention is not limited to the specific configuration illustrated and described herein.
In accordance with the above description and the present invention, a system and method for incorporating selected information into a graphical model are provided herein. The method in a graphical model environment includes identifying the selected information in the form of a data file or a reference (singular or plural), and automatically incorporating selected information into the graphical model environment. The system and method are configured to accept values from a data, function, or other source having a textual or graphical representation suitable for drag-and-drop operation. The data, function, or other source can have a number of different embodiments. The incorporation process occurs automatically upon the introduction of the selected information, via a graphical operation such as drag-and-drop, into the graphical model. The incorporation is embodied in the form of, for example, a block in the graphical model. Additional parameters of the block can also be set, either with default values, programmatically determined values, or through input by the user.
Numerous modifications and alternative embodiments of the present invention will be apparent to those skilled in the art in view of the foregoing description. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the best mode for carrying out the present invention. Details of the structure may vary substantially without departing from the spirit of the present invention, and exclusive use of all modifications that come within the scope of the appended claims is reserved. It is intended that the present invention be limited only to the extent required by the appended claims and the applicable rules of law.
This application is a continuation of U.S. application Ser. No. 11/005,954, filed Dec. 6, 2004, the disclosure of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5157763 | Peters | Oct 1992 | A |
5287447 | Miller | Feb 1994 | A |
5291587 | Kodosky et al. | Mar 1994 | A |
5301336 | Kodosky et al. | Apr 1994 | A |
5325481 | Hunt | Jun 1994 | A |
5553227 | Berry | Sep 1996 | A |
5566295 | Cypher | Oct 1996 | A |
5576946 | Bender et al. | Nov 1996 | A |
5598524 | Johnston, Jr. | Jan 1997 | A |
5619639 | Mast | Apr 1997 | A |
5664129 | Futatsugi et al. | Sep 1997 | A |
5734863 | Kodosky et al. | Mar 1998 | A |
5734905 | Oppenheim | Mar 1998 | A |
5742286 | Kung et al. | Apr 1998 | A |
5760788 | Chainini et al. | Jun 1998 | A |
5831611 | Kennedy et al. | Nov 1998 | A |
5867144 | Wyard | Feb 1999 | A |
5909214 | Consolatti et al. | Jun 1999 | A |
5911070 | Solton | Jun 1999 | A |
5950190 | Yeager | Sep 1999 | A |
5966126 | Szabo | Oct 1999 | A |
5966532 | McDonald | Oct 1999 | A |
5966717 | Sass | Oct 1999 | A |
6002402 | Schacher | Dec 1999 | A |
6053951 | McDonald et al. | Apr 2000 | A |
6113649 | Govindaraj | Sep 2000 | A |
6131184 | Weeren | Oct 2000 | A |
6154875 | Tanaka | Nov 2000 | A |
6182278 | Hamada et al. | Jan 2001 | B1 |
6216141 | Straub | Apr 2001 | B1 |
6216261 | Mitchell | Apr 2001 | B1 |
6233726 | Bowman | May 2001 | B1 |
6240465 | Leach | May 2001 | B1 |
6252591 | Dockweiler | Jun 2001 | B1 |
6282699 | Zhang | Aug 2001 | B1 |
6337696 | Lindhorst et al. | Jan 2002 | B1 |
6366300 | Ohara et al. | Apr 2002 | B1 |
6490493 | Dharnipragada | Dec 2002 | B1 |
6535230 | Celik | Mar 2003 | B1 |
6624909 | Czyszczewski | Sep 2003 | B1 |
6636250 | Gasser | Oct 2003 | B1 |
6684385 | Bailey | Jan 2004 | B1 |
6701513 | Bailey | Mar 2004 | B1 |
6754697 | Berstis | Jun 2004 | B1 |
6763515 | Vazquez | Jul 2004 | B1 |
6792595 | Storistenau | Sep 2004 | B1 |
6803929 | Hinegardner | Oct 2004 | B2 |
6851107 | Coad et al. | Feb 2005 | B1 |
6912692 | Pappas | Jun 2005 | B1 |
7000190 | Kudukoli et al. | Feb 2006 | B2 |
7030890 | Jouet | Apr 2006 | B1 |
7062718 | Kodosky | Jun 2006 | B2 |
7079141 | Vazquez et al. | Jul 2006 | B2 |
7120876 | Washington et al. | Oct 2006 | B2 |
7134086 | Kodosky | Nov 2006 | B2 |
7159183 | Kudukoli et al. | Jan 2007 | B1 |
7200838 | Kodosky | Apr 2007 | B2 |
7210117 | Kudukoli | Apr 2007 | B2 |
7243334 | Berger | Jul 2007 | B1 |
7275235 | Molinari et al. | Sep 2007 | B2 |
7322023 | Shulman et al. | Jan 2008 | B2 |
7331019 | Ananth et al. | Feb 2008 | B2 |
7331039 | Yip et al. | Feb 2008 | B1 |
7337409 | Doblmayr | Feb 2008 | B2 |
7340721 | Bailey | Mar 2008 | B1 |
7370281 | Weber | May 2008 | B2 |
7370315 | Lovell et al. | May 2008 | B1 |
7376904 | Cifra | May 2008 | B2 |
7392507 | Kolawa et al. | Jun 2008 | B2 |
7428737 | Borghesani | Sep 2008 | B1 |
7451403 | Srinivasan et al. | Nov 2008 | B1 |
7650576 | Becerra, Jr. | Jan 2010 | B2 |
7676790 | Hsu | Mar 2010 | B1 |
20010020291 | Kudukoli et al. | Sep 2001 | A1 |
20020033844 | Levy | Mar 2002 | A1 |
20020083413 | Kodosky et al. | Jun 2002 | A1 |
20020091700 | Steele | Jul 2002 | A1 |
20020095658 | Shulman | Jul 2002 | A1 |
20020113816 | Mitchell | Aug 2002 | A1 |
20030007005 | Kandogan | Jan 2003 | A1 |
20030016234 | Mani | Jan 2003 | A1 |
20030034998 | Kodosky et al. | Feb 2003 | A1 |
20030037316 | Kodosky et al. | Feb 2003 | A1 |
20030037322 | Kodosky et al. | Feb 2003 | A1 |
20030058280 | Molinari et al. | Mar 2003 | A1 |
20030071845 | King | Apr 2003 | A1 |
20030076355 | Kodosky | Apr 2003 | A1 |
20030154191 | Fish | Aug 2003 | A1 |
20030167327 | Baldwin | Sep 2003 | A1 |
20030184580 | Kodosky et al. | Oct 2003 | A1 |
20040056896 | Doblmayr et al. | Mar 2004 | A1 |
20040066410 | Lindhorst | Apr 2004 | A1 |
20040207659 | Goodman | Oct 2004 | A1 |
20040221238 | Cifra et al. | Nov 2004 | A1 |
20050149855 | Loo | Jul 2005 | A1 |
20060080432 | Spataro | Apr 2006 | A1 |
20060139372 | Orofino, II | Jun 2006 | A1 |
20060206827 | DeWitt | Sep 2006 | A1 |
20070288885 | Brunel | Dec 2007 | A1 |
20090172101 | Arthursson | Jul 2009 | A1 |
20090327953 | Honkala | Dec 2009 | A1 |
Number | Date | Country |
---|---|---|
0558224 | Sep 1993 | EP |
Entry |
---|
Ćosić, Kre{hacek over (s)}imir, et al. “Design and implementation of a hardware-in-the-loop simulator for a semi-automatic guided missile system.” Simulation Practice and Theory 7.2 (1999): 107-123. |
Hanzalek, Zdenek, et al. “Hardware in the Loop Simulation of FBW components.” AIAA Modeling and Simulation Technologies Conference. 2009. |
Co-pending U.S. Appl. No. 11/005,954, filed Dec. 6, 2004, entitled “Automatic Import to a Graphical Model,” by Kachmar et al., 27 pages. |
Number | Date | Country | |
---|---|---|---|
Parent | 11005954 | Dec 2004 | US |
Child | 13888788 | US |