What is a Cyber-Physical System?

Our starting point is to reflect on our world today and to consider examples and characteristics of what has come to be known as Cyber-Physical Systems (CPSs). We then look at the innovation process and the associated workforce challenge. Next, we explain how the field of CPS brings together several previously distinct fields such as Embedded Systems, Control Theory, and Mechatronics. We conclude with an overview of what you can expect to learn from this book.

Without a doubt, our knowledge in the areas of science, technology, and social sciences has played a key role in shaping the modern world. Of particular importance is knowledge in the areas of computing and communication. These are areas that have recently witnessed exceptionally rapid development due to advances in digital computing and communication. In the history of human knowledge, these are relatively recent developments that are currently treated as separate disciplines. In research and in education, topics relating to digital computing and communication have been viewed as distinct areas of specialization.
The workforce marketplace has long prized specialized expertise. But in today's knowledge economy4 specialization also poses new challenges: The process of innovation that leads to new breakthroughs relies critically on interdisciplinary collaboration and insight. This is especially the case for digital products that have a physical presence. While many successful Internet-based products benefit from the relative ease of innovation in "pure information technology," such ease is not currently present for systems that sense the physical world or can interact with it. The reasons for this problem are multifaceted. To develop a system with a physical presence or "embodiment" requires diverse expertise from many areas (e.g. Mechanical Engineers, Computer Scientists, Electrical Engineers, Computer Architects), and experts in these areas may not have a common language. What is more, in many cases addressing this problem requires finding commonalities in the foundations of these disciplines as well as ways to reflect them in the education of the experts in these different domains.
We are not alone in holding this view. Given the extent to which digital technologies pervade modern life, a growing community of researchers and educators believe that closer integration with many other disciplines will be needed in the future.5 The development of numerous innovative products in the home, health, and entertainment sectors all require close collaboration between several innovators with different advanced training (such as Masters or Ph.D. degrees). The current organization of disciplines at university level appears to hamper the cross-disciplinary communication needed to realize such collaboration. The organization of scientific knowledge and its educational delivery may seem like distant problems, but they have concrete implications for the workforce and, as a result, affect our collective ability to contribute to the world we live in.

Observe. Understand. Innovate
One of the goals of this book is to help you learn skills that can make you become a better observer of the world around us as well as new products and technologies. This is one of the reasons that the book covers physical modeling. Doing so has a secondary purpose of increasing your awareness of the mathematics that can be used to model our world, and creates opportunities for showing how this type of mathematics can provide insights into this world. Mathematics gives us a way to test our understanding of different phenomena, and as such provides us with a means to improve this understanding. Our understanding of problems that need to be addressed and components that can be used to fill these needs are prerequisites for successful innovation.

Cyber-Physical Systems and Hybrid Systems
While several definitions are used in the literature, an early definition is simple and intuitive enough: According to Lee and Seshia, the term Cyber-Physical Systems (CPSs) was coined by Helen Gill around 2006, at the National Science Foundation (NSF) in the U.S., to refer to the integration of computation with physical processes.6 Often, it also has a communicating or networked aspect.
If we consider this description from the point of view of the mathematics needed to model them, we can begin to see some technical requirements: Computational components give rise to a need for discrete modeling; physical components give rise to a need for continuous modeling; and a communications/networking aspect gives rise to a need for probabilistic and possibly also a game theoretic modeling. Many fields of mathematical modeling will use either continuous or discrete mathematics, and not mix them. And, in fact, combining these two can lead to some fundamental technical problems. Adding probabilities on top requires an additional level of care. But at a more practical level, simply expressing models that combine both discrete and continuous components requires a modeling formalism that can express both.
That is precisely what hybrid (continuous/discrete) systems provide. In this book we will make extensive use of continuous systems, discrete systems, and hybrid systems, for modeling CPSs, and will make modest use of probabilities in introduction to basic concepts in the treatment of game theory, communication, and sensing and actuation.

Examples
Many examples of CPSs surround us in everyday life. In the home we have cleaning robots, smart lighting systems, and smart heating, ventilation, and air-conditioning (or HVAC) systems.
For transportation we have cars, planes, motorized scooters, Segways, and electric bicycles. Existing systems like these are representative of the areas where we can expect to see significant innovation and development in the future. For instance, while cars have been around for almost 350 years,7 new features like Lane Departure Warning Systems (LDWS) are now available in vehicle product lines.
Medical solutions include pacemakers, insulin pumps, personal assistance robots, and smart prosthetics. Many of these technologies did not exist until recently, and have the potential both to save lives and to significantly improve health and wellbeing. Wearable fitness and health-monitoring systems promise to have a hugely positive impact on users, whether or not they are healthy or have a physical or a cognitive disability. Health monitoring systems are just one example of the whole area of sensor networks, which includes those made of tiny sensors used to observe large land, marine, or aerial spaces.
Finally, examples from the energy sector include windmills, smart grids, and various energy harvesting technologies. In fact, it is no exaggeration to think of our entire planet as a single, massive CPS.
While the skills you will acquire in this book are centered primarily around systems that you can construct, these same skills will also help you better understand existing systems.
When we survey such examples we notice that some are more futuristic or more spectacular than others. For example, the Segway may seem more critically dependent on having a "cyber" (or computational) component than a car. A car can exist and function without a computational part. But a Segway has just two wheels, and it is not at all obvious whether it can even exist or function without the computational component that keeps it upright.
Mechanically, the Segway is an unstable system that we can prove mathematically ought to fall if the computational component that keeps it upright is switched off. The Segway uses a real-time control system that runs on a dedicated, embedded computer. Whereas, traditionally, many systems have been designed to be stable in the absence of active control, the Segway and many generations of jet fighters (such as the Saab JAS 39 Gripen) have designs whose stability depends critically on active control.8 The idea in all of these cases is that pursuing this path leads to more efficient designs that can realize functionality that would be impossible without the active control. For a variety of technical reasons, the control itself would not be possible without a computational component. One of the goals of this book is to help you understand what makes a system more challenging to realize-this is often exactly the same thing that makes it seem futuristic and spectacular.9 While powerful airborne vehicles can be very impressive, in the grand scheme of things their applications are relatively limited, and their impact on daily life can be minimal. In contrast, smart home technologies may have a bigger and more direct impact. For example, significant energy is expended in heating and cooling buildings, washing and drying clothes, and transporting people and commodities to and from homes. This means that the optimization of HVAC systems can have a significant impact on global energy consumption. Similarly, computation can enable sophisticated hydroponic gardening right in the home to provide us with a local supply of fresh nutrition. Combining the two may also enable more advanced management of various parameters of comfort in the home (air moisture levels, CO2 levels) and improve health and living conditions.

Computational vs. Physical Systems
It is common when we first hear the definition of Cyber-Physical Systems to assume the computational and physical subsystems are distinct. Often this will be the case, but not always. The key point is that when we use these designations we are making an abstraction. Every physical system that we can think of, by definition, will have physical components. At the same time, computation is an abstract notion that we can identify when we recognize the presence of a mathematical function or relation. Today, we often assume that computation is performed digitally. But this is not always the case: Analog computers have long existed, and quantum computers are already being built. Even when we limit ourselves to digital computation, the distinction is still not clear: A modern microprocessor has aspects that simultaneously touch upon essentially all computational and physical aspects discussed in this book. Especially to microprocessor designers, it is simultaneously physical and computational in a very real way, and both its physical and computational characteristics affect each other directly.

Biological and Intelligent Systems
While the focus of much CPS research and education is on systems that we can construct and develop into products, it is also instructive to reflect on one class of systems that has many characteristics of CPSs-namely, living creatures including ourselves. While we often view living creatures as purely biological systems, living systems clearly have physical manifestations. These manifestations simultaneously exhibit a range of physical phenomena, including mechanical, chemical, electromagnetic, and optical. At the same time, they often seem perfectly capable of computation and communicate on a regular basis. Living systems can be a great source of inspiration for the design of new CPSs and, similarly, advances in CPSs could provide us with better tools to improve understanding of life and ourselves. For example, living systems are the inspiration for the field of Artificial Intelligence, which aims to develop computational methods for solving problems that are important in the real world, but for which we may not even have a clear notion of what an acceptable solution should be.
No part of this book is dedicated to such systems, but the principles covered are still applicable.

Developing New Products
To collaborate on developing new products, it is useful to have a shared concept of product development. Different organizations, and even different individuals, have different approaches. For this reason, it is important to consider features common to all processes, and to use them as a starting point. We can at minimum distinguish four artifacts in the process of product development: idea, model, prototype, and product. This is by no means an exhaustive list, but is sufficient to allow us to describe key aspects of any such process.
An idea is a mental notion of an object, function, or design. Ideas are the colorful realm of inspiration. Good ideas are usually created in an environment where we have a good understanding of the problem that needs to be solved, the context in which the solution will be applied, and the space of feasible solutions. Generating good ideas, therefore, requires awareness of the real needs as well as what science, technology, and society makes possible.
A model is a formal description. In this context, the word formal means having form, such as syntactic or geometric manifestation. Thus, a textual or graphical description can be seen as formal. Mathematical descriptions are also excellent examples of formal models. Moving from an idea to a model makes it possible to apply conceptual and computational tools to analyze the new function or design. Obviously, mathematical descriptions have the advantage of being amenable to mathematical analysis and reasoning, but other formal models can also enjoy similar properties. Models written in plain language and including possibly a few drawings, as is common in patents, can be more accessible to a general audience than mathematical models. Models can also be realized as computational codes, which can be used for efficient early testing and design space exploration.
A prototype is a physical, operational instance of the model. This enables more early testing, which allows qualitatively different validation than what can be achieved analytically or computationally. Prototypes can be used to evaluate the safety as well as the response of users to first-hand experience with the product concept. Today, additive manufacturing technologies such as 3D printing are proving to be a powerful tool for enabling the rapid construction of prototypes with minimal delays and costs.
A product is a manufactured commodity that can be sold commercially to end users. While the public often identifies new technology with new products, building products involves much more than technical innovation. Creating products involves systematic analysis of the market, finding financing, recruitment, management, production planning, logistics, marketing, sales, billing, customer support, and other business operational activities. Even though this book does not cover these aspects, it is important to be aware that these are significant parts of the effort to deliver a finished product.  Figure 1.1 depicts the typical relation between such artifacts, and the basic iterative cycle for moving from one to the next. As a rule of thumb, it is often the case that moving from one stage of development to the next involves at least one order of magnitude (that is, at least ten times) more effort than the previous stage. This compounding of effort in moving from one stage to the next, combined with the fact that the process often involves significant iteration and refinement, means that maximizing the quality of the intermediate product before we move to the next stage can significantly reduce the final cost. The high cost of iterating back from a late stage in this pipeline is a big motivation for modeling and simulation. In the worst case, such high costs can include production defects such as Boeing's problems with the 737 Max model, Toyota's brake system problem, and the Intel Pentium bug.
These examples illustrate that the better equipped we are to produce better ideas, models, and prototypes, the more successful we can be as innovators. This observation highlights the importance of techniques such as virtual prototyping (using rigorous modeling and computational simulation), testing (of both computational and physical components), formal verification (of discrete, continuous, and hybrid systems), and model-based production and manufacturing.

Is the Field of Cyber-Physical Systems New?
While the term cyber-physical systems is relatively new, we should consider whether the field or idea behind this way of studying systems also new. It is important that inventors, innovators, leaders in a discipline reflect on and understand the nature and the reasons for the existence of the field. When we do this for CPS, we must consider a wide range of related disciplines and reflect on how they are connected. In the following we consider several relevant concepts and discuss their relationships to CPS.
A hybrid system is a mathematical model that features both continuous and discrete behaviors (related areas are switching systems and impulsive differential equations). While many CPSs can be modeled mathematically as hybrid systems, it is important that we distinguish between the concept of the actual, physical system and its mathematical models and the techniques used to study such.
The mathematical models are there to capture observed behavior, but as new observations occur that cannot be explained by the model it has to be modified or even replaced. It is a common mistake to think of models of physical systems as continuous and models of computational systems as discrete. Models of physical systems can be continuous, discrete, or a combination of both. For example, Bohr's model introduced in 1913 put forth the notion that electrons can only exist in discretely different orbits around the nucleus of an atom, planting the seed for quantum mechanical models. In this book, we study hybrid models of a simple bouncing ball (flying is a continuous behavior, bouncing is a discrete event). Furthermore, at the quantum level, many important phenomena cannot simply be viewed as continuous or discrete systems; rather, as probabilistic systems. Computational systems cannot always be viewed as purely discrete systems. Digital computers are generally implemented as continuous electronic circuits designed to operate reliably only when viewed as discrete systems. Also, there are systems known as analog computers that are continuous systems. Some examples of such systems can be realized perfectly using digital computers. Finally, quantum computing is an active research area that relies on probabilistic models. CPSs are real-world objects, whereas hybrid systems are a mathematical abstraction.
An embedded system is a computational system embedded in a physical system. Any CPS contains an embedded system. The main distinction is that the term "embedded system" reflects a primary focus on the computational component (that is embedded in a larger, physical system). Traditionally, research on embedded systems focused on problems such as formal verification of discrete systems (automata), hardware design, minimization of energy consumption and production cost, as well as embedded software development. The CPS view emphasizes the importance of taking into account the physical context of the computational system which is often necessary to design, test, and verify the functionality that we are developing.
A real-time system is one which must respond to external changes within certain timing constraints. Many, but not all, real-time systems are embedded systems. For example, an automated trading agent would not normally be viewed as an embedded system, even though it must operate under strict timing constraints if it is to function usefully in response to rapidly changing market conditions. Traditionally, research in real-time systems has focused on scheduling or real-time tasks in systems that have periodic or aperiodic request patterns, multiple (interchangeable) computational resources, tasks of varying priorities, and real-time communication. Naturally, research in this area often focuses on worst case run time requirements. A CPS may or may not be a real-time system: The control system in a car has real-time constraints, but the sound system does not necessarily have such.
Reliability is the ability of a system to continue to perform its function despite the failure of some of its components. Reliability can be achieved in several ways, starting from building components from stronger materials to adding redundancy and error-checking to detect and try to compensate for errors and failures. In many domains, including computational systems, probabilistic methods have been used effectively to increase reliability, while keeping costs manageable.10 Probabilistic methods, however, are only one tool for designing and constructing reliable systems. Mastery of other more fundamental concepts in systems design allows us to become more effective users of probabilistic methods. Different CPSs have differing reliability demands, and reliability need not feature prominently in the develop-ment of all individual CPSs. However, in general, as connectivity between different CPSs increases, there is also an increasing need to consider system-wide reliability implications for each type of individual cyber-physical subsystems.
Dependability is a more holistic notion that can encompass several related attributes, such as availability, reliability, durability, safety, security, integrity, and maintainability. In the context of the interdisciplinary field of systems engineering, it is viewed as a measure of these combined attributes. Systems engineering is often viewed as a field of both engineering and engineering management, reflecting its unique point of view between what is traditionally engineering and traditionally management. We see both systems engineering and dependability as of great importance for inventors and innovators, and that the content covered in this book will give the reader a solid foundation to pursue further studies in these disciplines.
A multi-agent system is a mathematical model consisting of interactive objects.11 It is often associated with the mathematical discipline of game theory. Multi-agent systems and game theory provide useful techniques for modeling and reasoning about concepts such as belief, knowledge, intent, competitiveness, and cooperation. Notions of intelligence are often considered in relation to multi-agent systems and mathematical models of both discrete and hybrid (continuous/discrete) games exist. In contrast to the study of hybrid systems, the multi-agent systems and game theory focus on the behavior of collections of agents rather than individual agents.
Finally, CPS is closely related to the disciplines of mechatronics, control theory, robotics, and the Internet of Things (IoT). A common feature of these disciplines is that they are highly interdisciplinary. CPS can be viewed as an attempt to take an even more all-encompassing approach than the first three disciplines, and being quite comparable to the last one (IoT). Texts on mechatronics may not necessarily dedicate a large part to communications and networking, or to hybrid systems foundations. Textbooks in control theory covering issues such as hybrid systems are still considered relatively advanced and specialized. Robots12 are obviously great examples of CPSs, illustrating many of the challenges involved in designing innovative CPS products. We will use a ping pong (table tennis) playing robot as a running case study in a project that we will develop incrementally in different chapters. Both CPS and IoT take the view that the world is becoming highly connected and computational, and it is possible that the two approaches will converge. Historically, CPS is seen by some as having emerged from the Control Theory community, whereas IoT as having emerged from the Communications community.
11 The definition we use is inspired in part by the one used in the article Multi-agent Systems. More information on the subject can be found in the online text of Shoham and Leyton-Brown. 12 The definition we use is more specific than the one used in the article Robot. We exclude usage of the word when referring to purely computational ("virtual") systems, which we view as metaphorical use of the term.

What You Will Learn from This Book, and How
The specific goals of this book include: • Helping you appreciate the value of several distinct disciplines to being an effective innovator. The disciplines we will consider include physical modeling, control, hybrid systems, computational modeling, and game theory. • Providing you with experience in model-based design. This experience will help you be comfortable with the differences between actual physical systems and phenomena on the one hand and mathematical models on the other. It will also help you appreciate the importance of virtual prototyping for rapid product development and rapid accumulation of knowledge about a domain or a product. • Giving you a chance to review and sharpen your mathematical skills, including mathematical modeling, differentiation and integration, and solving simple algebraic and differential equations.
The book involves a simulation-based project. Simulation has many valuable uses, including: • Providing a well-motivated opportunity to be exposed to mathematical modeling. • Avoiding the need for the existence of analytical solutions, that is, solutions in the form of a formula that we can calculate with, because they usually exist only for a smaller class of problems than what we can simulate. • Enabling many more virtual experiments to be run than would be possible with physical ones. Physical testing can be prohibitive for reasons including cost, safety, and controllability. • Enabling easier measurement and evaluation than may be possible with physical experiments. • Providing an opportunity to learn an important skill in CPS design, namely, systematic experimentation. • Increasing the chances of producing a successful CPS design. • Producing many useful visualizations. • Facilitating the creation of animations and computer games.
As mentioned earlier, the project will focus on studying a robotics problem, namely, how to design a robot that can play ping pong. There are several reasons why robotics is a useful example of a CPS domain, including: • It involves intimate coupling between cyber and physical components. • Even simple, rigid-body modeling of 3-D dynamics requires the use of hybrid, non-linear Ordinary Differential Equations (ODEs).
Designing robots gives rise to: • Significant embedded and real-time computation requirements.
• A need to consider issues of communication and belief.
Through these experiences, we can develop a sense of how designing systems becomes more challenging as certain characteristics/parameters of the system increase, such as: • Model complexity resulting from: -Increasing the degrees of freedom (in models of physical systems).
-Increasing the size of state space (in models of computational systems).
-Reducing what can be sensed or actuated (in the control system view).
-Reducing the dependability of the components (across all aspects). • Uncertainty about model parameters, structure, dimensionality, and determinism.
Complex systems are challenging for engineers developing state-of-the-art tools, as well as for researchers conducting basic research. Developing a sense of what today's analytical and computational tools can handle will enable you to be a more effective innovator by focusing on designs that are feasible to analyze and design. It will also enable you to be a more effective researcher by understanding where the frontiers of knowledge lie, which is knowledge that is prerequisite to making fundamental research advances.
Congratulations on completing this introduction! Before we continue and summarize the chapter, we suggest readers that are using this book as course material for a course on CPSs to consult the Acumen manual, see Appendix A. Acumen will be used as the simulation and modeling environment in the project.

A Writing Tip
We have noticed over the last 10 years significant confusion about how to use the abbreviation CPS as a short hand for the term Cyber-Physical Systems in the plural case in particular. This point is worth raising because abbreviation practice makes reading easier and can help avoid confusion. The main tricky bit seems to be that the abbreviation CPS is used both as the name of an area that studies a type of system and a plural for a group of systems. In particular, if we want to abbreviate "The area of Cyber-Physical Systems is new" we would replace the term by CPS. In contrast, if we say "Both cars and robots are Cyber-Physical Systems" we would replace the term by CPSs. When in doubt, think of the term Operating Systems (OS). If we want to abbreviate "The area of Operating Systems is new" we would replace the term by OS. In contrast, if we say "Both Linux and BSD are Operating Systems" we would replace the term by OSs. (a) The goal is to introduce you to the field, so that you know where to look for knowledge when you need it. (b) Emphasis on modeling and simulation, which help you understand the math, accelerates your ability to experiment and innovate, and is fun! 5. What you will learn from this book (a) Recognizing the sources of technical complexity through learning about hybrid systems, control, communication, and game theory. This includes understanding the nature of the system dynamics (linear, non-linear, ODEs, etc.) and the size of the systems studied (in the discrete and the continuous domains). (b) Experience through an in-depth case study (the project)

Study Problems
1. Explain, in your own words, how you imagine mathematics can help you become a better innovator. 2. Consider a product that is expected to appear on the market in the near future.
For this product, describe the issues that should be addressed at the idea, model, prototype, and product stages. 3. Explain, in your own words, and based on your own experience, all the possible challenges that one may encounter if one wants to design and build a robot that can play a game of ping pong with a human. Be as specific as you can about the challenges that you identify. You may search online for results related to this problem, and include ones that caught your attention. Limit your total answer to 600 words and use only one page. 4. Repeat Problem 3 for any other CPS of your choice. Discuss with a colleague. 5. Give an example of a problem that is important to each of these research areas.
Make sure that in each case this problem is central to the area: Embedded systems, Real-time systems, Reliability, Mechatronics, Control Theory, Multi-agent systems, and Internet of Things.

Lab: Warm Up Exercises
The purpose of the lab activities is to bridge between the theory discussed in the chapter and the more experimental activities of the project. The labs and the project will use Acumen. Acumen is an open source modeling and simulation environment specifically aimed at CPS design. The Appendix found at the end of this book contains a manual for Acumen. The distribution contains a set of examples that will be used in the Labs. The purpose of this first lab is to connect to practical experience with modeling and simulation. The activities of the lab are to: • Get Acumen set up on your computer. To do that -Download the 2016/8/30 Acumen distribution -Uncompress it or unzip it -Run the Jar file that you will find in the uncompressed folder -If this does not work right away, then go to Java.com, download and install Java 8, and restart your machine, run the Jar file again.
• Work through the first set of examples in Acumen. The purpose of these exercises is to practice -Geometry (in 3D, like our real world, and what we need to understand in order to talk about robot arms) -Dynamics, the basic differential equations needed for things like f = ma -Animation, which is the simple combination of the above two things. -Working through these problems during the lab will help familiarize you with Acumen concepts and syntax, and will help you learn how to deal with simple error messages ( The third sequence of example will be particularly helpful preparation for the coming chapters, as it introduces several basic concepts that illustrate how differential equations are used to model dynamics. Here is a brief summary of these concepts: Simple dense-time models are introduced with the equation x = 1. Definite integration of constants and polynomials arises naturally in discussing such equations, but such integrations are needed only when we calculate solutions by hand. A simulation environment that solves these differential equations (like Acumen) can also calculate numerical solutions automatically. Higher derivatives are illustrated by the equation x = 1. Exponential functions are introduced by the equations x = x and x = −x. Complex exponential functions (trigonometric functions) in the solution forms are introduced by the equation x = −x. These systems also exemplify linear differential equations. Physical systems that can be modeled by these types of equations (falling ball, electric flows, AC current, etc.) are briefly touched upon. The pendulum equation x = − sin(x) is given as an example of the non-linearity that arises naturally in mechanical models.

Project
The goal of the project is to provide you with a concrete case study for applying what you learn in each chapter and to provide you with an opportunity for first-hand experience of the challenges and rewards of designing CPSs. To achieve this goal, the project will focus on an example of a CPS design task-namely, building a machine that can play ping pong. While building a robot can often require significant time, space, and financial resources, we can use model-based design and simula-tion techniques to produce a comprehensive blueprint and significantly sharpen our knowledge and skills with much less cost.
The first project activity will give you a sense of the overall way you will work with models in the project. The Cannon Beach game is intended to help you apply your knowledge of physics, control, differential equations, and other areas to solve a challenging design problem. Your knowledge will be deeper in some areas than in others. This variability in expertise is normal, and is typical in real-world situations. It is an important engineering skill to be able to find ways to solve difficult problems with the experience you already have, and to continue to develop your skills while working on new challenges.
The picture above shows what the game visualization looks like. From left to right you have a pile of cannonballs, the cannon, and the target. When the game is being played, the target (bullseye) appears at different locations. When the cannonball is fired, it travels with a given speed and the angle where the cannon is pointing. The angle is measured from the ground to the cannon. The bullet is subject to the effect of gravity and air resistance. You probably already know a lot about the effects of gravity for this problem, but not so much about air resistance. This problem is a chance for you to learn a bit about how air resistance is modeled, and how it affects solving problems.
Your task is to design a player (or "controller") that sets the direction of the cannon so that you hit the target. The more accurately you hit the target, the more points you get.
This controller takes the target position as input, and must compute a value for the angle. You can assume for now the velocity is given (see model) and leave it as it is. In terms of specific technical details, you can assume that gravity g = 10 m/s 2 and air resistance coefficient k = 0.01 m/s 2 . The target can appear at any point between positions −6 and 6. You will need to read the model of the game to learn the full details.
What you need to submit for this assignment is a modified version of the following template. In this template, the model parameters position, target, velocity represent the cannon's position, the target's position, and the bullet's velocity, respectively. The angle output should between 0 and π. model ResponseExample ( position , target , velocity ) = initially angle = 0, distance = 0 always distance = target -position , angle = pi /4

To Probe Further
At the end of each chapter you will find a collection of pointers for further exploration. Some will be more technical, others will be lighthearted. The idea is to help you explore further beyond the material presented in the chapter. Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.