Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR OPTIMIZING FUEL USAGE OF A MARINE VESSEL
Document Type and Number:
WIPO Patent Application WO/2021/016603
Kind Code:
A1
Abstract:
A marine vessel advisory system may be configured to calculate and provide operational information that show fuel consumption savings based on adjustment of vessel speed and/or heading. In an embodiment, the advisory system may operate real-time to collect operational and/or environmental conditions information to be used to calculate alternative operational performance of the marine vessel that will save fuel and reduce emissions. The calculations may include a simulation, machine learning, and/or artificial intelligence to determine a speed and/or heading of the marine vessel that will reduce fuel consumption. The advisory system may display the computed information for the operator, and the operator may elect to switch to the alternative operating parameters (e.g., slower speed). In an embodiment, the advisory system may interact directly with a marine vessel system and automatically cause the marine vessel system to adjust operating parameters based on computed operating parameters that saves fuel and reduces emissions.

Inventors:
MIKALSEN JAN (US)
LARSEN KJELL ERIK (US)
Application Number:
PCT/US2020/043622
Publication Date:
January 28, 2021
Filing Date:
July 24, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MARINE TECH LLC (US)
International Classes:
B63H21/21; B63B45/04; G05B13/00; G05D1/00
Domestic Patent References:
WO2011099931A12011-08-18
Foreign References:
US20180341729A12018-11-29
US20160036308A12016-02-04
US20150005994A12015-01-01
US20040193338A12004-09-30
Attorney, Agent or Firm:
SOLOMON, Gary et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed:

1. A method of optimizing fuel consumption of a marine vessel, said method comprising:

measuring operational parameters of the marine vessel, the operational parameters including current vessel speed and fuel consumption;

calculating projected fuel consumption based on a different vessel speed of the marine vessel than the current vessel speed;

displaying the projected fuel consumption and different vessel speed associated with the projected fuel consumption; and

enabling an operator to selectively cause the marine vessel to change the current vessel speed to the different vessel speed.

2. The method according to claim 1, wherein calculating projected fuel consumption includes executing a simulation that models the marine vessel and applies the different vessel speed to determine fuel consumption along a path to a destination location from a starting location.

3. The method according to claim 1, wherein executing a simulation includes executing a simulation using current coordinates as the starting location.

4 The method according to claim 3, wherein executing the simulation includes executing the simulation real-time, and actual operational parameters of the marine vessel are used in the simulation to calculate the projected fuel consumption.

5. The method according to claim 4, wherein executing the simulation includes executing the simulation using environmental conditions to determine projected fuel consumption.

6. The method according to claim 5, wherein executing the simulation includes executing the simulation using environmental conditions along the path between the starting location and the destination location to determine projected fuel consumption.

7. The method according to claim 1, wherein calculating projected fuel consumption includes using a machine learning software module that uses historical performance of marine vessel operational parameters in computing the projected fuel consumption.

8. The method according to claim 1, wherein calculating projected fuel consumption includes using artificial intelligence to identify vessel operational parameters and/or environmental conditions in determining the different vessel speed.

9. The method according to claim 1, wherein enabling an operator to selectively cause the marine vessel to change the current vessel speed to the different vessel speed includes providing an actuator for the operator to select to change the vessel speed from the current vessel speed to the different vessel speed.

10. The method according to claim 1, wherein enabling an operator to selectively cause the marine vessel to change the current vessel speed to the different vessel speed includes enabling the operator to select an automated speed selection that automatically causes the vessel to change speeds to a more fuel efficient speed in response to determining that the calculated projected fuel consumption is lower than a current fuel consumption.

11. A system for navigating a marine vessel, comprising:

a user interface to enable a user to enter a destination location on a waterway to which cargo on the marine vessel is to be delivered;

a processor in communication with thruster controllers configured to control thrusters on a vessel, and configured to:

receive the destination location from the user interface;

receive a time by which the cargo to be transported by the marine vessel is to arrive at the destination location;

compute navigation points via which the marine vessel is to travel to the destination location; and

cause said thruster controllers to generate thruster commands to cause the marine vessel to follow the computed navigation points.

12. The system according to claim 11, wherein said processor, in computing the navigation commands, is further configured to:

receive a plurality of measured environmental forces along a route between a location of the vessel and the destination location; and

compute updated navigation points as a function of the environmental forces.

13. The system according to claim 12, wherein said processor is further configured to compute a departure time that the vessel is to leave to ensure arrival by the destination time.

14. The system according to claim 13, wherein the departure time is the latest time that the vessel is to leave to be able to arrive at the destination location by the arrival time.

15. The system according to claim 13, wherein the departure time is an optimal departure time that minimizes fuel consumption by the thrusters.

16. The system according to claim 15, wherein the processor is further configured to:

execute a simulation using measured environmental forces along a route between a current location of the vessel and the destination location; and in response to executing the simulation, causing simulation results indicative of projected fuel usage along the current route and an alternative route.

7. The system according to claim 11, wherein said processor is further configured to: determine that an earliest arrival time is after the time that the cargo is to arrive at the destination location; and

generate a report indicative of the determined late arrival based on the determined arrival time.

8 The system according to claim 17, wherein said processor, in generating the report, is configured to automatically generate the report in response to determining that the earliest arrival time is after the time that the cargo is to arrive at the destination location.

9 The system according to claim 18, wherein said processor is configured to generate the report prior to or during transport of the cargo to the destination location.

0 The system according to claim 19, wherein said processor is further configured to automatically communicate the report.

Description:
SYSTEM AND METHOD FOR OPTIMIZING FUEL USAGE OF A MARINE

VESSEL

CROSS REFERNCE TO RELATED APPLICATION

[0001] This application claims priority to co-pending U.S. Provisional Patent Application having Serial No. 62/878,270 filed on July 24, 2019, the contents of which are hereby incorporated by reference in their entirety.

BACKGROUND OF THE INVENTION

[0002] Vessels, such as marine vessels that transport cargo, drilling vessels, subsea vessels (such as ROVs), research vessels, or any other marine vessels, have many mechanical and electrical systems and subsystems (e.g., engines, electrical systems, mechanical systems, electromechanical systems, hydraulic systems, communications systems, sensors, and so forth) (hereinafter "vessel system") that are used to control and operate the vessels. Operators of these vessels rely on the vessel system and sub-systems to remain in good working order so that minimal downtime of the vessels occur. The vessel system has operating parameters within which the vessel system operates properly. However, as a result of normal wear-and-tear of the vessels over time, the vessel system needs to be maintained to avoid potential catastrophic failure that could incapacitate or impact operation of the vessel.

[0003] In most cases, the vessel system has many sensors that are used to sense various operating parameters (e.g., pressures, temperatures, force, etc.) of the vessel system. The sensors generate sensor signals that are generally available to operators via one or more user interfaces at the helm of a vessel in one form or another. For example, in the event of an operating parameter crossing a threshold level sensed by a sensor, the sensor signals are used to trigger a notification in the form of an audible and/or visual indicator to the operator. One problem that exists is that a vessel system may have hundreds or thousands of parameters or variables, which results in an operator generally managing operations in a reactionary mode when indicators show signs of problems (e.g., sensor signals that indicate overheating, pressure changes, fluid leaks, power drops, etc.). Because of the overwhelming number of variables and limited number of available indicators displayable on a user interface, an operator's ability to monitor each of the indicators to track operations of each of the systems is not possible. Moreover, nominal levels of variables of a vessel system may be difficult to track by operators, and environmental conditions, such as outside temperature, water temperature, wave conditions, etc. may impact the variables in a way that an operator may not be able to track, thereby not being identified or addressed until a near failure or actual failure occurs. As such, there is a need for a more proactive system that can help an operator manage watch of each of the systems.

[0004] Marine vessels consume large amounts of fuel and produce significant emissions when in operation. Logistics management of marine vessels, such as ferries and transport vehicles, includes management of the marine vessels prior to, during, and after transport. The management may include planning, transporting, collision avoidance tracking, following rules of the road, conserving fuel, generating transport reports when delayed, and so on. As understood in the art, fuel efficiency of marine vessels is important as marine vessels consume a lot of fuel due to utilizing large capacity engines, and such fuel consumption is costly and impactful to the environment. Even in the event of utilizing electric motors now or in the future, conservation of energy by traveling in an efficient manner is necessary to save money, to reduce electricity usage, and to increase productivity of the marine vessel and crew.

[0005] As part of logistics management of the marine vessels, such as ferries and cargo ships, docking is an important part of the can be difficult to dock due to the size of the vessels, challenges in viewing docks directly from the bridge, environmental conditions, such as wind and water current, and so on. It often takes multiple crew members to assist with viewing and guiding the vessel during docking. Cameras that face alongside, behind, and/or in front of a vessel may be used in assisting the crew or captain in the docking process by adding viewing capability. Despite having cameras, docking processes are generally performed manually with much of the same challenges and docking without the cameras.

SUMMARY OF THE INVENTION

[0006] Managed transportation of the marine vessel may be performed by optimizing transportation operation of the marine vessel. In optimizing transportation operation, a number of different“tools” may be provided to vessel operators using a marine vessel the marine vessel may be configured to receive a destination location and a time by which cargo is to arrive at the destination location, and compute navigation points via which the marine vessel is to travel to the destination location. One such tool may be an advisory system that may be configured to include a simulator. In an embodiment, the simulator may be configured to perform route planning, which may include setting different speeds for a route to determine fuel usage, path as a function of environmental conditions (e.g., wind and current). In an embodiment, the advisory system may include a simulator tool that simulates the route with different vessel parameters and speeds to determine fuel usage. In an embodiment, a desired fuel usage may be entered into the advisory / planning system to determine time, path, start or end time, and so on. In an embodiment, maximum fuel efficiency at speeds that enable the vessel to travel through navigation points may be determined to set a departure time and reach the destination location by the destination time. The advisory system may additionally or alternatively include a machine learning module that learns from previous performance of the marine vessel and help identify optimal operational parameters to reduce fuel consumption. Artificial intelligences may be used to recognize operational and/or environmental conditions (e.g., water current, wind speed and direction) so as to assist in determine optimal speed of the marine vessel to save fuel over a portion or the entire journey of the marine vessel.

[0007] A conditional online-based risk advisory system (CORBAS) ("advisory system") may provide for monitoring and sending notifications and alerts to a user about abnormalities of a vessel system, including engines, electrical systems, mechanical systems, electromechanical systems, hydraulic systems, communications systems, sensors, and so on ("vessel system") of a vessel on which the advisory system is operating, or another vessel system, to provide a proactive and efficient operation of a vessel system. The advisory system may also provide optimizations to reduce costs and increase time of operation. The advisory system utilizes a machine learning system, as the system may learn from the user so as to become more knowledgeable over time. From the machine learning, the advisory system may maintain monitoring of the vessel system, but limit (i) false positive and false negative notifications and (ii) alarms and verification communications with the user or operator. [0008] In an embodiment, the advisory system may be configured to (i) continuously monitor variables of the vessel system, (ii) provide an automatic and rapid advisory in the event of approaching system limits of variable(s), (iii) report vessel system health, trending, and status information, (iv) present vessel system statistics, (v) provide indicators and/or directives (e.g., green (nominal), yellow (warning) and red (alarm)) for operations, (vi) calculate dependencies between variables, and/or (vii) become more knowledgeable or smarter based on human interaction. Such human interactions may include requesting that an operator confirm correlation between variables and relevance, thereby enabling the advisory system to learn which variables are related to one and relevant time so as to reduce human interaction thereafter, and provide appropriate and notifications and guidance in response to identifying the same or similar conditions that lead to the interaction.

[0009] One embodiment of an advisory system for operating a vessel may include at least one system configured to operate the vessel. Multiple sensors may be configured to sense variables of the system(s), where the variables may be representative of functional parameters of the at least one system. A processor may be in communication with the system(s) and sensors, and be configured to identify a change in values of a first variable over a time period. In response to determining the change in values of the first variable, the first variable may be correlated with a second variable that has a change in values over at least a portion of the time period. A notification inclusive of the first and second variables and change in values thereof may be generated for an operator to indicate whether the first and second variables are to be correlated with one another. In response to receiving an indication from the operator that the first and second variables are to be correlated with one another, an indicator indicative of the first and second variables being correlated with one another may be stored. Otherwise, an indicator of the first and second variable not being correlated with one another may be stored. Thereafter, in response to identifying a change in values of the first and second variables, a determination as to whether an indicator exists that is indicative with the first and second variable being correlated with one another may be made, and if so, a notice for the operator of the changing values of the first and second variables may be generated. Otherwise, a notice for the operator of the change in values of the first and second variables may not be generated.

[0010] One embodiment of a process of operating a vessel may include sensing variables of a system, where the variables may be representative of functional parameters of the system. A change in values of a first variable over a time period may be identified. In response to determining the change in values of the first variable, the first variable may be correlated with a second variable that has a change in value(s) over at least a portion of the time period. A notification inclusive of the first and second variables and change in value(s) thereof may be generated for an operator to indicate whether the first and second variables are to be correlated with one another. In response to receiving an indication from the operator that the first and second variables are to be correlated with one another, an indicator indicative of the first and second variables being correlated with one another may be stored. Otherwise, an indicator of the first and second variables not being correlated with one another may be stored. Thereafter, in response to identifying a change in value(s) of the first and second variables, a determination as to whether an indicator exists that is indicative with the first and second variable being correlated with one another may be made, and if so, a notice for the operator of the changing values of the first and second variables may be generated. Otherwise, a notice for the operator of the change in values of the first and second variables may not be generated. As a result, false positives and false negative notifications of status of the vessel system to an operator may be reduced.

[0011] An embodiment of a process of operating a vessel may include identifying a first trending change of sampled values over a first time period of a variable, where the variable may be representative of a functional parameter of the vessel. In response to determining the first trending change of sampled values of the variable, a notification inclusive of an indication of the first trending change of sampled values of the variable may be generated. The notification inclusive of the indication of the first trending change of sampled values of the variable may be communicated to an operator. The communication may be performed in any manner, such as displaying on a user interface of an operator console, as previously described herein. In response to receiving an indication from the operator as to whether the first trending change of sampled values of the variable is normal, a first indicator indicative of the fist trending change of sampled values of the variable being normal may be stored for future use. Otherwise, in response to receiving an indication from the operator that the first trending change of sampled values of the variable is not normal, a second indicator indicative of the first trending change of sampled values of the variable not being normal may be stored for future use.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Illustrative embodiments of the present invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein and wherein: [0013] FIG. 1 is an image of a marine vessel that includes a vessel system that is used to control and operate the marine vessel;

[0014] FIG. 2 is a schematic of an illustrative vessel system;

[0015] FIG. 3 is an illustrative of an illustrative user interface positioned on a bridge of a marine vessel via which a vessel system may be interfaced;

[0016] FIG. 4 is a block diagram of an illustrative vessel system in communication with an advisory system that is used to monitor variables of the vessel system and provide notifications and alerts to an operator via a user interface;

[0017] FIG. 5 is a high-level flow diagram of an illustrative advisory system process that includes components and processes that interacts with a user to learn whether correlated variables of a vessel system are dependent and/or relevant;

[0018] FIG. 6 is an illustrative standard deviation curve that may be used by an advisory system to help monitor changes of a parameter or combination of parameters of a vessel system for operating a vessel;

[0019] FIG. 7 is a graph showing an illustrative variable trending upwards in temperature over time along with established warning levels that may be used as indicators to an operator by an advisory system;

[0020] FIG. 8 is an illustration of an illustrative high-level layout of a user interface that may be used by an operator in operating a vessel system;

[0021] FIG. 9 is an illustration of an illustrative checklist or status indicator user interface of a vessel system for operating a vessel;

[0022] FIG. 10 is an illustration of an illustrative graph showing dependencies for a generator temperature of a vessel system for operating a vessel;

[0023] FIG. 11 is a flow diagram of an illustrative advisory process for supporting an operator of a vessel;

[0024] FIG. 12 is a flow diagram of another illustrative advisory process for supporting an operator of a vessel;

[0025] FIG. 13 is an illustration of an illustrative waterway in which a vessel may travel and perform real-time awareness about a vessel’s fuel consumption while traveling from a Point A to a Point B; [0026] FIG. 14 is a block diagram of an illustrative vessel system in communication with an enhanced advisory system as compared to the advisory system;

[0027] FIG. 15 are two graphs that show a power over ground speed curve and power over land speed curve;

[0028] FIG. 16 is an illustrative user interface that produces data representative of vessel current speed and fuel savings as a function of a speed change in knots, reduced emissions (e.g., NOx and C02), and an amount of fuel savings over a certain number of nautical miles (e.g., 100 Nm);

[0029] FIG. 17 is a graph of a portion of the power over ground speed curve;

[0030] FIG. 18 is a user interface that illustrates a number of operational parameters of a vessel control and propulsion system for driving the marine vessel;

[0031] FIG. 19 is a user interface showing illustrative operational parameters of the marine vessel;

[0032] FIG. 20 is a chart showing illustrative total fuel by vessel mode of operation;

[0033] FIG. 21 is a fuel usage report including voyage summary and recommendations and savings;

[0034] FIG. 22 are charts that show (i) actual speed over ground and fuel rate curves and (ii) recommended speed over ground and fuel rate curves;

[0035] FIG. 23 is a graph showing active generators and propulsion devices (e.g., propellers and generators);

[0036] FIG. 24 is a flow diagram of an illustrative simulation executed by an advisory system to determine more efficient fuel consumption for a marine vessel;

DETAILED DESCRIPTION OF THE INVENTION

[0037] Marine vessels, such as marine vessel 100 shown in FIG. 1, are used for shipping goods, people, and equipment around the world. Marine vessels operate in many different environmental conditions, including weather, temperature, and water temperatures. The environment may have an impact on the operation of the vessels, and systems and components that are used to operate and control the vessels. The marine vessels have vessel systems formed of electrical, mechanical, electromechanical, hydraulic, pneumatic, and other systems and components that are used to operate and control the vessels.

[0038] An illustrative vessel system 200 is shown in FIG. 2. In managing a vessel in which the vessel system is employed, an operator may interface with the vessel system 200 via user interfaces 200a-200n, such as those shown in more detail in FIG. 3, that are typically located on a bridge or control center of a vessel. The vessel system 200 is shown to include a variety of subsystems and components, including propulsion that include propulsion drivers 204a-204n (collectively 204) and thrusters 206a-206n (collectively 206). The thrusters 206 may include (i) conventional propellers that may be driven by power plants (e.g., diesel engines) 208a-208n (collectively 208) and (ii) electrically-controlled thrusters (e.g., tunnel thrusters) that are driven by electrical equipment that may convert energy from a main shaft extending from the power plant 208 that are driving the propulsion 206.

[0039] The vessel system 200 may further include dynamic positioning controllers 210a- 210n (collectively 210) that may be configured to semi-automatically or automatically operate the power plants 208. The dynamic positioning controllers 210 may be used to control direction of the vessel by applying a certain amount of power to control thrust of each of the power plants and/or propulsion 206. The dynamic positioning controllers 210 may also be configured to control angle of one or more rudder(s) (not shown) of the vessel to further help maneuver the vessel, as desired by the operator interfacing with the user interfaces 202. For example, the operator may adjust position of a joystick 212 (e.g., forward-left, forward-right, back-left, back-right) to cause any of speed and direction of the power plants 208, propulsion 206, and/or rudder(s) to be adjusted to cause the vessel to follow a command by the operator. Alternatively, the user interface 200 may be programmed to automatically drive the vessel to a particular coordinate, such as a global positioning system (GPS) coordinate.

[0040] The vessel system 200 may further include sensors 214a-214n (collectively 214). The sensors 214 may be environmental sensors configured to sense environmental parameters (e.g., wind, current, temperature, atmospheric pressure, and so on) and operational sensors to sense operational parameters (e.g., voltage, current, vibration, direction, equipment and/or fluid temperature, fluid pressure, rotational velocity, and so on). By monitoring the various environmental and operational parameters, the vessel system 200, which may include an advisory system that may be configured to self-monitor and self-diagnose subsystems and components of the marine vessel and vessel system 200 to provide the operator with information to help prevent a catastrophic failure of the marine vessel, as further described herein.

[0041] With regard to FIG. 3, an illustration of an illustrative bridge 300 of a vessel system that includes user interfaces 302a-302n (collectively 302) is shown. One or more of the user interfaces 302 may be used to display notifications that are generated by an advisory system that is executed by a computing system within the bridge 300 or elsewhere. The visual notifications may be in the form of text, graphics, pop-up window, or other graphical user interface element that may draw the attention of an operator of the user interfaces 302. In an embodiment, an audible notification may also be generated in conjunction with the visual notification. In addition to causing a visual and/or audible notification to be generated and presented on one or more of the user interfaces 302, a notification (e.g., text message, email, instant message, or otherwise) may be communicated to a mobile electronic device (e.g., mobile telephone, handheld controller with a user interface, etc.) to notify an operator in case the operator is not currently located on the bridge 300.

[0042] General Architecture

[0043] A monitoring or advisory system is a hardware/software system that is configured to monitor subsystems of a marine vessel (or other vehicle, such as an airplane), determine and/or identify problems or potential problems of subsystems and components, and attempt to correlate variables that may be indicative of the problems or potential problems of the subsystems and components. The advisory system may be used to create notifications with warnings, alarms, predictions, and optimizations for a vessel system of a vessel. In accordance with the principles described herein, a reliable and trustworthy relationship may be created between a human operator or user and the advisory system. If the advisory system cannot compute reliable reports to the user, the advisory system will lose its integrity and value for an operator of the vessel. One feature that provides success for an advisory system as provided herein is the capability to learn from the user, which makes the advisory system more educated over time, thereby being able to advise an operator when relevance of significance are determined and ignoring situations that are considered irrelevant or not significant enough (e.g., false positives and false negatives) to be concerned by the operator.

[0044] With regard to FIG. 4, a block diagram of an illustrative vessel system 400 in communication with an advisory system 402 that is used to monitor variables of the vessel system and provide notifications and alerts to an operator via a user interface 404 is shown. The vessel system 400 may collect and communicate variables 406 collected by sensors that are configured to collect operational data from systems and subsystems (see FIG. 2, for example) that form the vessel system 400. The variables 406 (i.e., values collected from sensors or derived from values collected from the sensors) of the vessel system 400 are communicated to user interface(s) 404 for display thereon (see, for example, FIG. 3) along with an advisory system 402 that may process the variables 406 to monitor the variables 406 and to determine possible correlations.

[0045] In an embodiment, the variables 406 may include either or both of environmental parameters and operational parameters of the marine vessel as sensed by the vessel system 400, and the advisory system 402 may utilize the variables 406 in determining whether or not a problem has or may be developing along with potential underlying cause(s) of the problem. For example, if speed of the vessel is not matching a speed at which the operator has commanded, the advisory system 402 may correlate that a fuel pump sensor may sense that a fuel pump is not pumping an amount of fuel anticipated, a wind sensor may sense that the heading wind speed is gusting higher than anticipated by a controller, a current sensor may sense that water current speed is higher than anticipated by the controller, an electric current sensor may sense that an amount or a combination of the parameters may correlated with one another.

[0046] The advisory system 402 may include a processor formed of one or more processors, memory, input/output (I/O) unit configured to communicate over a local area network (e.g., with a computer of the vessel system) or wideband area network (e.g., satellite network, Internet, etc.). In an embodiment, the advisory system 402 may communicate correlation confirmation request(s) 408 to the user interface(s) for a human operator to provide feedback or confirmations 410 as to whether the identified correlations of the parameters or variables 406 in the correlation confirmation request(s) 408 are related and/or relevant. That is, if the advisory system 402 is not confident that two or more variables 406 are correlated with one another and a notification or alert 412 is determined due to a failure or potential failure, then the advisory system 402 may communicate one or more correlation confirmation requests 408 to the user interface(s) 404 so that an operator may assist the advisory system 402 that is a machine learning system to learn which variables are relevant and/or related to one another. Over time, the advisory system 402 may learn so as to reduce or substantially eliminate the need to send correlation confirmation requests 408 to the operator. The user interface(s) may be the same or different from the user interface(s) used for directly interacting with the vessel system. For example, the user interface(s) with which the advisory system may interact may be mobile devices, webpages, emails, SMS messages, or any other user interface that enables the user to provide feedback to the advisory system.

[0047] With regard to FIG. 5, a high-level schematic of an illustrative advisory process 500 may be executed on an advisory system is shown. The process 500 may be configured to receive a data point 502 from a sensor, such as an environment sensor or operational sensor, and provide the data point 502 to an outlier rejection filter 504 for processing thereby. The outlier rejection filter 504 may be configured to determine whether the data point 502 is outside of a typical range of a parameter or variable of which the data point 502 is defined. At step 506, a determination as to whether the data point 502 is to be accepted may be made. If not, then at step 508, the data point 502 may be flagged as being rejected such that the data point 502 is not used for any data processing. In an embodiment, a determination may be made whether repeated unacceptable data points are determine to notify an operator of a potential problem with a sensor exists. If a determination is made at step 506 that the data point is to be accepted as a result of not being filtered by the outlier rejection filter 504, then the process 500 may continue at step 510, where the data point 502 may be flagged as being accepted. It should be understood that the data point 502 may simply be accepted or not accepted without actually creating and assigning a flag to the data point 502.

[0048] The process may continue at step 512, where a determination may be made as to whether the data point 502 is to fill up one of a predefined time series of accepted data. If not, then the process may continue to step 514, where the data point 502 may be stored in a database. Otherwise, at step 516, the data point 502 may be used to calculate average, standard deviation, confidence intervals, low and high warning thresholds, intercept and slope for a time series, and so forth. The database may be configured to store variable data and correlation data. At step 518, a determination as to whether the rate of change and/or slope is too fast may be made. If not, then at step 520, the average, standard deviation, confidence intervals, low and high thresholds, intercept and slope may be flagged as normal. Otherwise, as step 522, dependencies and correlations with other variables may be checked or determined. [0049] At step 524, a determination may be made as to whether any other variables explain behavior described by the statistics calculated at step 516. In either case, the advisory system may notify and ask the operator whether the behavior described by the statistics are normal or typical, and whether any dependencies between the variables can be used to describe the behavior. As previous described, the behavior (e.g., temperature of diesel engine trending upwards) may be identified prior to occurring using correlated variables or parameters that are measured by sensors. The operator may be able to provide a response to the inquiry as to whether the behavior is normal and/or whether one or more variables correlate to the behavior. In general, a variable is to be correlated if the variable is outside of typical levels or specifications. In an embodiment, if a value of one or more variables or parameters is above or below a maximum or minimum specification, then the variable(s) may be considered for correlation, and if potentially related to the variable potentially causing the behavior, the variable(s) may be provided to the operator, such as operator 528, for confirmation.

[0050] The operator 528 may be provided with two options in responding to the question as to whether the behavior is normal and/or whether one or more variables correlate to the behavior. If so, then the process 500 may continue to step 530, where rate of change limit may be updated. An average, standard deviation, confidence intervals, low and high warning thresholds, intercept, and slope may be flagged as normal, and stored in the database at step 514. Alternatively, at step 532, the average, standard deviation, confidence intervals, low and high warning thresholds, intercepts and slope may be flagged as abnormal, and stored in the database at step 514.

[0051] In another aspect of the process 500, a coefficient of determination between two variables may be calculated at step 534. At step 536, a determination as to whether a value of the coefficient of determination between the two variables is above a certain percentage, such as 40%. It should be understood that other threshold percentages may be utilized. If not, the process returns to step 534. If so, then at step 538, a notification and query may be made to an operator 540 if the there is a valid dependency between the two variables determined to be correlated. The operator 540 may be the same as operator 528. The operator 540 may be provided with two options that enables the operator 540 to make one of two decisions, including that (i) the variables are not dependent on one another at step 542, and (ii) the variables are dependent on one another at step 544. The decision as to whether the variables are confirmed to be correlated may be stored in the database at step 514. [0052] In general, the process 500 may provide for communicating with operator(s) to verify dependencies or correlations along with relevancies of variables relative to behaviors of the vessel system or components thereof. The advisory system process 500 may be executed by a computing system on a vessel that is part of a vessel system, on a separate system (e.g., server or other computing system) on the vessel, or remotely located from the vessel, such as on the cloud or within a facility of a vessel operator or third party, such as developer of the advisory system. It should be understood that the advisory system process 500 is illustrative and that a wide variety of alternative configurations and processes may be utilized.

[0053] False warnings and alarms are reduced or eliminated utilizing the advisory system provided herein. By using the outlier rejection filter 504, spikes in the collected data on a vessel may effectively be removed. In the removal of spikes in the collected data, not only are false notifications reduced or removed, but also data collection may be improved for calculating nominal values.

[0054] Nominal values contain an expected value for a monitored variable with upper and lower warning levels. An example of such a monitored variable is voltage of a 12-volt battery, where the voltage may vary between 11 and 13 volts. As understood in the art, a range between 11 and 13 volts may be dependent on a state of operation. The same battery may also have absolute upper and lower alarm limits, which are typically set by a manufacturer of the battery. In this case, the lower and upper alarm limits could be 10 and 14 volts, respectively.

[0055] The nominal values may be calculated and based on the collected data, which is assumed to be operating under normal conditions for a defined period. The assumption of operating under normal conditions is a reasonable one, as initial data collection may be performed soon after a supplier and regulatory body has approved equipment and vessel for operation. In an embodiment, a minimum of one hour may be used to collect data for determining initial nominal values to be computed. Other durations of time may be used to collect data to establish nominal values that are used for different systems and subsystems of the vessel system.

[0056] A reasonable question could be: how can it be known that the monitored variable will be nominal in the hours, days, and weeks to come after an initial time period (e.g., one hour) of data collection? The answer to this question lies in the use of machine learning by interacting with the human operator(s) 528 and 540. [0057] In an embodiment, the utilization of regression methods to predict the future of variables, the advisory system can predict when a variable will hit upper and lower warning and alarm thresholds. When the advisory system detects such a threshold crossing, the advisory system may first check if there are any correlation with any other variables, such as geolocation, sea temperature, and others. It should be understood that there may be hundreds or thousands of variable correlation determinations that may be made from a vessel system and environment in which the vessel is operating. The advisory system may then notify the human operator or user for a confirmation on the behavior of the variable. The human decision may be fed back to the advisory system, so that the advisory system may adjust actions the next time the same or similar situation arises.

[0058] By enabling human interaction, the advisory system may learn and remember how a human would handle a certain situation (e.g., whether a particular correlation between sensed signals is relevant), leading to a smarter monitoring and advisory system that can create confident and reliable notifications and reports to the operator. Over time, the advisory system may suggest optimizations to the customer for a more cost-effective and less time- consuming operation of the vessels.

[0059] The advisory system may utilize modern advances in global navigation satellite system (GNSS) receivers and global positioning system (GPS) receivers, including precision, reliability and quality calculations, based on a guidance documentation from the International Marine Contractors Association (IMCA) and International Association of Oil and Gas Produces (OGP). The use of advanced positioning receivers allow for the advisory system to utilize the accuracy to correlate positioning with certain other variables or parameters, as further described herein.

[0060] For example, the advisory system may utilize some or all available data in modern GNSS receivers and correlate the data with solar interference, configuration of GNSS receivers, changes in constellations based on geolocation and time and date, and other external interferences to provide proactive measures and ensure safe operations fleet wide (in the case of the vessel being part of a fleet of vessels). For instance, while a vessel moves closer to an oil rig, the advisory system may continuously monitor precision, reliability, and quality data. Blockage of correction satellites, multipath issues, or any other negative trending of the quality measurements may be detected. If the advisory system has seen one of the scenarios above before, the advisory system may predict if such a scenario is going to happen again. The advisory system may thereby proactively notify and advice other vessels approaching the same oil rig if the advisory system detects a similar scenario. [0061] DETAILED FUNCTIONALITY

[0062] Each collected data variable may be processed by the outlier rejection filter 504 to remove spikes and outliers to ensure a better foundation for the calculation of nominal values. Spikes and outliers negatively affect the nominal values, in addition to causing false warnings and alarms, if not removed.

[0063] One outlier filter 504 based upon the median absolute deviation may provide a safe and established way of removing spikes in a dataset that is symmetric and normally distributed.

[0064] An outlier value may be calculated in the following way:

[0066] Where x t is a current data measurement, X is an array containing the last N measurements, median^.. ) is a function returning the median of the inserted array, 1.4826 is a value that yields normally distributed data, and mad(X ) is defined as:

[0067] mad(X) = median(\X— median(X) \)

[0068] For a genuine data set, assumed to be drawn from a symmetric distribution, all samples may be rejected for which:

[0069] 0(Xi,X > 3.5

[0070] The resulting data set, after being processed by the outlier rejection filter, may contain data points that are better suited for calculating statistical values, including nominal values for the quantities being monitored. The specific values are illustrative and may be different, including being dynamic, to support the outlier rejection filter, as understood in the art.

[0071] NOMINAL VALUES AND THRESHOLDS

[0072] After the measurement has been filtered by the outlier rejection filter 504, the measurement may either be accepted or rejected at step 506. If accepted, the measurement may be used to calculate a new set of nominal values at step 516, where the nominal values may include upper and lower warning thresholds. FIG. 6 is an illustrative standard deviation curve 600 that may be used by an advisory system to help monitor changes of a parameter or combination of parameters of a vessel system for operating a vessel. It should be understood that alternative statistical analyses curves and/or protocols may be utilized by the advisory system to assist with monitoring changes of a parameter or combination of parameters of a vessel system.

[0073] In an embodiment, a nominal value may be set by an average calculated from collected data over defined time intervals, such as 10 minutes, 1 hour, 1 day, 1 week, 1 month, quarterly, and/or yearly. In an embodiment, the longer time intervals are given weight over the shorter time intervals, as confidence intervals may become narrower due to a higher number of samples, which provides a more accurate average (x avg ) and standard deviation (x std ). N is a number of data points in the dataset for a specific time interval, as understood in the art.

[0076] The standard deviation for the variable may be utilized to calculate upper and lower warning thresholds. In statistics, for a normal distributed data set, there is a rule called the 68-95-99.7 rule that correlates to 1-sigma, 2-sigma, and 3-sigma standard deviations that is used to remember the percentage of values that lie within a band around the average values, as shown in FIG. 6.

[0077] As an example, given a sample rate of 1 Hz (i.e., one sample per second), and using 3 standard deviations to calculate the lower and upper warning thresholds, 99.7 % of all samples lie within the band. After one day, 86,400 samples are collected, where 2,592 samples are outside the band, which would equal a warning on average every 3 seconds, which is way too often for operation of a vessel.

[0078] Using 4.5 or 5 standard deviations instead provides a warning on average every 2 or 20 days, respectively, which is a much more practical time interval to receive warnings for a vessel system of a vessel being sampled every second.

[0079] The upper and lower warning thresholds may be calculated with the following equations:

[0080] Upper Warning Threshold = x avg + k x std

[0081] Lower Warning Threshold = x avg — k x std ,

[0082] where the chosen multiplier k may be adjustable for an operator to either make the warning thresholds tighter or wider. In an embodiment, A k = 5 may be set as default for all variables. In an embodiment, k may be set so that the thresholds are within the upper and lower alarm thresholds, which may be set by a manufacturer of a system or subsystem of a vessel system that provides variable(s) being monitored.

[0083] The upper and lower thresholds for the confidence interval with 95% confidence may be calculated with the following equations:

[0084] Upper Confidence Threshold = x avg + 1.96

[0085] Lower Confidence Threshold = x avg 1.96

[0086] PREDICTIONS

[0087] A prediction of where a variable will be in the future may be used in the advisory system as predictions allow for knowing when the variable might hit upper or lower warning and alarm thresholds. Such a prediction system used by the advisory system allows for proactively notifying an operator of a vessel as to when the vessel system being monitored might have a problem.

[0088] There are many methods to predict the future, including linear and nonlinear regression methods, but for simplicity purposes, the advisory system provided herein may initially focus on a linear alternative, which is based on fitting an available dataset to the following linear equation:

[0089] Xi = a + b t t ,

[0090] where t t is the time for the current sample t, a is the intercept, and b is the rate of change for the variable x . b and a may be calculated with the following equations:

[0092] oc— x avg — b t avg ,

[0093] where x avg is the average of all measurements in the available dataset, and t avg is the average of all the time samples in the available dataset.

[0094] The linear equation may be used to calculate when the variable being used for prediction will potentially collide with the different thresholds (e.g., notification and alert threshold(s)). Even though most systems and subsystems are non-linear by nature, the systems may be linearized by modeling over a small enough time interval. The different thresholds may be set based on manufacture specified thresholds, recommended thresholds, or otherwise. The advisory system may include more advanced regression methods, and may also include mathematical models, where available, including non-linear mathematical models. In an alternative embodiment, a mathematical model of the variable(s) may be used, and predictions of when the variable(s) may cross a threshold may be made by executing the mathematical model.

[0095] The rate of change or slope of a variable may also be monitored with high and low thresholds since the normal behavior of the variable may have an upper and lower limit on how fast the variable can change. To determine the upper and lower thresholds, knowledge about the variable or parameter may be utilized, either from a manufacturer or otherwise (e.g., testing, setting variances based on system or component specifications, actual operational performance, historical performance, etc.). The limits may be set and/or modified by a user or operator of the vessel. Additionally and/or alternatively, the limits may be set by a developer of the advisory system. The limits may be set by limits of manufacturers of systems, subsystems, and/or components (e.g., mechanical structures, electrical components, etc.).

[0096] The advisory system may utilize machine learning to assist with establishing various upper and lower limits. The advisory system may execute a continuous correlation analysis with other variables, up to and including all other variables of the vessel system or external to the vessel system, such as geolocation, sea temperature, time and date, etc., to understand the dependencies between or amongst variables of the vessel system.

[0097] For instance, if the advisory system detects that a temperature change of a generator is changing too fast, the advisory system may first check if there are any strong correlations with other variables before sending a notification to an operator. In this generator temperature change notification, the advisory system may ask the human operator or user if the behavior (e.g., temperature change of the generator optionally correlated to another variable) is normal or not. If the behavior is indicated as being normal by the human operator, then the advisory system may be configured not to communicate with the user with a notification the next time. On the contrary, the advisory system may send out a warning or alarm notification the next time the same situation arises. In an embodiment, the advisory system may be configured to enable the operator to dismiss the notification a first time, but enable the advisory system to alert the operator in the future if the same situation arises, thereby allowing for the user to learn of possible correlations that may exist and that may previously have been unknown to the operator. [0098] CORRELATIONS AND DEPENDENCIES

[0099] The advisory system may continuously be configured to identify new dependencies between variables. Each time the advisory system identifies a potential correlation between two or more variables, the advisory system may notify the human operator for a confirmation as to whether or not there is a real dependency between or among the variables identified with potential correlation. The advisory system may thereafter remember (i.e., store) a decision of the operator for future analyses.

[00100] As an example, two variables, x and y, may be tracked. Based on the collected datasets or variables, X = {x 1 , x 2 , ... , x w ) and Y = { i, 2,— > UN} , the coefficient of determination, or R 2 , may be calculated using the following equation (assuming a linear model for the relationship between the variables):

( xy-xy )

[00101] R 2 =

( x 2 -x 2 )(y 2 -y 2 )

[00102] where,

[00108] The coefficient of determination, R 2 , normally ranges between 0 and 1, where 0 indicates 0% correlation between the variables, while 1 indicates 100% correlation between the two variables. The advisory system may send a notification to the human user when a particular correlation limit or threshold (e.g., 40%) is crossed by the coefficient of determination to obtain a confirmation from the user as to whether a valid correlation between the variables of the vessel system exists or not. It has been found that 40% as a correlation limit supports an acceptable level of interactions with an operator, but a higher or lower correlation limit may be used. It should also be understood that the correlation limit may be varied for different variables, especially for ones that may have a catastrophic impact on the vessel (e.g., oil pump pressure, ballast pressure, engine temperature, etc.). [00109] One reason why the advisory system cannot validate its own discovery, based upon the R 2 value, is due to a risk of confirming a false correlation. Since the coefficient of determination is based on a linear model, false correlations may occur due to the nature of some datasets. A human eye may quickly validate whether a true correlation or not exists between the two variables.

[00110] In response to the user validating whether are correlation or no correlation exists between the two variables at step 538, the advisory system may store the decision in the database at step 514 so as to remember the decision in the future so as to advise (e.g., notify or alert) or not advise the operator should the same or similar correlation between the two variables exist and qualify for a notification. Over time, the advisory system may ask the operator about new dependencies less frequently as the advisory system has previously mapped out most of the dependencies. The advisory system may map most dependencies based on a linear regression model, but the advisory system may utilize non-linear regression or other mathematical models to calculate R 2 values for remaining dependencies.

[00111] As part of the advisory system, correlations may monitor possible dependencies between internal variables of the vessel system on the vessel and the external variables, such as geolocation, sea temperature, air temperature, current, waves (e.g., wave size, wave frequency), time, season, wind, and humidity. These environmental, location, and time dependent variables are may be correlated with the internal vessel variables, thereby enabling impact of environmental parameters on operational parameters.

[00112] For instance, when a vessel is operating in the North Sea, temperatures of most internal vessel variables are expected to be lower compared to the vessel operating in warmer waters, such as the Gulf of Mexico. Similarly, knowing behavior of internal variables as a function of the time-of-year (season) or other environmental conditions might reveal optimizations not previously considered.

[00113] PRESENTATION

[00114] With regard to FIG. 7, a graph showing an illustrative variable curve 700 trending upwards in temperature over time along with established upper and lower warning levels 702 and alert levels 704 that may be used to generate and communicate indicators or messages to an operator by an advisory system is shown. The graph displays measurements of variables that are collected periodically (e.g., daily) or aperiodically (e.g., in response to an event) by the advisory system, and plots the measurements against both warning and critical levels 702 and 704 of the variable. In the case of a bearing temperature as shown in FIG. 7, for example, the temperature may be tracked to be trending upwards. The trending of the temperature may be correlated with other variables, so as to potentially determine a“cause and effect” relationship.

[00115] As further shown in FIG. 7, a current measurement or“Today’s measurement” 706 that shows how the bearing temperature variable curve 700 is trending over time. A linear projection curve 708 shows that if the current trend of the curve 700 remains the same, then the warning level 702 is predicted to be reached in 28 days with a 73% certainty at point 710 and the critical level 704 is predicted to be reached in 53 days with a 58% certainty level at point 712. The prediction may be provided to the operator to enable the operator to try and prevent reaching either of the levels 702 or 704 by correcting (e.g., repairing) a subsystem, for example.

[00116] With regard to FIG. 8, a screenshot of an illustrative user interface 800 of an advisory system that shows or lists subsystems 802a-802n (collectively 802) that are part of a vessel system along with associated status indicators 804a-804d (collectively 804). Two subsystems, Thruster Control System (TCS) 802b and Integrated Bridge Systems (IBS) 802c, that are indicated as being nominal, and two subsystems, Dynamic Positioning System (DPS) 802a and Mechanical System (MES) 802d, that are indicated as having imminent actions due or coming due by displaying indicators 804a and 804d in a different format and/or color (e.g., red) than indicators 804b and 804c associated with the subsystems 802b and 802c (e.g., green) that were determined to be operationally nominal. It should be understood that alternative formats and/or colors may be utilized to indicate that a subsystem, component, and/or variable reaching or reached a warning level as compared to a subsystem, component, and/or variable reaching or reached a critical level. The mechanical subsystem 802d is shown to be expanded in a hierarchical format to show subsystems or components (bearings, switchboards, generators) 806a-806c of the mechanical system. An identifier 808a associated with the bearings 806a indicates that a problem of the mechanical subsystem 802d is with the bearings 806b. A user may select (e.g., click) on the bearings 806a, and further detail on a specific location of the bearings 806a may be shown with text and/or graphics that has breached the warning or/and alarm levels.

[00117] In an embodiment, a user interface, such as the user interface 800 shown in FIG. 8, that provides information to an operator may use colors for notifying and/or alerting users of issues that may be trending toward a problem or are actually a problem. A green (nominal) level may provide a health check, trending analysis, and other statistics on a system or subsystem in question. The advisory system does not act on a green level, since a green (nominal) level is considered normal system behavior or operating conditions. It should be understood that alternative configurations of the notification and user interface may be utilized to provide the same or similar functionality as provided herein.

[00118] In an embodiment, a yellow (warning) level may be used to inform the operator of a trending change that could portend a future breach of the warning and alarm levels. If the advisory system has not seen a trending change before, the advisory system may ask for a confirmation from the operator (e.g., per email, text, website, integrated system, dashboard on an onboard control system, advisory system user interface, etc.), whether the trend change is normal or not. The request to the operator enables the advisory system to remove false warnings and alarms in the future.

[00119] In an embodiment, the operator may be provided with the following information on a yellow level:

[00120] (i) Detected dependencies with other variables;

[00121] (ii) When the system was last used;

[00122] (iii) Trend of the data; and

[00123] (iv) How much time before a warning and alarm threshold will be breached.

[00124] In an embodiment, a red (alarm) level informs of an imminent or current failure along with details on the statistical and system rules. A no-go advisory may be issued to the operator in an alert level event. Presumably a yellow level advisory notification will precede a red level advisory notification, but in the event that a yellow level advisory notification does not occur due to an unforeseeable failure or is somehow missed by an operator, for example, the red advisory or alert may provide an alert message along with the ability for the operator to respond to correlation relevancy of multiple variables.

[00125] With regard to FIG. 9, an illustration of an illustrative status indicator and dashboard user interface 900 of a vessel system for operating a vessel is shown. The status indicator and dashboard user interface 900 may include one or more lists of various systems and subsystems 902a-902n (collectively 902) that are color-coded, including green for“on line,” blue for“off-line,” and red for“in alarm,” to indicate to an operator whether or not any problems or predicted problems exist with the vessel system. The checklist may be configured to expand hierarchically so that the operator may "drill down" to see specifically what variables associated with what system or subsystem may be trending toward or currently at a notification or alert status. It should be understood that a wide range of user interface designs may be utilized to provide status information to the operator may be utilized. The presentation of vessel systems may be configurable for and/or by an end user, as desired.

[00126] The user interface 900 may also include more conventional dashboard elements, including one or more lists of sensors 904a and 904b (collectively 904), which may include digital GPS sensor(s), scanners, heading compass, voltage sensors, gyroscope sensors, or otherwise. A navigation mode list 906 may also be displayed on the user interface 900. It should be understood that the (i) lists 902, 904, and 906, (ii) items on the lists 902, 904, and 906, and (iii) formats of the lists and user interface 900 are illustrative, and that any other lists, parameters or variables, and formats may be utilized in accordance with the principles described herein.

[00127] With regard to FIG. 10, a chart, in this case a pie chart, that shows illustrative variables that describes how the dependencies and correlations may be illustrated on a vessel system website. As shown, the primary variable is generator temperature, and dependency variables, which are environmental parameters or variables, are sea temperature, geolocation, and time-of-day. In this example, the time-of-day variable has the strongest dependency or correlation since the generator is running more during the day as compared to the night. Note, the chart has the purpose to illustrate dependencies of non-vessel system variables, and is not based on operational correlations.

[00128] DATA POINTS AND VARIABLES/PARAMETERS

[00129] A vessel system may have tens, hundreds, or thousands of variables or data points that may be monitored by the advisory system. The lists below are non-exhaustive, and may be updated as additional data points are available by sensing on a vessel system. It should be understood that the list of variables may be different for different vessel systems.

[00130] As shown, eight main groups of systems and/or subsystems may be presented for data points or variables of a vessel system on a vessel. Additional and/or alternative systems or subsystems of the vessel system may be presented, as well.

[00131] Dynamic Positioning Systems (DPS)

[00132] The following subgroups may be monitored for DPS:

[00133] Integrated Bridge Systems (IBS)

[00134] The following subgroups may be monitored for IBS:

[00135] Sensor Systems (SES)

[00136] The following subgroups may be monitored for SES:

[00137] Thruster Control Systems (TCS)

[00138] The following subgroups may be monitored for TCS:

[00139] Mechanical Systems (MES)

[00140] The following subgroups may be monitored for MES:

• Splash Oil & Oil Mist Monitoring (SiCOMS / OCom)

• Combustion Temperature

• Lube Oil Condition Sensor (Conductivity)

• Lube Oil Temperature

• Cooling Water Temperature

• RPM

• Load

Main Engine 2

Main Engine N

o Diesel Electric Engines

Diesel Electric Engine 1

• Bearing monitoring (BeCOMS)

• Combustion Pressure Monitoring (BeCOMS / Pressure Sensor)

• Splash Oil & Oil Mist Monitoring (SiCOMS / OCom)

• Combustion Temperature

• Lube Oil Condition Sensor (Conductivity)

• Lube Oil Temperature

• Cooling Water Temperature

• RPM

• Load

Diesel Electric Engine 2

Diesel Electric Engine N

o Electric Motor

Electric Motor 1

• Bearing Vibration

• Bearing Temperature

• Heater ON or OFF

• Winding Temperature

• RPM

• Load

Electric Motor 2

Electric Motor N

• Bearings

o Bearing 1

Temperature

Vibration

o Bearing 2

° :

o Bearing N

• Valves

o Valve 1

Ultrasound

Position o Valve 2 o Valve N

• Pumps

o Pump 1

Bearing Vibration

Bearing Temperature

Pressure

Flow

o Pump 2

° :

o Pump N

• Gearboxes

o Gearbox 1

Bearing Vibration

Bearing Temperature

Gear Teeth and Mesh Vibration

Lube Oil Quality / Conductivity

Lube Oil Temperature o Gearbox 2

° :

o Gearbox N

• Cranes

o Crane 1

Hydraulic Pumps

Hydraulic Filters

Hydraulic Valves

Hydraulic Reservoir

Hydraulic Motors

Gears

Encoders

Electric Motors

Electric Heaters

Pressure

Speed

Load

o Crane 2

° :

o Crane N

• Shaft Lines

o Shaft Line 1

Bearing Vibration

Alignment Vibration

Bearing Temperature

Torsional Shaft Vibration

Power Fuel Consumption

Strain Gauge

o Shaft Line 2

° :

o Shaft Line N

• Winches

o Winch 1

Hydraulic Motor

Hydraulic Valves

Hydraulic Pressure

Gears

Encoders

RPM

Encoder

o Winch 2

° :

o Winch N

• Hydraulics

o Hydraulic 1

Pumps

• Pump 1

o Bearing Vibration

o Bearing Temperature

o Pressure

o Calculated Flow

o Flowmeter

o Pump Angle Transducer

o Calculated Hydraulic Power

o LS Pressure Transmitter

o Oil Temperature

• Pump 2

• Pump N

Valves

• Valve 1

o Input Signal

o Position Feedback

o Calculated Valve Response

• Valve 2

• Valve N

Filters

• Filter 1

o Delta Pressure/Switch for High Pressure Filters o Delta Pressure/Switch for Return Filters

[00141] Power Systems (POS)

[00142] The following subgroups may be monitored for POS:

[00143] Computer and Network Systems (CNS)

[00144] Utilizing the Simple Network Management Protocol (SNMP) and an optional private SNMP service, complete network and computer monitoring may be possible. The private SNMP service may be a service installed on selected computers to collect health information from computers and smart switches on the network. Every Control Computer (CC), Operative System (OS) and smart switch throughout an entire control network may be monitored, thereby providing complete monitoring of a vessel system.

[00145] The following subgroups may be monitored for CNS:

• Date

• Description

• Contact

• Name

• Location

Storage and Memory

• Size

• Used

CPU

• Non-ldle time for each core

Network

• IP Address

• MAC Address

• Unicast

o Packages In

o Packages Out

• Non-Unicast packages

o Packages In

o Packages Out

• Operational Interface Status

• Discarded and Error Packages

Software

• Names

• CPU Usage

• Memory Usage

o DP Control Computer 2 (DPCC2)

o DP Control Computer 3 (DPCC3)

o TCS Control Computer 1 (TCSCC1)

o TCS Control Computer 2 (TCSCC2)

o TCS Control Computer 3 (TCSCC3)

o Operative System 1 (OS1)

o Operative System 2 (OS2)

° :

o Operative System N (OSN)

• Smart Switches

o Smart Switch 1

System

• Uptime

• Date

• Description

• Contact

• Name

• Location

Network

• IP Address

[00146] External Factors (EXF)

[00147] The following variables may be monitored for EXF :

[00148] With regard to FIG. 11, a flow diagram of an illustrative advisory process 1100 of an advisory system for supporting an operator of a vessel is shown. The process 1100 may start at step 1102, where multiple variables of a system of a vessel may be sensed. The system may be any system or subsystem on the vessel capable of being sensed by a sensor.

In an embodiment, the sensing may be of an environmental parameter, such as water or air temperature. Alternatively, the sensing may be of any operational parameter, such as temperature, pressure, electric current or voltage, or other variable or parameters of a vessel system. At step 1104, a determination as to whether a first variable is correlated with a second variable may be made. At step 1106, an operator that the first and second variables are correlated may be confirmed. At step 1108, an indicator indicative of the first and second variables being correlated in response to the operator confirming same may be stored for future use. The process 1100 operates as a machine learning process inclusive of human training of the advisory system by a human operator who instinctively knows whether particular variables are correlated with one another or not. Over time, the process 1100 learns which variables are correlated with one another so that the amount of human operator support or interaction with monitoring the vessel system may decrease, and a reduction of false positives and false negatives reported to the operator occurs.

[00149] More specifically, one embodiment of a process of operating a vessel may include sensing variables of a system, where the variables may be representative of functional parameters of the system. A change in values of a first variable over a time period may be identified. In response to determining the change in values of the first variable, the first variable may be correlated with a second variable that has a change in values over at least a portion of the time period. A notification inclusive of the first and second variables and change in values thereof may be generated for an operator to indicate whether the first and second variables are to be correlated with one another. In response to receiving an indication from the operator that the first and second variables are to be correlated with one another, an indicator indicative of the first and second variables being correlated with one another may be stored. Otherwise, an indicator of the first and second variable not being correlated with one another may be stored. Thereafter, in response to identifying a change in values of the first and second variables, a determination as to whether an indicator exists that is indicative with the first and second variable being correlated with one another may be made, and if so, a notice for the operator of the changing values of the first and second variables may be generated. Otherwise, a notice for the operator of the change in values of the first and second variables may not be generated.

[00150] The process may further include (i) sampling values of the first variable over a nominal value sampling time period, (ii) sampling values of the second variable over the nominal value sampling time period, and (iii) establishing a set of nominal values for each of the first and second variables. In an embodiment, the process may further include establishing a notification threshold level at which a notification is to be sent to the operator of the variable crossing the threshold level.

[00151] The process may further include calculating a prediction as to whether the first variable is going to cross the notification threshold level. In an embodiment, the process may calculate when the first variable will cross the threshold level. Calculating a prediction may include performing a regression calculation. Calculating may include executing a model of the first variable. Correlating the first variable with a second variable may include correlating the first variable with an environmental parameter. Correlating the first variable with a second variable may include correlating the first variable with another variable being sensed on the vessel. [00152] Identifying the change in values of the first and second variables may include determining whether the change in values of the first and second variables changed with a same or similar pattern as previously changed to which the operator indicated that the first and second variables were correlated with one another. The process may further include executing an outlier rejection filter to filter outlier values of the first and second variables. The process may further include correlating the first variable with all other variables to identify the second variable. Identifying the change in values of the first variable may include identifying that the change in values is outside of a standard deviation threshold level.

[00153] In an embodiment, another system may be used to collect information (e.g., correlated variables) produced on independent vessels. The collected information may be on shore on a communications network, and be used to execute correlations on the collected information on a fleet of vessels, thereby producing fleet level correlations (e.g., failures that occur in water temperatures below a certain temperature). The on shore system may operate in the same or similar manner as the vessel system in terms of confirming with a user as to whether or not correlations between different variables identified by the onshore system are actually related and relevant. If so, then the onshore system may continue monitoring for and reporting future situations that are the same or similar (mathematically calculated). Otherwise, the onshore system may continue monitoring for but avoid reporting situations that are the same or similar.

[00154] With regard to FIG. 12, a flow diagram of an illustrative advisory process 1200 of an advisory system for supporting an operator of a vessel is shown. The process 1200 may start at step 1202, where one or more variables of a system of a vessel may be sensed. The system may be any system or subsystem on the vessel capable of being sensed by a sensor. The sensing may be of any operational parameter, such as temperature, pressure, electric current or voltage, or other variable or parameters of a vessel system. The sensing may additionally or alternatively be of an environmental parameter, such as water or air temperature. At step 1204, a determination as to whether a behavior of a variable is normal (e.g., within defined normal operational levels) may be made. At step 1206, an operator may confirm whether the behavior (e.g., trending) of the variable is normal. At step 1208, an indicator indicative of the variable being normal or not normal may be stored for future use. The process 1200 operates as a machine learning process inclusive of human training of the advisory system by a human operator who instinctively knows whether particular variables, and optionally related variables, are operating normally or not. Over time, the process 1200 learns whether variables are operating in normal and non-normal manners so that the amount of human operator support or interaction with monitoring the vessel system may decrease, and a reduction of reporting false positives and false negatives to the operator occurs. The process 1200 may also enable a human operator to provide feedback to the system as to information about dependencies of other variables might exist to assist the machine learning of the vessel system to better determine operation of the vessel system.

[00155] One embodiment of a method of operating a vessel may include identifying a first trending change of sampled values over a first time period of a variable, where the variable may be representative of a functional parameter of the vessel. In response to determining the first trending change of sampled values of the variable, a notification inclusive of an indication of the first trending change of sampled values of the variable may be generated. The notification inclusive of the indication of the first trending change of sampled values of the variable may be communicated to an operator. The communication may be performed in any manner, such as displaying on a user interface of an operator console, as previously described herein. In response to receiving an indication from the operator as to whether the first trending change of sampled values of the variable is normal, a first indicator indicative of the fist trending change of sampled values of the variable being normal may be stored for future use. Otherwise, in response to receiving an indication from the operator that the first trending change of sampled values of the variable is not normal, a second indicator indicative of the first trending change of sampled values of the variable not being normal may be stored for future use.

[00156] Furthermore, in response to identifying a second trending change of sampled values of the variable over a second time period, a determination as to whether the first or second indicator exists that is indicative of the first trending change of sampled values being normal or not normal may be made, and, if the second indicator exists, a notice may be generated for the operator of the second trending change of sampled values of the variable. Otherwise, if the first indicator exists, no notice may be generated for the operator of the second trending change of sampled values of the variable.

[00157] Identification of a first trending change of sampled values of a variable may include calculating a linear trend line as a function of sampled values. The process may further include computing an amount of time that the variable will cross a threshold value if the linear trend line continues until a first notification threshold level is reached.

[00158] Although the vessel system and processes described herein generally refer to marine vessels, it should be understood that the systems and processes may be applied to non- marine vessels. For example, rather than a vessel, the system may be any other vehicle (e.g., airplanes, trains, automobiles, etc.) or non-vehicle (e.g., manufacturing facility) that has systems and subsystems that utilize a monitoring system. The use of the machine-learning advisory system in any other environment may provide for the same or similar ability to monitor multiple variables and correlate the variables over time to help ensure that operators are able to more efficiently track changes that may result in notifications and warnings that may occur, thereby reducing downtime or catastrophic events.

[00159] Fuel Awareness and Optimization System

[00160] Operators of marine vessels are generally concerned of fuel usage due to the price and efficiency of operations of the marine vessel. Speed of the marine vessel plays a significant factor in fuel usage. Propulsion systems of marine vessels typically have a speed or range of speeds at which fuel usage is maximized.

[00161] With regard to FIG. 13, an illustration of an illustrative waterway in which a vessel may travel and perform real-time awareness about a vessel’s fuel consumption while traveling from a Point A to a Point B is shown. As shown, the marine vessel starting at Point A may use a number of different plans to travel from Point A to Point B. The different plans, such as Plans A, B, Cl, and C2, may have several parameters, including, but not limited to, speed, heading, and waypoints or path. The Plans may be computed and presented to an operator of the marine vessel to make the operator aware of the various options. In an embodiment, the Plans may be produced by simple calculations that compute different speeds (e.g., varying the speeds by 2 knots) along the same path to determine fuel usage. If the advisory or planning system has operational and/or environmental data (e.g., wind speed, wind heading, water current speed, water current heading, etc.), then the calculations may be more accurate. In an embodiment, the calculations may be performed as part of a simulation that is being executed real-time so that the operator is able to be kept aware of speed and/or other operational information (e.g., path) that may save or optimize fuel usage. As shown, Plan A has a most direct route between Point A and Point B, Plan B has a second most direct route, and Plans Cl and C2 have the third most direct route, but are traveling at different speeds. The speed and heading of wind and water current may have an impact as to route, vessel speed, or otherwise, and may be constantly updated and used by the advisory system of the marine vessel, as further described herein.

[00162] With regard to FIG. 14, a block diagram of an illustrative vessel system 1400 in communication with an enhanced advisory system 1402 as compared to the advisory system incorporate various additional intelligence, such as a simulator, machine learning (e.g., learning trajectory system), and/or artificial intelligence engine (e.g., neural network, convolutional neural network, etc.). The planning system may use any or all of the engines to assist in generating fuel consumption awareness information for a vessel operator on a real time basis. For example, the vessel system 1400 may collect and communicate variables 1406 collected by sensors that are configured to collect operational data from systems and subsystems (see FIG. 2, for example) that form the vessel system 1400. The variables 1406 (i.e., values collected from sensors or derived from values collected from the sensors) of the vessel system 1400 may be communicated to user interface(s) 404 for display thereon (see, for example, FIG. 3) along with the advisory system 1402 that may process the variables 1406 to monitor the variables 1406, to determine possible correlations, and to generate awareness information that may be presented to a user and/or be automatically used by the vessel system to control operation of the marine vessel (e.g., in a fuel optimization mode).

[00163] In an embodiment, with a focus on the planning system aspect of the advisory system 1402, the variables 1406 may include either or both of environmental parameters (e.g., wind speed, wind direction, current speed, current direction - potentially both locally and in the path of the marine vessel) and operational parameters (e.g., propulsion system type, thrust vs fuel usage curve, vessel load, etc.) of the marine vessel as sensed by the vessel system 1400, and the advisory system 1402 may utilize the variables 1406 in determining optimal and/or optional speed vs fuel usage information, alternative course information, etc.

[00164] The advisory system 1402 may provide to the vessel operator and/or vessel system 1400 real-time awareness about speed and/or path options that can help reduce the vessel’s total fuel consumption along a portion of or the entire path between a Point A (starting or current location) and a Point B (destination location). In an embodiment, the advisory system 1402 may be configured to provide the operator with a departure time to satisfy a desired time of arrival (ETA) that with speed that optimizes fuel consumption. In an embodiment, the planning system may provide the operator with consequences (e.g., total fuel consumption and estimated time of arrival) by increasing or decreasing the speed of the vessel with 2 knots increments/decrements or other increment/decrement, from an initial or current vessel speed. In operating real-time, the variables 1406 being collected may update the advisory system 1402 so that the planning system may update its various functions to update the fuel usage projections. In an embodiment, the advisory system 1402 may operate a simulation that uses the real-time measurements of environmental factors (e.g., water current vectors, wind speed vectors, etc.) along different potential paths of the vessel from current vessel locations to determine which path or route may provide for the most fuel efficiency and duration between the current vessel location and destination location.

[00165] The advisory system 1402 may include a processor formed of one or more processors, memory, input/output (I/O) unit configured to communicate over a local area network (e.g., with a computer of the vessel system) or wideband area network (e.g., satellite network, Internet, etc.). In an embodiment, the advisory system 1402 may communicate advisory information 1408 to the user interface(s) for a human operator to provide adjustment parameters 1410 to possibly adjust parameters that that are being used by the planning system of the advisory system 1402. That is, the operator may be able to interface with the planning system as possible operating parameters or circumstances change for the marine vessel and/or operator (e.g., Point B changes). As an example, if a simulation is being used, simulation parameters, such as weighting, biasing, or otherwise, may be adjusted by an operator. In an embodiment, the simulation may use a Monte Carlo process to adjust one or more variables to determine a most efficient combination of variables. The simulation may use current and/or predicted operational and environmental conditions based on measured and/or predicted or forecasted conditions (e.g., wind, rain, water current, etc.). In an embodiment, the simulation may utilize hysteresis (e.g., wait 30 minutes for any future course adjustment after a previous course adjustment) to avoid the simulation presenting or otherwise causing too many course adjustments. Alternatively, the simulation may be continuous and update potential course adjustments on a real-time or semi-real-time basis.

[00166] Over time, the advisory system 1402 may learn to be produce higher fuel efficient operation of the marine vessel based on past performance with possibly similar environmental conditions. For example, the planning system may use an adaptive trajectory learning system so that the path of the vessel may be as direct as possible (e.g., avoid wider turns, if possible, along a river or along an ocean voyage). If artificial intelligence is included in the planning system, current and/or future environment and/or vessel operating parameters may be recognized by a neural network and factor those into path planning (e.g., heading, speed, etc.) if the planning system uses artificial intelligence so as to optimize fuel usage. That optimized fuel usage may become more accurate over time so that fuel awareness information 1412 may be communicated to the user interface(s) 1404 for display thereon.

[00167] With regard to FIG. 15, two graphs 1500a and 1500b that show a power over ground speed curve 1502a and power over land speed curve 1502b are shown. These two curves may be utilized to determine fuel efficiency based on current speed of the vessel. Data for the curves may be collected by the vessel system 1400, as previously described (see also FIG. 4).

[00168] With regard to FIG. 16, an illustrative user interface 1600 that produces data representative of vessel current speed and fuel savings as a function of a speed change in knots, reduced emissions (e.g., NOx and C02), and an amount of fuel savings over a certain number of nautical miles (e.g., 100 Nm) is shown. Other information may be presented, such as estimated time of arrival, trim recommendation, draft recommendation, and any other number of operational parameters. As previously described, the operational parameters that result in improved fuel efficiency may be determined using simulation, machine learning, and artificial intelligence (e.g., neural network). The simulation, machine learning, and/or artificial intelligence system may be identical on different marine vessels, but because each marine vessel may handle differently due to structure and/or operational parameters of propulsion systems, for example, the performance of the simulation, machine learning, and/or artificial intelligence system may result in different projections and determination than other marine vessels that may be operating in the same or similar environmental conditions and at the same locations and paths between current and destination locations.

[00169] With regard to FIG. 17, a graph of a portion of the power over ground speed curve 1502a is shown. As an example, the system may automatically calculate a distance that the vessel will travel to a platform. When a vessel is currently running at 10 knots, the software, such as the planning system of the advisory system 1402 of FIG. 14, may provide the operator an estimated fuel consumption and ETA based on 10 knots (see FIG. 16). The software may also provide the user estimated information on how much more fuel (in percentage and gallons, for example) that the vessel will use by increasing the vessel speed by 2 knots. The system may also show an estimate as to how much faster the vessel will arrive at the destination (by providing the new ETA and the time decrement in hours/days). In addition to these operational parameters, the system may provide the user information an estimate as to how much fuel the vessel will save (in percentage and gallons) by decreasing the speed by 2 knots, but also how much longer the vessel voyage will take (by providing the new ETA and the increment in hours/days).

[00170] From the user interface (provided by the software), the operator may increase or decrease the speed of the vessel based on the information provided by the software. The user may also activate the new speed set-point using an actuator, such as an analog button (e.g., hard button, physical switch, etc.) or digital button (e.g., soft-button on a graphical user interface), which can be actuated (e.g., pushed or selected) to actively instruct an autopilot to transition to the new speed set-point.

[00171] With regard to FIG. 18, a user interface 1800 that illustrates a number of operational parameters of a vessel control and propulsion system for driving the marine vessel is shown. A user may have the ability to view the parameters of the vessel propulsion system. In an embodiment, the advisory system 1402 of FIG. 14 executing a simulation may vary any of the operational parameters of the propulsion system to determine fuel efficiencies. As previously described, a Monte Carlo or other simulation technique may be utilized in varying the operational parameters. Using machine learning, an analysis may be made as to how to adjust the operational parameters that have the highest likelihood of success to result in optimization of the fuel usage.

[00172] With regard to FIG. 19, a user interface 1900 showing illustrative operational parameters of the marine vessel is shown. As with the user interface 1800 of FIG. 18, the advisory system 1402 of FIG. 14 may vary any of the operational parameters, such as heading, specific thrusters (e.g., electric thrusters) that are more fuel efficient, to determine an optimal fuel usage. In an embodiment, the user interfaces 1800 and 1900 may enable an operator to set one or more operational parameters and allow the others to be varied by the simulator or other tool of the advisory system 1402.

[00173] With regard to FIG. 20, a chart 2000 showing illustrative total fuel by vessel mode of operation is shown. The chart 2000 includes a number of operational parameters (e.g., total fuel consumed (gals)), but any number of additional operational parameters may be included.

[00174] With regard to FIG. 21, a fuel usage report 2100 including voyage summary and recommendations and savings is shown. The voyage summary may show a number of operational parameters, start time, end time, voyage duration, average speed over ground, average fuel rate, and fuel usage. The recommendations and savings may include recommended speed over ground, optimal fuel rate, fuel savings percentage and gallons, and emissions savings. It should be understood that any number of additional and/or alternative operational parameters may be included.

[00175] With regard to FIG. 22, charts 2200 show (i) actual speed over ground and fuel rate curves 2202a and 2202b and (ii) recommended speed over ground and fuel rate curves 2204a and 2204b are shown. The recommended speed over ground and fuel rate curves 1404a and 1404b show that the fuel rate 1404b is essentially constant at 62.2 gal/hr. Depending on the environmental conditions (e.g., heavy winds and currents), the fuel rate may vary. For example, machine learning may be used to determine to burn more fuel and/or alternative trajectory during a segment of a trip to overcome a water current so that a vessel may use a down-stream current during a later segment of the trip to reduce fuel consumption overall during the trip. Other environmental factors and/or operational parameters may be utilized by the machine learning, artificial intelligence, and/or simulation system.

[00176] With regard to FIG. 23, a graph 2300 with usage curves of active generators and propulsion devices (e.g., propellers and generators) is shown. The usage of the active generators are shown to include two while the active propulsion varies from four to two and back to four, which means that less fuel may be used during the time that fewer propulsion devices are used, while providing sufficient propulsion during a voyage. The decision to use more or fewer propulsion devices may be based on simulation results, as previously described. That is, if a simulation determines a certain course is advantageous over other potential courses for fuel savings purposes that involved turning of propulsion devices, then the simulation may incorporate a variety of different settings that enables the system to use or disable different operational parameters during the simulation. For example, the number and type of propulsion systems may be manually and/or automatically turned ON and OFF by the simulation in determining the most efficient manner in operating the vessel for fuel efficiency, for example.

[00177] With regard to FIG. 24, a flow diagram 2400 of an illustrative simulation executed by an advisory system to determine more efficient fuel consumption for a marine vessel is shown. The flow diagram 2400 of the simulation may start at step 2402. At step 2404, a starting point A and ending point B of a vessel path may be set. The starting point A may be set based on current coordinates of the marine vessel. At step 2406, vessel parameters and fuel consumption may be calculated at different speeds of operation. In an embodiment, the different speeds may be set at 2 knots per hour increments. Other increments may alternatively be used. Alternatively, rather than using constant speeds, variable or dynamics speeds may be set based on environmental conditions that exist or are predicted to exist when the marine vessel is impacted by the environmental conditions. In calculating the vessel parameters and fuel consumption, machine learning and/or artificial intelligence may be utilized. For example, the artificial intelligence may be used to recognize previous weather and/or water conditions and determine optimal speed settings, headings, or other operational parameters that maximized fuel efficiency for those recognized environmental conditions. In an embodiment, a dynamic simulation that operates in real-time may be used to continuously update and generate new operational parameters (e.g., propulsion speed, number of propulsion systems utilized, type of propulsion systems utilized, etc.) that maximizes fuel efficiency may be used as a function of continuously updated environmental parameters, for example.

[00178] One embodiment of a system for navigating a marine vessel may include a user interface to enable a user to enter a destination location on a waterway to which cargo on the marine vessel is to be delivered. A processor may be in communication with thruster controllers configured to control thrusters on a vessel, and be configured to receive the destination location from the user interface, receive a time by which the cargo to be transported by the marine vessel is to arrive at the destination location, compute navigation points via which the marine vessel is to travel to the destination location, and cause the thruster controllers to generate thruster commands to cause the marine vessel to follow the computed navigation points.

[00179] The processor, in computing the navigation commands, may further be configured to receive a measured environmental forces along a route between a location of the vessel and the destination location, and compute updated navigation points as a function of the environmental forces. The processor may further be configured to compute a departure time that the vessel is to leave to ensure arrival by the destination time. The departure time may be the latest time that the vessel is to leave to be able to arrive at the destination location by the arrival time. The departure time may be an optimal departure time that minimizes fuel consumption by the thrusters. The processor may further be configured to execute a simulation using measured environmental forces along a route between a current location of the vessel and the destination location, and, in response to executing the simulation, cause simulation results indicative of projected fuel usage along the current route and an alternative route to be displayed.

[00180] The processor may further be configured to determine that an earliest arrival time is after the time that the cargo is to arrive at the destination location, and to generate a report indicative of the determined late arrival based on the determined arrival time. In generating the report, the processor may further be configured to automatically generate the report in response to determining that the earliest arrival time is after the time that the cargo is to arrive at the destination location. The processor may further be configured to generate the report prior to or during transport of the cargo to the destination location. The report may further be configured to automatically communicate the report (e.g., to an onshore location, such as the destination location). [00181] The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art, the steps in the foregoing embodiments may be performed in any order. Words such as“then,”“next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.

[00182] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed here may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

[00183] Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to and/or in communication with another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[00184] The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description here.

[00185] When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed here may be embodied in a processor- executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used here, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.

[00186] The previous description is of a preferred embodiment for implementing the invention, and the scope of the invention should not necessarily be limited by this description. The scope of the present invention is instead defined by the following claims.