CS 8803 Cyber-Physical Design and Analysis

Eric Feron

Eric Feron

Creator, Instructor

Overview

Cyber-physical systems are systems comprising both a physical part and a software part, whereby the physical part of the system sends information about itself to the software part, and the software sends information, usually in the form of commands, to the physical part. The development of cyber-physical systems, therefore, requires knowing a mix of competencies relative to physical systems, on the one hand, and software systems, on the other hand. Because physical systems have "a life of their own", and they can often harm operators (think airplanes, medical devices, or cars) and/or cost a fortune to repair (think power grid and centrifuges), the development of programs that control these systems cannot rely much on "trial and error". This course introduces the tools and models that will allow attendees to develop high confidence in the resulting system's proper operation prior to any operational test. Included are tools for model-based systems engineering, and cyber-physical system verification and validation currently in use by the CPS industry. Numerous examples will be considered, from aerospace, automotive, medical devices etc. The frequent presence of human operators is also acknowledged and discussed in-depth. Various verification and validation formalisms (formal methods) are described and applied to simple examples.

Motivational reading

This ATLANTIC ARTICLE gives you good contextual information.

Course preview: Cyber... Physical... Systems

Prerequisites

A Computer Science or Engineering Bachelor or equivalent degree.

Computer Languages used in this course

This class mixes physical systems, signal processing, program specification, and programming. The class will use AADL and Simulink as engineering specification languages. It will use Matlab and C as programming language. AADL will be taught explicitly. Students without these coding backgrounds who are willing to learn have also been successful in this course.

Grading

This course will be primarily driven by homework and projects. A take-home final exam will help everyone test their ability to solve specific, simple problems. 

Approximate grade distribution:

- Class participation as measured on Piazza: 5%

- Homework: 40%

- Projects: 40%

- Final: 15%

Letter grading scale: 

A: 90-100, B: 80-89, C: 70-80, D: 60-69, F: 0-59

Schedule

  1. CPS introduction

    1. Course introduction
    2. CPS definitions
    3. CPS trends
    4. Areas of interest
    5. Fundamental approach
    6. CPS examples
    7. CPS Genesis, Modeling, Design, Verification and Validation, Assembly and Deployment
  2. Review

    1. Calculus
    2. Differential equations
    3. Markov models
    4. Linear systems
  3. Models

    1. Nature and Computation Myths: Airborne Collision avoidance examples
    2. From Continuous to discrete dynamics
    3. Other CPS representations
    4. Examples: Water tank, spring oscillator
    5. Communication systems
    6. Modeling trade-offs: Faithfulness, manageability, level-of-detail, accuracy
  4. Low level CPS design

    1. Canonical Example: Stopping a car
    2. Feedback
    3. Reduced-gravity Drone
    4. Linear Control
    5. Controllability: Train example
  5. Mid-level CPS design requirements

    1. Trajectory Planning and examples
    2. Aviation example
    3. Typical requirements
  6. Mid-level CPS design

    1. Guidance techniques
    2. Classical optimization and examples
    3. Dynamic Programs
    4. Automotive example
    5. Rapidly-exploring Random Trees
  7. High level CPS design

    1. High-level decision-making: Linear Temporal Logic (LTL)
    2. Self-driving car example
    3. LTL and trajectory planning
    4. Reduced-gravity drone example
  8. Low-level humans and CPS interactions

    1. Humans and CPS
    2. Human control and workload
    3. Handling qualities
    4. Automotive example
    5. Caravan-trailer sway alleviation
  9. High-level human and CPS interactions: Aerospace perspective

    1. Aviation context
    2. Human-automation interaction
    3. Allocating automation between humans and computers
    4. Flexibility issues
    5. Autonomy and complexity
    6. Automation as a state machine
    7. State machine observability by humans
  10. Hardware-software co-design

    1. Mechanics and software
    2. Jetpacks!
    3. Hardware vs. Software
    4. Fast electronics
    5. Accounting for physics
  11. Processors and Sensors

    1. Sensors and CPS - trends
    2. Sensors, CPS, and IoT
    3. Actuators and servos
    4. Embedded CPS architectures
    5. Communications
    6. Processors
  12. Systems Engineering, general approach

    1. Vee Design cycle and activities
    2. Industry standards and advisory documents
    3. Tools and frameworks: Software-centric viewpoint
    4. Model-based engineering pitfalls
    5. AADL virtual integration – cost savings
  13. Architecture Analysis and Design Language (AADL): General Principles and positioning

    1. Why modeling in design?
    2. Models, Processes, and tools
    3. AADL introduction
    4. AADL Components: software, hardware
    5. AADL properties
  14. AADL Crazyflie Case Study

    1. Modeling
    2. Implementing a UAV control logic
    3. AADL functional chain
    4. Flow analysis
    5. Latency / real-time scheduling
    6. AADL, middleware, and code generation
    7. Error modeling and analysis
  15. Formal methods

    1. Concerns of formal methods
    2. Concerns about formal methods
    3. Abstractions
    4. Abstract interpretation
    5. Model Checking
    6. Hunting for invariants
  16. Future of CPS