Simulink Model Code for x86-64
Simulink Model Code for x86-64
2 * File: qss_example_shv.c
3 *
4 * Code generated for Simulink model 'qss_example_shv'.
5 *
6 * Model version : 1.17
7 * Simulink Coder version : 9.0 (R2018b) 24-May-2018
8 * C/C++ source code generated on : Tue Nov 5 18:49:32 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 "qss_example_shv.h"
19 #define NumBitsPerChar 8U
20
21 /* Private macros used by the generated code to access rtModel */
22 #ifndef rtmIsMajorTimeStep
23 # define rtmIsMajorTimeStep(rtm) (((rtm)->Timing.simTimeStep) ==
MAJOR_TIME_STEP)
24 #endif
25
26 #ifndef rtmIsMinorTimeStep
27 # define rtmIsMinorTimeStep(rtm) (((rtm)->Timing.simTimeStep) ==
MINOR_TIME_STEP)
28 #endif
29
30 #ifndef rtmSetTPtr
31 # define rtmSetTPtr(rtm, val) ((rtm)->Timing.t = (val))
32 #endif
33
34 /* Used by FromWorkspace Block: '<S4>/Cycle data' */
35 #ifndef rtInterpolate
36 # define rtInterpolate(v1,v2,f1,f2) (((v1)==(v2))?((double)(v1)):
(((f1)*((double)(v1)))+((f2)*((double)(v2)))))
37 #endif
38
39 #ifndef rtRound
40 # define rtRound(v) ( ((v) >= 0) ? floor((v) + 0.5) :
ceil((v) - 0.5) )
41 #endif
42
43 /* Block signals and states (default storage) */
44 DW rtDW;
45
46 /* Real-time model */
47 RT_MODEL rtM_;
48 RT_MODEL *const rtM = &rtM_;
49 extern real_T rt_powd_snf(real_T u0, real_T u1);
50 extern real_T rtGetInf(void);
51 extern real32_T rtGetInfF(void);
52 extern real_T rtGetMinusInf(void);
53 extern real32_T rtGetMinusInfF(void);
54 extern real_T rtGetNaN(void);
55 extern real32_T rtGetNaNF(void);
56
57 #ifndef INTERP
58 # define INTERP(x,x1,x2,y1,y2) ( (y1)+(((y2) - (y1))/((x2) -
(x1)))*((x)-(x1)) )
59 #endif
60
61 #ifndef ZEROTECHNIQUE
62 #define ZEROTECHNIQUE
63
64 typedef enum {
65 NORMAL_INTERP,
66 AVERAGE_VALUE,
67 MIDDLE_VALUE
68 } ZeroTechnique;
69
70 #endif
71
72 extern int_T rt_GetLookupIndex(const real_T *x, int_T xlen, real_T u) ;
73 extern real_T rt_Lookup(const real_T *x, int_T xlen, real_T u, const real_T
*y);
74 extern real_T rt_Lookup2D_Normal (const real_T *xVals, const int_T numX,
75 const real_T *yVals, const int_T numY,
76 const real_T *zVals,
77 const real_T x, const real_T y);
78 extern real_T rtInf;
79 extern real_T rtMinusInf;
80 extern real_T rtNaN;
81 extern real32_T rtInfF;
82 extern real32_T rtMinusInfF;
83 extern real32_T rtNaNF;
84 extern void rt_InitInfAndNaN(size_t realSize);
85 extern boolean_T rtIsInf(real_T value);
86 extern boolean_T rtIsInfF(real32_T value);
87 extern boolean_T rtIsNaN(real_T value);
88 extern boolean_T rtIsNaNF(real32_T value);
89 typedef struct {
90 struct {
91 uint32_T wordH;
92 uint32_T wordL;
93 } words;
94 } BigEndianIEEEDouble;
95
96 typedef struct {
97 struct {
98 uint32_T wordL;
99 uint32_T wordH;
100 } words;
101 } LittleEndianIEEEDouble;
102
103 typedef struct {
104 union {
105 real32_T wordLreal;
106 uint32_T wordLuint;
107 } wordL;
108 } IEEESingle;
109
110 real_T rtInf;
111 real_T rtMinusInf;
112 real_T rtNaN;
113 real32_T rtInfF;
114 real32_T rtMinusInfF;
115 real32_T rtNaNF;
116
117 /*
118 * Initialize rtInf needed by the generated code.
119 * Inf is initialized as non-signaling. Assumes IEEE.
120 */
121 real_T rtGetInf(void)
122 {
123 size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
124 real_T inf = 0.0;
125 if (bitsPerReal == 32U) {
126 inf = rtGetInfF();
127 } else {
128 union {
129 LittleEndianIEEEDouble bitVal;
130 real_T fltVal;
131 } tmpVal;
132
133 tmpVal.bitVal.words.wordH = 0x7FF00000U;
134 tmpVal.bitVal.words.wordL = 0x00000000U;
135 inf = tmpVal.fltVal;
136 }
137
138 return inf;
139 }
140
141 /*
142 * Initialize rtInfF needed by the generated code.
143 * Inf is initialized as non-signaling. Assumes IEEE.
144 */
145 real32_T rtGetInfF(void)
146 {
147 IEEESingle infF;
148 infF.wordL.wordLuint = 0x7F800000U;
149 return infF.wordL.wordLreal;
150 }
151
152 /*
153 * Initialize rtMinusInf needed by the generated code.
154 * Inf is initialized as non-signaling. Assumes IEEE.
155 */
156 real_T rtGetMinusInf(void)
157 {
158 size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
159 real_T minf = 0.0;
160 if (bitsPerReal == 32U) {
161 minf = rtGetMinusInfF();
162 } else {
163 union {
164 LittleEndianIEEEDouble bitVal;
165 real_T fltVal;
166 } tmpVal;
167
168 tmpVal.bitVal.words.wordH = 0xFFF00000U;
169 tmpVal.bitVal.words.wordL = 0x00000000U;
170 minf = tmpVal.fltVal;
171 }
172
173 return minf;
174 }
175
176 /*
177 * Initialize rtMinusInfF needed by the generated code.
178 * Inf is initialized as non-signaling. Assumes IEEE.
179 */
180 real32_T rtGetMinusInfF(void)
181 {
182 IEEESingle minfF;
183 minfF.wordL.wordLuint = 0xFF800000U;
184 return minfF.wordL.wordLreal;
185 }
186
187 /*
188 * Initialize rtNaN needed by the generated code.
189 * NaN is initialized as non-signaling. Assumes IEEE.
190 */
191 real_T rtGetNaN(void)
192 {
193 size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
194 real_T nan = 0.0;
195 if (bitsPerReal == 32U) {
196 nan = rtGetNaNF();
197 } else {
198 union {
199 LittleEndianIEEEDouble bitVal;
200 real_T fltVal;
201 } tmpVal;
202
203 tmpVal.bitVal.words.wordH = 0xFFF80000U;
204 tmpVal.bitVal.words.wordL = 0x00000000U;
205 nan = tmpVal.fltVal;
206 }
207
208 return nan;
209 }
210
211 /*
212 * Initialize rtNaNF needed by the generated code.
213 * NaN is initialized as non-signaling. Assumes IEEE.
214 */
215 real32_T rtGetNaNF(void)
216 {
217 IEEESingle nanF = { { 0 } };
218
219 nanF.wordL.wordLuint = 0xFFC00000U;
220 return nanF.wordL.wordLreal;
221 }
222
223 /*
224 * Routine to get the index of the input from a table using binary or
225 * interpolation search.
226 *
227 * Inputs:
228 * *x : Pointer to table, x[0] ....x[xlen-1]
229 * xlen : Number of values in xtable
230 * u : input value to look up
231 *
232 * Output:
233 * idx : the index into the table such that:
234 * if u is negative
235 * x[idx] <= u < x[idx+1]
236 * else
237 * x[idx] < u <= x[idx+1]
238 *
239 * Interpolation Search: If the table contains a large number of nearly
240 * uniformly spaced entries, i.e., x[n] vs n is linear then the index
241 * corresponding to the input can be found in one shot using the linear
242 * interpolation formula. Therefore if you have a look-up table block with
243 * many data points, using interpolation search might speed up the code.
244 * Compile the generated code with the following flag:
245 *
246 * make_rtw OPTS=-DDOINTERPSEARCH
247 *
248 * to enable interpolation search.
249 */
250 int_T rt_GetLookupIndex(const real_T *x, int_T xlen, real_T u)
251 {
252 int_T idx = 0;
253 int_T bottom = 0;
254 int_T top = xlen-1;
255 int_T retValue = 0;
256 boolean_T returnStatus = 0U;
257
258 #ifdef DOINTERPSEARCH
259
260 real_T offset = 0;
261
262 #endif
263
264 /*
265 * Deal with the extreme cases first:
266 * if u <= x[bottom] then return idx = bottom
267 * if u >= x[top] then return idx = top-1
268 */
269 if (u <= x[bottom]) {
270 retValue = bottom;
271 returnStatus = 1U;
272 } else if (u >= x[top]) {
273 retValue = top-1;
274 returnStatus = 1U;
275 } else {
276 /* else required to ensure safe programming, even *
277 * if it's expected that it will never be reached */
278 }
279
280 if (returnStatus == 0U) {
281 if (u < 0) {
282 /* For negative input find index such that: x[idx] <= u < x[idx+1] */
283 for (;;) {
284
285 #ifdef DOINTERPSEARCH
286
287 offset = (u-x[bottom])/(x[top]-x[bottom]);
288 idx = bottom + (int_T)((top-bottom)*(offset-DBL_EPSILON));
289
290 #else
291
292 idx = (bottom + top)/2;
293
294 #endif
295
296 if (u < x[idx]) {
297 top = idx - 1;
298 } else if (u >= x[idx+1]) {
299 bottom = idx + 1;
300 } else {
301 /* we have x[idx] <= u < x[idx+1], return idx */
302 retValue = idx;
303 break;
304 }
305 }
306 } else {
307 /* For non-negative input find index such that: x[idx] < u <= x[idx+1]
*/
308 for (;;) {
309
310 #ifdef DOINTERPSEARCH
311
312 offset = (u-x[bottom])/(x[top]-x[bottom]);
313 idx = bottom + (int_T)((top-bottom)*(offset-DBL_EPSILON));
314
315 #else
316
317 idx = (bottom + top)/2;
318
319 #endif
320
321 if (u <= x[idx]) {
322 top = idx - 1;
323 } else if (u > x[idx+1]) {
324 bottom = idx + 1;
325 } else {
326 /* we have x[idx] < u <= x[idx+1], return idx */
327 retValue = idx;
328 break;
329 }
330 }
331 }
332 }
333
334 return retValue;
335 }
336
337 /* 1D lookup routine for data type of real_T. */
338 real_T rt_Lookup(const real_T *x, int_T xlen, real_T u, const real_T *y)
339 {
340 int_T idx = rt_GetLookupIndex(x, xlen, u);
341 real_T num = y[idx+1] - y[idx];
342 real_T den = x[idx+1] - x[idx];
343
344 /* Due to the way the binary search is implemented
345 in rt_look.c (rt_GetLookupIndex), den cannot be
346 0. Equivalently, m cannot be inf or nan. */
347 real_T m = num/den;
348 return (y[idx] + (m * (u - x[idx])));
349 }
350
351 /* 2D normal lookup routine for data type of real_T. */
352 real_T rt_Lookup2D_Normal(const real_T *xVals, const int_T numX,
353 const real_T *yVals, const int_T numY,
354 const real_T *zVals,
355 const real_T x, const real_T y)
356 {
357 int_T xIdx, yIdx;
358 real_T ylo, yhi;
359 real_T Zx0yhi, Zx0ylo, xlo, xhi;
360 real_T corner1, corner2;
361 xIdx = rt_GetLookupIndex(xVals,numX,x);
362 xlo = xVals[xIdx];
363 xhi = xVals[xIdx+1];
364 yIdx = rt_GetLookupIndex(yVals,numY,y);
365 ylo = yVals[yIdx];
366 yhi = yVals[yIdx+1];
367 corner1 = *(zVals + xIdx + (numX * yIdx));
368 corner2 = *(zVals + (xIdx+1) + (numX * yIdx));
369 Zx0ylo = INTERP(x, xlo, xhi, corner1, corner2);
370 corner1 = *(zVals + xIdx + (numX * (yIdx+1)));
371 corner2 = *(zVals + (xIdx+1) + (numX*(yIdx+1)));
372 Zx0yhi = INTERP(x, xlo, xhi, corner1, corner2);
373 return (INTERP(y,ylo,yhi,Zx0ylo,Zx0yhi));
374 }
375
376 /*
377 * Initialize the rtInf, rtMinusInf, and rtNaN needed by the
378 * generated code. NaN is initialized as non-signaling. Assumes IEEE.
379 */
380 void rt_InitInfAndNaN(size_t realSize)
381 {
382 (void) (realSize);
383 rtNaN = rtGetNaN();
384 rtNaNF = rtGetNaNF();
385 rtInf = rtGetInf();
386 rtInfF = rtGetInfF();
387 rtMinusInf = rtGetMinusInf();
388 rtMinusInfF = rtGetMinusInfF();
389 }
390
391 /* Test if value is infinite */
392 boolean_T rtIsInf(real_T value)
393 {
394 return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U);
395 }
396
397 /* Test if single-precision value is infinite */
398 boolean_T rtIsInfF(real32_T value)
399 {
400 return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U);
401 }
402
403 /* Test if value is not a number */
404 boolean_T rtIsNaN(real_T value)
405 {
406 boolean_T result = (boolean_T) 0;
407 size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
408 if (bitsPerReal == 32U) {
409 result = rtIsNaNF((real32_T)value);
410 } else {
411 union {
412 LittleEndianIEEEDouble bitVal;
413 real_T fltVal;
414 } tmpVal;
415
416 tmpVal.fltVal = value;
417 result = (boolean_T)((tmpVal.bitVal.words.wordH & 0x7FF00000) ==
0x7FF00000 &&
418 ( (tmpVal.bitVal.words.wordH & 0x000FFFFF) != 0 ||
419 (tmpVal.bitVal.words.wordL != 0) ));
420 }
421
422 return result;
423 }
424
425 /* Test if single-precision value is not a number */
426 boolean_T rtIsNaNF(real32_T value)
427 {
428 IEEESingle tmp;
429 tmp.wordL.wordLreal = value;
430 return (boolean_T)( (tmp.wordL.wordLuint & 0x7F800000) == 0x7F800000 &&
431 (tmp.wordL.wordLuint & 0x007FFFFF) != 0 );
432 }
433
434 real_T rt_powd_snf(real_T u0, real_T u1)
435 {
436 real_T y;
437 real_T tmp;
438 real_T tmp_0;
439 if (rtIsNaN(u0) || rtIsNaN(u1)) {
440 y = (rtNaN);
441 } else {
442 tmp = fabs(u0);
443 tmp_0 = fabs(u1);
444 if (rtIsInf(u1)) {
445 if (tmp == 1.0) {
446 y = 1.0;
447 } else if (tmp > 1.0) {
448 if (u1 > 0.0) {
449 y = (rtInf);
450 } else {
451 y = 0.0;
452 }
453 } else if (u1 > 0.0) {
454 y = 0.0;
455 } else {
456 y = (rtInf);
457 }
458 } else if (tmp_0 == 0.0) {
459 y = 1.0;
460 } else if (tmp_0 == 1.0) {
461 if (u1 > 0.0) {
462 y = u0;
463 } else {
464 y = 1.0 / u0;
465 }
466 } else if (u1 == 2.0) {
467 y = u0 * u0;
468 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
469 y = sqrt(u0);
470 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
471 y = (rtNaN);
472 } else {
473 y = pow(u0, u1);
474 }
475 }
476
477 return y;
478 }
479
480 /* Model step function */
481 void qss_example_shv_step(void)
482 {
483 /* local block i/o variables */
484 real_T rtb_Cycledata[3];
485 real_T rtb_Sum_i;
486 real_T rtb_Sum3;
487 real_T rtb_Sum3_a;
488 boolean_T rtb_Logic[2];
489 int32_T rowIdx;
490 boolean_T rtb_RelationalOperator;
491 real_T rtb_Saturation1_h;
492 real_T rtb_Saturation_g;
493 real_T rtb_T_EGstartup;
494 real_T rtb_wstartup;
495 real_T rtb_Saturation1_p;
496 real_T rtb_Gain1;
497 real_T rtb_Sign;
498 real_T rtb_Sign_b;
499 real_T tmp;
500 real_T tmp_0;
501
502 /* FromWorkspace: '<S4>/Cycle data' */
503 {
504 real_T *pDataValues = (real_T *) rtDW.Cycledata_PWORK.DataPtr;
505 real_T *pTimeValues = (real_T *) rtDW.Cycledata_PWORK.TimePtr;
506 int_T currTimeIndex = rtDW.Cycledata_IWORK.PrevIndex;
507 real_T t = ((rtM->Timing.clockTick1) * 1.0);
508
509 /* Get index */
510 if (t <= pTimeValues[0]) {
511 currTimeIndex = 0;
512 } else if (t >= pTimeValues[819]) {
513 currTimeIndex = 818;
514 } else {
515 if (t < pTimeValues[currTimeIndex]) {
516 while (t < pTimeValues[currTimeIndex]) {
517 currTimeIndex--;
518 }
519 } else {
520 while (t >= pTimeValues[currTimeIndex + 1]) {
521 currTimeIndex++;
522 }
523 }
524 }
525
526 rtDW.Cycledata_IWORK.PrevIndex = currTimeIndex;
527
528 /* Post output */
529 {
530 real_T t1 = pTimeValues[currTimeIndex];
531 real_T t2 = pTimeValues[currTimeIndex + 1];
532 if (t1 == t2) {
533 if (t < t1) {
534 {
535 int_T elIdx;
536 for (elIdx = 0; elIdx < 3; ++elIdx) {
537 (&rtb_Cycledata[0])[elIdx] = pDataValues[currTimeIndex];
538 pDataValues += 820;
539 }
540 }
541 } else {
542 {
543 int_T elIdx;
544 for (elIdx = 0; elIdx < 3; ++elIdx) {
545 (&rtb_Cycledata[0])[elIdx] = pDataValues[currTimeIndex + 1];
546 pDataValues += 820;
547 }
548 }
549 }
550 } else {
551 real_T f1 = (t2 - t) / (t2 - t1);
552 real_T f2 = 1.0 - f1;
553 real_T d1;
554 real_T d2;
555 int_T TimeIndex= currTimeIndex;
556
557 {
558 int_T elIdx;
559 for (elIdx = 0; elIdx < 3; ++elIdx) {
560 d1 = pDataValues[TimeIndex];
561 d2 = pDataValues[TimeIndex + 1];
562 (&rtb_Cycledata[0])[elIdx] = (real_T) rtInterpolate(d1, d2, f1,
f2);
563 pDataValues += 820;
564 }
565 }
566 }
567 }
568 }
569
570 /* RelationalOperator: '<S19>/Relational Operator' incorporates:
571 * Constant: '<S19>/Constant'
572 * UnitDelay: '<S19>/Counter'
573 */
574 rtb_RelationalOperator = (rtDW.Counter_DSTATE >= 200.0);
575
576 /* CombinatorialLogic: '<S20>/Logic' incorporates:
577 * Constant: '<S2>/Constant1'
578 * Memory: '<S20>/Memory'
579 * Sum: '<S2>/Sum'
580 * Switch: '<S2>/Switch'
581 * UnitDelay: '<S1>/Battery charge'
582 */
583 rowIdx = (int32_T)(((!(rtDW.Batterycharge_DSTATE - 90007.2 >= 0.0) +
584 ((uint32_T)rtDW.Memory_PreviousInput << 1)) << 1) +
585 rtb_RelationalOperator);
586 rtb_Logic[0U] = rtConstP.Logic_table[(uint32_T)rowIdx];
587 rtb_Logic[1U] = rtConstP.Logic_table[rowIdx + 8U];
588
589 /* Sum: '<S21>/Sum' incorporates:
590 * Constant: '<S21>/Constant'
591 * UnitDelay: '<S21>/Unit Delay'
592 */
593 rtb_Sum_i = 1.0 - rtDW.UnitDelay_DSTATE;
594
595 /* Sum: '<S19>/Sum3' incorporates:
596 * DataTypeConversion: '<S19>/Data Type Conversion1'
597 * DataTypeConversion: '<S19>/Data Type Conversion2'
598 * DataTypeConversion: '<S19>/Data Type Conversion3'
599 * Logic: '<S19>/Logical operator3'
600 * Product: '<S19>/Product'
601 * UnitDelay: '<S19>/Counter'
602 */
603 rtb_Sum3 = ((real_T)(rtb_Logic[0] && (rtb_Sum_i != 0.0)) +
rtDW.Counter_DSTATE)
604 - (real_T)rtb_RelationalOperator * rtDW.Counter_DSTATE;
605
606 /* Lookup: '<S19>/T_EG start-up' incorporates:
607 * UnitDelay: '<S19>/Counter'
608 */
609 rtb_T_EGstartup = rt_Lookup(rtConstP.pooled12, 201, rtDW.Counter_DSTATE,
610 rtConstP.T_EGstartup_YData);
611
612 /* Sum: '<S3>/Total torque' incorporates:
613 * Gain: '<S3>/Engine inertia'
614 * Lookup: '<S19>/dw start-up'
615 * UnitDelay: '<S19>/Counter'
616 */
617 rtb_Saturation_g = 0.05 * rt_Lookup(rtConstP.pooled12, 201,
618 rtDW.Counter_DSTATE, rtConstP.dwstartup_YData) + rtb_T_EGstartup;
619
620 /* Saturate: '<S3>/Lower limit (fuel cutoff)' */
621 if (rtb_Saturation_g <= 0.0) {
622 rtb_Saturation_g = 0.0;
623 }
624
625 /* End of Saturate: '<S3>/Lower limit (fuel cutoff)' */
626
627 /* Lookup: '<S19>/w start-up' incorporates:
628 * UnitDelay: '<S19>/Counter'
629 */
630 rtb_wstartup = rt_Lookup(rtConstP.pooled12, 201, rtDW.Counter_DSTATE,
631 rtConstP.wstartup_YData);
632
633 /* Saturate: '<S3>/Lower limit (speed at idle)' */
634 if (rtb_wstartup <= 105.0) {
635 rtb_Saturation1_h = 105.0;
636 } else {
637 rtb_Saturation1_h = rtb_wstartup;
638 }
639
640 /* End of Saturate: '<S3>/Lower limit (speed at idle)' */
641
642 /* Sum: '<S24>/Sum' incorporates:
643 * Lookup: '<S24>/Maximum torque'
644 */
645 rtb_Saturation_g = rt_Lookup(rtConstP.Maximumtorque_XData, 15,
646 rtb_Saturation1_h, rtConstP.Maximumtorque_YData) - rtb_Saturation_g;
647
648 /* Saturate: '<S24>/Saturation' */
649 if (!(rtb_Saturation_g >= 0.0)) {
650 /* Stop: '<S24>/Stop Simulation' */
651 rtmSetStopRequested(rtM, 1);
652 }
653
654 /* End of Saturate: '<S24>/Saturation' */
655
656 /* Sum: '<S24>/Sum1' incorporates:
657 * Constant: '<S24>/Constant'
658 */
659 rtb_Saturation1_h = 850.0 - rtb_Saturation1_h;
660
661 /* Saturate: '<S24>/Saturation1' */
662 if (!(rtb_Saturation1_h >= 0.0)) {
663 /* Stop: '<S24>/Stop Simulation1' */
664 rtmSetStopRequested(rtM, 1);
665 }
666
667 /* End of Saturate: '<S24>/Saturation1' */
668
669 /* Switch: '<S30>/Switch1' incorporates:
670 * Constant: '<S31>/Constant1'
671 * Constant: '<S32>/Constant1'
672 * Gain: '<S32>/Gain1'
673 * Product: '<S31>/Product2'
674 * Product: '<S31>/Product3'
675 * Product: '<S32>/Product2'
676 * Product: '<S32>/Product3'
677 * Sum: '<S31>/Sum'
678 * Sum: '<S32>/Sum'
679 * Switch: '<S32>/Switch1'
680 */
681 if (rtb_T_EGstartup >= 0.0) {
682 /* Switch: '<S31>/Switch1' incorporates:
683 * Constant: '<S31>/Constant2'
684 */
685 if (rtb_wstartup >= 1.0) {
686 rtb_Saturation_g = rtb_wstartup;
687 } else {
688 rtb_Saturation_g = (rtInf);
689 }
690
691 /* End of Switch: '<S31>/Switch1' */
692 rtb_Saturation_g = (1.0 / rtb_Saturation_g * 200.0 + rtb_T_EGstartup) /
693 0.735;
694 } else {
695 if (rtb_wstartup >= 1.0) {
696 /* Switch: '<S32>/Switch1' */
697 rtb_Saturation_g = rtb_wstartup;
698 } else {
699 /* Switch: '<S32>/Switch1' incorporates:
700 * Constant: '<S32>/Constant2'
701 */
702 rtb_Saturation_g = (rtInf);
703 }
704
705 rtb_Saturation_g = (1.0 / (0.98 * rtb_Saturation_g) * 200.0 +
706 rtb_T_EGstartup) / 0.76530612244897966;
707 }
708
709 /* End of Switch: '<S30>/Switch1' */
710
711 /* Product: '<S8>/Product' incorporates:
712 * Constant: '<S8>/Constant'
713 */
714 rtb_Saturation1_h = rtb_wstartup * 0.75;
715
716 /* Gain: '<S37>/Gain5' incorporates:
717 * Sum: '<S37>/Sum2'
718 * UnitDelay: '<S37>/Unit Delay'
719 */
720 rtb_Saturation1_p = (rtb_Cycledata[0] + rtDW.UnitDelay_DSTATE_n) * 0.5;
721
722 /* Gain: '<S10>/Gain1' */
723 rtb_Gain1 = 4.0 * rtb_Saturation1_p;
724
725 /* Product: '<S9>/Product' incorporates:
726 * Constant: '<S9>/Constant'
727 */
728 rtb_T_EGstartup = rtb_Gain1 * 3.5;
729
730 /* Sum: '<S25>/Sum1' incorporates:
731 * UnitDelay: '<S25>/Unit Delay1'
732 */
733 rtb_wstartup = rtb_Cycledata[0] - rtDW.UnitDelay1_DSTATE;
734
735 /* Switch: '<S39>/Switch' incorporates:
736 * Constant: '<S39>/Rolling resistance'
737 * Constant: '<S39>/standstill'
738 */
739 if (rtb_Saturation1_p > 2.2204460492503131E-16) {
740 rtb_Sign = 74.556;
741 } else {
742 rtb_Sign = 0.0;
743 }
744
745 /* End of Switch: '<S39>/Switch' */
746
747 /* Gain: '<S10>/Wheel radius' incorporates:
748 * Fcn: '<S36>/Aerodynamic resistance'
749 * Fcn: '<S38>/Inertia'
750 * Sum: '<S10>/Total resistances'
751 */
752 rtb_Saturation1_p = ((0.2596 * rt_powd_snf(rtb_Saturation1_p, 2.0) +
rtb_Sign)
753 + 997.5 * rtb_wstartup) * 0.25;
754
755 /* Switch: '<S33>/Switch1' incorporates:
756 * Constant: '<S34>/Constant1'
757 * Constant: '<S35>/Constant1'
758 * Gain: '<S35>/Gain1'
759 * Product: '<S34>/Product2'
760 * Product: '<S34>/Product3'
761 * Product: '<S35>/Product2'
762 * Product: '<S35>/Product3'
763 * Sum: '<S34>/Sum'
764 * Sum: '<S35>/Sum'
765 * Switch: '<S35>/Switch1'
766 */
767 if (rtb_Saturation1_p >= 0.0) {
768 /* Switch: '<S34>/Switch1' incorporates:
769 * Constant: '<S34>/Constant2'
770 */
771 if (!(rtb_Gain1 >= 1.0)) {
772 rtb_Gain1 = (rtInf);
773 }
774
775 /* End of Switch: '<S34>/Switch1' */
776 rtb_Gain1 = (1.0 / rtb_Gain1 * 300.0 + rtb_Saturation1_p) /
777 3.4299999999999997;
778 } else {
779 if (!(rtb_Gain1 >= 1.0)) {
780 /* Switch: '<S35>/Switch1' incorporates:
781 * Constant: '<S35>/Constant2'
782 */
783 rtb_Gain1 = (rtInf);
784 }
785
786 rtb_Gain1 = (1.0 / (0.98 * rtb_Gain1) * 300.0 + rtb_Saturation1_p) /
787 3.5714285714285716;
788 }
789
790 /* End of Switch: '<S33>/Switch1' */
791
792 /* Sum: '<S6>/Total torque' incorporates:
793 * Constant: '<S9>/Constant'
794 * Gain: '<S10>/Gain4'
795 * Gain: '<S6>/Gain1'
796 * Product: '<S9>/Product1'
797 */
798 rtb_Gain1 += 4.0 * rtb_wstartup * 3.5 * 0.1;
799
800 /* Sum: '<Root>/Electric power balance' incorporates:
801 * Lookup2D: '<S5>/Efficiency eta = f(w, T)'
802 * Lookup2D: '<S6>/Efficiency eta = f(w, T)'
803 * Product: '<S5>/Product'
804 * Product: '<S6>/Product'
805 */
806 rtb_Saturation1_p = rt_Lookup2D_Normal(rtConstP.pooled14, 9,
807 rtConstP.EfficiencyetafwT_ColIdx_m, 30,
rtConstP.EfficiencyetafwT_Table_k,
808 rtb_T_EGstartup, rtb_Gain1) * rtb_Gain1 * rtb_T_EGstartup -
809 rt_Lookup2D_Normal(rtConstP.pooled14, 9,
rtConstP.EfficiencyetafwT_ColIdx,
810 15, rtConstP.EfficiencyetafwT_Table,
rtb_Saturation1_h,
811 rtb_Saturation_g) * rtb_Saturation_g *
rtb_Saturation1_h;
812
813 /* Saturate: '<S14>/Saturation' */
814 if (rtb_Saturation1_p >= 0.0) {
815 rtb_wstartup = 0.0;
816 } else {
817 rtb_wstartup = rtb_Saturation1_p;
818 }
819
820 /* End of Saturate: '<S14>/Saturation' */
821
822 /* Signum: '<S14>/Sign' incorporates:
823 * Gain: '<S14>/Gain'
824 */
825 if (-rtb_wstartup > 0.0) {
826 rtb_Sign = 1.0;
827 } else if (-rtb_wstartup == 0.0) {
828 rtb_Sign = 0.0;
829 } else {
830 rtb_Sign = (rtNaN);
831 }
832
833 /* End of Signum: '<S14>/Sign' */
834
835 /* Outputs for Enabled SubSystem: '<S11>/Charging' incorporates:
836 * EnablePort: '<S12>/Enable'
837 */
838 if (rtb_Sign > 0.0) {
839 /* Gain: '<S12>/Gain2' incorporates:
840 * Constant: '<S12>/Constant4'
841 * Sum: '<S12>/Sum4'
842 * UnitDelay: '<S1>/Battery charge'
843 */
844 rtb_wstartup = (360000.0 - rtDW.Batterycharge_DSTATE) *
845 2.7777777777777779E-6;
846
847 /* Fcn: '<S12>/Fcn' incorporates:
848 * Gain: '<S12>/Gain2'
849 * Gain: '<S12>/Gain4'
850 */
851 tmp_0 = 15.0 * rtb_wstartup + 115.0;
852 tmp = (0.0 * rtb_wstartup + 18.75) * 4.0 * -(0.01 * rtb_Saturation1_p) +
853 rt_powd_snf(tmp_0, 2.0);
854 if (tmp < 0.0) {
855 tmp = -sqrt(-tmp);
856 } else {
857 tmp = sqrt(tmp);
858 }
859
860 rtDW.Fcn_k = (tmp_0 + tmp) / 2.0;
861
862 /* End of Fcn: '<S12>/Fcn' */
863 }
864
865 /* End of Outputs for SubSystem: '<S11>/Charging' */
866
867 /* Saturate: '<S15>/Saturation' */
868 if (rtb_Saturation1_p <= 0.0) {
869 rtb_wstartup = 0.0;
870 } else {
871 rtb_wstartup = rtb_Saturation1_p;
872 }
873
874 /* End of Saturate: '<S15>/Saturation' */
875
876 /* Signum: '<S15>/Sign' */
877 if (rtb_wstartup > 0.0) {
878 rtb_Sign_b = 1.0;
879 } else if (rtb_wstartup == 0.0) {
880 rtb_Sign_b = 0.0;
881 } else {
882 rtb_Sign_b = (rtNaN);
883 }
884
885 /* End of Signum: '<S15>/Sign' */
886
887 /* Outputs for Enabled SubSystem: '<S11>/Discharging' incorporates:
888 * EnablePort: '<S13>/Enable'
889 */
890 if (rtb_Sign_b > 0.0) {
891 /* Gain: '<S13>/Gain4' incorporates:
892 * Constant: '<S13>/Constant6'
893 * Sum: '<S13>/Sum7'
894 * UnitDelay: '<S1>/Battery charge'
895 */
896 rtb_wstartup = (360000.0 - rtDW.Batterycharge_DSTATE) *
897 2.7777777777777779E-6;
898
899 /* Fcn: '<S13>/Fcn' incorporates:
900 * Gain: '<S13>/Gain4'
901 * Gain: '<S13>/Gain5'
902 */
903 tmp = (4.06 * rtb_wstartup + 11.75) * 4.0 * -(0.01 * rtb_Saturation1_p) +
904 rt_powd_snf(15.0 * rtb_wstartup + 115.0, 2.0);
905 if (tmp < 0.0) {
906 tmp_0 = -sqrt(-tmp);
907 } else {
908 tmp_0 = sqrt(tmp);
909 }
910
911 rtDW.Fcn = ((15.0 * rtb_wstartup + 115.0) + tmp_0) / 2.0;
912
913 /* End of Fcn: '<S13>/Fcn' */
914 }
915
916 /* End of Outputs for SubSystem: '<S11>/Discharging' */
917
918 /* Signum: '<S16>/Sign' */
919 if (rtb_Saturation1_p < 0.0) {
920 rtb_wstartup = -1.0;
921 } else if (rtb_Saturation1_p > 0.0) {
922 rtb_wstartup = 1.0;
923 } else if (rtb_Saturation1_p == 0.0) {
924 rtb_wstartup = 0.0;
925 } else {
926 rtb_wstartup = (rtNaN);
927 }
928
929 /* End of Signum: '<S16>/Sign' */
930
931 /* Outputs for Enabled SubSystem: '<S11>/Idle' incorporates:
932 * EnablePort: '<S17>/Enable'
933 */
934 /* Sum: '<S16>/Sum4' incorporates:
935 * Abs: '<S16>/Abs'
936 * Constant: '<S16>/Constant'
937 */
938 if (1.0 - fabs(rtb_wstartup) > 0.0) {
939 /* Sum: '<S17>/Sum8' incorporates:
940 * Constant: '<S17>/Constant'
941 * Constant: '<S17>/Constant6'
942 * Gain: '<S17>/Gain4'
943 * Sum: '<S17>/Sum7'
944 * UnitDelay: '<S1>/Battery charge'
945 */
946 rtDW.Sum8 = (360000.0 - rtDW.Batterycharge_DSTATE) * 4.1666666666666665E-
5 +
947 115.0;
948 }
949
950 /* End of Sum: '<S16>/Sum4' */
951 /* End of Outputs for SubSystem: '<S11>/Idle' */
952
953 /* Switch: '<S11>/Switch' incorporates:
954 * Switch: '<S11>/Switch1'
955 */
956 if (rtb_Sign >= 0.5) {
957 rtb_wstartup = rtDW.Fcn_k;
958 } else if (rtb_Sign_b >= 0.5) {
959 /* Switch: '<S11>/Switch1' */
960 rtb_wstartup = rtDW.Fcn;
961 } else {
962 rtb_wstartup = rtDW.Sum8;
963 }
964
965 /* End of Switch: '<S11>/Switch' */
966
967 /* Saturate: '<S18>/Saturation1' incorporates:
968 * Constant: '<S18>/Constant4'
969 * Constant: '<S18>/Constant6'
970 * Gain: '<S18>/Gain2'
971 * Gain: '<S18>/Gain3'
972 * Sum: '<S18>/Sum1'
973 * Sum: '<S18>/Sum3'
974 * Sum: '<S18>/Sum4'
975 * UnitDelay: '<S1>/Battery charge'
976 */
977 if (!(2.0 * rtb_wstartup - ((360000.0 - rtDW.Batterycharge_DSTATE) *
978 4.1666666666666665E-5 + 115.0) >= 0.0)) {
979 /* Stop: '<S18>/Stop Simulation' */
980 rtmSetStopRequested(rtM, 1);
981 }
982
983 /* End of Saturate: '<S18>/Saturation1' */
984
985 /* Product: '<S11>/Product' */
986 rtb_wstartup = 1.0 / rtb_wstartup * rtb_Saturation1_p;
987
988 /* Sum: '<S1>/Sum3' incorporates:
989 * UnitDelay: '<S1>/Battery charge'
990 */
991 rtb_Sum3_a = rtDW.Batterycharge_DSTATE - rtb_wstartup;
992
993 /* Abs: '<S18>/Abs' */
994 rtb_wstartup = fabs(rtb_wstartup);
995
996 /* Sum: '<S18>/Sum2' incorporates:
997 * Constant: '<S18>/Constant7'
998 */
999 rtb_wstartup = 300.0 - rtb_wstartup;
1000
1001 /* Saturate: '<S18>/Saturation' */
1002 if (!(rtb_wstartup >= 0.0)) {
1003 /* Stop: '<S18>/Stop Simulation1' */
1004 rtmSetStopRequested(rtM, 1);
1005 }
1006
1007 /* End of Saturate: '<S18>/Saturation' */
1008
1009 /* Abs: '<S28>/Abs' */
1010 rtb_Gain1 = fabs(rtb_Gain1);
1011
1012 /* Sum: '<S28>/Sum' incorporates:
1013 * Lookup: '<S28>/Maximum torque'
1014 */
1015 rtb_Gain1 = rt_Lookup(rtConstP.pooled14, 9, rtb_T_EGstartup,
1016 rtConstP.Maximumtorque_YData_o) - rtb_Gain1;
1017
1018 /* Saturate: '<S28>/Saturation' */
1019 if (!(rtb_Gain1 >= 0.0)) {
1020 /* Stop: '<S28>/Stop Simulation' */
1021 rtmSetStopRequested(rtM, 1);
1022 }
1023
1024 /* End of Saturate: '<S28>/Saturation' */
1025
1026 /* Sum: '<S28>/Sum1' incorporates:
1027 * Constant: '<S28>/Constant'
1028 */
1029 rtb_T_EGstartup = 600.0 - rtb_T_EGstartup;
1030
1031 /* Saturate: '<S28>/Saturation1' */
1032 if (!(rtb_T_EGstartup >= 0.0)) {
1033 /* Stop: '<S28>/Stop Simulation1' */
1034 rtmSetStopRequested(rtM, 1);
1035 }
1036
1037 /* End of Saturate: '<S28>/Saturation1' */
1038
1039 /* Abs: '<S27>/Abs' */
1040 rtb_Saturation_g = fabs(rtb_Saturation_g);
1041
1042 /* Sum: '<S27>/Sum' incorporates:
1043 * Lookup: '<S27>/Maximum torque'
1044 */
1045 rtb_Saturation_g = rt_Lookup(rtConstP.pooled14, 9, rtb_Saturation1_h,
1046 rtConstP.Maximumtorque_YData_n) - rtb_Saturation_g;
1047
1048 /* Saturate: '<S27>/Saturation' */
1049 if (!(rtb_Saturation_g >= 0.0)) {
1050 /* Stop: '<S27>/Stop Simulation' */
1051 rtmSetStopRequested(rtM, 1);
1052 }
1053
1054 /* End of Saturate: '<S27>/Saturation' */
1055
1056 /* Sum: '<S27>/Sum1' incorporates:
1057 * Constant: '<S27>/Constant'
1058 */
1059 rtb_Saturation1_h = 600.0 - rtb_Saturation1_h;
1060
1061 /* Saturate: '<S27>/Saturation1' */
1062 if (!(rtb_Saturation1_h >= 0.0)) {
1063 /* Stop: '<S27>/Stop Simulation1' */
1064 rtmSetStopRequested(rtM, 1);
1065 }
1066
1067 /* End of Saturate: '<S27>/Saturation1' */
1068
1069 /* Update for Memory: '<S20>/Memory' */
1070 rtDW.Memory_PreviousInput = rtb_Logic[0];
1071
1072 /* Update for UnitDelay: '<S1>/Battery charge' */
1073 rtDW.Batterycharge_DSTATE = rtb_Sum3_a;
1074
1075 /* Update for UnitDelay: '<S19>/Counter' */
1076 rtDW.Counter_DSTATE = rtb_Sum3;
1077
1078 /* Update for UnitDelay: '<S21>/Unit Delay' */
1079 rtDW.UnitDelay_DSTATE = rtb_Sum_i;
1080
1081 /* Update for UnitDelay: '<S37>/Unit Delay' */
1082 rtDW.UnitDelay_DSTATE_n = rtb_Cycledata[0];
1083
1084 /* Update for UnitDelay: '<S25>/Unit Delay1' */
1085 rtDW.UnitDelay1_DSTATE = rtb_Cycledata[0];
1086
1087 /* Update absolute time for base rate */
1088 /* The "clockTick0" counts the number of times the code of this task has
1089 * been executed. The absolute time is the multiplication of "clockTick0"
1090 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
1091 * overflow during the application lifespan selected.
1092 */
1093 rtM->Timing.t[0] =
1094 (++rtM->Timing.clockTick0) * rtM->Timing.stepSize0;
1095
1096 {
1097 /* Update absolute timer for sample time: [1.0s, 0.0s] */
1098 /* The "clockTick1" counts the number of times the code of this task has
1099 * been executed. The resolution of this integer timer is 1.0, which is
the step size
1100 * of the task. Size of "clockTick1" ensures timer will not overflow
during the
1101 * application lifespan selected.
1102 */
1103 rtM->Timing.clockTick1++;
1104 }
1105 }
1106
1107 /* Model initialize function */
1108 void qss_example_shv_initialize(void)
1109 {
1110 /* Registration code */
1111
1112 /* initialize non-finites */
1113 rt_InitInfAndNaN(sizeof(real_T));
1114
1115 {
1116 /* Setup solver object */
1117 rtsiSetSimTimeStepPtr(&rtM->solverInfo, &rtM->Timing.simTimeStep);
1118 rtsiSetTPtr(&rtM->solverInfo, &rtmGetTPtr(rtM));
1119 rtsiSetStepSizePtr(&rtM->solverInfo, &rtM->Timing.stepSize0);
1120 rtsiSetErrorStatusPtr(&rtM->solverInfo, ((const char_T **)
1121 (&rtmGetErrorStatus(rtM))));
1122 rtsiSetRTModelPtr(&rtM->solverInfo, rtM);
1123 }
1124
1125 rtsiSetSimTimeStep(&rtM->solverInfo, MAJOR_TIME_STEP);
1126 rtsiSetSolverName(&rtM->solverInfo,"FixedStepDiscrete");
1127 rtmSetTPtr(rtM, &rtM->Timing.tArray[0]);
1128 rtM->Timing.stepSize0 = 1.0;
1129
1130 /* Start for FromWorkspace: '<S4>/Cycle data' */
1131 {
1132 static real_T pTimeValues0[] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0,
1133 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0,
1134 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0,
1135 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0,
1136 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0,
1137 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0,
1138 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0,
1139 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0,
1140 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0,
1141 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0,
1142 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0,
1143 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0,
1144 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0,
1145 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0,
1146 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0,
1147 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0,
1148 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0,
1149 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0,
1150 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0,
1151 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0,
1152 215.0, 216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0, 224.0,
1153 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0, 232.0, 233.0, 234.0,
1154 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 241.0, 242.0, 243.0, 244.0,
1155 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0,
1156 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0, 262.0, 263.0, 264.0,
1157 265.0, 266.0, 267.0, 268.0, 269.0, 270.0, 271.0, 272.0, 273.0, 274.0,
1158 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0,
1159 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, 294.0,
1160 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, 304.0,
1161 305.0, 306.0, 307.0, 308.0, 309.0, 310.0, 311.0, 312.0, 313.0, 314.0,
1162 315.0, 316.0, 317.0, 318.0, 319.0, 320.0, 321.0, 322.0, 323.0, 324.0,
1163 325.0, 326.0, 327.0, 328.0, 329.0, 330.0, 331.0, 332.0, 333.0, 334.0,
1164 335.0, 336.0, 337.0, 338.0, 339.0, 340.0, 341.0, 342.0, 343.0, 344.0,
1165 345.0, 346.0, 347.0, 348.0, 349.0, 350.0, 351.0, 352.0, 353.0, 354.0,
1166 355.0, 356.0, 357.0, 358.0, 359.0, 360.0, 361.0, 362.0, 363.0, 364.0,
1167 365.0, 366.0, 367.0, 368.0, 369.0, 370.0, 371.0, 372.0, 373.0, 374.0,
1168 375.0, 376.0, 377.0, 378.0, 379.0, 380.0, 381.0, 382.0, 383.0, 384.0,
1169 385.0, 386.0, 387.0, 388.0, 389.0, 390.0, 391.0, 392.0, 393.0, 394.0,
1170 395.0, 396.0, 397.0, 398.0, 399.0, 400.0, 401.0, 402.0, 403.0, 404.0,
1171 405.0, 406.0, 407.0, 408.0, 409.0, 410.0, 411.0, 412.0, 413.0, 414.0,
1172 415.0, 416.0, 417.0, 418.0, 419.0, 420.0, 421.0, 422.0, 423.0, 424.0,
1173 425.0, 426.0, 427.0, 428.0, 429.0, 430.0, 431.0, 432.0, 433.0, 434.0,
1174 435.0, 436.0, 437.0, 438.0, 439.0, 440.0, 441.0, 442.0, 443.0, 444.0,
1175 445.0, 446.0, 447.0, 448.0, 449.0, 450.0, 451.0, 452.0, 453.0, 454.0,
1176 455.0, 456.0, 457.0, 458.0, 459.0, 460.0, 461.0, 462.0, 463.0, 464.0,
1177 465.0, 466.0, 467.0, 468.0, 469.0, 470.0, 471.0, 472.0, 473.0, 474.0,
1178 475.0, 476.0, 477.0, 478.0, 479.0, 480.0, 481.0, 482.0, 483.0, 484.0,
1179 485.0, 486.0, 487.0, 488.0, 489.0, 490.0, 491.0, 492.0, 493.0, 494.0,
1180 495.0, 496.0, 497.0, 498.0, 499.0, 500.0, 501.0, 502.0, 503.0, 504.0,
1181 505.0, 506.0, 507.0, 508.0, 509.0, 510.0, 511.0, 512.0, 513.0, 514.0,
1182 515.0, 516.0, 517.0, 518.0, 519.0, 520.0, 521.0, 522.0, 523.0, 524.0,
1183 525.0, 526.0, 527.0, 528.0, 529.0, 530.0, 531.0, 532.0, 533.0, 534.0,
1184 535.0, 536.0, 537.0, 538.0, 539.0, 540.0, 541.0, 542.0, 543.0, 544.0,
1185 545.0, 546.0, 547.0, 548.0, 549.0, 550.0, 551.0, 552.0, 553.0, 554.0,
1186 555.0, 556.0, 557.0, 558.0, 559.0, 560.0, 561.0, 562.0, 563.0, 564.0,
1187 565.0, 566.0, 567.0, 568.0, 569.0, 570.0, 571.0, 572.0, 573.0, 574.0,
1188 575.0, 576.0, 577.0, 578.0, 579.0, 580.0, 581.0, 582.0, 583.0, 584.0,
1189 585.0, 586.0, 587.0, 588.0, 589.0, 590.0, 591.0, 592.0, 593.0, 594.0,
1190 595.0, 596.0, 597.0, 598.0, 599.0, 600.0, 601.0, 602.0, 603.0, 604.0,
1191 605.0, 606.0, 607.0, 608.0, 609.0, 610.0, 611.0, 612.0, 613.0, 614.0,
1192 615.0, 616.0, 617.0, 618.0, 619.0, 620.0, 621.0, 622.0, 623.0, 624.0,
1193 625.0, 626.0, 627.0, 628.0, 629.0, 630.0, 631.0, 632.0, 633.0, 634.0,
1194 635.0, 636.0, 637.0, 638.0, 639.0, 640.0, 641.0, 642.0, 643.0, 644.0,
1195 645.0, 646.0, 647.0, 648.0, 649.0, 650.0, 651.0, 652.0, 653.0, 654.0,
1196 655.0, 656.0, 657.0, 658.0, 659.0, 660.0, 661.0, 662.0, 663.0, 664.0,
1197 665.0, 666.0, 667.0, 668.0, 669.0, 670.0, 671.0, 672.0, 673.0, 674.0,
1198 675.0, 676.0, 677.0, 678.0, 679.0, 680.0, 681.0, 682.0, 683.0, 684.0,
1199 685.0, 686.0, 687.0, 688.0, 689.0, 690.0, 691.0, 692.0, 693.0, 694.0,
1200 695.0, 696.0, 697.0, 698.0, 699.0, 700.0, 701.0, 702.0, 703.0, 704.0,
1201 705.0, 706.0, 707.0, 708.0, 709.0, 710.0, 711.0, 712.0, 713.0, 714.0,
1202 715.0, 716.0, 717.0, 718.0, 719.0, 720.0, 721.0, 722.0, 723.0, 724.0,
1203 725.0, 726.0, 727.0, 728.0, 729.0, 730.0, 731.0, 732.0, 733.0, 734.0,
1204 735.0, 736.0, 737.0, 738.0, 739.0, 740.0, 741.0, 742.0, 743.0, 744.0,
1205 745.0, 746.0, 747.0, 748.0, 749.0, 750.0, 751.0, 752.0, 753.0, 754.0,
1206 755.0, 756.0, 757.0, 758.0, 759.0, 760.0, 761.0, 762.0, 763.0, 764.0,
1207 765.0, 766.0, 767.0, 768.0, 769.0, 770.0, 771.0, 772.0, 773.0, 774.0,
1208 775.0, 776.0, 777.0, 778.0, 779.0, 780.0, 781.0, 782.0, 783.0, 784.0,
1209 785.0, 786.0, 787.0, 788.0, 789.0, 790.0, 791.0, 792.0, 793.0, 794.0,
1210 795.0, 796.0, 797.0, 798.0, 799.0, 800.0, 801.0, 802.0, 803.0, 804.0,
1211 805.0, 806.0, 807.0, 808.0, 809.0, 810.0, 811.0, 812.0, 813.0, 814.0,
1212 815.0, 816.0, 817.0, 818.0, 819.0, 820.0 } ;
1213
1214 static real_T pDataValues0[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1215 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1216 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1217 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1218 1.0416666666666667, 2.0833333333333335, 3.125, 4.166666666666667,
1219 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1220 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1221 3.4722222222222223, 2.7777777777777777, 1.851861111111111,
1222 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1223 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.83333333333333326,
1224 1.6666666666666665, 2.5, 3.333333333333333, 4.166666666666667,
1225 4.166666666666667, 4.166666666666667, 5.1111111111111107,
1226 6.0555555555555554, 7.0, 7.9444444444444446, 8.88888888888889,
1227 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1228 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1229 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1230 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1231 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1232 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1233 8.0808055555555551, 7.2727222222222219, 6.4646388888888886,
1234 5.6565555555555562, 4.8484722222222221, 4.0404166666666663,
1235 3.2323333333333331, 2.42425, 1.6161666666666665, 0.80808333333333326,
0.0,
1236 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1237 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.83333333333333326, 1.6666666666666665,
2.5,
1238 3.333333333333333, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1239 4.7839444444444448, 5.4012222222222226, 6.018527777777777,
1240 6.6358055555555548, 7.2530833333333335, 7.8703611111111114,
1241 8.4876666666666658, 9.1049444444444436, 9.7222222222222214,
1242 9.7222222222222214, 9.7222222222222214, 10.243055555555555,
1243 10.763888888888889, 11.284722222222221, 11.805555555555555,
1244 12.326388888888889, 12.847222222222221, 13.368055555555555,
1245 13.888888888888889, 13.888888888888889, 13.888888888888889,
1246 13.888888888888889, 13.888888888888889, 13.888888888888889,
1247 13.888888888888889, 13.888888888888889, 13.888888888888889,
1248 13.888888888888889, 13.888888888888889, 13.888888888888889,
1249 13.888888888888889, 13.368055555555555, 12.847222222222221,
1250 12.326388888888889, 11.805555555555555, 11.284722222222221,
1251 10.763888888888889, 10.243055555555555, 9.7222222222222214,
1252 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1253 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1254 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1255 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1256 9.7222222222222214, 9.3055555555555554, 8.88888888888889,
8.01586111111111,
1257 7.1428611111111113, 6.2698333333333336, 5.3968333333333334,
1258 4.5238055555555547, 3.6508055555555554, 2.7777777777777777,
1259 1.851861111111111, 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1260 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1261 1.0416666666666667, 2.0833333333333335, 3.125, 4.166666666666667,
1262 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1263 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1264 3.4722222222222223, 2.7777777777777777, 1.851861111111111,
1265 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1266 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.83333333333333326,
1267 1.6666666666666665, 2.5, 3.333333333333333, 4.166666666666667,
1268 4.166666666666667, 4.166666666666667, 5.1111111111111107,
1269 6.0555555555555554, 7.0, 7.9444444444444446, 8.88888888888889,
1270 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1271 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1272 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1273 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1274 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1275 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1276 8.0808055555555551, 7.2727222222222219, 6.4646388888888886,
1277 5.6565555555555562, 4.8484722222222221, 4.0404166666666663,
1278 3.2323333333333331, 2.42425, 1.6161666666666665, 0.80808333333333326,
0.0,
1279 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1280 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.83333333333333326, 1.6666666666666665,
2.5,
1281 3.333333333333333, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1282 4.7839444444444448, 5.4012222222222226, 6.018527777777777,
1283 6.6358055555555548, 7.2530833333333335, 7.8703611111111114,
1284 8.4876666666666658, 9.1049444444444436, 9.7222222222222214,
1285 9.7222222222222214, 9.7222222222222214, 10.243055555555555,
1286 10.763888888888889, 11.284722222222221, 11.805555555555555,
1287 12.326388888888889, 12.847222222222221, 13.368055555555555,
1288 13.888888888888889, 13.888888888888889, 13.888888888888889,
1289 13.888888888888889, 13.888888888888889, 13.888888888888889,
1290 13.888888888888889, 13.888888888888889, 13.888888888888889,
1291 13.888888888888889, 13.888888888888889, 13.888888888888889,
1292 13.888888888888889, 13.368055555555555, 12.847222222222221,
1293 12.326388888888889, 11.805555555555555, 11.284722222222221,
1294 10.763888888888889, 10.243055555555555, 9.7222222222222214,
1295 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1296 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1297 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1298 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1299 9.7222222222222214, 9.3055555555555554, 8.88888888888889,
8.01586111111111,
1300 7.1428611111111113, 6.2698333333333336, 5.3968333333333334,
1301 4.5238055555555547, 3.6508055555555554, 2.7777777777777777,
1302 1.851861111111111, 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1303 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1304 1.0416666666666667, 2.0833333333333335, 3.125, 4.166666666666667,
1305 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1306 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1307 3.4722222222222223, 2.7777777777777777, 1.851861111111111,
1308 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1309 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.83333333333333326,
1310 1.6666666666666665, 2.5, 3.333333333333333, 4.166666666666667,
1311 4.166666666666667, 4.166666666666667, 5.1111111111111107,
1312 6.0555555555555554, 7.0, 7.9444444444444446, 8.88888888888889,
1313 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1314 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1315 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1316 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1317 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1318 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1319 8.0808055555555551, 7.2727222222222219, 6.4646388888888886,
1320 5.6565555555555562, 4.8484722222222221, 4.0404166666666663,
1321 3.2323333333333331, 2.42425, 1.6161666666666665, 0.80808333333333326,
0.0,
1322 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1323 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.83333333333333326, 1.6666666666666665,
2.5,
1324 3.333333333333333, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1325 4.7839444444444448, 5.4012222222222226, 6.018527777777777,
1326 6.6358055555555548, 7.2530833333333335, 7.8703611111111114,
1327 8.4876666666666658, 9.1049444444444436, 9.7222222222222214,
1328 9.7222222222222214, 9.7222222222222214, 10.243055555555555,
1329 10.763888888888889, 11.284722222222221, 11.805555555555555,
1330 12.326388888888889, 12.847222222222221, 13.368055555555555,
1331 13.888888888888889, 13.888888888888889, 13.888888888888889,
1332 13.888888888888889, 13.888888888888889, 13.888888888888889,
1333 13.888888888888889, 13.888888888888889, 13.888888888888889,
1334 13.888888888888889, 13.888888888888889, 13.888888888888889,
1335 13.888888888888889, 13.368055555555555, 12.847222222222221,
1336 12.326388888888889, 11.805555555555555, 11.284722222222221,
1337 10.763888888888889, 10.243055555555555, 9.7222222222222214,
1338 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1339 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1340 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1341 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1342 9.7222222222222214, 9.3055555555555554, 8.88888888888889,
8.01586111111111,
1343 7.1428611111111113, 6.2698333333333336, 5.3968333333333334,
1344 4.5238055555555547, 3.6508055555555554, 2.7777777777777777,
1345 1.851861111111111, 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1346 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1347 1.0416666666666667, 2.0833333333333335, 3.125, 4.166666666666667,
1348 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1349 4.166666666666667, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1350 3.4722222222222223, 2.7777777777777777, 1.851861111111111,
1351 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1352 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.83333333333333326,
1353 1.6666666666666665, 2.5, 3.333333333333333, 4.166666666666667,
1354 4.166666666666667, 4.166666666666667, 5.1111111111111107,
1355 6.0555555555555554, 7.0, 7.9444444444444446, 8.88888888888889,
1356 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1357 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1358 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1359 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1360 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1361 8.88888888888889, 8.88888888888889, 8.88888888888889, 8.88888888888889,
1362 8.0808055555555551, 7.2727222222222219, 6.4646388888888886,
1363 5.6565555555555562, 4.8484722222222221, 4.0404166666666663,
1364 3.2323333333333331, 2.42425, 1.6161666666666665, 0.80808333333333326,
0.0,
1365 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1366 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.83333333333333326, 1.6666666666666665,
2.5,
1367 3.333333333333333, 4.166666666666667, 4.166666666666667,
4.166666666666667,
1368 4.7839444444444448, 5.4012222222222226, 6.018527777777777,
1369 6.6358055555555548, 7.2530833333333335, 7.8703611111111114,
1370 8.4876666666666658, 9.1049444444444436, 9.7222222222222214,
1371 9.7222222222222214, 9.7222222222222214, 10.243055555555555,
1372 10.763888888888889, 11.284722222222221, 11.805555555555555,
1373 12.326388888888889, 12.847222222222221, 13.368055555555555,
1374 13.888888888888889, 13.888888888888889, 13.888888888888889,
1375 13.888888888888889, 13.888888888888889, 13.888888888888889,
1376 13.888888888888889, 13.888888888888889, 13.888888888888889,
1377 13.888888888888889, 13.888888888888889, 13.888888888888889,
1378 13.888888888888889, 13.368055555555555, 12.847222222222221,
1379 12.326388888888889, 11.805555555555555, 11.284722222222221,
1380 10.763888888888889, 10.243055555555555, 9.7222222222222214,
1381 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1382 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1383 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1384 9.7222222222222214, 9.7222222222222214, 9.7222222222222214,
1385 9.7222222222222214, 9.3055555555555554, 8.88888888888889,
8.01586111111111,
1386 7.1428611111111113, 6.2698333333333336, 5.3968333333333334,
1387 4.5238055555555547, 3.6508055555555554, 2.7777777777777777,
1388 1.851861111111111, 0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1389 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1390 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1391 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1392 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0416666666666667, 1.0416666666666667,
1393 1.0416666666666665, 1.041666666666667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1394 0.0, -0.69444444444444464, -0.69444444444444464, -0.92591666666666672,
1395 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1396 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1397 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1398 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.94444444444444375,
1399 0.94444444444444464, 0.94444444444444464, 0.94444444444444464,
1400 0.94444444444444464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1401 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1402 -0.80808333333333415, -0.80808333333333326, -0.80808333333333326,
1403 -0.80808333333333238, -0.80808333333333415, -0.80805555555555575,
1404 -0.80808333333333326, -0.80808333333333326, -0.80808333333333326,
1405 -0.80808333333333326, -0.80808333333333326, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1406 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1407 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1408 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.61727777777777781,
1409 0.61727777777777781, 0.61730555555555444, 0.61727777777777781,
1410 0.6172777777777787, 0.61727777777777781, 0.61730555555555444,
1411 0.61727777777777781, 0.61727777777777781, 0.0, 0.0,
0.52083333333333393,
1412 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1413 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1414 0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1415 0.0, -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1416 -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1417 -0.52083333333333393, -0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1418 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.41666666666666607,
1419 -0.41666666666666607, -0.87302777777777862, -0.87299999999999933,
1420 -0.87302777777777774, -0.87300000000000022, -0.87302777777777862,
1421 -0.87299999999999933, -0.87302777777777774, -0.92591666666666672,
1422 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1423 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1424 1.0416666666666667, 1.0416666666666667, 1.0416666666666665,
1425 1.041666666666667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1426 -0.69444444444444464, -0.69444444444444464, -0.92591666666666672,
1427 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1428 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1429 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1430 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.94444444444444375,
1431 0.94444444444444464, 0.94444444444444464, 0.94444444444444464,
1432 0.94444444444444464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1433 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1434 -0.80808333333333415, -0.80808333333333326, -0.80808333333333326,
1435 -0.80808333333333238, -0.80808333333333415, -0.80805555555555575,
1436 -0.80808333333333326, -0.80808333333333326, -0.80808333333333326,
1437 -0.80808333333333326, -0.80808333333333326, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1438 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1439 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1440 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.61727777777777781,
1441 0.61727777777777781, 0.61730555555555444, 0.61727777777777781,
1442 0.6172777777777787, 0.61727777777777781, 0.61730555555555444,
1443 0.61727777777777781, 0.61727777777777781, 0.0, 0.0,
0.52083333333333393,
1444 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1445 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1446 0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1447 0.0, -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1448 -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1449 -0.52083333333333393, -0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1450 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.41666666666666607,
1451 -0.41666666666666607, -0.87302777777777862, -0.87299999999999933,
1452 -0.87302777777777774, -0.87300000000000022, -0.87302777777777862,
1453 -0.87299999999999933, -0.87302777777777774, -0.92591666666666672,
1454 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1455 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1456 1.0416666666666667, 1.0416666666666667, 1.0416666666666665,
1457 1.041666666666667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1458 -0.69444444444444464, -0.69444444444444464, -0.92591666666666672,
1459 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1460 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1461 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1462 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.94444444444444375,
1463 0.94444444444444464, 0.94444444444444464, 0.94444444444444464,
1464 0.94444444444444464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1465 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1466 -0.80808333333333415, -0.80808333333333326, -0.80808333333333326,
1467 -0.80808333333333238, -0.80808333333333415, -0.80805555555555575,
1468 -0.80808333333333326, -0.80808333333333326, -0.80808333333333326,
1469 -0.80808333333333326, -0.80808333333333326, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1470 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1471 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1472 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.61727777777777781,
1473 0.61727777777777781, 0.61730555555555444, 0.61727777777777781,
1474 0.6172777777777787, 0.61727777777777781, 0.61730555555555444,
1475 0.61727777777777781, 0.61727777777777781, 0.0, 0.0,
0.52083333333333393,
1476 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1477 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1478 0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1479 0.0, -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1480 -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1481 -0.52083333333333393, -0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1482 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.41666666666666607,
1483 -0.41666666666666607, -0.87302777777777862, -0.87299999999999933,
1484 -0.87302777777777774, -0.87300000000000022, -0.87302777777777862,
1485 -0.87299999999999933, -0.87302777777777774, -0.92591666666666672,
1486 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1487 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1488 1.0416666666666667, 1.0416666666666667, 1.0416666666666665,
1489 1.041666666666667, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1490 -0.69444444444444464, -0.69444444444444464, -0.92591666666666672,
1491 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1492 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1493 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1494 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.94444444444444375,
1495 0.94444444444444464, 0.94444444444444464, 0.94444444444444464,
1496 0.94444444444444464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1497 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1498 -0.80808333333333415, -0.80808333333333326, -0.80808333333333326,
1499 -0.80808333333333238, -0.80808333333333415, -0.80805555555555575,
1500 -0.80808333333333326, -0.80808333333333326, -0.80808333333333326,
1501 -0.80808333333333326, -0.80808333333333326, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1502 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1503 0.83333333333333326, 0.83333333333333326, 0.83333333333333348,
1504 0.833333333333333, 0.83333333333333393, 0.0, 0.0, 0.61727777777777781,
1505 0.61727777777777781, 0.61730555555555444, 0.61727777777777781,
1506 0.6172777777777787, 0.61727777777777781, 0.61730555555555444,
1507 0.61727777777777781, 0.61727777777777781, 0.0, 0.0,
0.52083333333333393,
1508 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1509 0.52083333333333393, 0.52083333333333215, 0.52083333333333393,
1510 0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1511 0.0, -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1512 -0.52083333333333393, -0.52083333333333393, -0.52083333333333215,
1513 -0.52083333333333393, -0.52083333333333393, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1514 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.41666666666666607,
1515 -0.41666666666666607, -0.87302777777777862, -0.87299999999999933,
1516 -0.87302777777777774, -0.87300000000000022, -0.87302777777777862,
1517 -0.87299999999999933, -0.87302777777777774, -0.92591666666666672,
1518 -0.92594444444444435, -0.92591666666666661, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1519 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1520 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1521 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1522 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1523 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1524 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1525 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0,
2.0,
1526 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1527 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1528 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1529 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1530 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
3.0,
1531 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
3.0,
1532 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1533 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0,
1.0,
1534 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1535 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1536 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1537 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1538 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0,
2.0,
1539 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1540 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1541 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1542 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1543 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
3.0,
1544 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
3.0,
1545 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1546 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0,
1.0,
1547 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1548 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1549 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1550 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1551 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0,
2.0,
1552 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1553 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1554 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1555 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1556 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
3.0,
1557 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
3.0,
1558 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1559 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0,
1.0,
1560 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1561 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1562 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1563 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1564 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0,
2.0,
1565 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1566 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1567 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,
1568 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0,
1.0,
1569 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
3.0,
1570 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
3.0,
1571 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0,
2.0,
1572 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 1.0, 1.0,
1.0,
1573 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;
1574
1575 rtDW.Cycledata_PWORK.TimePtr = (void *) pTimeValues0;
1576 rtDW.Cycledata_PWORK.DataPtr = (void *) pDataValues0;
1577 rtDW.Cycledata_IWORK.PrevIndex = 0;
1578 }
1579
1580 /* InitializeConditions for UnitDelay: '<S1>/Battery charge' */
1581 rtDW.Batterycharge_DSTATE = 100008.0;
1582 }
1583
1584 /*
1585 * File trailer for generated code.
1586 *
1587 * [EOF]
1588 */
1589