Challenge

Project 2 Adaptive Cruise Control

Develop the Adoptive cruise control due to given data.

at first made derive vehicle and lead vehicle then ACC and inside ACC create stateflow statement.

derive and lead vehicle output are connect for input of ACC and the acceleration mode are feedback to derive vehicle.

1.Adoptive Cruise control Model

2.Derive vehicle

3.Lead Vehicle

4.operation of ACC

5.Stateflow

6.Tagging and Traccing

7.Code Generated

/*
 * File: ACC_Subsystem.c
 *
 * Code generated for Simulink model 'ACC_Subsystem'.
 *
 * Model version                  : 1.2
 * Simulink Coder version         : 9.5 (R2021a) 14-Nov-2020
 * C/C++ source code generated on : Tue Dec 27 07:07:28 2022
 *
 * Target selection: ert.tlc
 * Embedded hardware selection: Intel->x86-64 (Windows64)
 * Code generation objectives: Unspecified
 * Validation result: Not run
 */

#include "ACC_Subsystem.h"
#include "ACC_Subsystem_private.h"

/* Named constants for Chart: '/Chart' */
#define ACC_IN_LeadVehicle_Not_Detected ((uint8_T)4U)
#define ACC_Subsyst_IN_ACC_MODE_STANDBY ((uint8_T)2U)
#define ACC_Subsyste_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
#define ACC_Subsystem_IN_ACC_MODE_ON   ((uint8_T)1U)
#define ACC_Subsystem_IN_Acc_MODE_OFF  ((uint8_T)3U)
#define IN_LeadVehicle_Detected_Follow ((uint8_T)1U)
#define IN_LeadVehicle_Detected_Resume ((uint8_T)2U)
#define IN_LeadVehicle_Detected_Resume1 ((uint8_T)3U)
#define IN_LeadVehicle_Speed_equal_Set_ ((uint8_T)5U)
#define IN_LeadVehicle_Speed_lessthan_S ((uint8_T)6U)

/* Block states (default storage) */
DW_ACC_Subsystem_T ACC_Subsystem_DW;

/* External inputs (root inport signals with default storage) */
ExtU_ACC_Subsystem_T ACC_Subsystem_U;

/* External outputs (root outports fed by signals with default storage) */
ExtY_ACC_Subsystem_T ACC_Subsystem_Y;

/* Real-time model */
static RT_MODEL_ACC_Subsystem_T ACC_Subsystem_M_;
RT_MODEL_ACC_Subsystem_T *const ACC_Subsystem_M = &ACC_Subsystem_M_;

/* Model step function */
void ACC_Subsystem_step(void)
{
  /* Chart: '/Chart' incorporates:
   *  Inport: '/CruiseSwitch'
   *  Inport: '/DriveVehicle_Speed'
   *  Inport: '/LeadVehicle_Detected'
   *  Inport: '/LeadVehicle_Speed'
   *  Inport: '/SetSwitch'
   *  Inport: '/Set_Gap'
   *  Inport: '/Set_Speed'
   *  Inport: '/Time_Gap'
   */
  if (ACC_Subsystem_DW.is_active_c3_ACC_Subsystem == 0U) {
    ACC_Subsystem_DW.is_active_c3_ACC_Subsystem = 1U;
    ACC_Subsystem_DW.is_c3_ACC_Subsystem = ACC_Subsystem_IN_Acc_MODE_OFF;

    /* Outport: '/Acceleration_Mode' */
    ACC_Subsystem_Y.Acceleration_Mode = 0.0;
  } else {
    switch (ACC_Subsystem_DW.is_c3_ACC_Subsystem) {
     case ACC_Subsystem_IN_ACC_MODE_ON:
      if (ACC_Subsystem_U.SetSwitch == 0.0) {
        ACC_Subsystem_DW.is_ACC_MODE_ON = ACC_Subsyste_IN_NO_ACTIVE_CHILD;
        ACC_Subsystem_DW.is_c3_ACC_Subsystem = ACC_Subsyst_IN_ACC_MODE_STANDBY;

        /* Outport: '/Acceleration_Mode' */
        ACC_Subsystem_Y.Acceleration_Mode = 1.0;

8.Simulink Data Dictionary

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.