KnowledgeScape, an Object oriented Real time Adaptive Modeling and Optimization Expert Control System for the Process Industries

Size: px
Start display at page:

Download "KnowledgeScape, an Object oriented Real time Adaptive Modeling and Optimization Expert Control System for the Process Industries"

Transcription

1 KnowledgeScape, an Object oriented Real time Adaptive Modeling and Optimization Expert Control System for the Process Industries Contents Introduction Intelligent Software Objects and their use in KnowledgeScape Artificial Intelligence and Process Control Neural Networks Genetic Algorithms Crisp Rules Fuzzy Rules Putting it all together Configuring an application in KnowledgeScape Writing crisp and expert control rules Creating adaptive, on line neural models of the process Creating genetic algorithm optimizers for the process Results in the Minerals Processing Industry Conclusions References Introduction KnowledgeScape is an object oriented real time expert control system for the process industries that has built in adaptive modeling and optimization capabilities. The primary use of KnowledgeScape is the on line continuous monitoring of plant performance and the calculation of new process set points that maintain and optimize performance as feed and operating conditions vary. Conceptually, KnowledgeScape is designed around the idea of intelligent software objects that represent real world plants and processing equipment. These software objects can be connected together representing flow of material from one object to the next or they can be placed within each other representing the concept of groups of

2 equipment forming a circuit. These concepts are so powerful and unique that they have been patented (United States Patent Number 6,112,120) One element of intelligence is the ability to predict one s future. This concept is embodied within KnowledgeScape via adaptive on line neural networks. Reasoning about the past to determine process set points that will better drive the plant to more desired levels is accomplished by a real time expert system that allows knowledge to be recorded as both crisp and fuzzy rules. Rule based control is centered around the concept of heuristics which are rules of thumb that have been developed over time and represent generalized experiences that can be relied upon in the future. A subtle and infrequently discussed fact is that the rules themselves represent an inverse model of the process. This leads to the question of what other types of models can be created for the processes and what could be done with them if they are more robust that the heuristic rules. KnowledgeScape uses on line neural network models to adaptively model the process, which adds to the unique features of KnowledgeScape. The predicted future values of important process variables can be used in the rule system and additionally by a genetic algorithm component of KnowledgeScape to ask the models what would be the best new process set points to achieve the desired control objectives. This model based optimization ability adds true artificial intelligence to KnowledgeScape in that it creates the basis for learning about the process. By enlarge, rule based expert control are quite static in nature. Knowledge about the process is contained within the rules and represents the knowledge of those who wrote the rules. Models that continually adapt to accurately represent the process as feed conditions and equipment conditions changes add learning to KnowledgeScape. Crisp and fuzzy rules, adaptive models and genetic optimization all require substantial computing resources, especially if they are on line and are being used simultaneously. KnowledgeScape uses a distributed hardware architecture that allows computers to be added at will to the control system to meet the computational needs as a systems grows. Intelligent Software Objects and their use in KnowledgeScape Configuring KnowledgeScape is accomplished by building the flow sheet of the plant or process being controlled using KnowledgeScape s concept of intelligent software object. Figure 1. below is taken from the patent and describes the basic elements of an intelligent software object.

3 Expert System Objects Rules Knowledge Base Crisp Rules Fuzzy Rules Communicator Translator Objects Intelligent Software Objects Predictor Objects Optimizer Objects Sensor Objects Adaptive Models Objects Trained Models Figure 1. Diagram of an intelligent software object as defined in the KnowledgeScape patent. Figure 2. shows a screen capture of the configuration window where a flow sheet is represented. Each box or node represents either a piece of processing equipment or, where a node surrounds other nodes it then represents a plant area or section.

4 Figure 2. Configuration using intelligent software objects to represent a plant. The nature of the intelligence associated with each node is shown by the node menu options in Figure 3. By clicking on a node and looking at the menu options for that node it is seen that the options include configuring 1) a predictor/model, 2) an optimizer, and 3) process rules.

5 Figure 3. Each node, or intelligent software object has built in artificial intelligence capabilities. Artificial Intelligence and Process Control Human intelligence is characterized by such things as 1) the ability to reason and draw conclusions given an incomplete and sometimes partially wrong sets of facts, 2) given a set of circumstances, or facts, predict future events or conditions, 3) based on experience gained in one environment or set of conditions, create generalizations that are true going from one situation to another and 4) given experience gained in one environment or from one set of conditions abstract generalizations applicable in broader terms. KnowledgeScape has built in artificaial intelligence tools that are integrated in a way so as to achieve performance that can be described as intelligent. In one mineral processing application the adaptive neural network models were used which the genetic algorithm optimization functions to identify and run the plant at a combination of set points that were novel. The plant manager s statement that, it taught us something we didn t already know really sums up the value of KnowledgeScape as a tool to improve and sustain plant performance.

6 The point is that the adaptive models had learned more about the cause and effect physical realities of the process than was understood by the operators or the engineers who had written the heuristic control rules contained within the expert system. Interfacing KnowledgeScape to the Real World KnowledgeScape is primarily used as a real time control system, and thus, needs to be interfaced to other systems that actually monitor and control plants. It can be thought of as a supervisory control system that monitors processes through primary stabilizing control systems and then calculates new process set points and sends them to the stabilizing control systems form implementation. There is no limitation on how many systems can be connected to KnowledgeScape to supply process information. Many systems have three or four of KnowledgeScape s data servers running piping data into and out of KnowledgeScape. Figure 4 shows the configuration screen used to configure one such data server. As the screen shot shows there are many built in drives to KnowledgeScape. Figure 4. Data Server Configuration within KnowledgeScape Real Time Expert Control

7 The heart of KnowledgeScape is the real time expert system that allows the designer to encapsulate knowledge about a process with both crisp and fuzzy rules. The ultimate objective being the monitoring of process conditions then based on the rules calculating new process set points. Other uses of the expert rule system might be the creation of smart alarm systems where alarms are monitored, characterized and then reported in logical ways that also might point operators to quick corrective action or provide advanced analysis of causes and effects of the alarms. Rules in KnowledgeScape KnowledgeScape is designed to aid the control system designer by compiling rules as they are entered and checking for correct syntax. Rules can also organized according to the flows and hierarchies represented in the process drawing. This schema results in a very logical and easily maintained system. Basic creation and editing of rules is illustrated in the following screen shots. Because of the object oriented basis of KnowledgeScape it is possible to interact with each element of KnowledgeScape by simply pointing at it and clicking or by directly going to the system function via the main menu bar. This concept is shown in figures 5 and 6.

8 Figure 5. Pointing to an intelligent software object representing a Sag_Mill to create an associated process control rule. Figure 6. Opening the general rule editor directly from the main KnowledgeScape menu bar. Specifically, after configuring the process drawing with intelligent software objects or nodes, the next step is to add expert system rules to accomplish the control objectives. The expert system of KnowledgeScape is a flexible environment for creating rules that control the nodes and attributes in the process drawing. It employs a powerful rule syntax within a structured execution environment. Selecting the Edit Rules menu option of the node s pop up menu or selecting the Rule Browser from the main menu results in the expert system rule browser opening with the window title indicating the name of the node for which it was opened. The rule configuration user interface contains the node list and the rules window with tabs for each rule group and the rule schedule.

9 Rules are edited by double clicking on the rule or by highlighting the rule and selecting Edit Rule from the right mouse button pop up menu. Editing a rule will open the rule editor user interface with the selected rule as the text in the rule text editor widget. Rules are added to the group by selecting Add Rule from the right click menu. Adding a rule will open the rule editor user interface with the rule text editor widget blank. After accepting the rule, the current rule will be replaced or the new rule will be added to the rule group. Figures 7 and 8 illustrate the concept of rule groups. Rule groups can be thought of as a bin containing expert system rules. You decide what bin or rule group contains which rules. In other words, rule groups provide an organizational framework that helps you simplify configuration of the expert system by building your control strategy in parts. Figure 7. Rule Browser For example, you can create a node that represents a power generation plant and define a rule group for high demand, low demand, and maintenance. You can then select the high demand rule group and configure rules that ensure the plant operates at peak efficiency during periods of high demand. Then, you can select the low demand rule group and configure other rules that ensure the plant conserves resources during periods of low demand. Later, when additional rules need to be created to ensure environmental discharge permit limits are not exceeded during periods of high demand, you can return to the high demand rule group and make the changes. Because the high demand rules are encapsulated in the high demand rule group, these changes can be made without

10 considering the details of the rules in the low demand or maintenance rule groups. This organizational concept is shown in Figure 8. Figure 8. Rule Groups for a node or intelligent software object Rule groups are used to logically organize the control application by allowing you to work at appropriate levels of detail so that complex process control issues requiring hundreds of rules can be broken into manageable smaller parts. The actual node based rule browser, shown in Figure 9, contains a Schedule type in box, Fuzzy check box, Crisp check box, and a rule list. The Schedule type in box displays the frequency at which the expert system inference engine will execute the selected rule group. The value in the type in box is an integer number of seconds. The Fuzzy checkbox controls whether rules that employ fuzzy logic are displayed in the rule list. The Crisp check box controls whether rules that do not employ fuzzy logic (rules that employ only crisp logic) are displayed in the rule list. The rule list display shows all rules in the selected rule group when the Fuzzy and Crisp check boxes are selected. Figure 9. Rule Group Browser The Rule Editor, shown in Figure 10, is used to configure individual rules and optimizer functions. The Rule Editor user interface window contains several data fields and widgets. These are:

11 Figure 10. Context Sensitive Rule Editor The text field at the top of the window provides text editing capabilities to configure expert system rules and optimizer functions. The user clicks in the text field to position the cursor appropriately and then uses the keyboard or selects entries in the Keywords, Intrinsic Functions, and Context Options lists to configure valid rule and function syntax. As text is added to the rule text editor, KnowledgeScape parses the text and updates entries in the Keywords, Intrinsic Functions, and Context Options lists. When finished, the user accesses the right mouse button pop up menu options to either accept the rule or function (Accept Rule), accept the rule and close the grammar assistant (Accept and Close), or (Accept as New). The right mouse menu also allows copy, cut, paste, find, replace, and undo for editing the text of the rule. The Current Context field displays the name of the KnowledgeScape object that provides the context for the rule. As the rule is created the current context will indicate the context of the last typed node or attribute. When configuring functions for an optimizer the current context field will initially display the name of the optimizer. The current context will update as the rule or function is edited. If the text tank level is entered into the rule text editor widget, the level attribute of the tank node will become the current context and all operations in the selection lists will be based on that context. Two indicator fields display the parse status. The upper indicator displays whether the text contained in the rule text editor was successfully parsed. Parsing occurs interactively as each character is typed, and if the current text is invalid or incomplete the upper

12 indicator will display the statement number that needs to be modified to make the rule valid. The lower indicator displays hints and information about the expected argument types for assignments and conditions, and expected input types to complete the rule or function being edited. The Expert System Method Arguments field indicates the expected argument types for references to intrinsic and context option functions that accept arguments. For example, if COS( is entered into the rule text editor widget, this field will display Number indicating that one argument is expected that is a number. The Expert System Method Return Type field indicates the expected return type for references to intrinsic and context option functions. For example, if CEILING( 3.4 ) is entered into the rule text editor widget, this field will display Number indicating that the intrinsic function returns a number. The Keywords list displays all keywords that are valid to complete the rule or function. As text is entered into the rule text editor widget, the keywords list is updated to display only valid entries. If the character s is typed, only the selections that begin with s are displayed. Double clicking on an entry in the keywords list causes the selected entry to be added to the rule text editor. The Intrinsic Functions list displays all valid intrinsic functions available to complete the rule or function. As text is entered into the rule text editor widget, the intrinsic functions list is updated to display only valid entries. If the character c is typed, only options that begin with c are displayed. Double clicking on an entry in the intrinsic functions list causes the selected entry to be added to the rule text editor. The Context Options list displays valid options available to the current context. Entries in this list include the names of attributes, connections, sub nodes, functions, etc., within the current context. As text is entered into the rule text editor widget, the context options list is updated to display only valid entries. If the character c is typed, only options that begin with c are displayed. Double clicking on an entry in the context options list causes the selected entry to be added to the rule text editor. The hierarchy of nodes in the process drawing determines the scope of the node in relation to other nodes. The node s scope determines which nodes and attributes can be accessed by the node s expert system rules. The scope of a node includes every sub node, any sub node of its sub nodes, and nodes which it is connected to. For example, consider the car, fuel tank, and fuel pump system illustrated in Figure 11.

13 Figure 11. Simple representation of a car in KnowledgeScape The scope of the car node allows it to see or access the fuel tank and its level, and the fuel pump and its pressure and current. Therefore, you can configure rules in the car node that refer to the fuel tank and fuel pump. However, the car node is not in the scope of the fuel tank node. The fuel pump is on the same hierarchy level with the fuel tank and because it is connected to the fuel tank, the fuel pump node is in the scope of the fuel tank node. The fuel pump has only the fuel tank in its scope. The node hierarchy and its scope determine the rule syntax required to access the attributes of nodes in expert system rules. To access attributes of the selected node, you simply use the attribute s name in the rule syntax. For example, if the car node in the previous figure has attributes named, time_to_destination, speed, miles_to_destination, miles_traveled, miles_per_gallon and top_speed, you would refer to those attribute directly in the rule syntax. that illustrate rules that can be configured in the car node are shown in Figure 12.

14 Figure 12. Rule Browser on the Node Car. To access attributes of sub-nodes of the selected node, you must include the name of the node before the name of the attribute in the rule syntax. For example, consider the following rules that access the fuel tank level, fuel pump pressure, and fuel pump current:

15 Figure 13. IF fuel_tank level > 0.0 THEN miles_per_gallon = miles_traveled / ( fuel_tank level * 13.5 ) To access the attributes of sub nodes at levels lower in the hierarchy, you must specify the name of each node in the hierarchy, starting at the first sub node down to the target sub node followed by the attribute name. The form of the rule syntax is: subnode_1_name subnode_n_name subnode_n_attribute_name The three basic KnowledgeScape fuzzy expert system rule constructs are indicated below: 1. <Action>, 2. IF <Condition> THEN <Action>, or 3. IF <Condition> THEN <Action> ELSE <Action> Any action that can be configured in an IF-THEN or IF-THEN-ELSE rule can be configured without any conditions. This is analogous to configuring a rule where the condition is always true. Some of the most common types of actions are:

16 Crisp Equation Actions actions that calculate values and store the resulting value in an attribute of a node are equations. Equations typically contain an equal sign (=). For example, the following rule has the form of an equation action: miles_traveled = miles_traveled + ( speed * 5 / 3600 ) Fuzzy Equation Actions actions that calculate values and store the resulting value in an attribute of a node using fuzzy logic mathematics. Fuzzy logic equations contain the IS keyword. For example, the following rule has the form of an equation action: speed IS fast Report Actions actions that generate information messages that are reported to information logs. For example, the following rule is a report action: REPORT Fuel pump maintenance required. Pump pressure =, fuel_pump pressure, Pump current draw =, fuel_pump current Invoke Actions actions that cause other rule groups to execute. For example, the following rule is an invoke action: INVOKE fuel_pump high_pressure_strategy Send Actions actions that send data to an external interface to be communicated to an external system. For example, the following rule is a send action: SEND fuel_pump current Update Actions actions that cause an internal program to run, such as one that recalculates histogram values: UPDATE histogram_level Conditions configured in an IF THEN or IF THEN ELSE rule generate a truth value. The truth value for crisp conditions will either be true or false. The truth value for fuzzy conditions is a value between 0.0 and 1.0. The two types of conditions are: Crisp Conditions conditions, reduced to their most simple form, contain two values separated by a combination of mathematical operators. Valid operators include: Equal (=) test if values are equal.

17 Not Equal (~=) or (<>) test if two values are not equal. Greater Than (>) test if one value is greater than another value. Greater Than Or Equal (>=) test if one value is greater than or equal to another value. Less Than (<) test if one value is less than another value. Less Than Or Equal (<=) test if one value is less than equal to another value. Statements that refer to values can be inserted for values on either side of the operator. For example, the following demonstrates the syntax of a valid crisp condition: miles_traveled >= miles_to_destination Fuzzy Conditions fuzzy logic conditions contain a node attribute name, the fuzzy IS operator, and a fuzzy membership function name. For example, the following condition demonstrates the syntax of a valid fuzzy condition: fuel_pump current IS high Fuzzy rules always are put at the top of the rules list in the expert system Rule Browser. They have no need for a particular order because they are evaluated simultaneously and then their combined result is calculated. Crisp rules do rely on the order they are inserted into the expert rule browser because they are fired in the order they are listed. Once rules have been configured in rule groups of the nodes in your process drawing, they need to be scheduled for execution. Often it will be most convenient to create an administrative group of rules that is scheduled to run at a regular frequency whose rules invoke the other rule groups for the appropriate action. Neural Networks in KnowledgeScape Neural networks are a generic modeling concept based loosely upon a parallel computing model of the human brain. Research has shown them to be capable of modeling any nonlinear relationship as long as there is cause and effect information in the modeled data. Many of the screens used in creating neural networks in KnowledgeScape are shown in Figures 14 through 15..

18 Figure 14. Predictors and Neural Network models in KnowledgeScape

19 Figure 15. Topology of a Neural Network

20 Figure 5. Configuration Settings for a Neural Network In KnowledgeScape we have created the concept of competitive models that vie to be deemed accurate enough to be selected by the optimization component to be used to predict the process and be used in optimization. This is accomplished by what we call Predictors and their models. A Predictor with its associated models is a collection of neural network models who have been configured to all predict the exact same process variables. Each of the individual models however has a unique design. This concept acknowledges the reality that it is difficult to create one super model that is accurate under all processing conditions. Each of these models can be set up to predict continuously and then the Predictor automatically monitors their predictions and what actually occurred in the process to determine which model is actually predicting the best Figures x through y below show KnowledgeScape s predictors and neural network models in action. The first plot illustrates the adaptive nature of these models after a critical process sensor was recalibrated. Figure x. Adaptive Model Predictions in Real time Figure y.

21 Genetic Algorithms in KnowledgeScape With adaptive models that aptly demonstrate their ability to accurately predict future process states given current conditions what additional control benefits can be achieved by using them in constrained optimization? KnowledgeScape uses genetic algorithms to interrogate the trained models as an alternate technology to determine new process set points. Genetic algorithms are search algorithms based on the mechanics of natural selection and natural genetics. They combine survival of the fittest among string structures with a structured yet randomized information exchange to form a search algorithm with some of the innovative flair of human search. The central theme of research on genetic algorithms has been robustness, the balance between efficiency and efficacy necessary for survival in many different environments. Genetic algorithms are theoretically and empirically proven to provide robust search in complex spaces. (Goldberg, 1989). KnowledgeScape s use of genetic algorithms is illustrated in the following figures. Figure yyy. Basic Configuration Of An Optimizer in KnowledgeScape. Figure xxx. Creation Of The Fitness Function That is Either Minimized or Maximized By the Genetic Algorithm Documentation of Performance Reports and KnowledgeScape is perhaps the first distributed computer system that has integrated the powerful capabilities of real time expert control, on line adaptive and competitive neural network models, genetic algorithm optimization into one software system designed to monitor and control any industrial process. Careful reflection on the descriptions of functions of KnowledgeScape suggests that its design can be used in a much broader sense. Specifically, KnowledgeScape can be used to embed intelligence in any process. Process in this sense means any collection of actions that make up a system in the broadest of terms. An order entry process has customers, inventory, ship dates, price lists etc. KnowledgeScape can be easily used to diagram the process, specify each element of the process and then control the process as attributes of the elements change as the process is used.

22 Documenting performance is key to the success of any control project. KnowledgeScape has extensive reporting, trending, ing and statistical analysis capabilities built in. Figures x y show screen of many of these features. Histograms are a very powerful way to keep track of performance. It is possible to write rules that govern when data is actually collected and put into a histogram. In this way it is possible to easily track performance as a function of what control strategy is being run or on specific operating conditions. Figure x. Histogram Trends of process data, set points, model predictions and optimized set points are commonly used to monitor the process as well as the performance of the control strategy(s).

23 Figure x. Trend

24 Figure x. Report Figure x. Configuration

25 Putting it all together Configuring an application in KnowledgeScape Writing crisp and expert control rules Creating adaptive, on line neural models of the process Creating genetic algorithm optimizers for the process Results in the Minerals Processing Industry Conclusions References Genetic Algorithms in Search, Optimization and Machine Learning, David E. Goldberg 1989 Adaptive Object Oriented Optimization Software System. United States Patent number 6,112,126 dated August 29, 2000.

26 Appendixes Keywords The following is a list of keywords that will be available in the grammar assistant with an example of the use after each keyword. These will be prompted into the keyword window as needed in the rule structure. AGO Used in conjunction with VALUE keyword to reference the database. VALUE OF attribute AS OF number scale AGO Attribute is a location and name of an attribute. Number is an integer value. Scale can be DATAPOINT(S), WEEK(S), DAY(S), HOUR(S), MINUTE(S), or SECOND(S). VALUE OF power AS OF 10 MINUTES AGO VALUE OF load AS OF 5 DATAPOINTS AGO AS Used in conjunction with VALUE keyword to reference the database. VALUE OF attribute AS OF number scale AGO Attribute is a location and name of an attribute. Number is an integer value. Scale can be DATAPOINT(S), WEEK(S), DAY(S), HOUR(S), MINUTE(S), or SECOND(S). VALUE OF power AS OF 10 MINUTES AGO VALUE OF load AS OF 5 DATAPOINTS AGO DATAPOINT(S) Used in conjunction with VALUE, AVG, STDEV, and RATEOFCHANGE keywords to reference a specific number of datapoints in the database. AVG OF attribute OVER number DATAPOINTS Attribute is a location and name an attribute. Number is an integer value. VALUE OF power AS OF 1 DATAPOINT AGO AVG OF flow OVER 7 DATAPOINTS STDEV OF production OVER 25 DATAPOINTS RATEOFCHANGE PER DATAPOINT OF speed OVER 5 DATAPOINTS DECLARE Used to assert temp names as variables within a rule.

27 DECLARE tempname1, tempname2... tempnamen Remarks This type of rule writing is very powerful, it allows a user to declare local variable that make elaborate equation writing a bit more obvious rather than having lengthy rules that are difficult to read. There are however precautions to take. The local variables store whatever the value for the attribute named but only hold it for this one rule, they also have to be transferred back into an attribute if they wish to be stored. The last rule shows a case when the local are transformed back into a stored attribute value. Saying X =Y/Z will not work. declare X, Y, Z X= production Y= tank level Z= mill speed IF X >Y THEN REPORT production =, X AND SEND X ELSE Production = X + tonnage/(y *Z) INVOKE Branch rule firing to another location in the database. INVOKE node group Node is the node name configured with the desired rule group. Group is the name of the rule group containing the rules desired to be fired. Remarks Omit node name in rule syntax if invoked rule group exists on the same node After all rules in the newly invoked group have fired the inference engine returns to the rule preceding the original INVOKE call. INVOKE emergency_rules INVOKE main_conveyor status IS IF speed IS high AND pressure > 3000 THEN load = VALUE OF load AS OF 5 DATAPOINTS AGO AND REPORT Load is High! OF Used in conjunction with a database accessing keywords such as AVG, RATEOFCHANGE, STDEV, and VALUE. AVG OF attribute OVER number scale RATEOFCHANGE PER scale OF attribute OVER number scale STDEV OF attribute OVER number scale VALUE OF attribute AS OF number scale AGO

28 Attribute is a location and name of an attribute. Number is an integer value. Scale can be DATAPOINT(S), WEEK(S), DAY(S), HOUR(S), MINUTE(S), or SECOND(S). AVG OF power OVER 10 MINUTES RATEOFCHANGE PER DATAPOINT OF load OVER 5 DATAPOINTS STDEV OF production OVER 1 HOUR VALUE OF speed AS OF 4 DATAPOINTS AGO OVER OF Used in conjunction with a database accessing keywords such as AVG, RATEOFCHANGE, STDEV, and VALUE. AVG OF attribute OVER number scale RATEOFCHANGE PER scale OF attribute OVER number scale STDEV OF attribute OVER number scale VALUE OF attribute AS OF number scale AGO Attribute is a location and name of an attribute. Number is an integer value. Scale can be DATAPOINT(S), WEEK(S), DAY(S), HOUR(S), MINUTE(S), or SECOND(S). AVG OF power OVER 10 MINUTES RATEOFCHANGE PER DATAPOINT OF load OVER 5 DATAPOINTS STDEV OF production OVER 1 HOUR VALUE OF speed AS OF 4 DATAPOINTS AGO PER power =power +RATEOFCHANGE PER DAY OF power OVER 1 WEEK RATEOFCHANGE Returns the rate of change of an attribute over the specified time period. RATEOFCHANGE PER scale OF attribute OVER number scale Attribute is a location and name of an attribute. Number is an integer value. Scale can be DATAPOINT(S), WEEK(S), DAY(S), HOUR(S), MINUTE(S), or SECOND(S). RATEOFCHANGE PER MINUTE OF power OVER 10 MINUTES RATEOFCHANGE PER DATAPOINT OF load OVER 5 DATAPOINTS REPORT / TO Writes text messages to the log utility. REPORT 'message' TO 'log' REPORT 'message', attribute,'message' TO 'log' Message is the body of script sent to the log writer. Log is the destination log name where the text message will be written. Attribute is a location and name of an attribute

29 Remarks Omitting the TO keyword and destination log name will write the text message to the default "REPORT" log. Carriage returns are allowable inside text messages. Insert attribute values into messages by following the example below. If the destination log does not exist it will be created when the REPORT rule is fired. REPORT 'Knowledgebase Running' REPORT 'Feed Pressure Too High!' TO 'emergency_log' REPORT 'Feed Flow =', flow,' gpm.' RETURN RETURN opt_production (This rule is used in the optimizer, usually the finished function to return the final value that the optimizer chose) SEND Transmits attribute contents to external data devices via the data server bridge. SEND attribute Attribute is a location and name of an attribute. Remarks Attribute must have data server configuration to implement the SEND command. SEND setpoint SEND valve output STDEV Returns the standard deviation of the specified attribute. STDEV OF attribute OVER number scale Attribute is a location and name of an attribute. Number is an integer value. Scale can be DATAPOINT(S), WEEK(S), DAY(S), HOUR(S), MINUTE(S), OR SECOND(S). STDEV OF power OVER 10 MINUTES STDEV OF load OVER 5 DATAPOINTS IF / THEN / ELSE Conditional clause. Compares two or more conditions for equality. If results are true, the THEN instructional set is used; if the results are false, the ELSE instructional set is used. IF condition THEN action ELSE action Condition phrase can be either a fuzzy or crisp comparison. Action can be either a fuzzy or crisp rule.

30 IF tank level 90 THEN pump speed = 100 IF flow IS high THEN feed_rate IS low IF pump status = 1 THEN valve status = 1 ELSE valve status = 0 IF message = "open" THEN output = 100 ELSE output = 0 / TO / CC / SUBJECT / ATTACH Automatically send messages anywhere in the world via . Using the keywords above in the following syntax any PC can be updated by KnowledgeScape via the world wide web. 'text message' TO 'somebody@somewhere' CC 'somebodyelse@somewhereelse' SUBJECT 'text description' ATTACH 'drive:\file' Text message is the body of the e mail script. Somebody@somewhere is the address of the primary recipient. Somebodyelse@somewhereelse is the address of the secondary recipient. Text description is the subject script. Drive:\file is the location and name of the file intended to be attached to the message. Example 'Yesterdays average production.' TO 'CEO@headquarters.com' CC 'accounting@headquarters.com' SUBJECT 'Daily plant production' ATTACH 'C:\temp\shift_report.txt' UPDATE / USING Add data point to histogram data set. UPDATE histogram USING attribute Histogram is a name of a histogram. Attribute is a location and name of an attribute. UPDATE histogram_1_level USING sump level UPDATE histogram_feed_off USING feed_pv VALUE IF speed IS high AND pressure > 3000 THEN load = VALUE OF load AS OF 5 DATAPOINTS AGO AND REPORT Load is High! AND INVOKE high_load_emerg_rules SECOND(S) / MINUTE(S) / HOUR(S) / DAY(S) / WEEK(S) Used in conjunction with VALUE, AVG, STDEV, and RATEOFCHANGE keywords to reference the last period of time in the database. STDEV OF attribute OVER number MINUTES Attribute is a location and name of an attribute. Number is a integer value. VALUE OF power AS OF 1 MINUTE AGO AVG OF flow OVER 5 MINUTES STDEV OF production OVER 1 HOUR RATEOFCHANGE OF speed OVER 30 SECONDS

31 The following are a list of the available callouts with an example rule next to them. The grammar assistant will show all applicable functions as the user writes the rules. ABS counter= ABS(counter 10) CEILING Rounds a floating point value to the next highest whole integer. Intrinsic Functions CEILING(value) Value is either a number or attribute name. CEILING(1.1) equals 2 CEILING( ) equals 15 CEILING( 3.2) equals 3.0 CEILING(setpoint) COS Returns the cosine of a number or attribute. Cosine argument is always calculated in radians. COS(value) Value is either a number or attribute name. COS(1.1047) equals COS(angle) CURRENTTIME Returns an integer value equaling the number of seconds from the year CURRENTTIME(value) Value is either a number or attribute name representing the offset in seconds from the current time. CURRENTTIME(0) equals the current time without offset CURRENTTIME(3600) equals one hour in the future EXP Returns the exponential value of the natural logarithm of e ( ) EXP(value) Value is either a number or attribute name. EXP(2.13) equals EXP( 5) equals

32 EXP(power) FLOOR Rounds a floating point value to the next lowest whole integer. FLOOR(value) Value is either a number or attribute name. FLOOR(1.9) equals 1 FLOOR(9.25) equals 9 FLOOR( 3.2) equals 4.0 FLOOR(flow) IDAY / IMINUTE / ISECOND / IMONTH / IWEEK / IYEAR / IHOUR Returns the current time in numerical format as specified by the function name. IDAY() or IMINUTE() or ISECOND() or IMONTH() or IWEEK or IYEAR() or IHOUR() IDAY() IMINUTE() LN Returns the natural logarithm based on e ( ) LN(value) Value is either a positive number or attribute name. LN(1.5) equals LN(5) equals LN(growth) LOG Returns the logarithm base 10 LOG(value) Value is either a positive number or attribute name. LOG(1.5) equals LOG(5) equals LOG(growth) MAX load= MIN(100, (tonnage*density))

33 MIN/MAX Returns the smallest value between two arguments MAX(value1, value2) Value1 and Value2 can be numbers, attribute names, or expressions. MIN(3, 101) equals 3 MIN( 6, 3.2) equals 6 MIN( 12, MIN( 6, 10)) equals 12 MIN(feed, power * 5) NUMVALFOR production=numvalfor (status) Status is a non numerical attribute. ROUND Changes a decimal (floating point) number to the closest integer. ROUND(value) Value can be numbers, attribute names, or expressions. ROUND(7.9) equals 8 ROUND( 6.5) equals 7 (ROUND((1.7256)*100))/100 equals 1.73 ROUND(tonnage) SIN Returns the sine of a number or attribute. Sine argument is always calculated in radians. SIN(value) Value is either a number or attribute name. SIN(0.707) equals SIN(angle) SQRT Returns the positive square root of a number or attribute. SQRT(value) Value can be a number, attribute name, or expression. SQRT(4) equals 2 SQRT(flow)

34 TAN Returns the tangent of a number or attribute. TAN(value) Value can be a number, attribute name, or expression. TAN(1.14) equals TAN(angle) TRUNCATE Drops digits preceding the decimal point on a floating point attribute or number. TRUNCATE(value) Value is either a number or attribute name. TRUNCATE( ) equals 7 TRUNCATE(setpoint) Context Options These options are available to you for use in the writing of rules and will be prompted to you as necessary when writing the rules. The majority of the options available to the user in this column will be node names and attribute names. The other options will used in the optimizer. See the chapter on Optimizers for a more detailed description of the options specifically associated with optimizers

Using Game Maker 8: GML Scripting

Using Game Maker 8: GML Scripting Using Game Maker 8: GML Scripting Mike Bailey mjb@cs.oregonstate.edu http://cs.oregonstate.edu/~mjb/gamemaker Scripting using the Game Maker Language (GML) There are two neat things about using GML: 1.

More information

Graphing Calculator Scientific Calculator Version 2.0

Graphing Calculator Scientific Calculator Version 2.0 Graphing Calculator Scientific Calculator Version 2.0 www.infinitysw.com/ets March 14, 2017 1 Table of Contents Table of Contents 1 Overview 3 2 Navigation 4 3 Using the Calculator 5 Display 5 Performing

More information

LECTURE 0: Introduction and Background

LECTURE 0: Introduction and Background 1 LECTURE 0: Introduction and Background September 10, 2012 1 Computational science The role of computational science has become increasingly significant during the last few decades. It has become the

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Department of Computer Science and Information Systems Tingting Han (afternoon), Steve Maybank (evening) tingting@dcs.bbk.ac.uk sjmaybank@dcs.bbk.ac.uk Autumn 2017 Week 4: More

More information

The Very Basics of the R Interpreter

The Very Basics of the R Interpreter Chapter 2 The Very Basics of the R Interpreter OK, the computer is fired up. We have R installed. It is time to get started. 1. Start R by double-clicking on the R desktop icon. 2. Alternatively, open

More information

CT 229 Java Syntax Continued

CT 229 Java Syntax Continued CT 229 Java Syntax Continued 06/10/2006 CT229 Lab Assignments Due Date for current lab assignment : Oct 8 th Before submission make sure that the name of each.java file matches the name given in the assignment

More information

I/A Series Software Spreadsheet

I/A Series Software Spreadsheet I/A Series Software Spreadsheet The I/A Series Spreadsheet is an interactive, easy-to-use tool, that allows process operators, engineers, and managers to manipulate data in a row/column format and graph

More information

JUN / 04 VERSION 7.0

JUN / 04 VERSION 7.0 JUN / 04 VERSION 7.0 PVI EWEXEME www.smar.com Specifications and information are subject to change without notice. Up-to-date address information is available on our website. web: www.smar.com/contactus.asp

More information

9. Elementary Algebraic and Transcendental Scalar Functions

9. Elementary Algebraic and Transcendental Scalar Functions Scalar Functions Summary. Introduction 2. Constants 2a. Numeric Constants 2b. Character Constants 2c. Symbol Constants 2d. Nested Constants 3. Scalar Functions 4. Arithmetic Scalar Functions 5. Operators

More information

Functions. Systems Programming Concepts

Functions. Systems Programming Concepts Functions Systems Programming Concepts Functions Simple Function Example Function Prototype and Declaration Math Library Functions Function Definition Header Files Random Number Generator Call by Value

More information

Chapter 3 - Functions

Chapter 3 - Functions Chapter 3 - Functions 1 Outline 3.1 Introduction 3.2 Program Components in C++ 3.3 Math Library Functions 3.4 Functions 3.5 Function Definitions 3.6 Function Prototypes 3.7 Header Files 3.8 Random Number

More information

Dr Richard Greenaway

Dr Richard Greenaway SCHOOL OF PHYSICS, ASTRONOMY & MATHEMATICS 4PAM1008 MATLAB 2 Basic MATLAB Operation Dr Richard Greenaway 2 Basic MATLAB Operation 2.1 Overview 2.1.1 The Command Line In this Workshop you will learn how

More information

C++, How to Program. Spring 2016 CISC1600 Yanjun Li 1

C++, How to Program. Spring 2016 CISC1600 Yanjun Li 1 Chapter 6 Function C++, How to Program Deitel & Deitel Spring 2016 CISC1600 Yanjun Li 1 Function A function is a collection of statements that performs a specific task - a single, well-defined task. Divide

More information

What did we talk about last time? Examples switch statements

What did we talk about last time? Examples switch statements Week 4 - Friday What did we talk about last time? Examples switch statements History of computers Hardware Software development Basic Java syntax Output with System.out.print() Mechanical Calculation

More information

Basic types and definitions. Chapter 3 of Thompson

Basic types and definitions. Chapter 3 of Thompson Basic types and definitions Chapter 3 of Thompson Booleans [named after logician George Boole] Boolean values True and False are the result of tests are two numbers equal is one smaller than the other

More information

Introduction to Programming

Introduction to Programming Introduction to Programming session 9 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2010 These slides are created using Deitel s slides Sahrif University of Technology Outlines

More information

Introduction to Programming with Python: overview

Introduction to Programming with Python: overview Introduction to Programming with Python: overview 1 Some influential ones: FORTRAN science / engineering Languages COBOL business data LISP logic and AI BASIC a simple language 2 Programming basics code

More information

C Functions. 5.2 Program Modules in C

C Functions. 5.2 Program Modules in C 1 5 C Functions 5.2 Program Modules in C 2 Functions Modules in C Programs combine user-defined functions with library functions - C standard library has a wide variety of functions Function calls Invoking

More information

1001ICT Introduction To Programming Lecture Notes

1001ICT Introduction To Programming Lecture Notes 1001ICT Introduction To Programming Lecture Notes School of Information and Communication Technology Griffith University Semester 1, 2015 1 M Environment console M.1 Purpose This environment supports programming

More information

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0 VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 L J Howell UX Software 2009 Ver. 1.0 TABLE OF CONTENTS INTRODUCTION...ii What is this book about?... iii How to use this book... iii

More information

Macro Programming Reference Guide. Copyright 2005 Scott Martinez

Macro Programming Reference Guide. Copyright 2005 Scott Martinez Macro Programming Reference Guide Copyright 2005 Scott Martinez Section 1. Section 2. Section 3. Section 4. Section 5. Section 6. Section 7. What is macro programming What are Variables What are Expressions

More information

Such JavaScript Very Wow

Such JavaScript Very Wow Such JavaScript Very Wow Lecture 9 CGS 3066 Fall 2016 October 20, 2016 JavaScript Numbers JavaScript numbers can be written with, or without decimals. Extra large or extra small numbers can be written

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

Data Types and Basic Calculation

Data Types and Basic Calculation Data Types and Basic Calculation Intrinsic Data Types Fortran supports five intrinsic data types: 1. INTEGER for exact whole numbers e.g., 1, 100, 534, -18, -654321, etc. 2. REAL for approximate, fractional

More information

By the end of this section of the practical, the students should be able to:

By the end of this section of the practical, the students should be able to: By the end of this section of the practical, the students should be able to: Write JavaScript to generate HTML Create simple scripts which include input and output statements, arithmetic, relational and

More information

Methods: A Deeper Look

Methods: A Deeper Look 1 2 7 Methods: A Deeper Look OBJECTIVES In this chapter you will learn: How static methods and variables are associated with an entire class rather than specific instances of the class. How to use random-number

More information

Introduction to Programming with Python

Introduction to Programming with Python Introduction to Programming with Python 1 Languages Some influential ones: FORTRAN science / engineering COBOL business data LISP logic and AI BASIC a simple language 2 Programming basics code or source

More information

Reference and Style Guide for Microsoft Excel

Reference and Style Guide for Microsoft Excel Reference and Style Guide for Microsoft Excel TABLE OF CONTENTS Getting Acquainted 2 Basic Excel Features 2 Writing Cell Equations Relative and Absolute Addresses 3 Selecting Cells Highlighting, Moving

More information

GAMS READER Introduction For what type of problems can GAMS be used? 1.3. GAMS Statement Formats

GAMS READER Introduction For what type of problems can GAMS be used? 1.3. GAMS Statement Formats GAMS READER 1.1. Introduction GAMS is a software package to solve systems of equations. GAMS stands for General Algebraic Modelling System and is constructed by the GAMS Development Corporation. GAMS contains

More information

CSI31 Lecture 5. Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial

CSI31 Lecture 5. Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial CSI31 Lecture 5 Topics: 3.1 Numeric Data Types 3.2 Using the Math Library 3.3 Accumulating Results: Factorial 1 3.1 Numberic Data Types When computers were first developed, they were seen primarily as

More information

Scheme Quick Reference

Scheme Quick Reference Scheme Quick Reference COSC 18 Fall 2003 This document is a quick reference guide to common features of the Scheme language. It is not intended to be a complete language reference, but it gives terse summaries

More information

Functions and Recursion

Functions and Recursion Functions and Recursion 1 Outline Introduction Program Components in C++ Math Library Functions Functions Function Definitions Function Prototypes Header Files Random Number Generation Example: A Game

More information

Single row numeric functions

Single row numeric functions Single row numeric functions Oracle provides a lot of standard numeric functions for single rows. Here is a list of all the single row numeric functions (in version 10.2). Function Description ABS(n) ABS

More information

Standard Value Calculation with CAPP (PP-BD-CAP)

Standard Value Calculation with CAPP (PP-BD-CAP) Standard Value Calculation with CAPP (PP-BD-CAP) HELP.PPBDCAP Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any

More information

Python. Objects. Geog 271 Geographic Data Analysis Fall 2010

Python. Objects. Geog 271 Geographic Data Analysis Fall 2010 Python This handout covers a very small subset of the Python language, nearly sufficient for exercises in this course. The rest of the language and its libraries are covered in many fine books and in free

More information

Advanced features of the Calculate signal tool

Advanced features of the Calculate signal tool Advanced features of the Calculate signal tool Case study: how to us the advanced features of the Calculate signal tool? 1 The calculate signal tool The calculate signal tool is one of the most useful

More information

Introduction to C Language

Introduction to C Language Introduction to C Language Instructor: Professor I. Charles Ume ME 6405 Introduction to Mechatronics Fall 2006 Instructor: Professor Charles Ume Introduction to C Language History of C Language In 1972,

More information

ME1107 Computing Y Yan.

ME1107 Computing Y Yan. ME1107 Computing 1 2008-2009 Y Yan http://www.staff.city.ac.uk/~ensyy About Fortran Fortran Formula Translation High level computer language Basic, Fortran, C, C++, Java, C#, (Matlab) What do we learn?

More information

C++ PROGRAMMING SKILLS Part 3 User-Defined Functions

C++ PROGRAMMING SKILLS Part 3 User-Defined Functions C++ PROGRAMMING SKILLS Part 3 User-Defined Functions Introduction Function Definition Void function Global Vs Local variables Random Number Generator Recursion Function Overloading Sample Code 1 Functions

More information

C Programs: Simple Statements and Expressions

C Programs: Simple Statements and Expressions .. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar.. C Programs: Simple Statements and Expressions C Program Structure A C program that consists of only one function has the following

More information

Chapter 3 - Simple JavaScript - Programming Basics. Lesson 1 - JavaScript: What is it and what does it look like?

Chapter 3 - Simple JavaScript - Programming Basics. Lesson 1 - JavaScript: What is it and what does it look like? Chapter 3 - Simple JavaScript - Programming Basics Lesson 1 - JavaScript: What is it and what does it look like? PP presentation JavaScript.ppt. Lab 3.1. Lesson 2 - JavaScript Comments, document.write(),

More information

Introduction to Computer Programming in Python Dr. William C. Bulko. Data Types

Introduction to Computer Programming in Python Dr. William C. Bulko. Data Types Introduction to Computer Programming in Python Dr William C Bulko Data Types 2017 What is a data type? A data type is the kind of value represented by a constant or stored by a variable So far, you have

More information

Lecture 2 FORTRAN Basics. Lubna Ahmed

Lecture 2 FORTRAN Basics. Lubna Ahmed Lecture 2 FORTRAN Basics Lubna Ahmed 1 Fortran basics Data types Constants Variables Identifiers Arithmetic expression Intrinsic functions Input-output 2 Program layout PROGRAM program name IMPLICIT NONE

More information

VBScript: Math Functions

VBScript: Math Functions C h a p t e r 3 VBScript: Math Functions In this chapter, you will learn how to use the following VBScript functions to World Class standards: 1. Writing Math Equations in VBScripts 2. Beginning a New

More information

Documentation for LISP in BASIC

Documentation for LISP in BASIC Documentation for LISP in BASIC The software and the documentation are both Copyright 2008 Arthur Nunes-Harwitt LISP in BASIC is a LISP interpreter for a Scheme-like dialect of LISP, which happens to have

More information

FAQ No. 53. ihost: Logic Points. Roles and Privileges. Adding and removing logic points. Accessing and using the Logic Editor

FAQ No. 53. ihost: Logic Points. Roles and Privileges. Adding and removing logic points. Accessing and using the Logic Editor ihost: Logic Points In addition to displaying values reported by a unit, ihost supports adding additional logic points to a unit and calculating the value based on a custom logic expression. On calculation

More information

Getting Started With Linux and Fortran Part 3

Getting Started With Linux and Fortran Part 3 Getting Started With Linux and Fortran Part 3 by Simon Campbell [A Coronal Mass Ejection (CME) from our star. Taken by the SOHO spacecraft in July 1999. Image Credit: NASA and European Space Agency] ASP

More information

Computer Programming in MATLAB

Computer Programming in MATLAB Computer Programming in MATLAB Prof. Dr. İrfan KAYMAZ Atatürk University Engineering Faculty Department of Mechanical Engineering What is a computer??? Computer is a device that computes, especially a

More information

Intrinsic Functions Outline

Intrinsic Functions Outline Intrinsic Functions Outline 1. Intrinsic Functions Outline 2. Functions in Mathematics 3. Functions in Fortran 90 4. A Quick Look at ABS 5. Intrinsic Functions in Fortran 90 6. Math: Domain Range 7. Programming:

More information

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University Unit 1 Programming Language and Overview of C 1. State whether the following statements are true or false. a. Every line in a C program should end with a semicolon. b. In C language lowercase letters are

More information

Downloaded from Chapter 2. Functions

Downloaded from   Chapter 2. Functions Chapter 2 Functions After studying this lesson, students will be able to: Understand and apply the concept of module programming Write functions Identify and invoke appropriate predefined functions Create

More information

10 Using the PCFL Editor In this chapter

10 Using the PCFL Editor In this chapter 10 Using the PCFL Editor In this chapter Introduction to the PCFL editor 260 Editing PCFL registers 261 Customizing the PCFL configuration file 272 ProWORX NxT User s Guide Introduction to the PCFL editor

More information

IT150/IT152 Concepts Summary Sheet

IT150/IT152 Concepts Summary Sheet (Examples within this study guide/summary sheet are given in C#.) Variables All data in a computer program, whether calculated during runtime or entered by the user, must be stored somewhere in the memory

More information

Functions and an Introduction to Recursion Pearson Education, Inc. All rights reserved.

Functions and an Introduction to Recursion Pearson Education, Inc. All rights reserved. 1 6 Functions and an Introduction to Recursion 2 Form ever follows function. Louis Henri Sullivan E pluribus unum. (One composed of many.) Virgil O! call back yesterday, bid time return. William Shakespeare

More information

FUZZY INFERENCE SYSTEMS

FUZZY INFERENCE SYSTEMS CHAPTER-IV FUZZY INFERENCE SYSTEMS Fuzzy inference is the process of formulating the mapping from a given input to an output using fuzzy logic. The mapping then provides a basis from which decisions can

More information

Lecture 9: Arrays. Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp. Copyright (c) Pearson All rights reserved.

Lecture 9: Arrays. Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp. Copyright (c) Pearson All rights reserved. Lecture 9: Arrays Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp Copyright (c) Pearson 2013. All rights reserved. Can we solve this problem? Consider the following program

More information

Methods (Deitel chapter 6)

Methods (Deitel chapter 6) 1 Plan 2 Methods (Deitel chapter ) Introduction Program Modules in Java Math-Class Methods Method Declarations Argument Promotion Java API Packages Random-Number Generation Scope of Declarations Methods

More information

Scheme Quick Reference

Scheme Quick Reference Scheme Quick Reference COSC 18 Winter 2003 February 10, 2003 1 Introduction This document is a quick reference guide to common features of the Scheme language. It is by no means intended to be a complete

More information

Methods (Deitel chapter 6)

Methods (Deitel chapter 6) Methods (Deitel chapter 6) 1 Plan 2 Introduction Program Modules in Java Math-Class Methods Method Declarations Argument Promotion Java API Packages Random-Number Generation Scope of Declarations Methods

More information

Product Price Formula extension for Magento2. User Guide

Product Price Formula extension for Magento2. User Guide Product Price Formula extension for Magento2 User Guide version 1.0 Page 1 Contents 1. Introduction... 3 2. Installation... 3 2.1. System Requirements... 3 2.2. Installation...... 3 2.3. License... 3 3.

More information

Subprograms. FORTRAN 77 Chapter 5. Subprograms. Subprograms. Subprograms. Function Subprograms 1/5/2014. Satish Chandra.

Subprograms. FORTRAN 77 Chapter 5. Subprograms. Subprograms. Subprograms. Function Subprograms 1/5/2014. Satish Chandra. FORTRAN 77 Chapter 5 Satish Chandra satish0402@gmail.com When a programs is more than a few hundred lines long, it gets hard to follow. Fortran codes that solve real research problems often have tens of

More information

Excel Tool: Calculations with Data Sets

Excel Tool: Calculations with Data Sets Excel Tool: Calculations with Data Sets The best thing about Excel for the scientist is that it makes it very easy to work with data sets. In this assignment, we learn how to do basic calculations that

More information

Introduction to MS Excel Management Information Systems

Introduction to MS Excel Management Information Systems Introduction to MS Excel 2007 Management Information Systems 1 Overview What is MS Excel? Functions. Sorting Data. Filtering Data. Data Form. Data Validation. Create charts in Excel. Formatting Cells.

More information

Class #15: Experiment Introduction to Matlab

Class #15: Experiment Introduction to Matlab Class #15: Experiment Introduction to Matlab Purpose: The objective of this experiment is to begin to use Matlab in our analysis of signals, circuits, etc. Background: Before doing this experiment, students

More information

POLYMATH POLYMATH. for IBM and Compatible Personal Computers. for IBM and Compatible Personal Computers

POLYMATH POLYMATH. for IBM and Compatible Personal Computers. for IBM and Compatible Personal Computers POLYMATH VERSION 4.1 Provides System Printing from Windows 3.X, 95, 98 and NT USER-FRIENDLY NUMERICAL ANALYSIS PROGRAMS - SIMULTANEOUS DIFFERENTIAL EQUATIONS - SIMULTANEOUS ALGEBRAIC EQUATIONS - SIMULTANEOUS

More information

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson)

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson) Lecture 9 Functions Dr M Kasim A Jalil Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson) Objectives In this chapter, you will learn: To understand how to construct programs modularly

More information

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4 BIL 104E Introduction to Scientific and Engineering Computing Lecture 4 Introduction Divide and Conquer Construct a program from smaller pieces or components These smaller pieces are called modules Functions

More information

Table of Contents. Oceanwide Bridge. User Guide - Calculated Fields. Version Version Bridge User Guide User Guide - Calculated Fields

Table of Contents. Oceanwide Bridge. User Guide - Calculated Fields. Version Version Bridge User Guide User Guide - Calculated Fields Table of Contents 1 Oceanwide Bridge User Guide - Calculated Fields Version 2.3.0 Table of Contents i Table of Contents TABLE OF CONTENTS... I INTRODUCTION... 1 Guide... 1 BUILDING FORMULAS... 2 Operators...

More information

Chapter 2. Basic Operations. you through the routine procedures that you will use nearly every time you work with SPSS.

Chapter 2. Basic Operations. you through the routine procedures that you will use nearly every time you work with SPSS. 1 Chapter 2 Basic Operations Chapter 1 presented a very conceptual overview of SPSS. The present chapter will walk you through the routine procedures that you will use nearly every time you work with SPSS.

More information

Microsoft Access XP (2002) - Advanced Queries

Microsoft Access XP (2002) - Advanced Queries Microsoft Access XP (2002) - Advanced Queries Group/Summary Operations Change Join Properties Not Equal Query Parameter Queries Working with Text IIF Queries Expression Builder Backing up Tables Action

More information

Introduction to MATLAB

Introduction to MATLAB Introduction to MATLAB Introduction MATLAB is an interactive package for numerical analysis, matrix computation, control system design, and linear system analysis and design available on most CAEN platforms

More information

Workbook Also called a spreadsheet, the Workbook is a unique file created by Excel. Title bar

Workbook Also called a spreadsheet, the Workbook is a unique file created by Excel. Title bar Microsoft Excel 2007 is a spreadsheet application in the Microsoft Office Suite. A spreadsheet is an accounting program for the computer. Spreadsheets are primarily used to work with numbers and text.

More information

8.1 OVERVIEW OF THE INVENTORY MODULE ADDING NEW ITEMS...

8.1 OVERVIEW OF THE INVENTORY MODULE ADDING NEW ITEMS... Chapter Module The module is used to record and track inventory and storeroom information. This Chapter describes how to use the Web Work module. Table of Contents 8.1 OVERVIEW OF THE INVENTORY MODULE...

More information

Graphics. Graphics. Graphics

Graphics. Graphics. Graphics T T T E T E T X E E X E X E X X and and and and and and Graphics Graphics Graphics Graphics Graphics /3 5. We have seen that in, everything is done with coordinates. We now take a closer look at coordinates

More information

PLD Semester Exam Study Guide Dec. 2018

PLD Semester Exam Study Guide Dec. 2018 Covers material from Chapters 1-8. Semester Exam will be built from these questions and answers, though they will be re-ordered and re-numbered and possibly worded slightly differently than on this study

More information

Introduction to Engineering gii

Introduction to Engineering gii 25.108 Introduction to Engineering gii Dr. Jay Weitzen Lecture Notes I: Introduction to Matlab from Gilat Book MATLAB - Lecture # 1 Starting with MATLAB / Chapter 1 Topics Covered: 1. Introduction. 2.

More information

Fall Semester (081) Dr. El-Sayed El-Alfy Computer Science Department King Fahd University of Petroleum and Minerals

Fall Semester (081) Dr. El-Sayed El-Alfy Computer Science Department King Fahd University of Petroleum and Minerals INTERNET PROTOCOLS AND CLIENT-SERVER PROGRAMMING Client SWE344 request Internet response Fall Semester 2008-2009 (081) Server Module 2.1: C# Programming Essentials (Part 1) Dr. El-Sayed El-Alfy Computer

More information

INTRODUCTION TO C++ FUNCTIONS. Dept. of Electronic Engineering, NCHU. Original slides are from

INTRODUCTION TO C++ FUNCTIONS. Dept. of Electronic Engineering, NCHU. Original slides are from INTRODUCTION TO C++ FUNCTIONS Original slides are from http://sites.google.com/site/progntut/ Dept. of Electronic Engineering, NCHU Outline 2 Functions: Program modules in C Function Definitions Function

More information

FANF. programming language. written by Konstantin Dimitrov. Revision 0.1 February Programming language FANF 1 / 21

FANF. programming language. written by Konstantin Dimitrov. Revision 0.1 February Programming language FANF 1 / 21 programming language FANF written by Konstantin Dimitrov Revision 0.1 February 2014 For comments and suggestions: knivd@me.com Programming language FANF 1 / 21 Table of Contents 1. Introduction...3 2.

More information

Hava Language Technical Reference

Hava Language Technical Reference Hava Language Technical Reference April 25, 2009 (draft) Steven T. Hackman, Loren K. Platzman H. Milton Stewart School of Industrial and Systems Engineering Georgia Institute of Technology Hava is a numerical

More information

An overview about DroidBasic For Android

An overview about DroidBasic For Android An overview about DroidBasic For Android from February 25, 2013 Contents An overview about DroidBasic For Android...1 Object-Oriented...2 Event-Driven...2 DroidBasic Framework...2 The Integrated Development

More information

Alternate Appendix A: Using the TI-92 Calculator

Alternate Appendix A: Using the TI-92 Calculator Alternate Appendix A: Using the TI-92 Calculator This document summarizes TI-92 calculation and programming operations as they relate to the text, Inside Your Calculator. Even those who do not read the

More information

Excel R Tips. is used for multiplication. + is used for addition. is used for subtraction. / is used for division

Excel R Tips. is used for multiplication. + is used for addition. is used for subtraction. / is used for division Excel R Tips EXCEL TIP 1: INPUTTING FORMULAS To input a formula in Excel, click on the cell you want to place your formula in, and begin your formula with an equals sign (=). There are several functions

More information

Class meeting #2 Wednesday, Aug. 26 th

Class meeting #2 Wednesday, Aug. 26 th GEEN 1300 Introduction to Engineering Computing Class meeting #2 Wednesday, Aug. 26 th Announcements Introduction to Spreadsheet Problem Solving Historical perspective Overview of Excel coverage Homework

More information

AN INTRODUCTION TO MATLAB

AN INTRODUCTION TO MATLAB AN INTRODUCTION TO MATLAB 1 Introduction MATLAB is a powerful mathematical tool used for a number of engineering applications such as communication engineering, digital signal processing, control engineering,

More information

LAB 2: DATA FILTERING AND NOISE REDUCTION

LAB 2: DATA FILTERING AND NOISE REDUCTION NAME: LAB SECTION: LAB 2: DATA FILTERING AND NOISE REDUCTION In this exercise, you will use Microsoft Excel to generate several synthetic data sets based on a simplified model of daily high temperatures

More information

age = 23 age = age + 1 data types Integers Floating-point numbers Strings Booleans loosely typed age = In my 20s

age = 23 age = age + 1 data types Integers Floating-point numbers Strings Booleans loosely typed age = In my 20s Intro to Python Python Getting increasingly more common Designed to have intuitive and lightweight syntax In this class, we will be using Python 3.x Python 2.x is still very popular, and the differences

More information

ProMoT Step by Step for Reaction Models in Process Engineering A Tutorial

ProMoT Step by Step for Reaction Models in Process Engineering A Tutorial ProMoT Step by Step for Reaction Models in Process Engineering A Tutorial Martin Ginkel, Sebastian Mirschel, Katrin Kolczyk August 19, 2011 http://www.mpi-magdeburg.mpg.de/projects/promot/ promot@mpi-magdeburg.mpg.de

More information

Function Example. Function Definition. C Programming. Syntax. A small program(subroutine) that performs a particular task. Modular programming design

Function Example. Function Definition. C Programming. Syntax. A small program(subroutine) that performs a particular task. Modular programming design What is a Function? C Programming Lecture 8-1 : Function (Basic) A small program(subroutine) that performs a particular task Input : parameter / argument Perform what? : function body Output t : return

More information

Our Strategy for Learning Fortran 90

Our Strategy for Learning Fortran 90 Our Strategy for Learning Fortran 90 We want to consider some computational problems which build in complexity. evaluating an integral solving nonlinear equations vector/matrix operations fitting data

More information

(created by professor Marina Tanasyuk) FUNCTIONS

(created by professor Marina Tanasyuk) FUNCTIONS FUNCTIONS (created by professor Marina Tanasyuk) In C++, a function is a group of statements that is given a name, and which can be called from some point of the program. The most common syntax to define

More information

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e CS-3160 Concepts of Programming Languages Spring 2015 EXAM #1 (Chapters 1-6) Name: SCORES MC: /75 PROB #1: /15 PROB #2: /10 TOTAL: /100 Multiple Choice Responses Each multiple choice question in the separate

More information

Piping & Instrumentation Diagrams

Piping & Instrumentation Diagrams Piping & Instrumentation Diagrams Preface Using This Guide What's New? Getting Started Entering the Workbench Setting up Working Units and Grid Placing Components Routing a Piping Line or I & C Loop Placing

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

Organisation. Assessment

Organisation. Assessment Week 1 s s Getting Started 1 3 4 5 - - Lecturer Dr Lectures Tuesday 1-13 Fulton House Lecture room Tuesday 15-16 Fulton House Lecture room Thursday 11-1 Fulton House Lecture room Friday 10-11 Glyndwr C

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

LESSON 13: LANGUAGE TRANSLATION

LESSON 13: LANGUAGE TRANSLATION LESSON 13: LANGUAGE TRANSLATION Objective Interpreters and Compilers. Language Translation Phases. Interpreters and Compilers A COMPILER is a program that translates a complete source program into machine

More information

A = [1, 6; 78, 9] Note: everything is case-sensitive, so a and A are different. One enters the above matrix as

A = [1, 6; 78, 9] Note: everything is case-sensitive, so a and A are different. One enters the above matrix as 1 Matlab Primer The purpose of these notes is a step-by-step guide to solving simple optimization and root-finding problems in Matlab To begin, the basic object in Matlab is an array; in two dimensions,

More information

Arithmetic. 2.2.l Basic Arithmetic Operations. 2.2 Arithmetic 37

Arithmetic. 2.2.l Basic Arithmetic Operations. 2.2 Arithmetic 37 2.2 Arithmetic 37 This is particularly important when programs are written by more than one person. It may be obvious to you that cv stands for can volume and not current velocity, but will it be obvious

More information

Mathcad Lecture #3 In-class Worksheet Functions

Mathcad Lecture #3 In-class Worksheet Functions Mathcad Lecture #3 In-class Worksheet Functions At the end of this lecture, you should be able to: find and use intrinsic Mathcad Functions for fundamental, trigonometric, and if statements construct compound

More information