Challenge

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

1. Code Generation

*
* Event Support License -- for demonstration use and event support. Not
* for government, research, commercial, or other organizational use.
*
* File: Wiper_Control_Speed.c
*
* Code generated for Simulink model 'Wiper_Control_Speed'.
*
* Model version : 1.33
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
* C/C++ source code generated on : Thu Dec 29 20:09:56 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*/
#include "Wiper_Control_Speed.h"
#include "rtwtypes.h"
#include "Wiper_Control_Speed_private.h"
/* External outputs (root outports fed by signals with default storage) */
ExtY_Wiper_Control_Speed_T Wiper_Control_Speed_Y;
/* Real-time model */
static RT_MODEL_Wiper_Control_Speed_T Wiper_Control_Speed_M_;
RT_MODEL_Wiper_Control_Speed_T *const Wiper_Control_Speed_M =
&Wiper_Control_Speed_M_;
/* Model step function */
void Wiper_Control_Speed_step(void)
{
/* Outputs for Atomic SubSystem: '<Root>/Subsystem' */
/* If: '<S1>/If' incorporates:
* Inport: '<Root>/Density'
*/
if (Density == 0.0) {
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem' incorporates:
* ActionPort: '<S2>/Action Port'
*/
/* Merge: '<S1>/Merge' incorporates:
* Constant: '<S1>/Wiper_Off'
* SignalConversion generated from: '<S2>/In1'
*/
Wiper_Speed = 0.0;
/* End of Outputs for SubSystem: '<S1>/If Action Subsystem' */
} else if (Density == 1.0) {
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem1' incorporates:
* ActionPort: '<S3>/Action Port'
*/
/* Merge: '<S1>/Merge' incorporates:
* Constant: '<S1>/Wiper_Low'
* SignalConversion generated from: '<S3>/In1'
*/
Wiper_Speed = 100.0;
/* End of Outputs for SubSystem: '<S1>/If Action Subsystem1' */
} else if (Density == 2.0) {
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem2' incorporates:
* ActionPort: '<S4>/Action Port'
*/
/* Merge: '<S1>/Merge' incorporates:
* Constant: '<S1>/Wiper_Medium'
* SignalConversion generated from: '<S4>/In1'
*/
Wiper_Speed = 200.0;
/* End of Outputs for SubSystem: '<S1>/If Action Subsystem2' */
} else if (Density == 3.0) {
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem3' incorporates:
* ActionPort: '<S5>/Action Port'
*/
/* Merge: '<S1>/Merge' incorporates:
* Constant: '<S1>/Wiper_High'
* SignalConversion generated from: '<S5>/In1'
*/
Wiper_Speed = 500.0;
/* End of Outputs for SubSystem: '<S1>/If Action Subsystem3' */
}
/* End of If: '<S1>/If' */
/* End of Outputs for SubSystem: '<Root>/Subsystem' */
/* Outport: '<Root>/Wiper_Speed' incorporates:
* DataTypeConversion: '<Root>/Wiper_Speed_boundary_DTC'
*/
Wiper_Control_Speed_Y.Wiper_Speed_i = Wiper_Speed;
}
/* Model initialize function */
void Wiper_Control_Speed_initialize(void)
{
/* (no initialization code required) */
}
/* Model terminate function */
void Wiper_Control_Speed_terminate(void)
{
/* (no terminate code required) */
}
/*
* File trailer for generated code.
*
* [EOF]
*/
2. Code Generation
/*
* Event Support License -- for demonstration use and event support. Not
* for government, research, commercial, or other organizational use.
*
* File: Wheel_Speed_Sensor.c
*
* Code generated for Simulink model 'Wheel_Speed_Sensor'.
*
* Model version : 1.13
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
* C/C++ source code generated on : Wed Dec 28 19:42:15 2022
*
* Target selection: ert.tlc
* Embedded hardware selection: Intel->x86-64 (Windows64)
* Code generation objectives: Unspecified
* Validation result: Not run
*include "Wheel_Speed_Sensor.h"
#include "rtwtypes.h"
/* Named constants for Chart: '/Chart' */
#define Wheel_Speed_Sensor_IN_Mode ((uint8_T)1U)
#define Wheel_Speed_Sensor_IN_Mode1 ((uint8_T)2U)
#define Wheel_Speed_Sensor_IN_Mode10 ((uint8_T)3U)
#define Wheel_Speed_Sensor_IN_Mode11 ((uint8_T)4U)
#define Wheel_Speed_Sensor_IN_Mode12 ((uint8_T)5U)
#define Wheel_Speed_Sensor_IN_Mode13 ((uint8_T)6U)
#define Wheel_Speed_Sensor_IN_Mode14 ((uint8_T)7U)
#define Wheel_Speed_Sensor_IN_Mode2 ((uint8_T)8U)
#define Wheel_Speed_Sensor_IN_Mode3 ((uint8_T)9U)
#define Wheel_Speed_Sensor_IN_Mode4 ((uint8_T)10U)
#define Wheel_Speed_Sensor_IN_Mode5 ((uint8_T)11U)
#define Wheel_Speed_Sensor_IN_Mode6 ((uint8_T)12U)
#define Wheel_Speed_Sensor_IN_Mode7 ((uint8_T)13U)
#define Wheel_Speed_Sensor_IN_Mode8 ((uint8_T)14U)
#define Wheel_Speed_Sensor_IN_Mode9 ((uint8_T)15U)
/* Block signals (default storage) */
B_Wheel_Speed_Sensor_T Wheel_Speed_Sensor_B;
/* Block states (default storage) */
DW_Wheel_Speed_Sensor_T Wheel_Speed_Sensor_DW;
/* Real-time model */
static RT_MODEL_Wheel_Speed_Sensor_T Wheel_Speed_Sensor_M_;
RT_MODEL_Wheel_Speed_Sensor_T *const Wheel_Speed_Sensor_M =
&Wheel_Speed_Sensor_M_;
/* Model step function */
void Wheel_Speed_Sensor_step(void)
{
/* Chart: '/Chart' incorporates:
* Constant: '/FL'
* Constant: '/FR'
* Constant: '/RL'
* Constant: '/RR'
*/
if (Wheel_Speed_Sensor_DW.is_active_c3_Wheel_Speed_Sensor == 0U) {
Wheel_Speed_Sensor_DW.is_active_c3_Wheel_Speed_Sensor = 1U;
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor = Wheel_Speed_Sensor_IN_Mode;
Wheel_Speed_Sensor_B.Speed = 0.0;
} else {
switch (Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor) {
case Wheel_Speed_Sensor_IN_Mode:
if (Wheel_Speed_Sensor_B.Speed == 12.242878153765769) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode1;
} else if (Wheel_Speed_Sensor_B.Speed == 16.323837538354358) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode2;
} else if (Wheel_Speed_Sensor_B.Speed == 16.323837538354358) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode3;
} else if (Wheel_Speed_Sensor_B.Speed == 16.323837538354358) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode4;
} else if (Wheel_Speed_Sensor_B.Speed == 16.323837538354358) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode5;
Wheel_Speed_Sensor_B.Speed = 0.0;
} else if (Wheel_Speed_Sensor_B.Speed == 24.485756307531538) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode6;
} else if (Wheel_Speed_Sensor_B.Speed == 24.485756307531538) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode7;
} else if (Wheel_Speed_Sensor_B.Speed == 24.485756307531538) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode8;
} else if (Wheel_Speed_Sensor_B.Speed == 24.485756307531538) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode9;
Wheel_Speed_Sensor_B.Speed = 0.0;
} else if (Wheel_Speed_Sensor_B.Speed == 0.0) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode10;
Wheel_Speed_Sensor_B.Speed = 0.0;
} else if (Wheel_Speed_Sensor_B.Speed == 48.971512615063077) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode11;
} else if (Wheel_Speed_Sensor_B.Speed == 0.0) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode12;
Wheel_Speed_Sensor_B.Speed = 0.0;
} else if (Wheel_Speed_Sensor_B.Speed == 0.0) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode13;
Wheel_Speed_Sensor_B.Speed = 0.0;
} else if (Wheel_Speed_Sensor_B.Speed == 0.0) {
Wheel_Speed_Sensor_DW.is_c3_Wheel_Speed_Sensor =
Wheel_Speed_Sensor_IN_Mode14;
Wheel_Speed_Sensor_B.Speed = 0.0;
}
break;
case Wheel_Speed_Sensor_IN_Mode1:
case Wheel_Speed_Sensor_IN_Mode10:
case Wheel_Speed_Sensor_IN_Mode11:
case Wheel_Speed_Sensor_IN_Mode13:
case Wheel_Speed_Sensor_IN_Mode14:
case Wheel_Speed_Sensor_IN_Mode2:
case Wheel_Speed_Sensor_IN_Mode3:
case Wheel_Speed_Sensor_IN_Mode4:
case Wheel_Speed_Sensor_IN_Mode5:
case Wheel_Speed_Sensor_IN_Mode6:
case Wheel_Speed_Sensor_IN_Mode7:
case Wheel_Speed_Sensor_IN_Mode8:
break;
default:
/* case IN_Mode9: */
break;
}
}
/* End of Chart: '/Chart' */
}
/* Model initialize function */
void Wheel_Speed_Sensor_initialize(void)
{
/* (no initialization code required) */
}
/* Model terminate function */
void Wheel_Speed_Sensor_terminate(void)
{
/* (no terminate code required) */
}
/*
* File trailer for generated code.
*
* [EOF]
*/
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.