KnowledgeScape, an Object oriented Real time Adaptive Modeling and Optimization Expert Control System for the Process Industries
|
|
- Donald Bates
- 6 years ago
- Views:
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 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 informationGraphing 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 informationLECTURE 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 informationIntroduction 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 informationThe 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 informationCT 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 informationI/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 informationJUN / 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 information9. 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 informationFunctions. 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 informationChapter 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 informationDr 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 informationC++, 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 informationWhat 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 informationBasic 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 informationIntroduction 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 informationIntroduction 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 informationC 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 information1001ICT 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 informationVISUAL 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 informationMacro 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 informationSuch 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 informationPace 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 informationData 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 informationBy 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 informationMethods: 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 informationIntroduction 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 informationReference 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 informationGAMS 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 informationCSI31 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 informationScheme 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 informationFunctions 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 informationSingle 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 informationStandard 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 informationPython. 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 informationAdvanced 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 informationIntroduction 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 informationME1107 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 informationC++ 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 informationC 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 informationChapter 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 informationIntroduction 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 informationLecture 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 informationVBScript: 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 informationDocumentation 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 informationFAQ 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 informationGetting 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 informationComputer 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 informationIntrinsic 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 informationB.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 informationDownloaded 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 information10 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 informationIT150/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 informationFunctions 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 informationFUZZY 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 informationLecture 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 informationMethods (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 informationScheme 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 informationMethods (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 informationProduct 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 informationSubprograms. 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 informationExcel 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 informationIntroduction 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 informationClass #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 informationPOLYMATH 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 informationDr 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 informationBIL 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 informationTable 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 informationChapter 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 informationMicrosoft 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 informationIntroduction 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 informationWorkbook 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 information8.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 informationGraphics. 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 informationPLD 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 informationIntroduction 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 informationFall 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 informationINTRODUCTION 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 informationFANF. 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 informationHava 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 informationAn 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 informationAlternate 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 informationExcel 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 informationClass 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 informationAN 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 informationLAB 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 informationage = 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 informationProMoT 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 informationFunction 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 informationOur 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
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 information11. 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 informationPiping & 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 informationCS101 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 informationOrganisation. 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 informationProgramming 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 informationLESSON 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 informationA = [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 informationArithmetic. 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 informationMathcad 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