Lecture 2: Systems Engineering EEN 112: Introduction to Electrical and Computer Engineering Professor Eric Rozier, 1/23/2013 CROSSING THE RIVER… Farmer, Wolf, Goat, Cabbage A farmer needs to transport a wolf, a goat, and a cabbage across the river. • Boat has two seats • Farmer must drive… • If left alone… • The wolf will eat the goat. • The goat will eat the cabbage. Farmer, Wolf, Goat, Cabbage As a group, formulate a solution to transport everything across the river, without anything being eaten. What do we learn from this exercise? • Sometimes we have to move backwards to move forwards. • Even simple systems need thought to formulate a plan for accomplishing their goals. We call this plan, an algorithm. ALGORITHMS Algorithms • al-Khwarizmi – Persian mathematician, astronomer, and geographer born 780 A.D. – Invented a few things… • Decimal system • Algebra • Trigonometry Algorithms • al-Khwarizmi also introduced the idea of solving problems using step-by-step procedures for calculations. • Algorithms – A method of solving a problem or accomplishing a task expressed as a finite list of well defined instructions. – Starting from an initial state and an initial input, the instructions describe a computation that, when executed will proceed through a finite number of well defined successive states, eventually producing output, and terminating at a final ending state. States, Inputs, and Outputs • States are a way of measuring the condition of a system, and it’s environment. • Inputs are a way of getting information to a system. • Outputs are a way of getting information from a system. Algorithms • Algorithms let us define, formally, what we want machines and automated systems to do. • Algorithms are written to have precise meanings, and to be generally applicable. Systems Engineering and Cyberphysical Systems • We build systems to do jobs, solve problems, and accomplish tasks. • Often these systems are cyberphysical systems, i.e. they combine computational components with the real world. • An algorithm is a way of telling the components how to do their job, and how to work together. Example System: Thermostat • Thermostat – What is the goal? – What problem does it solve? – How would we characterize the state? – What would the inputs and outputs be? Example System: Thermostat • Thermostat – What is the goal? – What problem does it solve? – How would we characterize the state? – What would the inputs and outputs be? – Break into groups • Define the problem • Define what the thermostat needs to do Example System: Thermostat • Thermostat – Regulate temperature – Specification • Must be able to sense temperature • Based on the temperature must be able to signal cooling or warming the room, or to do nothing. • State: temperature, heating state, cooling state Example System: Thermostat • Thermostat – Pseudocode algorithm • tempLow = L • tempHigh = H • loop() – Test temperature, store the value in T – If (T < L) send a heating signal – If (T > H) send a cooling signal Example System: Thermostat Thermostat Signal: Heat Signal: Cool Heater Sensor Air Conditioner Thermostat Signal: Heat Signal: Cool Heater Sensor • Some important points… – Four systems here, each with their implementations… – Need to communicate with each other… Air Conditioner Networking and Communication • Systems communicate via signals, over wires, or wirelessly via electromagnetic radiation. • In our thermostat system, the heater and cooler can be switched on or off by a pure signal on the wire. I.e., if electrons are flowing, turn on, if not, turn off! Networking and Communication • But how do we get information from the sensor? • It needs to send a number… how do we do that? Networking and Communication • What if we encode the signal into pulses? • Detect if the value is above or below some threshold, and decide it represents a 1, or a 0. • Strings of 1’s and 0’s can be interpreted as a number. Some simple things we can represent with 1’s and 0’s • True or false… – 1 – true – 0 – false – We already were doing this with pure signals. Some simple things we can represent with 1’s and 0’s • Integers 7 6 5 4 3 2 1 0 128 64 32 16 8 4 2 1 • Examples – 00000000 – 0 – 00000001 – 1 – 00000011 – 3 - 00000010 - 2 - 00001010 – 10 - 10010011 – 147 Negative numbers and real numbers are more complex… We will cover those later… Boolean Algebra • Using true/false values in complicated ways • Thermostat system – Let’s make a change to the basic system – Add a switch with values “Heat” and “Cool” – Cool the room if T > H and Switch is set to “Heat” – Heat the room if T < L and Switch is set to “Cool” Boolean Algebra • Gets back to gators and grades… • Represent truth as 1, and false as 0 – We can operate on values using the following basic operators: • AND • OR • NOT AND • X AND Y X=0 X=1 Y=0 0 0 Y=1 0 1 OR • X OR Y X=0 X=1 Y=0 0 1 Y=1 1 1 NOT • NOT X X=0 X=1 1 0 Abbreviations • ^ - And • v – Or • ! – Not • !X ^ Y X=0 X=1 Y=0 0 0 Y=1 1 0 Commutative laws • X^Y=Y^X • XvY=YvX Associative laws • X ^ (Y ^ Z) = (X ^ Y) ^ Z • X v (Y v Z) = (X v Y) v Z Distributive laws • X ^ (Y v Z) = (X ^ Y) v (X ^ Z) • X v (Y ^ Z) = (X v Y) ^ (X v Z) Some exercises • • • • !x ^ !y !(x ^ y) !x ^ x (x v y) ^ !(x ^ y) Realization as electronic components AND OR NOT Realization as electronic components AND OR NOT Derived operators • X XOR Y – (x v y) ^ !(x ^ y) – Exclusive Or • XY – (!X v Y) – Implication • X=Y – (!X XOR Y) De Morgan’s Laws • The negation of a conjunction, is the disjunction of the negations – !(X ^ Y) <-> (!X) v (!Y) – !(X v Y) <-> (!X) ^ (!Y) Homework • Prove the equivalence of the expressions in De Morgan’s Laws with truth tables (show they are the same!)