Embedded Control Systems
Adaptive Cruise Control and Automated Steering
This project utilized MATLAB, Simulink and Stateflow to implement a simple vehicle with adaptive cruise control and an automatic steering controller. The vehicle was operated as stable as possible along a predetermined coordinate path via the NXP and Haptic Wheel Interface. The vehicle was implemented following a bicycle model to simplify the differential equations in the vehicle model.
- Two proportional plus derivative (PD) controllers to autonomously steer the vehicle
- CAN messaging to interact with other vehicles on the same path
- Interface with haptic wheel and other hardware which sets speed, cruise control, and throttle by developing code to handle GPIO, ADC, and PWM signals.
- Final report
Haptic Wheel
Skills and Learnings:
- Use of a NXP S32K144 microprocessor
- Sampling, Nyquist frequency,
- Beats, aliasing
- Laplace transforms, Fourier transforms
- Pulse Width Modulation (PWM)
- Frequency response of PWM signals
- Bode plots, RC filters
- Transfer functions
- Second-order systems
- Continuous vs Discrete time approximation
- Characteristic poles
- Numerical stability
- Interrupts, semaphores
- RMS Schedulability
- Virtual wheel, virtual spring, virtual damping
Smart Highway
The design problem was to control the speed of a vehicle to track another vehicle from a distance that depends on speed. We wanted to string several of these vehicles, one behind the other. We first created a dynamic model using Simulink. Our final controller utilized PI control to maintain the desired distance away from the car in from of it.
Skills and Learnings:
- PID Control
- Bode plots and root locus to assess the single-car system performance
- Simulink modeling
- Nyquist plots to analyze stability
- Matlab scripting
- Constructing and analyzing filters