Challenge

Project 1 - Wiper control system and Vehicle speed calculation for ABS using Wheel Speed sensor

Q1)Develop Simulink/state flow model for wiper control system based on the given conditions.

Description of Challenge:

  1. If the density of the rain is low, then wiper rotates with low speed & the output signal should be 100rpm
  2. If the density of the rain is medium, then wiper rotates with medium speed & the output signal should be 200rpm
  3. If the density of the rain is high, then wiper rotates with high speed & the output signal should be 500rpm

Model-

SLDD-

Requirement Tagging-

Requirement group is created in the requirement manager and 3 reqiurements are linked to the states of the stateflow diagram.

Find the requirement tagging report in the attachments

JMAAB Report-

Find the detailed JMAAB report in the attachements.

Fixed point Tool-

Old SLDD-

New SLDD with fixed point conversion-

SLDV Design error detection-

Coclusion-

There was not any dead logic or falsified condition in the simulink model as per the design error detection report.

Find the SLDV design error detection report in the attachements.

SLDV Test generation-

Find the SLDV test generation report in the attachements.

Functional Testing-

Test Cases-

MIL Harness-

MIL Test Output-

As seen from the data inspector expected output and actual model output is matching at every time instant.

SIL Test Harness-

SIL Test Output-

As seen from the data inspector expected output and actual model output is matching at every time instant.

Auto code genration-

Wiper_Control_SWC.c-

/*
* File: Wiper_Control_SWC.c
*
* Code generated for Simulink model 'Wiper_Control_SWC'.
*
* Model version : 1.43
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Wed Sep 21 00:46:14 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#include "Wiper_Control_SWC.h"
#include "Wiper_Control_SWC_private.h"
/* Named constants for Chart: '/Wiper_Control_Logic' */
#define Wiper_Control_SWC_IN_High_Rain ((uint8_T)1U)
#define Wiper_Control_SWC_IN_Initialize ((uint8_T)2U)
#define Wiper_Control_SWC_IN_Low_Rain ((uint8_T)3U)
#define Wiper_Control_SW_IN_Medium_Rain ((uint8_T)4U)
/* Block states (default storage) */
DW_Wiper_Control_SWC_T Wiper_Control_SWC_DW;
/* External outputs (root outports fed by signals with default storage) */
ExtY_Wiper_Control_SWC_T Wiper_Control_SWC_Y;
/* Real-time model */
RT_MODEL_Wiper_Control_SWC_T Wiper_Control_SWC_M_;
RT_MODEL_Wiper_Control_SWC_T *const Wiper_Control_SWC_M = &Wiper_Control_SWC_M_;
/* Model step function */
void Wiper_Control_SWC_step(void)
{
/* Outputs for Atomic SubSystem: '/Wiper_Control' */
/* Chart: '/Wiper_Control_Logic' incorporates:
* Inport: '/Rain_Input'
*/
if (Wiper_Control_SWC_DW.is_active_c1_Wiper_Control_SWC == 0U) {
Wiper_Control_SWC_DW.is_active_c1_Wiper_Control_SWC=1U;
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Initialize;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output=0U;
} else {
switch (Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC) {
case Wiper_Control_SWC_IN_High_Rain:
if ((Rain_Input < Wiper_Control_SWC_DW.Rain_LL) && (Rain_Input > 0)) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Low_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.Low_Speed;
} else if ((Rain_Input < Wiper_Control_SWC_DW.Rain_HL) && (Rain_Input >
Wiper_Control_SWC_DW.Rain_LL)) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SW_IN_Medium_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.Medium_Speed;
} else {
if (Rain_Input == 0) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Initialize;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output=0U;
}
}
break;
case Wiper_Control_SWC_IN_Initialize:
if ((Rain_Input < Wiper_Control_SWC_DW.Rain_HL) && (Rain_Input >
Wiper_Control_SWC_DW.Rain_LL)) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SW_IN_Medium_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.Medium_Speed;
} else if (Rain_Input > Wiper_Control_SWC_DW.Rain_HL) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_High_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.High_Speed;
} else {
if ((Rain_Input < Wiper_Control_SWC_DW.Rain_LL) && (Rain_Input > 0)) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Low_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.Low_Speed;
}
}
break;
case Wiper_Control_SWC_IN_Low_Rain:
if ((Rain_Input < Wiper_Control_SWC_DW.Rain_HL) && (Rain_Input >
Wiper_Control_SWC_DW.Rain_LL)) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SW_IN_Medium_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.Medium_Speed;
} else if (Rain_Input > Wiper_Control_SWC_DW.Rain_HL) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_High_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.High_Speed;
} else {
if (Rain_Input == 0) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Initialize;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output=0U;
}
}
break;
default:
/* case IN_Medium_Rain: */
if ((Rain_Input < Wiper_Control_SWC_DW.Rain_LL) && (Rain_Input > 0)) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Low_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.Low_Speed;
} else if (Rain_Input > Wiper_Control_SWC_DW.Rain_HL) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_High_Rain;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output = Wiper_Control_SWC_DW.High_Speed;
} else {
if (Rain_Input == 0) {
Wiper_Control_SWC_DW.is_c1_Wiper_Control_SWC=
Wiper_Control_SWC_IN_Initialize;
/* Outport: '/Wiper_Output' */
Wiper_Control_SWC_Y.Wiper_Output=0U;
}
}
break;
}
}
/* End of Chart: '/Wiper_Control_Logic' */
/* End of Outputs for SubSystem: '/Wiper_Control' */
}
/* Model initialize function */
void Wiper_Control_SWC_initialize(void)
{
/* SystemInitialize for Atomic SubSystem: '/Wiper_Control' */
/* SystemInitialize for Chart: '/Wiper_Control_Logic' */
Wiper_Control_SWC_DW.Low_Speed=6400U;
Wiper_Control_SWC_DW.Medium_Speed=12800U;
Wiper_Control_SWC_DW.High_Speed=32000U;
Wiper_Control_SWC_DW.Rain_HL=100U;
Wiper_Control_SWC_DW.Rain_LL=50U;
/* End of SystemInitialize for SubSystem: '/Wiper_Control' */
}
/* Model terminate function */
void Wiper_Control_SWC_terminate(void)
Wiper_Control_SWC.h-
/*
* File: Wiper_Control_SWC.h
*
* Code generated for Simulink model 'Wiper_Control_SWC'.
*
* Model version : 1.43
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Wed Sep 21 00:46:14 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_Wiper_Control_SWC_h_
#define RTW_HEADER_Wiper_Control_SWC_h_
#ifndef Wiper_Control_SWC_COMMON_INCLUDES_
# define Wiper_Control_SWC_COMMON_INCLUDES_
#include "rtwtypes.h"
#endif /* Wiper_Control_SWC_COMMON_INCLUDES_ */
#include "Wiper_Control_SWC_types.h"
/* Macros for accessing real-time model data structure */
#ifndef rtmGetErrorStatus
# define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
#endif
#ifndef rtmSetErrorStatus
# define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
#endif
/* Block states (default storage) for system '' */
typedef struct {
uint16_T Low_Speed; /* '/Wiper_Control_Logic' */
uint16_T Medium_Speed; /* '/Wiper_Control_Logic' */
uint16_T High_Speed; /* '/Wiper_Control_Logic' */
uint8_T is_active_c1_Wiper_Control_SWC;/* '/Wiper_Control_Logic' */
uint8_T is_c1_Wiper_Control_SWC; /* '/Wiper_Control_Logic' */
uint8_T Rain_HL; /* '/Wiper_Control_Logic' */
uint8_T Rain_LL; /* '/Wiper_Control_Logic' */
} DW_Wiper_Control_SWC_T;
/* External outputs (root outports fed by signals with default storage) */
typedef struct {
uint16_T Wiper_Output; /* '/Wiper_Output' */
} ExtY_Wiper_Control_SWC_T;
/* Real-time Model Data Structure */
struct tag_RTM_Wiper_Control_SWC_T {
const char_T *errorStatus;
};
/* Block states (default storage) */
extern DW_Wiper_Control_SWC_T Wiper_Control_SWC_DW;
/* External outputs (root outports fed by signals with default storage) */
extern ExtY_Wiper_Control_SWC_T Wiper_Control_SWC_Y;
/* Model entry point functions */
extern void Wiper_Control_SWC_initialize(void);
extern void Wiper_Control_SWC_step(void);
extern void Wiper_Control_SWC_terminate(void);
/* Real-time Model object */
extern RT_MODEL_Wiper_Control_SWC_T *const Wiper_Control_SWC_M;
/*-
* The generated code includes comments that allow you to trace directly
* back to the appropriate location in the model. The basic format
* is /block_name, where system is the system number (uniquely
* assigned by Simulink) and block_name is the name of the block.
*
* Use the MATLAB hilite_system command to trace the generated code back
* to the model. For example,
*
* hilite_system('') - opens system 3
* hilite_system('/Kp') - opens and selects block Kp which resides in S3
*
* Here is the system hierarchy for this model
*
* '' : 'Wiper_Control_SWC'
* '' : 'Wiper_Control_SWC/Wiper_Control'
* '' : 'Wiper_Control_SWC/Wiper_Control/Wiper_Control_Logic'
*/
#endif /* RTW_HEADER_Wiper_Control_SWC_h_ */
/*
* File trailer for generated code.
*
* [EOF]
*/
{
/* (no terminate code required) */
}
/*
Wiper_Control_SWC_private.h-
/*
* File: Wiper_Control_SWC_private.h
*
* Code generated for Simulink model 'Wiper_Control_SWC'.
*
* Model version : 1.43
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Wed Sep 21 00:46:14 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_Wiper_Control_SWC_private_h_
#define RTW_HEADER_Wiper_Control_SWC_private_h_
#include "rtwtypes.h"
#ifndef UCHAR_MAX
#include
#endif
#if ( UCHAR_MAX != (0xFFU) ) || ( SCHAR_MAX !=(0x7F))
#error Code was generated for compiler with different sized uchar/char.\
Consider adjusting Test hardware word size settings on the\
Hardware Implementation pane to match your compiler word sizes as\
defined in limits.h of the compiler. Alternatively, you can\
select the Test hardware is the same as production hardware option and\
select the Enable portable word sizes option on the Code Generation >\
Verification pane for ERT based targets, which will disable the\
preprocessor word size checks.
#endif
#if ( USHRT_MAX != (0xFFFFU) ) || ( SHRT_MAX !=(0x7FFF))
#error Code was generated for compiler with different sized ushort/short.\
Consider adjusting Test hardware word size settings on the\
Hardware Implementation pane to match your compiler word sizes as\
defined in limits.h of the compiler. Alternatively, you can\
select the Test hardware is the same as production hardware option and\
select the Enable portable word sizes option on the Code Generation >\
Verification pane for ERT based targets, which will disable the\
preprocessor word size checks.
#endif
#if ( UINT_MAX != (0xFFFFFFFFU) ) || ( INT_MAX !=(0x7FFFFFFF))
#error Code was generated for compiler with different sized uint/int.\
Consider adjusting Test hardware word size settings on the\
Hardware Implementation pane to match your compiler word sizes as\
defined in limits.h of the compiler. Alternatively, you can\
select the Test hardware is the same as production hardware option and\
select the Enable portable word sizes option on the Code Generation >\
Verification pane for ERT based targets, which will disable the\
preprocessor word size checks.
#endif
#if ( ULONG_MAX != (0xFFFFFFFFU) ) || ( LONG_MAX !=(0x7FFFFFFF))
#error Code was generated for compiler with different sized ulong/long.\
Consider adjusting Test hardware word size settings on the\
Hardware Implementation pane to match your compiler word sizes as\
defined in limits.h of the compiler. Alternatively, you can\
select the Test hardware is the same as production hardware option and\
select the Enable portable word sizes option on the Code Generation >\
Verification pane for ERT based targets, which will disable the\
preprocessor word size checks.
#endif
/* Imported (extern) block signals */
extern uint8_T Rain_Input; /* '/Rain_Input' */
#endif /* RTW_HEADER_Wiper_Control_SWC_private_h_ */
/*
* File trailer for generated code.
*
* [EOF]
*/
* File trailer for generated code.
*
* [EOF]
*/
Wiper_Control_SWC_types.h-
/*
* File: Wiper_Control_SWC_types.h
*
* Code generated for Simulink model 'Wiper_Control_SWC'.
*
* Model version : 1.43
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Wed Sep 21 00:46:14 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_Wiper_Control_SWC_types_h_
#define RTW_HEADER_Wiper_Control_SWC_types_h_
/* Model Code Variants */
/* Forward declaration for rtModel */
typedef struct tag_RTM_Wiper_Control_SWC_T RT_MODEL_Wiper_Control_SWC_T;
#endif /* RTW_HEADER_Wiper_Control_SWC_types_h_ */
/*
* File trailer for generated code.
*
* [EOF]
*/
Find the code generation report in the attachments.
Polyspace Analysis-
Bug Finder analysis-
Code Prover Anaysis-
Find reports of both the analysis in the attachments.
Test manager-
Baseline Test-
As seen above all the conditions for the baseline test are satisefied.
Find the report in the attachements
Back to Back Test-
Back to back test was performed on the model and seen from the above image all three conditions were satisefied. But due to some internal error I wa snot able to generate the B2B test report.

Develop Simulink/state flow model for the vehicle speed calculation unit inside the ABS system for the below conditions.

Description of Challenge:

fl, fr, rl and rr are the wheel speeds of front left, front right, rear left and rear right respectively.

Model-

Requirement Tagging-
Requirement group is created in the requirement manager and 7 reqiurements are linked to the states of the stateflow diagram.
Find the requirement tagging report in the attachments
JMAAB Report-

Find the detailed JMAAB report in the attachements.

Fixed point Tool-

Old SLDD-

New SLDD-

SLDV Design Error detection-

Coclusion-

There was not any dead logic or falsified condition in the simulink model as per the design error detection report.

Find the SLDV design error detection report in the attachements.

SLDV Test generation-

Find the SLDV test generation report in the attachements.

Functional Testing-

Test Cases-

MIL Harness-

MIL Test Output-

As seen from the data inspector expected output and actual model output is matching at every time instant.

SIL Test Harness-

SIL Test Output-

As seen from the data inspector expected output and actual model output is matching at every time instant.

Auto code genration-

Vehicle_Speed_Calculation_SWC.c-

/*
* File: Vehicle_Speed_Calculation_SWC.c
*
* Code generated for Simulink model 'Vehicle_Speed_Calculation_SWC'.
*
* Model version : 1.50
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Sat Sep 24 23:13:26 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#include "Vehicle_Speed_Calculation_SWC.h"
#include "Vehicle_Speed_Calculation_SWC_private.h"
/* External outputs (root outports fed by signals with default storage) */
ExtY_Vehicle_Speed_Calculatio_T Vehicle_Speed_Calculation_SWC_Y;
/* Real-time model */
RT_MODEL_Vehicle_Speed_Calcul_T Vehicle_Speed_Calculation_SW_M_;
RT_MODEL_Vehicle_Speed_Calcul_T *const Vehicle_Speed_Calculation_SW_M=
&Vehicle_Speed_Calculation_SW_M_;
/* Model step function */
void Vehicle_Speed_Calculation_SWC_step(void)
{
/* Outputs for Atomic SubSystem: '<Root>/Vehicle_Speed_Calculation' */
/* Chart: '<S1>/Chart' incorporates:
* Inport: '<Root>/Fl'
* Inport: '<Root>/Fr'
* Inport: '<Root>/Rl'
* Inport: '<Root>/Rr'
*/
if ((Fl > 0) && (Fr > 0) && (Rl > 0) && (Rr > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((((Fl + Fr) + Rl)
+ Rr) /4);
} else if ((Fl > 0) && (Fr > 0) && (Rl > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)(((Fl + Fr) + Rl) /
3);
} else if ((Fl > 0) && (Fr > 0) && (Rr > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)(((Fl + Fr) + Rr) /
3);
} else if ((Fl > 0) && (Rr > 0) && (Rl > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)(((Fl + Rl) + Rr) /
3);
} else if ((Fr > 0) && (Rr > 0) && (Rl > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)(((Fr + Rl) + Rr) /
3);
} else if ((Fl > 0) && (Rl > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((Fl + Rl) /2);
} else if ((Fl > 0) && (Rr > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((Fl + Rr) /2);
} else if ((Fr > 0) && (Rl > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((Fr + Rl) /2);
} else if ((Fr > 0) && (Rr > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((Fr + Rr) /2);
} else if ((Fl > 0) && (Fr > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((Fl + Rr) /2);
} else if ((Rr > 0) && (Rl > 0)) {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed = (uint8_T)((Rl + Rr) /2);
} else {
/* Outport: '<Root>/Vehicle_Speed' */
Vehicle_Speed_Calculation_SWC_Y.Vehicle_Speed=0U;
}
/* End of Chart: '<S1>/Chart' */
/* End of Outputs for SubSystem: '<Root>/Vehicle_Speed_Calculation' */
}
/* Model initialize function */
void Vehicle_Speed_Calculation_SWC_initialize(void)
{
/* (no initialization code required) */
}
/* Model terminate function */
void Vehicle_Speed_Calculation_SWC_terminate(void)
{
/* (no terminate code required) */
}
/*
* File trailer for generated code.
*
* [EOF]
*/
Vehicle_Speed_Calculation_SWC.h-
/*
* File: Vehicle_Speed_Calculation_SWC.h
*
* Code generated for Simulink model 'Vehicle_Speed_Calculation_SWC'.
*
* Model version : 1.50
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Sat Sep 24 23:13:26 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_Vehicle_Speed_Calculation_SWC_h_
#define RTW_HEADER_Vehicle_Speed_Calculation_SWC_h_
#ifndef Vehicle_Speed_Calculation_SWC_COMMON_INCLUDES_
# define Vehicle_Speed_Calculation_SWC_COMMON_INCLUDES_
#include "rtwtypes.h"
#endif /* Vehicle_Speed_Calculation_SWC_COMMON_INCLUDES_ */
#include "Vehicle_Speed_Calculation_SWC_types.h"
/* Macros for accessing real-time model data structure */
#ifndef rtmGetErrorStatus
# define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
#endif
#ifndef rtmSetErrorStatus
# define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
#endif
#define Vehicle_Speed_Calculation_SWC_M (Vehicle_Speed_Calculation_SW_M)
/* External outputs (root outports fed by signals with default storage) */
typedef struct {
uint8_T Vehicle_Speed; /* '<Root>/Vehicle_Speed' */
} ExtY_Vehicle_Speed_Calculatio_T;
/* Real-time Model Data Structure */
struct tag_RTM_Vehicle_Speed_Calcula_T {
const char_T *errorStatus;
};
/* External outputs (root outports fed by signals with default storage) */
extern ExtY_Vehicle_Speed_Calculatio_T Vehicle_Speed_Calculation_SWC_Y;
/* Model entry point functions */
extern void Vehicle_Speed_Calculation_SWC_initialize(void);
extern void Vehicle_Speed_Calculation_SWC_step(void);
extern void Vehicle_Speed_Calculation_SWC_terminate(void);
/* Real-time Model object */
extern RT_MODEL_Vehicle_Speed_Calcul_T *const Vehicle_Speed_Calculation_SW_M;
/*-
* The generated code includes comments that allow you to trace directly
* back to the appropriate location in the model. The basic format
* is <system>/block_name, where system is the system number (uniquely
* assigned by Simulink) and block_name is the name of the block.
*
* Use the MATLAB hilite_system command to trace the generated code back
* to the model. For example,
*
* hilite_system('<S3>') - opens system 3
* hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
*
* Here is the system hierarchy for this model
*
* '<Root>' : 'Vehicle_Speed_Calculation_SWC'
* '<S1>' : 'Vehicle_Speed_Calculation_SWC/Vehicle_Speed_Calculation'
* '<S2>' : 'Vehicle_Speed_Calculation_SWC/Vehicle_Speed_Calculation/Chart'
*/
#endif /* RTW_HEADER_Vehicle_Speed_Calculation_SWC_h_ */
/*
* File trailer for generated code.
*
* [EOF]
*/
Vehicle_Speed_Calculation_SWC_private.h-
/*
* File: Vehicle_Speed_Calculation_SWC_private.h
*
* Code generated for Simulink model 'Vehicle_Speed_Calculation_SWC'.
*
* Model version : 1.50
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Sat Sep 24 23:13:26 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_Vehicle_Speed_Calculation_SWC_private_h_
#define RTW_HEADER_Vehicle_Speed_Calculation_SWC_private_h_
#include "rtwtypes.h"
/* Imported (extern) block signals */
extern uint8_T Fl; /* '<Root>/Fl' */
extern uint8_T Fr; /* '<Root>/Fr' */
extern uint8_T Rl; /* '<Root>/Rl' */
extern uint8_T Rr; /* '<Root>/Rr' */
#endif /* RTW_HEADER_Vehicle_Speed_Calculation_SWC_private_h_ */
/*
* File trailer for generated code.
*
* [EOF]
*/
Vehicle_Speed_Calculation_SWC_types.h-
/*
* File: Vehicle_Speed_Calculation_SWC_types.h
*
* Code generated for Simulink model 'Vehicle_Speed_Calculation_SWC'.
*
* Model version : 1.50
* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019
* C/C++ source code generated on : Sat Sep 24 23:13:26 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#ifndef RTW_HEADER_Vehicle_Speed_Calculation_SWC_types_h_
#define RTW_HEADER_Vehicle_Speed_Calculation_SWC_types_h_
/* Model Code Variants */
/* Forward declaration for rtModel */
typedef struct tag_RTM_Vehicle_Speed_Calcula_T RT_MODEL_Vehicle_Speed_Calcul_T;
#endif /* RTW_HEADER_Vehicle_Speed_Calculation_SWC_types_h_ */
/*
* File trailer for generated code.
*
* [EOF]
*/
Find the code generation report in the attachments.
Polyspace Analysis-
Bug Finder analysis-
Code Prover Anaysis-
Find reports of both the analysis in the attachments.
Test manager-
Baseline Test-
As seen above all the conditions for the baseline test are satisefied.
Find the report in the attachements
Back to Back Test-
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.