-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsim_structs.hpp
204 lines (188 loc) · 2.68 KB
/
sim_structs.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#ifndef SIM_STRUCTS_HPP
#define SIM_STRUCTS_HPP
#include "opencv2/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/xfeatures2d.hpp"
/*
typedef struct sHistory
{
Mat G_hist;
Mat flightTime_hist;
Mat actions;
Mat states;
Mat constraint;
Mat perf; // tricky
Mat hover; // tricky
Mat
}
*/
typedef struct sPenalty
{
std::string Mode;
double quadMin;
double quadMax;
double quadtrunc;
double Const;
double death;
double lin;
double failure;
double R;
} sPenalty;
typedef struct sData
{
cv::Mat batteryData;
cv::Mat motorData;
cv::Mat propData;
cv::Mat foilData;
cv::Mat rodData;
cv::Mat matData;
} sData;
typedef struct sPerf
{
cv::Mat velocity;
cv::Mat rpm;
cv::Mat dbeta;
cv::Mat thrust;
cv::Mat q;
cv::Mat pshaft;
cv::Mat volts;
cv::Mat amps;
cv::Mat effmotor;
cv::Mat effprop;
cv::Mat adv;
cv::Mat ct;
cv::Mat cp;
cv::Mat dv;
cv::Mat eff;
cv::Mat pelec;
cv::Mat pprop;
cv::Mat clavg;
cv::Mat cdavg;
int failure;
} sPerf;
typedef struct sHover
{
double velocity;
double rpm;
double dbeta;
double thrust;
double q;
double pshaft;
double volts;
double amps;
double effmotor;
double effprop;
double adv;
double ct;
double cp;
double dv;
double eff;
double pelec;
double pprop;
double clavg;
double cdavg;
int failure;
} sHover;
typedef struct sCell
{
double Cost;
double Cap;
double C;
double Mass;
} sCell;
typedef struct sBattery
{
sCell Cell;
int sConfigs;
int pConfigs;
double Cost;
double Mass;
double Volt;
double Cap;
double C;
double Imax;
double Energy;
} sBattery;
typedef struct sMotor
{
double kv;
double R0;
double I0;
double Imax;
double Pmax;
double Mass;
double Cost;
double Diam;
double planArea;
int Num;
} sMotor;
typedef struct sFoil
{
double Cl0;
double Cla;
double Clmin;
double Clmax;
double Cd0;
double Cd2;
double Clcd0;
double Reref;
double Reexp;
int Num;
} sFoil;
typedef struct sProp
{
double diameter;
double angleRoot;
double angleTip;
double chordRoot;
double chordTip;
double mass;
double cost;
} sProp;
typedef struct sMaterial
{
int Type;
double Ymod;
double Sut;
double Sy;
double Dens;
double Cost;
} sMaterial;
typedef struct sRod
{
sMaterial mat;
double Length;
double Dia;
double Thick;
double Area;
double Amoment;
double Stiffness;
double Vol;
double Mass;
double Cost;
double planArea;
} sRod;
typedef struct sRes
{
double mass;
double framewidth;
double planArea;
double cost;
double power;
} sRes;
typedef struct sSys
{
sBattery battery;
sMotor motor;
sFoil foil;
sProp prop;
sRod rod;
sRes res;
double mass;
double planArea;
double natFreq;
double cost;
double power;
} sSys;
#endif