US008855971B2
(12) United States Patent
(10) Patent N0.:
(45) Date of Patent:
(56)
(54)
TOOLS FOR SYSTEM-LEVEL DESIGN
ENVIRONMENTS
(75)
Inventors: Donald Paul Oro?no, II, Sudbury, MA
US 8,855,971 B2
*Oct. 7, 2014
References Cited
U.S. PATENT DOCUMENTS
(US); Ramamurthy Mani, Needham,
MA (US); Howard Taitel, Sudbury, MA
(US); John Ciol?, Wellesley, MA (US)
(73) Assignee: The MathWorks, Inc., Natick, MA
(Us)
Notice:
Subject to any disclaimer, the term of this
patent is extended or adjusted under 35
U.S.C. 154(b) by 457 days.
5,061,245 A *
10/1991
Waldvogel ............. .. 604/17001
5,331,111
5,946,485
6,064,409
6,226,787
6,282,699
6,330,356
6,335,741
6,412,106
6,715,139
6,748,583
6,817,010
7/1994
8/1999
5/2000
5/2001
8/2001
12/2001
1/2002
6/2002
3/2004
6/2004
11/2004
O’Connell
Weeren et a1.
Thomsen et a1.
Serra et a1.
FOREIGN PATENT DOCUMENTS
(21) Appl. No.: 11/841,986
WO
LabVIEW User Manual, National Instruments Cooperation, 1996.
RedHaWk NightStar Tools, Version 1.1 Release Notes, Sep. 2002.
Jan. 8, 2009
(Continued)
Related US. Application Data
(51)
Assistant Examiner * Kibrom Gebresilassie
Dec. 13, 2004.
(74) Attorney, Agent, or Firm * Harrity & Harrity, LLP
(57)
Int. Cl.
(2006.01)
(2006.01)
(2006.01)
ABSTRACT
A remote auxiliary tool is created in a graphical model having
at least one of a signal or a block. The remote auxiliary tool is
non-intrusively attached to one of the signal or the block. The
graphical model and the remote auxiliary tool are executed
US. Cl.
CPC
(58)
Primary Examiner * Omar Fernandez Rivas
Continuation of application No. 11/011,298, ?led on
G06F 17/50
G06F 3/00
G06F 9/44
(52)
2/1999
OTHER PUBLICATIONS
Prior Publication Data
US 2009/0012757 A1
(63)
WO-99/09473 A1
Aug. 20, 2007
(65)
Zhang et a1.
Sundareswaran et a1.
Nock
Leask et a1.
Kodosky et a1.
Aizenbud-Reshef et a1.
Aizenbud-Reshef et a1.
(Continued)
This patent is subject to a terminal dis
claimer.
(22) Filed:
A
A
A
B1
B1
B1
B1
B1
B1
B2
B2
G06F 8/34 (2013.01); G06F 3/00 (2013.01)
synchronously. At least one of an execution result or a remote
USPC ........... .. 703/1; 703/6; 714/E11.212; 719/328
auxiliary tool result is output to at least one of a display
Field of Classi?cation Search
device, a storage device or a destination device.
USPC
........... .. 703/13;717/104,105,109,125,127
See application ?le for complete search history.
20 Claims, 12 Drawing Sheets
Place Vinual Auxiliary
Tool in Graphical Model
Operate Virtual Auxiliary
Tool ln Graphical Model
ll Virtual
541 Auxiliary
Tool Is
ll Virtual
Tool, Observe!
Collect Data
1
1
551
I 6"
Auxiliary Tool
Is A Sink Tool.
Collect Data
An Observation
ll 80
If So
Coriligured.
Register Date
Return Data
Collected
Con?guredv
Modlly Arid
Collected
i
It So
If So
Con?gured,
Con?gured,
Initiate An
Initiate An
Actlon In The
Model
Action Separate
From The Model
Remove Virtual Auxiliary
Tool from Graphical Model,
il Desired
154
US 8,855,971 B2
Page 2
(56)
References Cited
U_g_ PATENT DOCUMENTS
6,839,894 B1
6,971,065 B2
1/2005 Joshi et al‘
11/2005 Austin
2004/0045009 A1*
3/2004 Bryant ........................ .. 719/316
2004/0064750 A1
4/2004 Conway
2004/0093197 A1 *
5/2004
Billemaz et al. .............. .. 703/13
2004/0153997 A1
2004/0205726 A1
8/2004 Anderson et al.
10/2004 Chedgey et al.
2004/0210426 A1*
10/2004 Wood .............................. .. 703/2
6,988,262 B1
100% Mallory et 31‘
2004/0210798 A1
10/2004 Higashi
7,051,322 B2
5/2006 Rioux
2004/0255269 A1
12/2004 Santori et al.
7,058,950 B2
6/2006 Jeyamman
2005/0144587 A1*
7,062,779 B1
600% Courtney et 31‘
2005/0183098 A1
8/2005 1110 et al.
7,072,801 B2 *
7/2006 James “““““““““““““ n 702/188
2006/0041859 A1
2/2006 Vrancic et al.
2006/0053211
2006/0064670
2006/0111074
2006/0129371
3/2006
3/2006
5/2006
6/2006
7,072,813
7,076,740
7,134,090
7,171,653
B2
B2
B2
B2
7,185,315 B2
7,200,838 B2
7,210,105 B2
7,210,117
7,215,270
7,302,675
7,302,676
7,315,791
7,325,210
7,439,891
B2
B1
B2
B2
B2
B2
B2
7/2006
7/2006
11/2006
1/2007
Billemaz et al‘
Santori et al‘
Kodosky et al‘
Albrecht
2/2007 Sharp et al‘
4/2007 Kodosky et 31‘
4/2007 Melamed et al‘
4/2007
5/2007
11/2007
11/2007
1/2008
1/2008
10/2008
Kudukoli et al.
Kozak et 31‘
Rogers et al‘
Schmitt et al‘
Hie et 31‘
Rao et 31‘
Kozak et al‘
2006/0184410 A1*
2006/0259870 A1 *
2007/0143455 A1*
Zoos/0007332
2008/0028196
2008/0098349
2008/0222620
2009/0012757
2009/0132993
2009/0216546
A1
A1
A1
A1
A1
A1
A1
Kornerup et al.
Linebarger et al.
Petilli et al.
Oro?no et al.
8/2006 Ramamurthy et al. ......... .. 705/8
11/2006 Hewitt et al. ..... ..
715/762
6/2007 Gorman et al. ............. .. 709/223
1/2008
1/2008
4/2008
9/2008
1/2009
5/2009
8/2009
Dubowsky
Kailas
Lin et al.
Little et al.
Oro?no et al.
Mani et al.
Huang et al.
Hsu et al. .................... .. 715/763
7,480,906 B2 *
1/2009
2010/0223564 A1*
9/2010
7,490,029 B2
2/2009 Wasynczuk et 31‘
2011/0023019 A1 *
1/2011 Aniszczyk et al.
7512931 132*
3/2009 Schmit ““““““““““““ n 717/105
2011/0214044 A1*
9/2011
7,568,017 B2
7/2009 Shah et al‘
2012/0066762 A1*
3/2012 Todorovic
715/201
.. 726/22
2013/0198527 A1 *
2014/0053090 A1*
2014/0059525 A1*
8/2013 Lu et al.
2/2014 Lu et al.
2/2014 Jawa et al.
713/189
715/761
717/162
2014/0059573 A1 *
2/2014 Jawa et al. .................. .. 719/331
7,813,825 B2
7,827,068 B2
7,835,895 B1
7,966,562 B1
7,996,513 B2 *
8,046,708 B1 *
10/2010 Dubowsky
11/2010 Shah et al‘
11/2010 Oro?no et al‘
6/2011
8/2011
10/2011
200;?0339’352
2002/0052725
2002/0054101
2002/0070968
2002/0143857
2003/0005180
Joffrain et 31‘ “““““““ n 717/171
A1
A1
A1
A1
6/2005 Bryant ........................ .. 717/111
Brewton et 31‘
Gorman et al. ............. .. 709/224
Aldrich ....................... .. 715/771
$322251; al‘
A1
5/2002 Wasynczuk et al.
A1
5/2002 Beatty
A1
6/2002 Austin et al.
A1
10/2002 Bidarahalli et al.
A1 *
1/2003 Schmit et al~ ~~~~~~~~~~~~~~~ ~~ 709/328
.. 717/128
Davis et al.
OTHER PUBLICATIONS
International Search Report for PCT/US2005/045493, datedApr. 25,
200?
Summons to Attend Oral Proceedings for Application No. 05854256.
4, 14 pages, dated Nov. 28, 2012.
The MathWorks, “Simulink, Model-Based and System-Based
Design,” Using Simulink, Version 5, 2002, 476 pages.
2003/0016206 A1 *
1/2003 Taltel ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ 345/103
2003/0037322 A1
2/2003 Kodosky etal.
136 pages,
2003/0046663 A1
300% ROgels 8t al'
Concurrent Computer Corporation, “RedHaWk Linux, Real-Time
2003/0107595 A1 *
6/2003 Ciol? ““““““““““““““ H 345/762
SUdhl-mja et al'
Concurrent Computer Corporation, “NightSim User’s Guide,” 2002,
Software Environment,” 2002, 2 pages.
chm1t
2003/0200076 A1
10/2003 Kodosky et al‘
2004/0031019 A1
2/2004 Lamanna et al.
2004/0032429 A1*
2/2004
2004/0034696 A1
2/2004 Joffrain et a1.
“
.
.
Mansor et al., Software Methodology for Remote Mon1tor1ng and
Control System,” Proceedings of TENCON, vol. 3, 2000, pp. 509
511'
Shah et al. .................. .. 345/771
* cited by examiner
US. Patent
Oct. 7, 2014
Sheet 1 0f 12
US 8,855,971 B2
CPU
Display Device
5_02
5_04
Keyboard
Mouse
5_06
if?
Electronic Device
M
Primary Storage
1&0
Secondary Storage
5_12
Network Interface
5_1i1
Modeling/Simulation Application (Simulink®)
M5
Fig. I
US. Patent
Oct. 7, 2014
US 8,855,971 B2
Sheet 2 0f 12
.2
Z
85§25mwas”H
C
2
mm”;85::5-23s89<
;a36“NA_A“A"z?.sEd2é5ma?5 NI:82m.cE5Qo%w_Ou.>>5<é>m3
\\
-\E €
Anm
-8%2wasE:2a26685
m
rm
“
M
>8
2Iw> o€_>
o
mEw29%EE“525¢295Eacm_ms:“
Aim2%
28H
85%52m
82.Chi3vmN9=§>
w.m5zw<:m_5>é=
m062
m5s>aw32ng;m .me
US. Patent
0a. 7, 2014
Sheet 3 0f 12
US 8,855,971 B2
[— 105
StaleFlow (chart) SFcontrol/Controller ‘
file Edit ?imulalion yiew Iools Add ?elp
|<==>0|E~7§|><
Eli! 8
@12 2| > n - |§Q§IQ®M @l?
\1
‘
,5
Hi
.
.
en.speed = 2,
'é
E
I I
II"
[temp <
V“
L0
off_switch
17
[temp >= 120]
on_switch
on
off_switch
en : spee d = O;
v
4
|
| r
Ready
Fig. ZB
US. Patent
0a. 7, 2014
Sheet 4 of 12
US 8,855,971 B2
Place Virtual Auxiliary I50
Tool in Graphical Model
‘
Operate Virtual Auxiliary I52
Tool In Graphical Model
ls Virtual
Auxiliary Tool For
Observation
v
54
or Sink?
If Virtual
‘
-
1 Auxiliary Tool ls
“gig/{$20, I
An Observation
Tool, Observe/
Collect Data
60
|S A Sink T00|
’
Collect Data
V
56
58
1
If So
".80
Configured,
Register Data
Return Data
Collected
CoHeCted
If So
If ‘So
Configured,
Modify And
1 Configured,
f
Configured, I
Initiate An
Initiate An
Action Separate
Action In The
From The Model
Model
V
V
Remove Virtual Auxiliary J— 66
Tool from Graphical Model,
if Desired
Fig. 3
62
64
US. Patent
0a. 7, 2014
Sheet 5 0f 12
US 8,855,971 B2
dsplpc1/Coeffs
BE]
file Edit yiew Window ?elp
,2 [HH \
- w?nmam 21151
5
3
Running
|
| |N: 12 um H:100
W5]
|
Flg. 4A
14
L dsplpc1/Coeffs
BE]
Eile Edit _\[iew Window _l-_|elp
Fig. 4B
L16
US. Patent
0a. 7, 2014
Sheet 6 0f 12
18
US 8,855,971 B2
24
26
File Edit View Insert Tools Window Help
File Edit View Window Help
Stoppe
20
N:128U:1H:100
30
Samples
Fig. 5
40
US. Patent
Oct. 7, 2014
US 8,855,971 B2
Sheet 7 0f 12
C5 5:
B?E__58E%23=.v8%_w
o8
9.
on
9
o
m.
9:.5Q59“.
as£Q8EwB2mu3:“.
@ME
m@@easgmw
9%5S:3SMEE;
,Em
2
P
Sm
E52825
.mwce?Eng
5
3
:
2
6
c
0
m
hcwmzaomo $528.? $53.2;
m2853%6 $@985 ; @568m
@E$258
2
v
US. Patent
0a. 7, 2014
Sheet 8 of 12
Provide
US 8,855,971 B2
I80
Graphical Model
V
Place Virtual Auxiliary I82
Tool ln Graphical Model
Observation
or Sink?
841
86
1
If Virtual
lf Virtual
Auxiliary Tool ls
Auxmary Too|
An Observation
Tool, Observe/
Collect Data
|s A Sink Tool
'
Collect Data
v
w
f9”
If SO
"$0
Configured, I
Configured,
92
Modify And
Register Data
Collected
88
V
Return Data
Collected
v
'
If So
" 5°
\ Configured,
Initiate An
(I39?fi?u§d'
I
n' 'a e n
Action Separate
ACtion In The
From The Model
MOdB'
V
Repeat As Necessary
to Debug
Fig. 7
f 96
94
US. Patent
Oct. 7, 2014
Sheet 9 0f 12
US 8,855,971 B2
2
MWxWWW?WM\.x
was» & bunimm
m m\imw
FIG. 8
US. Patent
0a. 7, 2014
Sheet 10 0f 12
320
US 8,855,971 B2
.. 134
124 -
130
{'28
""132
'I
122 '
1 36
1 26 '
FIG. 9
US. Patent
0a. 7, 2014
Sheet 11 0112
US 8,855,971 B2
ammunitaiimes
$1ng
"
142
_ 2.41m; P'me-ssing
51$; 1 ?ex: and image? P;
5“ wawfzu'aing
?nish ngamim
mil»:- timing
144
FIG. 10
US. Patent
Oct. 7, 2014
Sheet 12 0f 12
ledge1su
uttle ?ng
Engine Séeed, N
Engine
FIG. 11
US 8,855,971 B2
US 8,855,971 B2
1
2
TOOLS FOR SYSTEM-LEVEL DESIGN
ENVIRONMENTS
that time, the current state of the system, the system param
eters, and time. The state of the system may be thought of as
a numerical representation of the dynamically changing con
?guration of the system. For instance, in a physical system
CROSS-REFERENCE TO RELATED PATENT
APPLICATION
modeling a simple pendulum, the state may be viewed as the
current position and velocity of the pendulum. Similarly, a
signal-processing system that ?lters a signal would maintain
This application is a continuation of US. patent applica
tion Ser. No. 11/011,298, ?led Dec. 13, 2004, entitled
a set of previous inputs as the state. The system parameters are
the numerical representation of the static (unchanging) con
?guration of the system and may be viewed as constant coef
?cients in the system’ s equations. For the pendulum example,
a parameter is the length of pendulum and for the ?lter
example; a parameter is the values of the ?lter taps.
“TOOLS FOR SYSTEM-LEVEL DESIGN ENVIRON
MENTS,” by Oro?no et al., the subject matter of which appli
cation is incorporated herein by reference in its entirety.
BACKGROUND
Generally, graphical analysis and modeling methods, such
The present invention relates to a system and method suit
as the block diagram method, are used in modeling for design,
able for non-intrusively observing, modifying, and/ or gener
ating data synchronous with events in an executing block
diagram or graphical model.
analysis, and synthesis of engineered systems. The visual
Historically, engineers and scientists have utilized graphi
cal models in numerous scienti?c areas such as Feedback 20
Control Theory and Signal Processing to study, design,
debug, and re?ne dynamic systems. Dynamic systems, which
locations of the model, or to observe how data is transformed
are characterized by the fact that their behaviors change over
time, are representative of many real-world systems. Graphi
cal modeling has become particularly attractive over the last
25
few years with the advent of software packages, such as
SIMULINK®, made by The MathWorks, Inc. of Natick
Mass., LabVIEW®, made by National Instruments Corpora
tion of Austin, Tex., and the like. SIMULINK® provides
sophisticated software platforms with a rich suite of support
tools that makes the analysis and design of dynamic systems
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, it is often
desirable to be able to observe particular data values at certain
through the model. Examples of such data values include
signal values, states, work areas, and parameters. Signal dis
plays used in conjunction with a system-level design environ
ment, such as SIMULINK®, often require multiple display
mechanisms to be associated simultaneously with multiple
signals to monitor the progress of a model at various points of
interest. Currently, block diagram environments offer
30
“scope” blocks to be used in such situations, with each scope
connected to a signal of interest in the model. Alternatively,
environments such as Real-Time Workshop® (manufactured
by The MathWorks, Inc. of Natick Mass.) offer interfaces to
35
range from simple to highly complex systems. Physical
non-intrusively observe the data values.
However, conventional non-intrusive approaches to
dynamic systems include a falling body, the rotation of the
observing the various data elements do not allow users to
earth, bio-mechanical systems (muscles, joints, etc.), bio
chemical systems (gene expression, protein pathways),
observe the data synchronously with the various execution
events in the block-diagram or other operating model. Such
synchrony is critical in many scenarios because data values
ef?cient, 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
weather and climate pattern systems, etc. Examples of man
made or engineered dynamic systems include: a bouncing
various data values of the model, such that an individual can
40
may be not be in a deterministic observable state at all times
ball, a spring with a mass tied on an end, automobiles, air
during model execution. An example of such a scenario is
when a signal memory location is reused by multiple blocks
planes, control systems in major appliances, communication
networks, audio signal processing, nuclear reactors, a stock
market, etc.
for ef?ciency reasons. Furthermore, allowing synchronous
45
observation of the data also ensures that observers of the data
50
are operating optimally, for example when the data values are
refreshed.
During the course of modeling, it is also often desirable to
bypass or generate data values to aid in re?ning or debugging
a design. For example, one could generate various inputs at a
particular point in the block-diagram model based on various
test scenarios. In another example, one could bypass the
signal values written by a block to remove the transformation
performed by a block during a debugging task. In conven
55
tional applications, such as SIMULINK®, one needs to intru
Professionals from diverse areas such as engineering, sci
ence, 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 de?ned in terms of a variety of performance
measures such as quality, time-to-market, cost, speed, size,
power consumption, robustness, etc. The mathematical mod
els 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
sively insert blocks and/or lines into the graphical model to
achieve bypass or signal generation. It should be noted that
systems. The models and results are often used as a scienti?c
these intrusive means of bypass or generation result in the
communication medium between humans. The term “model
based design” is used to refer to the use of graphical models
operations being synchronous with the execution of the
60
block-diagram. However, conventional graphical modeling
in the development, analysis, and validation of dynamic sys
design environments do not offer mechanisms for non-intru
tems.
sive, yet synchronous bypass or generation of data values.
Dynamic systems are typically modeled in model environ
ments 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
SUMMARY
65
In one exemplary embodiment, a remote auxiliary tool is
created in a graphical model having at least one of a signal or
US 8,855,971 B2
3
4
a block. The remote auxiliary tool is non-intrusively attached
to one of the signal or the block. The graphical model and the
remote auxiliary tool are executed synchronously. At least
The remote auxiliary tool is non-intrusive to the graphical
model, such that the remote auxiliary tool is not embedded in
the model in the same way that other elements of the model
are interconnected and embedded. In the case of a graphical
model using blocks and signals, the user does not add blocks
or signals to the model diagram when attaching a remote
one of an execution result or a remote auxiliary tool result is
output to at least one of a display device, a storage device or
a destination device.
In another exemplary embodiment, a device for modeling
auxiliary tool in accordance with the present invention to the
includes a remote auxiliary tool for non-intrusive use as at
least one of an observer tool, a bypass tool, or a generator tool
model. Rather, the remote auxiliary tool registers interest
with the model, and during execution the model informs the
in a block diagram. A graphical user interface (GUI) man
remote auxiliary tool of events of which the tool has requested
ages: creating the remote auxiliary tool, attaching the remote
to receive noti?cation. The process of sending an event can be
auxiliary tool to at least one of a signal or a block in the block
achieved through, but not limited to, an event-listener appli
cation programming interface (API), a callback based inter
face, and/or model and remote auxiliary tool aggregation for
diagram, detaching the remote auxiliary tool from the signal
or block, and outputting from the remote auxiliary tool to at
execution. The remote auxiliary tool can work with execution
modes that include but are not limited to interpretive, accel
least one of a destination device or a display.
erated, or generated code model execution modes.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1 through 11, wherein like parts are designated by
like reference numerals throughout, illustrate example
The present invention will become better understood with
reference to the following description and accompanying
drawings, wherein:
20
embodiments of a remote auxiliary tool, and corresponding
method of use, according to the present invention. Although
FIG. 1 is a is a diagrammatic illustration of an electronic
device that can be utilized to execute a method performed in
the present invention will be described with reference to the
an embodiment of the present invention;
understood that many alternative forms can embody the
present invention. One of ordinary skill in the art will addi
FIG. 2A is a screen depiction of an example model that can
make use of the tool and method according to one aspect of
example embodiments illustrated in the ?gures, it should be
25
tionally appreciate different ways to alter the parameters of
the present invention;
the embodiments disclosed in a manner still in keeping with
FIG. 2B is a screen depiction of an example model that can
make use of the tool and method according to one aspect of
the spirit and scope of the present invention.
FIG. 1 illustrates one example embodiment of an electronic
the tool, in accordance with embodiments of the present
device 500 suitable for practicing the illustrative embodi
ments of the present invention. The electronic device 500 is
representative of a number of different technologies, such as
invention;
personal computers (PCs), laptop computers, workstations,
the present invention;
30
FIG. 3 is a diagrammatic illustration of a method of use of
FIG. 4A is a screen depiction of an example tool, according
to one aspect of the present invention;
FIG. 4B is a screen depiction of the toolbar of the example
tool of FIG. 3A;
FIG. 5 is a screen depiction of multiple tools, according to
one aspect of the present invention;
FIG. 6 is a screen depiction of multiple tools, according to
one aspect of the present invention;
FIG. 7 is a ?owchart illustrating an example method of use
of the tool, in accordance with embodiments of the present
personal digital assistants (PDAs), Internet appliances, cellu
35
lar telephones, and the like. In the illustrated embodiment, the
electronic device 500 includes a central processing unit
(CPU) 502 and a display device 504. The display device 504
enables the electronic device 500 to communicate directly
40
with a user through a visual display. The electronic device 500
further includes a keyboard 506 and a mouse 508. Other
potential input devices not depicted include a stylus, track
ball, joystick, touch pad, touch screen, and the like. The
electronic device 500 includes primary storage 510 and sec
ondary storage 512 for storing data and instructions. The
invention;
FIG. 8 is a screen depiction of two generator tools and two
45
storage devices 510 and 512 can include such technologies as
observer (viewer) tools connected to a model;
a ?oppy drive, hard drive, tape drive, optical drive, read only
FIG. 9 is a screen depiction of a signal and scope manager
used to manage remote generator and ob server (viewer) tools;
FIG. 10 is a screen depiction of a signal selector that is used
memory (ROM), random access memory (RAM), and the
like. Applications such as browsers, JAVA virtual machines,
to connect remote generator and observer (viewer) tools to a
and other utilities and applications can be resident on one or
50
both of the storage devices 510 and 512. The electronic device
500 can also include a network interface 514 for communi
cating with one or more electronic devices external to the
model; and
FIG. 11 is a screen depiction of context sensitive menus
used to connect remote generator and observer (view) tools to
a model.
55
DETAILED DESCRIPTION
electronic device 500 depicted. A modem is one form of
network interface 514 for establishing a connection with an
external electronic device or network. The CPU 502 has
either internally, or externally, attached thereto one or more of
the aforementioned components. In addition to applications
previously mentioned, modeling applications, such as SIM
An illustrative embodiment of the present invention relates
to a remote auxiliary tool and corresponding method of use.
The remote auxiliary tool is formed of at least one of an
60
observation tool, a bypass tool, and a generator tool. The
remote auxiliary tool is non-intrusively and synchronously
ULINK® 5 l 6, can be installed and operated on the electronic
device 500.
It should be noted that the electronic device 500 is merely
ing execution of the model in the graphical modeling envi
representative of a structure for implementing the present
invention. However, one of ordinary skill in the art will appre
ciate that the present invention is not limited to implementa
tion on only the device 500 as described herein. Other imple
mentations can be utilized, including an implementation
ronment.
based partially or entirely in embedded code, where no user
connected to a graphical modeling environment prior to
execution, during execution, or after execution of a model.
The remote auxiliary tool is detachable from the model dur
65
US 8,855,971 B2
5
6
inputs or display devices are necessary. Rather, a processor
can communicate directly with another processor or other
device.
illustrative example is an observer that reads the value of the
signal at point A and displays the value appropriately in a
device, such as a graphical display scope. It should be noted
that throughout this description the example embodiments
Turning now to example embodiments of the present
invention, the method and system of the present invention
operate in a block diagram modeling environment, such as
that of SIMULINK®. The block diagram modeling environ
make use of an API form of tool to connect the remote aux
iliary tool to the model. However, one of ordinary skill in the
art will appreciate that the remote auxiliary tool does not need
to be implemented in the form of an API, but rather, can be
ment is otherwise referred to herein as the graphical model.
One of ordinary skill in the art will appreciate that there are a
implemented using a number of different tools, including
library based modules, and other tools. As such, references to
number of different graphical modeling and simulation appli
cations that make general use of blocks or other graphical
representations to model or simulate conditions, events,
designs, operations, and the like, or to model and control
events implemented on hardware devices, and the like.
Accordingly, the present invention is intended for use on all
anAPI in the present description are intended to include APIs
as well as such other equivalent tools noted above. In addi
tion, an alternative example embodiment of the present inven
tion makes use of an aggregation programming paradigm to
achieve the non-intrusive and synchronized behavior of the
remote auxiliary tool.
The remote auxiliary tool itself does not need to be repre
such modeling applications.
The present invention is generally directed to a system and
method for interacting non-intrusively, yet synchronously,
sented graphically in the graphical model 10. However,
because the remote auxiliary tool registers listeners with the
with a graphical model. FIGS. 2A and 2B are screen depic
tions of a graphical model 10 simulating a dynamic process.
20
model, the model can insert a graphical symbol or text, such
FIG. 2A shows a version of a time-based or event-based block
as symbol 19, or other representation in the graphical model
diagram graphical model 10A, while FIG. 2B shows a version
of a state-based or event-based ?ow diagram graphical model
10B. As referred to herein, graphical model 10 is intended to
iliary tool. Such graphical representation can be, for example,
encompass multiple variations of graphical model, including
10 showing the existence of the listener for the remote aux
shown in the block 11, similar to those illustrated in FIGS. 2A
25
and 2B, indicating the remote auxiliary tool is connected to
those shown in FIGS. 2A and 2B. Accordingly, graphical
the internal state of the block 11 and not the signal 13. More
model 10 as utilized herein includes graphical model 10A and
graphical model 10B, as well as other graphical models of
19, connections made by the remote auxiliary tool can be
speci?cally, in the illustrative example showing the symbol
dynamic systems. Graphical model 10A is formed generally
of a plurality of blocks 11 that pass signals 13 to represent a
described by selection of one or more signals 13 from a list of
30
dynamic system. Graphical model 10B is formed of a plural
ity of states 15 that communicate though blocks in the form of
transitions 17. The particular use or purpose of the graphical
model 10 can vary to include anything that can be modeled
using a graphical modeling environment. Thus, the present
all available signals 13 in the graphical model 10. The remote
auxiliary tool can also be described by the direct entry of an
identi?cation of one or more signals 13 in the graphical model
10. The connections can be highlighted at some point in time,
to associate a symbol 19 with one or more selected signals 13.
35
For example, this can be accomplished by pressing a button in
invention is not limited to the speci?c example embodiments
discussed herein, as understood by one of ordinary skill in the
the display interface, with the corresponding signal 13 in the
model highlighted by color, blinking, or other temporary or
art.
persistent graphical indication, in addition to textual or other
representations. The connection can also be highlighted by a
graphical affordance in the graphical model 10, such as a “test
In the example embodiment, time-based graphical models
10A have blocks connected by signals. Blocks are respon
sible for computing the values of signals as time progresses.
The arrows denote the computational direction of the signal.
40
point” symbol (small ‘lollipop’ icon) connected to a signal
Input ports read signals and output ports write signals. The
user of the present invention may wish to obtain a reading of
a value of one of the signals 13 in the graphical model 10, or
of one of the processes in one of the blocks 11. However, in
the graphical model 10 illustrated, there is no instance of a
45
scope shown with the model. Accordingly, if the graphical
line for as long as the virtual connection remains. For con
nections to internal block state as in the illustrative block 11,
the connections can be created in similar fashion to signal
selection, except that a block 11 is selected.
The remote auxiliary tool can be connected to the model 10
using an event-listener API. More speci?cally and in accor
ation illustrated have no mechanism for a user to be able to
dance with an example embodiment of the present invention,
the API that enables the practice of the remote auxiliary tool
in accordance with the present invention, includes the pres
ence of user-de?nable pre-execution and/or post-execution
take readings of signal or internal block/model states syn
callbacks or events associated with any of the methods of the
chronously.
computational blocks in the graphical model 1 0, such that the
model 10 is running a model execution at the time illustrated
in the ?gure, conventional modeling applications in the situ
50
However, with the remote auxiliary tool of the present
invention in accordance with one embodiment, an event
55
provided where the de?nitions refer to data nodes in a physi
listener API or equivalent tool is provided associating a tool
with the graphical model 10 without being embedded in the
cal hardware device, such as memory locations in a processor,
a physical I/O protocol for a processor or an FPGA or ASIC,
or some other de?ned method for data delivery, as understood
graphical model 10. For example, if the user wishes to know
the value of the signal at pointA in the graphical model 10, the
user implements the remote auxiliary tool of the present
callback or event enforces proper synchronization for data
transfer to and from the tool. Such an API can likewise be
invention to initiate an observation event, or equivalent ob ser
by one of ordinary skill in the art. A unique identi?er can be
provided for each signal in the graphical model 10 or hard
vation tool. The user registers with the model, using the
ware, such that the tool can be associated with any signal or
event-listenerAPI, a request to invoke an ob server when point
group of signals. Methods to read, and optionally write, signal
data via the unique identi?er, which can be synchronized by
the pre-execution and/or post-execution callback or event,
A in the graphical model 10 is computed by the source block
of the signal of point A. As the model is executing, when the
signal at point A is re-computed by the source block of the
signal, an event is sent to the listener. The listener in this
60
65
can be provided. Furthermore, textual, graphical, audio,
visual, tactile, or other data rendering techniques and capa
US 8,855,971 B2
7
8
bilities supported by, or interfaced to, the modeling environ
ment can be provided, such that the signal data is presented to
ing data (step 58). When execution completes (step 70), the
model returns to the not running state (step 60).
One of ordinary skill in the art will appreciate that, as
mentioned previously, the distinction between observation or
observer tool, bypass tool, and generator tool as outlined
above is done merely to convey different aspects of the inven
user in a discernable manner.
The remote auxiliary tool can include different types of
observer tools, such as display scopes, strip chart recorder, an
oscilloscope, a spectrum analyzer, a 2-port network analyzer,
a logic signal display, a waterfall plot, a communications
constellation plot, an audio output device, and a video display
device. The observer tool can also be a non-graphical tool,
tion clearly. However, the present invention does not require
that the tool fall completely within one or the other of the
observation or observer tool, bypass tool, or generator tool
categories. Rather, the tool can be a hybrid mixture of the
three forms or varieties of tool. Furthermore, it should be
such as a tool that reads the model data (such as the signal at
point A of the illustrative model 10) and sends the data to
another system for processing. The remote auxiliary tool can
include different bypass tools such as a non-graphical tool
that reads data from the model 10 and, if the data exceeds a
speci?ed limit, the data is set to that limit. The modi?ed data
is then returned to the model. This makes the bypass tool
useful for providing fault tolerant actions when the model is
executing in real-time. Another use of the bypass tool is in the
area of debugging a simulation, when incorrect values are
seen they can be altered enabling the simulation to continue
without having to shut down. The remote auxiliary tool can
include different types of generator tools such as, sine wave,
square wave, pulse, or any arbitrary user created functions
that produce data for the model. One of ordinary skill in the art
will appreciate that the present invention is not limited to
noted that the remote auxiliary tool is formed of at least one
tool, such that the speci?c con?guration of each tool forming
20
example embodiments of tools described herein. Rather, the
25
using the event-listener API to non-intrusively and synchro
nously connect the remote auxiliary tool(s) to the model.
In addition, the displays of the remote auxiliary tool, if
required, are provided separate from the graphical model 10,
thus keeping with the non-intrusive feature of this invention.
One example implementation of the remote auxiliary tool
FIG. 4A is a screen depiction of a tool resulting from a user
30
12 is a visual display of data virtually connected to the graphi
cal model 10 at pointA. The remote auxiliary tool can include
a number of different interfacing options, some of which can
35
Several example embodiments of implementations of the
remote auxiliary tool in accordance with the present invention
40
events before, during, or after model execution (step 50). The
user can detach a remote auxiliary tool before, during, or after
45
model (10) by the remote auxiliary tool are maintained while
the model is not running (step 60). When the model is not
running (step 60), the user can edit the model and possibly
change it structure. If the act of editing the model deletes an
object such as a block (11) or line (13) that is connected to a
50
devices in a single master window 18. In this example, there
are connections established for each display corresponding to
signals originating from multiple graphical models 10. A ?rst
55
computational block in SIMULINK® consists of multiple
run-time methods that are executed within the simulation
loop. SIMULINK® decomposes block methods by type and
executes them in a prede?ned manner from model models
that are invoked by the simulation loop. During execution of
60
(step 68) causing the respective listener (steps 54, 56, and 58)
displaying data (step 54), a bypass tool reading data and
returning modi?ed data (step 56), or a generator tool provid
display 20 reports data from a ?rst graphical model. A second
display 22 reports data from a second graphical model. A
third display 24, a fourth display 26, and a ?fth display 28 all
report data from a third graphical model. The remote auxil
iary tool is formed of the collection of the displays 20, 22, 24,
26, and 28. Each of the displays operates independently and
pulls data from different model locations. The displays can
pull data from the same model location if desired. Further
more, as mentioned previously, each of the collection of the
a model or block method (step 64), if a block with registered
listeners is encountered (step 66), the model sends an event
of the remote auxiliary tool to execute. The listener of the
remote auxiliary tool can be an observer tool reading and
One of ordinary skill in the art will recognize several of the
symbols representing the functions of the buttons. One
example button that can be utilized in conjunction with the
present invention is a highlight button 16, which when clicked
on will highlight the signal in the graphical model 10 being
displayed by the remote auxiliary tool, such as the waterfall
plot 12. One of ordinary skill in the art will appreciate that a
number of different functions can be implemented in the
remote auxiliary tool of the present invention in accordance
with particular function or operation of the remote auxiliary
tool.
In addition, the remote auxiliary tool interface in a particu
lar embodiment can vary. For example, in FIG. 5, the remote
auxiliary tool is implemented as a multiple document inter
face (MDI) style GUI design, incorporating multiple display
remote auxiliary tool, the tool becomes disconnected from the
model.
The user can start the model execution (step 62). During
model execution model and block methods are invoked. With
in SIMULINK® this consists of a simulation loop. Each
be implemented in a toolbar con?guration. For example, FIG.
4B shows a toolbar 14 having a number of standard buttons.
attach a remote auxiliary tool to a model to listen to speci?c
graphical model (10) execution (step 52). Connections to the
implementing the remote auxiliary tool. The remote auxiliary
tool is implemented as a waterfall plot 12. The waterfall plot
faces for managing the connections to the model correspond
are described herein. In addition, FIG. 3 is a diagrammatic
illustration of a method of using the remote auxiliary tool
realized using the event-listener API. In accordance with one
example embodiment of the present invention, a user can
remote auxiliary tool of the present invention is formed of a
combination or mixture of the different variations possible
with the tool operational characteristics, in addition to a com
bination of multiple tools having the same or different opera
tional characteristics.
of the present invention is shown in FIG. 4A and FIG. 4B.
Likewise, a GUI can be provided with a multiple-document
interface type of layout in which a master GUI contains one or
more visual display device windows with additional inter
ing to each remote tool.
the remote auxiliary tool becomes less relevant to the opera
tion of the remote auxiliary tool, because the same function
ality of the remote auxiliary tool can be implemented with
numerous variations of ob servation, bypass, or generator, and
number of tools forming the remote auxiliary tool. Accord
ingly, the present invention is not limited to the speci?c
displays 20, 22, 24, 26, and 28 forming the remote auxiliary
65
tool can be individually or collectively attached or detached
from the graphical models before, during, or after the graphi
cal models are implemented.
US 8,855,971 B2
9
10
forwarded to a location separate from the running model, for
example, a separate model, database, or hardware or software
device.
It should further be noted that the observation tool, the
bypass tool, and the generator tool described herein as
example tools that can form the remote auxiliary tool can
individually or in combination form the remote auxiliary tool.
Thus, a single remote auxiliary tool can have all three func
tionalities as well as invasively modify or effect the operation
of the graphical model 10.
The remote auxiliary tool con?gurations can be saved in
the graphical model, or canbe saved separate from the graphi
cal model. In addition, one of ordinary skill in the art will
FIG. 6 is another screen depiction of an MDI GUI 30 with
a pre-loaded collection of displays forming the remote aux
iliary tool, such as those illustrated in FIG. 5. In addition, the
remote auxiliary tool in this example embodiment includes a
remote connection manager 32. The remote connection man
ager 32 provides an organized GUI that enables a user to track
and select different elements making up the remote auxiliary
tool. One of ordinary skill in the art will appreciate that the
example remote connection manager 32 is shown as a tree
structure. However, any number of ?le organization tech
niques and con?gurations can be utilized to generate the
remote connection manager 32, such that the manager 32 is
not limited to the speci?c embodiment illustrated.
As described, the remote auxiliary tool includes at least one
tool. The remote auxiliary tool is attached to the model in the
appreciate that a reference or other identi?er to a speci?c
remote auxiliary tool can likewise be stored within the graphi
cal model or separate from the graphical model being viewed
graphical modeling environment prior to execution, during
or manipulated by the remote auxiliary tool. Furthermore, the
execution, and/ or after execution of a model. The remote
auxiliary tool is detachable from the model during execution
of the model in the graphical modeling environment.
The illustrative embodiments have been primarily
described with regard to their observation functionality. The
observation tool non-invasively collects data after attachment
selection of blocks, signals, or ports to be interfaced with the
remote auxiliary tool can be performed using any available
20
user interface.
to the model 10. The observation tool likewise can non
invasively register interest in data or some event of the graphi
interface mechanism, including graphically, textually, data,
and can be implemented through in-direct or direct connec
tion to other software or hardware, and the like, in addition to
25
cal model 10. The registration of the data or event can be
In the embodiments presented herein, the remote auxiliary
tool con?gurations consist of the various attributes of the
observer tool, bypass tool, and/ or generator tools the user has
displayed in accordance with the examples illustrated herein.
created. Each of these tools can be connected to the model
In addition, the remote auxiliary tool can initiate an action
using an object selector. The object selector is one component
upon registration of a predetermined characteristic of the data
or event ob served. For example, if a predetermined data point,
of the remote auxiliary tool that associates each tool the user
30
such as a maximum or a minimum, is achieved in a graphical
model as it is running, the remote auxiliary tool can register
the occurrence and forward instructions or implement other
actions to address the occurrence. Such actions may include
pausing the model execution, forwarding data relating to
other points in the model at the time of the occurrence, send
ing a message to the user, implementing a change in the
operation of a separate model and/or hardware device, and the
like.
The implementation of the remote auxiliary tool can be in
the form of a non-blocking tool if its primary purpose is one
of registration, recordation, or observation. In this mode, the
model that is executing does not wait for the attached remote
auxiliary tool to ?nish responding to a particular execution
event. The remote auxiliary tool can likewise be implemented
in the form of a blocking tool if its purpose is to in?uence
model execution. In this mode, the model to which the remote
auxiliary tool is attached waits until the tool has generated an
action in response to receipt an execution event. Such actions
could include pausing the model execution, or other actions
that affect the model or the execution or operation of the
model or devices connected with the model and operated by
the model, occur based on observations made by the remote
35
40
45
50
graphical model.
55
90). The user can take information or data learned by use of
60
other locations, in accordance with predetermined con?gu
and/ or event of the model, and can return a modi?ed form of
The data pulled from the graphical model 10 can also be
If, on the other hand, the remote auxiliary tool is of a bypass
type, data can be collected, and/ or modi?ed, and/or overrid
den, in accordance with the con?guration of the remote aux
iliary tool. The remote auxiliary tool collects the data (step
rations. Thus, the bypass tool accesses and modi?es data
block diagram primitives and/ or textual language primitives.
data collected can be registered (step 86). If con?gured
separate or removed from the graphical model (step 88),
while still maintaining its non-invasive characteristics in the
similar to that of the GUIs shown herein in FIGS. 4A, 4B, 5,
and 6. The bypass type of tool has the ability to read data from
the graphic model 10 as it is running and halt the model, or
the data and/or event. In addition, it should be noted that the
bypass tool can modify a data and/or event of the model using
ing model, the model is ?rst provided (step 80). The user
implements an instance of the remote auxiliary tool (step 82).
At this point, the particular type of remote auxiliary tool can
accordingly, the remote auxiliary tool can initiate an action
the remote auxiliary tool can be substantially the same or
modify the data and return a different value to the model or
signals, or ports) to be connected to a remote auxiliary tool
can be done using a signal selector that displays the model
hierarchy in a textual fashion. The user navigates to the
desired object in the textual hierarchy and connects the tool
the object. Alternatively, the user can select an object in the
model and then click a button in the signal selector to attach
the remote auxiliary tool to the selected object.
It should be noted that one useful implementation of the
remote auxiliary tool of the present invention is in the perfor
mance of debugging of a system being modeled using the
graphical model 10, as shown in FIG. 7. To debug an operat
in?uence the next steps. If the remote auxiliary tool is an
observation type of tool, the user attaches the remote auxil
iary tool at a point in the model at which access to data is
desired to observer or collect data (step 84). If desired, the
auxiliary tool.
The display or GUI for a bypass tool forming part or all of
has created with objects (e.g. blocks, signals, or ports) in the
model. For example, the selection of model objects (blocks,
65
the remote auxiliary tool and implement actions to affect how
the model is operating in an effort to debug the simulation or
the model of the dynamic system (step 92). These actions can
include using the bypass type of remote auxiliary tool to
change signal values at different locations in the model. In
addition, different actions can be initiated in the graphical
model in an effort to debug the model (step 94). The steps can
be repeated as necessary to debug the model (step 96).
US 8,855,971 B2
11
12
The remote auxiliary tool can also be a generator tool. The
generator tool provides data to a model, such as a running
model 100 in FIG. 8. This can be in the form ofa signal 102
without a source block icon. In FIG. 8, the “speed set point”
unconnected input ports or signal injection points 151. The
menu 152, one can disconnect from a generator source using
104 and “Load” represent text indicating two injectionpoints.
Without a signal provided by a remote auxiliary tool, the
a disconnect selection 154, and reconnect to another genera
tor source using a switch connection selection 156, or create
model would treat these two signals as unconnected and
and connect a new generator source using a create source
context sensitive menu 152 can be brought up by right-click
ing on an injection point 151. Within the context sensitive
provide a value of 0 to the ?rst input port of the Controller 106
block. It should be noted, that the notion of an unconnected
selection 158. Similarly, one can bring up the context sensi
tive menu for a signal 160 by right-clicking on a signal, such
signal identi?ed by an injection point in model 1 00 is text, but
as signal 161, which is the engine speed, the second output of
it could be a generic graphical symbol such as a circle with a
the engine block. Within the context sensitive menu one can
dot in the center. In this example, a generator tool is supplying
a set point that has trajectory 108 for the Load injection point.
open a viewer that is connected to the signal using an open
viewer selection 162 (note multiple viewers can be connected
FIG. 8, also includes two observer tools, 110 a scope that is
connected to the second output 112 of the Engine 114 block
to one signal), disconnect one or all of the viewers connected
and 116 a scope that is connected to the Mux 118 block output
to the signal using a disconnect selection 164, or create and
in the Engine Subsystem 115 corresponding to the Engine
connect a new viewer using a create view selection 166.
114 block.
When executing the model using an interpretive engine, the
event-listener paradigm provides a straight forward means by
FIG. 8 further illustrates the non-intrusive, but synchro
nized aspect of the present invention, where the user does not
have to explicitly select blocks or other graphical objects
from a library and add them to the model, then make the
20
skilled in the art recognizes that a model can be translated to
connections using signals. The signal and scope manager
120, is shown in FIG. 9, which is responsible for managing
the observer tools 122 (here they are all display tools and thus
25
are referred to as viewers) and generator tools 124. To use the
signal and scope manager to attach generators to signals, one
selects a generator from the generators tree view 124 and
clicks an “Attach to model >>” button 126, which enables
after the generator has been selected. After the generator is
30
attached, one can use a signal selector 140 of FIG. 10, which
can be activated by selector button 128 to complete the attach
ment by connecting the generator to an injection point which
is an unconnected input port or signal of the model. Similarly,
to connect an observer tool 122 to the model, one selects the
which to support the remote auxiliary tool. However, one
35
desired viewer display to use and then clicks “Attach to model
>>” button 126 to attach the generator to the model. For either
the observer tool 122 or generator tool 124, one can detach
generated code, where the generated code can be a high-level
programming language such as C, Java, or C++ or assembly
code. To support the adding and removing of remote auxiliary
tools during execution, the generated code can be instru
mented before and after each block method. Alternatively, a
run-time engine can be created which, using the executable
created after compiling and linking the code, can instrument
the executable with entry points before and after the code for
each model and block method, thus enabling one to imple
ment the event-listener architecture enabling the removal and
addition of remote auxiliary tools during model execution.
An alternative to the event-listener paradigm for synchro
nously connecting the remote auxiliary tool to the model is to
aggregate the model objects and the remote auxiliary tool(s)
into one execution engine. This can be done when the con
nections to the model are made prior to model execution and
are not altered during execution. In this scenario, one can use
model primitives, e. g. a sine wave signal generator or a scope
and then remove the tool can be removed using a delete button 40 display block to de?ne a generator or observer tool respec
132 or its properties such as the X andY limits of a display or
tively. The remote auxiliary tool is not added to the graphical
either by selecting the tool in a generator/viewer panel 134
the amplitude of a sine wave generator using a properties
button 130. When an observer (viewer) or generator is
selected in the generator/viewer panel 134, its connections
are shown in a connection panel 136.
FIG. 10 illustrates a signal selector 140 that is used to
?nalize the connection of an observer (viewer) or generator to
the model 100. In FIG. 10, a scope has been selected for a
“Load and ThrottleAngle” viewer observer tool 142 and then
the signal selector 140 was used to navigate the model hier
archy using a tree view 144 to the engine subsystem. Within
the engine subsystem, the scope has then been connected to a
45
know a priori the full range of alterations that may be per
formed. Otherwise, dynamic alteration of the execution struc
50
ture needs to occur and dynamic alteration of the execution
structure is very similar to the event-listener paradigm.
The remote auxiliary tool provides freedom to tap into an
existing and executing model at any time and collect data,
modify data, start and stop the model execution, return
Mux output signal 146. Alternatively, one could use a latch
button 148 to connect the tool to the signal selected at that
time. In particular, if the signal connected to the Mux 118
block output port is selected, and one clicks the latch button
de?nition of the model; rather, an internal aggregated repre
sentation of the model is formed consisting of both the model
objects plus the remote auxiliary tools. After this is done, an
internal execution structure can be created by translating the
model into executable operations or generated code. If the
connections are altered during execution, it is necessary to
55
desired constants or other forms of modi?ed data to the model
148, then the signal selector 140 automatically navigates to
execution, in?uence the operation of separate models or
devices, and the like. Accordingly, a user attempting to diag
the Mux block 118 output port signal 146 and establishes the
nose or debug a model of a dynamic system can use the
signal connection.
One skilled in the art will recognize that there are several
60
remote auxiliary tool of the present invention to both take
contemporaneous or real time readings of signal values
ways to attach observer tools, bypass tools, and generator
tools to a model 10, 100. Revisiting model 100, shown again
within the graphical model and/or communicatively associ
in FIG. 11 as model 150, an alternative embodiment of the
the data to effect a desired outcome for diagnostic and/or
control purposes. One of ordinary skill in the art will appre
ciate that debugging is an iterative process that can be imple
mented in a number of different ways, such that the present
ated devices, and if desired, make changes or modi?cations to
present invention can be used to connect or disconnect remote
auxiliary tools from the model 150. In particular in the
example embodiment, the user can use a context sensitive
menu 152 of FIG. 11 to attach and remove generators to
65
invention is not limited to the speci?c example of debugging