1
/*
2
* File: GlobalPosition_sil_sil_ec.c
3
*
4
* Code generated for Simulink model 'GlobalPosition_sil_sil_ec'.
5
*
6
* Model version : 1.2
7
* Simulink Coder version : 9.0 (R2018b) 24-May-2018
8
* C/C++ source code generated on : Tue Oct 29 09:27:41 2019
9
*
10
* Target selection: ert.tlc
11
* Embedded hardware selection: Intel->x86-64 (Windows64)
12
* Code generation objectives:
13
* 1. Execution efficiency
14
* 2. RAM efficiency
15
* Validation result: Not run
16
*/
17
18
#include "GlobalPosition_sil_sil_ec.h"
19
20
/* Block signals and states (default storage) */
21
DW_GlobalPosition_sil_sil_ec_T
GlobalPosition_sil_sil_ec_DW
;
22
23
/* External inputs (root inport signals with default storage) */
24
ExtU_GlobalPosition_sil_sil_e_T
GlobalPosition_sil_sil_ec_U
;
25
26
/* External outputs (root outports fed by signals with default storage) */
27
ExtY_GlobalPosition_sil_sil_e_T
GlobalPosition_sil_sil_ec_Y
;
28
29
/* Real-time model */
30
RT_MODEL_GlobalPosition_sil_s_T
GlobalPosition_sil_sil_ec_M_
;
31
RT_MODEL_GlobalPosition_sil_s_T
*
const
GlobalPosition_sil_sil_ec_M
=
32
&
GlobalPosition_sil_sil_ec_M_
;
33
34
/* Model step function */
35
void
GlobalPosition_sil_sil_ec_step
(
void
)
36
{
37
real_T
rtb_s_k
;
38
real_T
rtb_xPosGlobal
;
39
40
/* Product: '
<S1>/conv_way
' incorporates:
41
* Constant: '
<S1>/WHEEL_SIZE_DEG
'
42
* Constant: '
<S1>/WHEEL_SIZE_DEG1
'
43
* DataTypeConversion: '
<S1>/DataTypeConversion
'
44
* Inport: '
<Root>/driveEncoder
'
45
*/
46
rtb_s_k
= (
real_T
)
GlobalPosition_sil_sil_ec_U
.
driveEncoder
*
47
GlobalPosition_sil_sil_ec_P
.
WHEEL_SIZE_DEG
*
48
GlobalPosition_sil_sil_ec_P
.
MOTOR_DRIVE_TRANSMISSION_RATIO
;
49
50
/* Sum: '
<S1>/Add
' incorporates:
51
* Inport: '
<Root>/gyroAngleRad
'
52
* Product: '
<S1>/Product2
'
53
* Trigonometry: '
<S1>/Trigonometric Function1
'
54
* UnitDelay: '
<S1>/Unit Delay
'
55
*/
56
rtb_xPosGlobal
=
cos
(
GlobalPosition_sil_sil_ec_U
.
gyroAngleRad
)
*
rtb_s_k
+
57
GlobalPosition_sil_sil_ec_DW
.
UnitDelay_DSTATE
;
58
59
/* Sum: '
<S1>/Add1
' incorporates:
60
* Inport: '
<Root>/gyroAngleRad
'
61
* Product: '
<S1>/Product3
'
62
* Trigonometry: '
<S1>/Trigonometric Function
'
63
* UnitDelay: '
<S1>/Unit Delay1
'
64
*/
65
rtb_s_k
=
sin
(
GlobalPosition_sil_sil_ec_U
.
gyroAngleRad
)
*
rtb_s_k
+
66
GlobalPosition_sil_sil_ec_DW
.
UnitDelay1_DSTATE
;
67
68
/* Outport: '
<Root>/posGlobal
' */
69
GlobalPosition_sil_sil_ec_Y
.
posGlobal
[0] =
rtb_xPosGlobal
;
70
GlobalPosition_sil_sil_ec_Y
.
posGlobal
[1] =
rtb_s_k
;
71
72
/* Update for UnitDelay: '
<S1>/Unit Delay
' */
73
GlobalPosition_sil_sil_ec_DW
.
UnitDelay_DSTATE
=
rtb_xPosGlobal
;
74
75
/* Update for UnitDelay: '
<S1>/Unit Delay1
' */
76
GlobalPosition_sil_sil_ec_DW
.
UnitDelay1_DSTATE
=
rtb_s_k
;
77
}
78
79
/* Model initialize function */
80
void
GlobalPosition_sil_sil_ec_initialize
(
void
)
81
{
82
/* InitializeConditions for UnitDelay: '
<S1>/Unit Delay
' */
83
GlobalPosition_sil_sil_ec_DW
.
UnitDelay_DSTATE
=
84
GlobalPosition_sil_sil_ec_P
.
UnitDelay_InitialCondition
;
85
86
/* InitializeConditions for UnitDelay: '
<S1>/Unit Delay1
' */
87
GlobalPosition_sil_sil_ec_DW
.
UnitDelay1_DSTATE
=
88
GlobalPosition_sil_sil_ec_P
.
UnitDelay1_InitialCondition
;
89
}
90
91
/* Model terminate function */
92
void
GlobalPosition_sil_sil_ec_terminate
(
void
)
93
{
94
/* (no terminate code required) */
95
}
96
97
/*
98
* File trailer for generated code.
99
*
100
* [EOF]
101
*/
102