1
26
27 #include "controlMCUSlugsMKII.h"
28 #include "controlMCUSlugsMKII_private.h"
29
30
31 BlockIO_controlMCUSlugsMKII controlMCUSlugsMKII_B;
32
33
34 D_Work_controlMCUSlugsMKII controlMCUSlugsMKII_DWork;
35
36
37 PrevZCSigStates_controlMCUSlugs controlMCUSlugsM_PrevZCSigState;
38
39
40 RT_MODEL_controlMCUSlugsMKII controlMCUSlugsMKII_M_;
41 RT_MODEL_controlMCUSlugsMKII *controlMCUSlugsMKII_M = &controlMCUSlugsMKII_M_;
42 static void rate_monotonic_scheduler(void);
43
44
49 void controlMCUSlugsMKII_SetEventsForThisBaseStep(boolean_T *eventFlags)
50 {
51
52 eventFlags[1] = ((boolean_T)rtmStepTask(controlMCUSlugsMKII_M, 1));
53 }
54
55
62 static void rate_monotonic_scheduler(void)
63 {
64
68 if (++controlMCUSlugsMKII_M->Timing.TaskCounters.TID[1] == 100) {
69 controlMCUSlugsMKII_M->Timing.TaskCounters.TID[1] = 0;
70 }
71 }
72
73
79 void controlMCUSlugsM_negprotect(real32_T rtu_val,
80 rtB_negprotect_controlMCUSlugsM *localB)
81 {
82
83 if (rtu_val >= 1.000000047E-003F) {
84
85
86 localB->zpVal = rtu_val;
87 } else {
88 localB->zpVal = 1.000000047E-003F;
89 }
90 }
91
92
97 void controlMCUSlugsMK_myMuxFun1(real32_T rtu_u1, real32_T rtu_u2, real32_T
98 rtu_u3, rtB_myMuxFun1_controlMCUSlugsMK *localB)
99 {
100
101
102
103 localB->y[0] = rtu_u1;
104 localB->y[1] = rtu_u2;
105 localB->y[2] = rtu_u3;
106 }
107
108
112 void cont_EmbeddedMATLABFunction(const real32_T rtu_x[3], const real32_T rtu_y[3],
113 rtB_EmbeddedMATLABFunction_cont *localB)
114 {
115
116
117
118 localB->xDoty = (rtu_x[0] * rtu_y[0] + rtu_x[1] * rtu_y[1]) + rtu_x[2] * rtu_y
119 [2];
120 }
121
122
131 void controlMCUSlug_negprotect_e(real32_T rtu_val,
132 rtB_negprotect_controlMCUSlug_p *localB)
133 {
134
135 if (rtu_val >= 1.000000047E-003F) {
136
137
138 localB->zpVal_k = rtu_val;
139 } else {
140 localB->zpVal_k = 1.000000047E-003F;
141 }
142 }
143
144
148 void co_EmbeddedMATLABFunction_a(const real32_T rtu_x[3],
149 rtB_EmbeddedMATLABFunction_co_e *localB)
150 {
151
152
153
154 localB->xDoty_g = (rtu_x[0] * rtu_x[0] + rtu_x[1] * rtu_x[1]) + rtu_x[2] *
155 rtu_x[2];
156 }
157
158
163 void co_EmbeddedMATLABFunction_h(const real32_T rtu_x[3],
164 rtB_EmbeddedMATLABFunction_co_l *localB)
165 {
166
167
168
169 localB->xDoty_j = (rtu_x[0] * rtu_x[0] + rtu_x[1] * rtu_x[1]) + rtu_x[2] *
170 rtu_x[2];
171 }
172
173
179 void controlMCUSlugs_myMuxFun1_a(uint16_T rtu_u1, uint16_T rtu_u2, uint16_T
180 rtu_u3, uint16_T rtu_u4, uint16_T rty_0[4])
181 {
182
183
184
185 rty_0[0] = rtu_u1;
186 rty_0[1] = rtu_u2;
187 rty_0[2] = rtu_u3;
188 rty_0[3] = rtu_u4;
189 }
190
191
195 void controlMCUSlugs_myMuxFun1_n(real32_T rtu_u1, real32_T rtu_u2, real32_T
196 rtu_u3, real32_T rtu_u4, real32_T rtu_u5, real32_T rtu_u6, real32_T rtu_u7,
197 real32_T rtu_u8, real32_T rtu_u9, rtB_myMuxFun1_controlMCUSlugs_p *localB)
198 {
199
200
201
202 localB->y_l[0] = rtu_u1;
203 localB->y_l[1] = rtu_u2;
204 localB->y_l[2] = rtu_u3;
205 localB->y_l[3] = rtu_u4;
206 localB->y_l[4] = rtu_u5;
207 localB->y_l[5] = rtu_u6;
208 localB->y_l[6] = rtu_u7;
209 localB->y_l[7] = rtu_u8;
210 localB->y_l[8] = rtu_u9;
211 }
212
213
220 void controlMCUSlugs_myMuxFun1_o(real32_T rtu_u1, real32_T rtu_u2, real32_T
221 rtu_u3, rtB_myMuxFun1_controlMCUSlugs_b *localB)
222 {
223
224
225
226 localB->y_i[0] = rtu_u1;
227 localB->y_i[1] = rtu_u2;
228 localB->y_i[2] = rtu_u3;
229 }
230
231
232 void controlMCUSlugsMKII_step0(void)
233 {
234
235 real_T rtb_DataTypeConversion;
236 real_T rtb_IntegerDelay2;
237 real_T rtb_IC1;
238 real_T rtb_IntegerDelay2_b;
239 real_T rtb_Switch3;
240 real_T rtb_swIncrement;
241 real_T rtb_AntiWindup;
242 real_T rtb_Switch3_n;
243 real_T rtb_IntegerDelay;
244 real_T rtb_IntegerDelay1;
245 real_T rtb_AntiWindup_e;
246 real_T rtb_Switch3_k;
247 real_T rtb_IntegerDelay_g;
248 real_T rtb_IntegerDelay1_n;
249 real_T rtb_AntiWindup_d;
250 real_T rtb_Switch3_o;
251 real_T rtb_IntegerDelay_i;
252 real_T rtb_IntegerDelay1_j;
253 real_T rtb_AntiWindup_k;
254 real_T rtb_Switch3_g;
255 real_T rtb_IntegerDelay_b;
256 real_T rtb_IntegerDelay1_o;
257 real_T rtb_UnitConversion;
258 real_T rtb_AntiWindup_m;
259 real_T rtb_Switch3_na;
260 real_T rtb_IntegerDelay_c;
261 real_T rtb_IntegerDelay1_d;
262 real_T rtb_IntegerDelay1_c;
263 real_T rtb_IntegerDelay3;
264 real_T rtb_IntegerDelay3_l;
265 real_T rtb_IntegerDelay3_k;
266 real32_T rtb_Switch3_ov;
267 real32_T rtb_u020;
268 real32_T rtb_u5u6;
269 real32_T rtb_Sum;
270 real32_T rtb_Sum_o;
271 real32_T rtb_u3u5;
272 real32_T rtb_Sum_oz;
273 real32_T rtb_Sum_m;
274 real32_T rtb_Gain2;
275 real32_T rtb_u1u3_g;
276 real32_T rtb_u4u5;
277 real32_T rtb_u5u6_l;
278 real32_T rtb_Sum_od;
279 real32_T rtb_Sum_i;
280 real32_T rtb_u3u5_b;
281 real32_T rtb_Sum_p;
282 real32_T rtb_Sum_pu;
283 real32_T rtb_Gain2_m;
284 real32_T rtb_u1u3_l;
285 real32_T rtb_u4u5_a;
286 real32_T rtb_Product;
287 real32_T rtb_Subtract;
288 real32_T rtb_Switch3_oe;
289 real32_T rtb_Sum_l[3];
290 real32_T rtb_y[4];
291 real32_T rtb_y_d;
292 real32_T rtb_u525[3];
293 real32_T rtb_Switch3_h;
294 real32_T rtb_u45;
295 real32_T rtb_Divide4;
296 real32_T rtb_Add_id[3];
297 real32_T rtb_Switch3_nn;
298 real32_T rtb_Gain_m;
299 real32_T rtb_NPey[3];
300 real32_T rtb_Divide5[3];
301 real32_T rtb_Switch3_a;
302 real32_T rtb_Product_m;
303 real32_T rtb_Switch3_m;
304 real32_T rtb_Product_c;
305 real32_T rtb_stWP;
306 real32_T rtb_Saturation1;
307 real32_T rtb_Saturation1_a;
308 real32_T rtb_IC;
309 real32_T rtb_Subtract_h[3];
310 real32_T rtb_DataTypeConversion_d;
311 real32_T rtb_DataTypeConversion2;
312 real32_T rtb_Switch3_e;
313 real32_T rtb_Switch3_c;
314 real32_T rtb_xDoty;
315 real32_T rtb_sinphi;
316 real32_T rtb_Rh;
317 real32_T rtb_Deg2R1;
318 real32_T rtb_Add_fn[3];
319 real32_T rtb_sinphi_a;
320 real32_T rtb_Rh_o;
321 real32_T rtb_Deg2R1_j;
322 real32_T rtb_UEN2NEU[3];
323 real32_T rtb_Add_d[3];
324 real32_T rtb_Subtract1;
325 real32_T rtb_sinphi_m;
326 real32_T rtb_Rh_i;
327 real32_T rtb_Deg2R1_d;
328 real32_T rtb_Product1_m;
329 real32_T rtb_Add_k[3];
330 real32_T rtb_Add_ir;
331 real32_T rtb_Product1_b;
332 real32_T rtb_sinphi_c;
333 real32_T rtb_Rh_m;
334 real32_T rtb_Deg2R1_g;
335 real32_T rtb_UEN2NEU_l[3];
336 real32_T rtb_P;
337 real32_T rtb_Divide1_d;
338 real32_T rtb_Divide2;
339 real32_T rtb_Switch3_f;
340 real32_T rtb_ScheduleLPF;
341 real32_T rtb_Add2;
342 real32_T rtb_Switch3_c1;
343 real32_T rtb_IntegerDelay2_f;
344 real32_T rtb_Sum2;
345 real32_T rtb_Switch1;
346 real32_T rtb_Switch3_b;
347 real32_T rtb_Add2_i;
348 real32_T rtb_Theta_cLimit;
349 real32_T rtb_Switch3_mx;
350 real32_T rtb_Add_b1;
351 real32_T rtb_Add4;
352 real32_T rtb_Switch3_kr;
353 real32_T rtb_Product1_j;
354 real32_T rtb_NDelays;
355 real32_T rtb_IntegerDelay2_fm;
356 real32_T rtb_Sum2_k;
357 real32_T rtb_Add3;
358 real32_T rtb_Switch1_o;
359 real32_T rtb_Switch3_p;
360 real32_T rtb_Add2_d;
361 real32_T rtb_Add1;
362 real32_T rtb_Add3_i;
363 real32_T rtb_Add4_k;
364 real32_T rtb_Switch3_f3;
365 real32_T rtb_Product1_a;
366 real32_T rtb_NDelays_n;
367 real32_T rtb_IntegerDelay2_h;
368 real32_T rtb_Sum2_a;
369 real32_T rtb_Add3_b;
370 real32_T rtb_Switch1_k;
371 real32_T rtb_Switch3_el;
372 real32_T rtb_Add2_a;
373 real32_T rtb_Enforceupperlimit_m;
374 real32_T rtb_Add4_ki;
375 real32_T rtb_ElevatorLimit;
376 real32_T rtb_ThrottleLimit;
377 real32_T rtb_y_g;
378 real32_T rtb_y_o;
379 real32_T rtb_y_i;
380 real32_T rtb_Switch3_gn;
381 real32_T rtb_Switch3_h4;
382 real32_T rtb_PsiDotLimit;
383 real32_T rtb_Switch;
384 real32_T rtb_BankLimitCommand;
385 real32_T rtb_Switch3_pa;
386 real32_T rtb_u020_g;
387 real32_T rtb_Switch3_fx;
388 real32_T rtb_u2;
389 real32_T rtb_Switch2;
390 real32_T rtb_Switch3_my;
391 real32_T rtb_Add4_m;
392 real32_T rtb_Product1_p;
393 real32_T rtb_NDelays_no;
394 real32_T rtb_IntegerDelay2_ih;
395 real32_T rtb_Sum2_c;
396 real32_T rtb_Add3_k;
397 real32_T rtb_Switch1_i;
398 real32_T rtb_Switch3_pf;
399 real32_T rtb_Add2_af;
400 real32_T rtb_RudderLimit;
401 real32_T rtb_UnitConversion_a;
402 real32_T rtb_Add1_j;
403 real32_T rtb_Add4_p;
404 real32_T rtb_Switch3_i;
405 real32_T rtb_Product1_mf;
406 real32_T rtb_NDelays_m;
407 real32_T rtb_IntegerDelay2_k;
408 real32_T rtb_Sum2_b;
409 real32_T rtb_Add3_o;
410 real32_T rtb_Switch1_g;
411 real32_T rtb_Switch3_cv;
412 real32_T rtb_Add2_n;
413 real32_T rtb_AileronLimit;
414 real32_T rtb_y_om[3];
415 real32_T rtb_Divide_l;
416 real32_T rtb_Divide1_a;
417 real32_T rtb_Divide_cm;
418 real32_T rtb_Switch3_pq;
419 real32_T rtb_IntegerDelay_k;
420 real32_T rtb_IntegerDelay1_a;
421 real32_T rtb_u2_o;
422 real32_T rtb_y_m;
423 real32_T rtb_IC_n;
424 real32_T rtb_Divide_p;
425 real32_T rtb_Subtract_b;
426 real32_T rtb_Switch3_cj;
427 real32_T rtb_IC_j;
428 real32_T rtb_Divide_f4;
429 real32_T rtb_Subtract_c;
430 real32_T rtb_Gain_ey;
431 real32_T rtb_Divide4_a;
432 real32_T rtb_Divide3;
433 real32_T rtb_Projection;
434 real32_T rtb_Switch3_ae;
435 real32_T rtb_IntegerDelay1_ov;
436 real32_T rtb_Switch3_gq;
437 real32_T rtb_Subtract1_d;
438 real32_T rtb_Switch3_im;
439 real32_T rtb_MathFunction[9];
440 real32_T rtb_Product2_cp[3];
441 real32_T rtb_Product3_ep[3];
442 real32_T rtb_u525_m[3];
443 real32_T rtb_Sum_mb[3];
444 real32_T rtb_TmpHiddenBufferAtProduct1In[9];
445 real32_T rtb_Product1_az[3];
446 real32_T rtb_Deg2R_g;
447 real32_T rtb_Sum2_j;
448 real32_T rtb_Sum1_f[3];
449 real32_T rtb_TmpHiddenBufferAtProduct1_h[9];
450 real32_T rtb_Product1_jw[3];
451 real32_T rtb_Deg2R_i;
452 real32_T rtb_Sum2_jc;
453 real32_T rtb_Add_n;
454 real32_T rtb_TmpHiddenBufferAtProduct1_g[9];
455 real32_T rtb_Sum1_g[3];
456 real32_T rtb_Product1_d4[3];
457 real32_T rtb_O[3];
458 real32_T rtb_Pch[3];
459 real32_T rtb_PchB[3];
460 real32_T rtb_Diff;
461 real32_T rtb_Subtract_a;
462 real32_T rtb_IntegerDelay2_j;
463 real32_T rtb_Sum2_d;
464 real32_T rtb_Deg2R_c;
465 real32_T rtb_UEN2NEU_f[3];
466 real32_T rtb_Sum2_g0;
467 real32_T rtb_Deg2R_a;
468 real32_T rtb_Enforcelowerlimit_c;
469 real32_T rtb_Product1_ma;
470 real32_T rtb_Saturation1_pt;
471 real32_T rtb_jxk;
472 real32_T rtb_Add1_b;
473 real32_T rtb_psi_ad;
474 real32_T rtb_Gain2_f;
475 real32_T rtb_IntegerDelay3_j;
476 real32_T rtb_Abs2;
477 real32_T rtb_Sum_k;
478 real32_T rtb_Add1_l;
479 real32_T rtb_IntegerDelay3_d;
480 real32_T rtb_IntegerDelay3_hu;
481 real32_T rtb_IntegerDelay3_p;
482 uint16_T rtb_Switch_k;
483 uint16_T rtb_Switch1_bs;
484 uint16_T rtb_Switch2_l;
485 uint16_T rtb_Switch3_c5;
486 uint16_T rtb_Gain_pn;
487 uint16_T rtb_Gain1_c;
488 uint16_T rtb_Gain2_d;
489 uint16_T rtb_Gain3_p;
490 uint16_T rtb_DataTypeConversion_k;
491 uint16_T rtb_DataTypeConversion_o;
492 uint16_T rtb_DataTypeConversion_o5;
493 uint16_T rtb_DataTypeConversion_j;
494 uint16_T rtb_Gain_fi;
495 uint16_T rtb_Gain1_cp;
496 uint16_T rtb_Gain2_fp;
497 uint16_T rtb_Gain3_j;
498 uint16_T rtb_y_n[5];
499 uint16_T rtb_TmpHiddenBufferAtSFunctionI[4];
500 uint8_T rtb_Add_mo;
501 uint8_T rtb_RelationalOperator2;
502 uint8_T rtb_RelationalOperator2_k;
503 uint8_T rtb_Add1_i;
504 uint8_T rtb_RelationalOperator2_g;
505 uint8_T rtb_IntegerDelay1_l;
506 uint8_T rtb_RelationalOperator2_i;
507 uint8_T rtb_SwitchDistanceLessthan;
508 uint8_T rtb_RelationalOperator2_h;
509 uint8_T rtb_Compare_l;
510 uint8_T rtb_RelationalOperator2_a;
511 uint8_T rtb_RelationalOperator2_j4;
512 uint8_T rtb_RelationalOperator2_m3;
513 uint8_T rtb_LogicalOperator;
514 uint8_T rtb_LogicalOperator2;
515 boolean_T rtb_LogicalOperator_e;
516 boolean_T rtb_Largerthan180;
517 boolean_T rtb_IntegerDelay1_oe;
518
519 {
520 rate_monotonic_scheduler();
521 }
522
523
524 controlMCUSlugsMKII_B.InputCapture_o1 = ic2up;
525 controlMCUSlugsMKII_B.InputCapture_o2 = ic3up;
526 controlMCUSlugsMKII_B.InputCapture_o3 = ic4up;
527 controlMCUSlugsMKII_B.InputCapture_o4 = ic5up;
528 controlMCUSlugsMKII_B.InputCapture_o5 = ic8up;
529
530
531
532
533
534 rtb_y_n[0] = controlMCUSlugsMKII_B.InputCapture_o1;
535 rtb_y_n[1] = controlMCUSlugsMKII_B.InputCapture_o2;
536 rtb_y_n[2] = controlMCUSlugsMKII_B.InputCapture_o3;
537 rtb_y_n[3] = controlMCUSlugsMKII_B.InputCapture_o4;
538 rtb_y_n[4] = controlMCUSlugsMKII_B.InputCapture_o5;
539
540
541 controlMCUSlugsMKII_B.GetControlTypenavSupportc = getApControlType();
542
543
544 controlMCUSlugsMKII_B.CalculusTimeStep_o1 = CalculusTimeStep;
545 controlMCUSlugsMKII_B.CalculusTimeStep_o2 = PR1;
546
547 {
548 real_T tmp;
549
550
557 tmp = fmod(floor(floor((real_T)controlMCUSlugsMKII_B.CalculusTimeStep_o1 /
558 (real_T)controlMCUSlugsMKII_B.CalculusTimeStep_o2 * 100.0)), 256.0);
559 if (tmp < 0.0) {
560 tmp += 256.0;
561 }
562
563 controlMCUSlugsMKII_B.DataTypeConversion12 = (uint8_T)tmp;
564 }
565
566
567 gsRead(&controlMCUSlugsMKII_B.DatafromGSgroundStationDriverc[0]);
568
569
570 readIpc(&controlMCUSlugsMKII_B.DatafromIPCinterProcCommSlavec[0]);
571
572
573 protParseDecode(controlMCUSlugsMKII_B.DatafromIPCinterProcCommSlavec);
574
575
576 protParseDecodeGS(controlMCUSlugsMKII_B.DatafromGSgroundStationDriverc);
577
578
579 updateLoad(controlMCUSlugsMKII_B.DataTypeConversion12);
580
581
582 getMidLevelCommands(&controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[0]);
583
584
585 controlMCUSlugsMKII_B.GetDynamicPnavSupportc = getDynamic();
586
587
588 getPidIdx(((uint8_T)0U),&controlMCUSlugsMKII_B.GetPidaccordingtoIndex[0]);
589
590
591 {
592 int16_T eml_i;
593
594
595
596 for (eml_i = 0; eml_i < 7; eml_i++) {
597 controlMCUSlugsMKII_B.history_n[eml_i] = 0U;
598 }
599
600 for (eml_i = 7; eml_i > 1; eml_i += -1) {
601 controlMCUSlugsMKII_DWork.BufferICChannel.oldValues[eml_i - 1] =
602 controlMCUSlugsMKII_DWork.BufferICChannel.oldValues[eml_i - 2];
603 controlMCUSlugsMKII_B.history_n[eml_i - 1] =
604 controlMCUSlugsMKII_DWork.BufferICChannel.oldValues[eml_i - 2];
605 }
606
607 controlMCUSlugsMKII_DWork.BufferICChannel.oldValues[0] = rtb_y_n[0];
608 controlMCUSlugsMKII_B.history_n[0] = rtb_y_n[0];
609 }
610
611
612 {
613 int16_T eml_i;
614
615
616
617 for (eml_i = 0; eml_i < 7; eml_i++) {
618 controlMCUSlugsMKII_B.history_ec[eml_i] = 0U;
619 }
620
621 for (eml_i = 7; eml_i > 1; eml_i += -1) {
622 controlMCUSlugsMKII_DWork.BufferICChannel1.oldValues[eml_i - 1] =
623 controlMCUSlugsMKII_DWork.BufferICChannel1.oldValues[eml_i - 2];
624 controlMCUSlugsMKII_B.history_ec[eml_i - 1] =
625 controlMCUSlugsMKII_DWork.BufferICChannel1.oldValues[eml_i - 2];
626 }
627
628 controlMCUSlugsMKII_DWork.BufferICChannel1.oldValues[0] = rtb_y_n[1];
629 controlMCUSlugsMKII_B.history_ec[0] = rtb_y_n[1];
630 }
631
632
633 {
634 int16_T eml_i;
635
636
637
638 for (eml_i = 0; eml_i < 7; eml_i++) {
639 controlMCUSlugsMKII_B.history_e[eml_i] = 0U;
640 }
641
642 for (eml_i = 7; eml_i > 1; eml_i += -1) {
643 controlMCUSlugsMKII_DWork.BufferICChannel2.oldValues[eml_i - 1] =
644 controlMCUSlugsMKII_DWork.BufferICChannel2.oldValues[eml_i - 2];
645 controlMCUSlugsMKII_B.history_e[eml_i - 1] =
646 controlMCUSlugsMKII_DWork.BufferICChannel2.oldValues[eml_i - 2];
647 }
648
649 controlMCUSlugsMKII_DWork.BufferICChannel2.oldValues[0] = rtb_y_n[3];
650 controlMCUSlugsMKII_B.history_e[0] = rtb_y_n[3];
651 }
652
653
654 {
655 int16_T eml_i;
656
657
658
659 for (eml_i = 0; eml_i < 7; eml_i++) {
660 controlMCUSlugsMKII_B.history[eml_i] = 0U;
661 }
662
663 for (eml_i = 7; eml_i > 1; eml_i += -1) {
664 controlMCUSlugsMKII_DWork.BufferICChannel3.oldValues[eml_i - 1] =
665 controlMCUSlugsMKII_DWork.BufferICChannel3.oldValues[eml_i - 2];
666 controlMCUSlugsMKII_B.history[eml_i - 1] =
667 controlMCUSlugsMKII_DWork.BufferICChannel3.oldValues[eml_i - 2];
668 }
669
670 controlMCUSlugsMKII_DWork.BufferICChannel3.oldValues[0] = rtb_y_n[2];
671 controlMCUSlugsMKII_B.history[0] = rtb_y_n[2];
672 }
673
674
679 controlMCUSlugsMKII_B.IntegerDelay =
680 controlMCUSlugsMKII_DWork.IntegerDelay_X_p;
681
682
683 controlMCUSlugsMKII_B.ManualorAutonavSupportc = isApManual();
684
685 {
686 ZCEventType zcEvent;
687
688
689 rtb_DataTypeConversion = (real_T)
690 controlMCUSlugsMKII_B.ManualorAutonavSupportc;
691
692
693 zcEvent = rt_ZCFcn(FALLING_ZERO_CROSSING,
694 &controlMCUSlugsM_PrevZCSigState.HitCrossing_ZCE,
695 (rtb_DataTypeConversion - 0.5));
696 if (controlMCUSlugsMKII_DWork.HitCrossing_MODE == 0L) {
697 if (zcEvent != NO_ZCEVENT) {
698 controlMCUSlugsMKII_B.HitCrossing = ((controlMCUSlugsMKII_B.HitCrossing ==
699 1 ? 0 : 1) != 0);
700 controlMCUSlugsMKII_DWork.HitCrossing_MODE = 1L;
701 } else if ((controlMCUSlugsMKII_B.HitCrossing == 1) &&
702 (rtb_DataTypeConversion != 0.5)) {
703 controlMCUSlugsMKII_B.HitCrossing = 0U;
704 }
705 } else {
706 if (rtb_DataTypeConversion != 0.5) {
707 controlMCUSlugsMKII_B.HitCrossing = 0U;
708 }
709
710 controlMCUSlugsMKII_DWork.HitCrossing_MODE = 0L;
711 }
712
713
714 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime) {
715 controlMCUSlugsMKII_DWork.IC_FirstOutputTime = 0U;
716 controlMCUSlugsMKII_B.IC_c = 1U;
717 } else {
718 controlMCUSlugsMKII_B.IC_c = controlMCUSlugsMKII_B.HitCrossing;
719 }
720
721
724 rtb_Add_mo = (uint8_T)((uint16_T)
725 (controlMCUSlugsMKII_DWork.IntegerDelay2_X_k) + (uint16_T)
726 controlMCUSlugsMKII_B.IC_c);
727 if (rtb_Add_mo > 0U) {
728 if (controlMCUSlugsMKII_DWork.GrabIC_MODE == (int32_T)SUBSYS_DISABLED) {
729 controlMCUSlugsMKII_DWork.GrabIC_MODE = (int32_T)SUBSYS_ENABLED;
730 }
731 } else if (controlMCUSlugsMKII_DWork.GrabIC_MODE == (int32_T)SUBSYS_ENABLED)
732 {
733 controlMCUSlugsMKII_DWork.GrabIC_MODE = (int32_T)SUBSYS_DISABLED;
734 }
735
736 if (controlMCUSlugsMKII_DWork.GrabIC_MODE == (int32_T)SUBSYS_ENABLED) {
737
738
739
740 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc = meanFilter5
741 (controlMCUSlugsMKII_B.history_n);
742
743
749 controlMCUSlugsMKII_B.DataTypeConversion = (real32_T)((real_T)
750 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc *
751 3.9246467817896402E-004 + -2.4929356357927808E+000);
752
753
754 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc1 = meanFilter5
755 (controlMCUSlugsMKII_B.history_ec);
756
757
763 controlMCUSlugsMKII_B.DataTypeConversion_f = (real32_T)((real_T)
764 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc1 *
765 1.4565320234764749E-004 + -1.0755448613357002E+000);
766
767
768 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc2 = meanFilter5
769 (controlMCUSlugsMKII_B.history_e);
770
771
777 controlMCUSlugsMKII_B.DataTypeConversion_b = (real32_T)((real_T)
778 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc2 *
779 1.7474741230625283E-004 + -1.3006200258793963E+000);
780
781
782 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc3 = meanFilter5
783 (controlMCUSlugsMKII_B.history);
784
785
791 controlMCUSlugsMKII_B.DataTypeConversion_c = (real32_T)((real_T)
792 controlMCUSlugsMKII_B.ChoosetheMediannavSupportc3 *
793 1.2648319566552172E-004 + -9.5530950783373303E-001);
794
795
796 setCurrentCommands(controlMCUSlugsMKII_B.IntegerDelay);
797 }
798 }
799
800
801 getXYZ(&controlMCUSlugsMKII_B.GetXYZnavSupportc[0]);
802
803
804 rtb_RelationalOperator2 = (controlMCUSlugsMKII_B.GetXYZnavSupportc[2] ==
805 controlMCUSlugsMKII_B.GetXYZnavSupportc[2]);
806
807
810 if (rtb_RelationalOperator2 > 0U) {
811 rtb_Switch3_ov = controlMCUSlugsMKII_B.GetXYZnavSupportc[2];
812 } else {
813 rtb_Switch3_ov = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_j5);
814 }
815
816
817 rtb_u020 = rt_SATURATE(rtb_Switch3_ov, 170.0F, 350.0F);
818
819
820 getPidIdx(((uint8_T)1U),&controlMCUSlugsMKII_B.GetPidaccordingtoIndex1[0]);
821
822
823 getPidIdx(((uint8_T)7U),&controlMCUSlugsMKII_B.navSupportc[0]);
824
825
826 controlMCUSlugsMKII_B.UnitConversion[0] = 1.745329238E-002F *
827 controlMCUSlugsMKII_B.navSupportc[0];
828 controlMCUSlugsMKII_B.UnitConversion[1] = 1.745329238E-002F *
829 controlMCUSlugsMKII_B.navSupportc[1];
830 controlMCUSlugsMKII_B.UnitConversion[2] = 1.745329238E-002F *
831 controlMCUSlugsMKII_B.navSupportc[2];
832
833
834 controlMCUSlugsMKII_B.CFunctionCall1 = myCos
835 (controlMCUSlugsMKII_B.UnitConversion[0]);
836
837
838 controlMCUSlugsMKII_B.CFunctionCall4 = myCos
839 (controlMCUSlugsMKII_B.UnitConversion[1]);
840
841
842 controlMCUSlugsMKII_B.CFunctionCall5 = myCos
843 (controlMCUSlugsMKII_B.UnitConversion[2]);
844
845
846 controlMCUSlugs_myMuxFun1_o(controlMCUSlugsMKII_B.CFunctionCall1,
847 controlMCUSlugsMKII_B.CFunctionCall4, controlMCUSlugsMKII_B.CFunctionCall5,
848 &controlMCUSlugsMKII_B.sf_myMuxFun2);
849
850
851 rtb_u5u6 = controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[1] *
852 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[2];
853
854
855 controlMCUSlugsMKII_B.CFunctionCall = mySin
856 (controlMCUSlugsMKII_B.UnitConversion[0]);
857
858
859 controlMCUSlugsMKII_B.CFunctionCall2 = mySin
860 (controlMCUSlugsMKII_B.UnitConversion[1]);
861
862
863 controlMCUSlugsMKII_B.CFunctionCall3 = mySin
864 (controlMCUSlugsMKII_B.UnitConversion[2]);
865
866
867 controlMCUSlugs_myMuxFun1_o(controlMCUSlugsMKII_B.CFunctionCall,
868 controlMCUSlugsMKII_B.CFunctionCall2, controlMCUSlugsMKII_B.CFunctionCall3,
869 &controlMCUSlugsMKII_B.sf_myMuxFun1);
870
871
875 rtb_Sum = controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[2] *
876 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[0] *
877 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[1] -
878 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[2] *
879 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[0];
880
881
885 rtb_Sum_o = controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[1] *
886 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[0] *
887 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[2] +
888 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[0] *
889 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[2];
890
891
892 rtb_u3u5 = controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[2] *
893 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[1];
894
895
899 rtb_Sum_oz = controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[0] *
900 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[1] *
901 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[2] +
902 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[0] *
903 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[2];
904
905
909 rtb_Sum_m = controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[1] *
910 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[2] *
911 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[0] -
912 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[2] *
913 controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[0];
914
915
916 rtb_Gain2 = -1.0F * controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[1];
917
918
919 rtb_u1u3_g = controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[0] *
920 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[1];
921
922
923 rtb_u4u5 = controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[0] *
924 controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[1];
925
926
927 controlMCUSlugs_myMuxFun1_n(rtb_u5u6, rtb_Sum, rtb_Sum_o, rtb_u3u5, rtb_Sum_oz,
928 rtb_Sum_m, rtb_Gain2, rtb_u1u3_g, rtb_u4u5,
929 &controlMCUSlugsMKII_B.sf_myMuxFun1_n);
930
931
932
933
934 {
935 uint32_T count = 0;
936 uint32_T row;
937 uint32_T col;
938 for (row= 0; row < 3; row++) {
939 for (col= 0; col < 3; col++) {
940 rtb_MathFunction[row + 3 * col] =
941 controlMCUSlugsMKII_B.sf_myMuxFun1_n.y_l[count];
942 count++;
943 }
944 }
945 }
946
947
948 getAttitude(&controlMCUSlugsMKII_B.GetAttitudenavSupportc[0]);
949
950
951 controlMCUSlugsMKII_B.CFunctionCall1_g = myCos
952 (controlMCUSlugsMKII_B.GetAttitudenavSupportc[0]);
953
954
955 controlMCUSlugsMKII_B.CFunctionCall4_a = myCos
956 (controlMCUSlugsMKII_B.GetAttitudenavSupportc[1]);
957
958
959 controlMCUSlugsMKII_B.CFunctionCall5_d = myCos
960 (controlMCUSlugsMKII_B.GetAttitudenavSupportc[2]);
961
962
963 controlMCUSlugs_myMuxFun1_o(controlMCUSlugsMKII_B.CFunctionCall1_g,
964 controlMCUSlugsMKII_B.CFunctionCall4_a,
965 controlMCUSlugsMKII_B.CFunctionCall5_d,
966 &controlMCUSlugsMKII_B.sf_myMuxFun2_c);
967
968
969 rtb_u5u6_l = controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[1] *
970 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[2];
971
972
973 controlMCUSlugsMKII_B.CFunctionCall_i = mySin
974 (controlMCUSlugsMKII_B.GetAttitudenavSupportc[0]);
975
976
977 controlMCUSlugsMKII_B.CFunctionCall2_e = mySin
978 (controlMCUSlugsMKII_B.GetAttitudenavSupportc[1]);
979
980
981 controlMCUSlugsMKII_B.CFunctionCall3_i = mySin
982 (controlMCUSlugsMKII_B.GetAttitudenavSupportc[2]);
983
984
985 controlMCUSlugs_myMuxFun1_o(controlMCUSlugsMKII_B.CFunctionCall_i,
986 controlMCUSlugsMKII_B.CFunctionCall2_e,
987 controlMCUSlugsMKII_B.CFunctionCall3_i,
988 &controlMCUSlugsMKII_B.sf_myMuxFun1_a);
989
990
994 rtb_Sum_od = controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[2] *
995 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[0] *
996 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[1] -
997 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[2] *
998 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[0];
999
1000
1004 rtb_Sum_i = controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[1] *
1005 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[0] *
1006 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[2] +
1007 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[0] *
1008 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[2];
1009
1010
1011 rtb_u3u5_b = controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[2] *
1012 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[1];
1013
1014
1018 rtb_Sum_p = controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[0] *
1019 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[1] *
1020 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[2] +
1021 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[0] *
1022 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[2];
1023
1024
1028 rtb_Sum_pu = controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[1] *
1029 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[2] *
1030 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[0] -
1031 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[2] *
1032 controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[0];
1033
1034
1035 rtb_Gain2_m = -1.0F * controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[1];
1036
1037
1038 rtb_u1u3_l = controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[0] *
1039 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[1];
1040
1041
1042 rtb_u4u5_a = controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[0] *
1043 controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[1];
1044
1045
1046 controlMCUSlugs_myMuxFun1_n(rtb_u5u6_l, rtb_Sum_od, rtb_Sum_i, rtb_u3u5_b,
1047 rtb_Sum_p, rtb_Sum_pu, rtb_Gain2_m, rtb_u1u3_l, rtb_u4u5_a,
1048 &controlMCUSlugsMKII_B.sf_myMuxFun1_m);
1049
1050 {
1051 static const int_T dims[3] = { 3, 3, 3 };
1052
1053 rt_MatMultRR_Sgl(controlMCUSlugsMKII_B.Product, rtb_MathFunction,
1054 controlMCUSlugsMKII_B.sf_myMuxFun1_m.y_l, &dims[0]);
1055 }
1056
1057
1058 controlMCUSlugsMKII_B.CFunctionCall_i0 = myAtan2(controlMCUSlugsMKII_B.Product
1059 [7],controlMCUSlugsMKII_B.Product[8]);
1060
1061
1062 rtb_Abs2 = -1.0F * controlMCUSlugsMKII_B.Product[6];
1063
1064
1065 controlMCUSlugsMKII_B.u1 = rt_SATURATE(rtb_Abs2, -9.990000129E-001F,
1066 9.998999834E-001F);
1067
1068
1069 controlMCUSlugsMKII_B.CFunctionCall_c = myAsin(controlMCUSlugsMKII_B.u1);
1070
1071
1072 controlMCUSlugsMKII_B.CFunctionCall_c5 = myAtan2(controlMCUSlugsMKII_B.Product
1073 [3],controlMCUSlugsMKII_B.Product[0]);
1074
1075
1076 if ((real_T)controlMCUSlugsMKII_B.CFunctionCall_c5 < 0.0) {
1077
1078
1079 rtb_y_d = controlMCUSlugsMKII_B.CFunctionCall_c5 + 6.283185482E+000F;
1080 } else {
1081 rtb_y_d = controlMCUSlugsMKII_B.CFunctionCall_c5;
1082 }
1083
1084
1085 controlMCUSlugs_myMuxFun1_o(controlMCUSlugsMKII_B.CFunctionCall_i0,
1086 controlMCUSlugsMKII_B.CFunctionCall_c, rtb_y_d,
1087 &controlMCUSlugsMKII_B.sf_myMuxFun1_e);
1088
1089 {
1090 static const int_T dims[3] = { 3, 3, 1 };
1091
1092 rt_MatMultRR_Sgl(controlMCUSlugsMKII_B.Product1, rtb_MathFunction,
1093 &controlMCUSlugsMKII_B.GetAttitudenavSupportc[3], &dims[0]);
1094 }
1095
1096
1097 {
1098 int16_T eml_i0;
1099
1100
1101
1102 for (eml_i0 = 0; eml_i0 < 3; eml_i0++) {
1103 controlMCUSlugsMKII_B.y_n[eml_i0] =
1104 controlMCUSlugsMKII_B.sf_myMuxFun1_e.y_i[eml_i0];
1105 }
1106
1107 for (eml_i0 = 0; eml_i0 < 3; eml_i0++) {
1108 controlMCUSlugsMKII_B.y_n[eml_i0 + 3] = controlMCUSlugsMKII_B.Product1
1109 [eml_i0];
1110 }
1111 }
1112
1113
1114 getPidIdx(((uint8_T)2U),&controlMCUSlugsMKII_B.GetPidaccordingtoIndex2[0]);
1115
1116
1117 controlMCUSlugsMKII_B.wpFlynavSupportc = isWpFly();
1118
1119
1120 controlMCUSlugsMKII_B.GetMaxWPnavSupportc = getMaxWp();
1121
1122
1123 getVned(&controlMCUSlugsMKII_B.GetVnednavSupportc[0]);
1124
1125
1126 getPidIdx(((uint8_T)5U),&controlMCUSlugsMKII_B.navSupportc_o[0]);
1127
1128
1129
1130
1131 rtb_u525[0] = rt_SATURATE(controlMCUSlugsMKII_B.GetVnednavSupportc[0], -25.0F,
1132 25.0F);
1133 rtb_u525[1] = rt_SATURATE(controlMCUSlugsMKII_B.GetVnednavSupportc[1], -25.0F,
1134 25.0F);
1135 rtb_u525[2] = rt_SATURATE(controlMCUSlugsMKII_B.GetVnednavSupportc[2], -25.0F,
1136 25.0F);
1137
1138
1139
1140
1141
1142 rtb_xDoty = rtb_u525[0] * rtb_u525[0] + rtb_u525[1] * rtb_u525[1];
1143
1144
1145 controlMCUSlug_negprotect_e(rtb_xDoty, &controlMCUSlugsMKII_B.sf_negprotect_h);
1146
1147
1148 controlMCUSlugsMKII_B.CFunctionCall_a = mySqrt
1149 (controlMCUSlugsMKII_B.sf_negprotect_h.zpVal_k);
1150
1151
1152 controlMCUSlugsM_negprotect(controlMCUSlugsMKII_B.CFunctionCall_a,
1153 &controlMCUSlugsMKII_B.sf_negprotect1);
1154
1155
1156 rtb_RelationalOperator2_k = (controlMCUSlugsMKII_B.sf_negprotect1.zpVal ==
1157 controlMCUSlugsMKII_B.sf_negprotect1.zpVal);
1158
1159
1164 rtb_jxk = controlMCUSlugsMKII_DWork.IntegerDelay3_X_lj;
1165
1166
1167 if (rtb_RelationalOperator2_k > 0U) {
1168 rtb_Switch3_h = controlMCUSlugsMKII_B.sf_negprotect1.zpVal;
1169 } else {
1170 rtb_Switch3_h = rtb_jxk;
1171 }
1172
1173
1174 rtb_u45 = rt_SATURATE(rtb_Switch3_h, 0.0F, 45.0F);
1175
1176
1177 rtb_Divide4 = controlMCUSlugsMKII_B.navSupportc_o[0] * rtb_u45;
1178
1179
1180 rtb_u525_m[0] = rt_SATURATE(controlMCUSlugsMKII_B.GetVnednavSupportc[0],
1181 -25.0F, 25.0F);
1182 rtb_u525_m[1] = rt_SATURATE(controlMCUSlugsMKII_B.GetVnednavSupportc[1],
1183 -25.0F, 25.0F);
1184 rtb_u525_m[2] = rt_SATURATE(controlMCUSlugsMKII_B.GetVnednavSupportc[2],
1185 -25.0F, 25.0F);
1186
1187
1192 rtb_IntegerDelay2 = controlMCUSlugsMKII_DWork.IntegerDelay2_X;
1193
1194
1199 rtb_IntegerDelay1_oe = controlMCUSlugsMKII_DWork.IntegerDelay1_X_p;
1200
1201 {
1202 ZCEventType zcEvent;
1203
1204
1207 if (controlMCUSlugsMKII_DWork.IC1_FirstOutputTime) {
1208 controlMCUSlugsMKII_DWork.IC1_FirstOutputTime = 0U;
1209 rtb_IC1 = 0.0;
1210 } else {
1211 rtb_IC1 = (real_T)controlMCUSlugsMKII_B.wpFlynavSupportc;
1212 }
1213
1214
1215 zcEvent = rt_ZCFcn(RISING_ZERO_CROSSING,
1216 &controlMCUSlugsM_PrevZCSigState.HitCrossing1_ZCE,
1217 (rtb_IC1 - 0.3));
1218 if (controlMCUSlugsMKII_DWork.HitCrossing1_MODE == 0L) {
1219 if (zcEvent != NO_ZCEVENT) {
1220 controlMCUSlugsMKII_B.HitCrossing1 =
1221 ((controlMCUSlugsMKII_B.HitCrossing1 == 1 ? 0 : 1) != 0);
1222 controlMCUSlugsMKII_DWork.HitCrossing1_MODE = 1L;
1223 } else if ((controlMCUSlugsMKII_B.HitCrossing1 == 1) && (rtb_IC1 != 0.3))
1224 {
1225 controlMCUSlugsMKII_B.HitCrossing1 = 0U;
1226 }
1227 } else {
1228 if (rtb_IC1 != 0.3) {
1229 controlMCUSlugsMKII_B.HitCrossing1 = 0U;
1230 }
1231
1232 controlMCUSlugsMKII_DWork.HitCrossing1_MODE = 0L;
1233 }
1234
1235
1236 rtb_Add1_i = (uint8_T)((uint16_T)rtb_IntegerDelay1_oe + (uint16_T)
1237 controlMCUSlugsMKII_B.HitCrossing1);
1238
1239
1242 {
1243 uint16_T eml_u0;
1244 uint8_T eml_u1;
1245 uint16_T eml_u2;
1246 uint8_T eml_u3;
1247 uint16_T eml_u4;
1248 uint8_T eml_u5;
1249 uint16_T eml_u6;
1250 uint8_T eml_u7;
1251
1252
1253 if (!controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP_not_empty)
1254 {
1255
1256 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP = ((uint8_T)1U);
1257 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP_not_empty =
1258 true;
1259 eml_u0 = (uint16_T)
1260 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP + 1U;
1261 if (eml_u0 > 255U) {
1262 eml_u1 = MAX_uint8_T;
1263 } else {
1264 eml_u1 = (uint8_T)eml_u0;
1265 }
1266
1267 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP = eml_u1;
1268 eml_u2 = (uint16_T)
1269 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP + 1U;
1270 if (eml_u2 > 255U) {
1271 eml_u3 = MAX_uint8_T;
1272 } else {
1273 eml_u3 = (uint8_T)eml_u2;
1274 }
1275
1276 if (controlMCUSlugsMKII_B.GetMaxWPnavSupportc > eml_u3) {
1277
1278 eml_u4 = (uint16_T)
1279 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP + 1U;
1280 if (eml_u4 > 255U) {
1281 eml_u5 = MAX_uint8_T;
1282 } else {
1283 eml_u5 = (uint8_T)eml_u4;
1284 }
1285
1286 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP = eml_u5;
1287 } else {
1288 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP =
1289 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP;
1290 }
1291 }
1292
1293 if (rtb_Add1_i == 1) {
1294
1295 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP = 0U;
1296 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP = 1U;
1297 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP = 2U;
1298 }
1299
1300 if (rtb_IntegerDelay2 == 1.0) {
1301
1302 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP =
1303 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP;
1304 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP =
1305 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP;
1306 eml_u6 = (uint16_T)
1307 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP + 1U;
1308 if (eml_u6 > 255U) {
1309 eml_u7 = MAX_uint8_T;
1310 } else {
1311 eml_u7 = (uint8_T)eml_u6;
1312 }
1313
1314 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP = eml_u7;
1315 if (controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP >
1316 controlMCUSlugsMKII_B.GetMaxWPnavSupportc) {
1317 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP = ((uint8_T)
1318 1U);
1319 }
1320 }
1321
1322 controlMCUSlugsMKII_B.wp0 =
1323 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP;
1324 controlMCUSlugsMKII_B.wp1 =
1325 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.toWP;
1326 controlMCUSlugsMKII_B.wp2 =
1327 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.totoWP;
1328 }
1329
1330 if (rtb_Add1_i > 0U) {
1331
1332
1333
1334 controlMCUSlugsMKII_B.UAVPos[0] = controlMCUSlugsMKII_B.GetXYZnavSupportc
1335 [0];
1336 controlMCUSlugsMKII_B.UAVPos[1] = controlMCUSlugsMKII_B.GetXYZnavSupportc
1337 [1];
1338 controlMCUSlugsMKII_B.UAVPos[2] = controlMCUSlugsMKII_B.GetXYZnavSupportc
1339 [2];
1340
1341
1342 getWP(((uint8_T)11U),&controlMCUSlugsMKII_B.CFunctionCall_aj[0]);
1343
1344
1345 rtb_Deg2R_i = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_aj[0];
1346
1347
1348 rtb_sinphi_m = (real32_T)sin(rtb_Deg2R_i);
1349
1350
1358 rtb_Rh_i = 6.378137E+006F / (real32_T)sqrt(1.0F - rtb_sinphi_m *
1359 rtb_sinphi_m * controlMCUSlugsMKII_ConstB.Sum5_lj);
1360
1361
1362 rtb_Sum2_jc = controlMCUSlugsMKII_B.CFunctionCall_aj[2] + rtb_Rh_i;
1363
1364
1365 rtb_Deg2R_i = (real32_T)cos(rtb_Deg2R_i);
1366
1367
1368 rtb_Deg2R1_d = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_aj
1369 [1];
1370
1371
1374 controlMCUSlugsMKII_B.RhhcosphicoslambXe = rtb_Sum2_jc * rtb_Deg2R_i *
1375 (real32_T)cos(rtb_Deg2R1_d);
1376
1377
1380 controlMCUSlugsMKII_B.RhhcosphisinlambYe = rtb_Sum2_jc * rtb_Deg2R_i *
1381 (real32_T)sin(rtb_Deg2R1_d);
1382
1383
1387 controlMCUSlugsMKII_B.Ze = (controlMCUSlugsMKII_ConstB.e2_i * rtb_Rh_i +
1388 controlMCUSlugsMKII_B.CFunctionCall_aj[2]) * rtb_sinphi_m;
1389 }
1390 }
1391
1392
1397 rtb_IntegerDelay2_b = controlMCUSlugsMKII_DWork.IntegerDelay2_X_l;
1398
1399
1400 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_i) {
1401 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_i = 0U;
1402 controlMCUSlugsMKII_B.IC = 1.0;
1403 } else {
1404 controlMCUSlugsMKII_B.IC = rtb_IntegerDelay2;
1405 }
1406
1407
1410 rtb_LogicalOperator_e = ((rtb_IntegerDelay2_b + controlMCUSlugsMKII_B.IC !=
1411 0.0) || (rtb_Add1_i != 0U));
1412 if (rtb_LogicalOperator_e) {
1413
1414
1415
1416 getWP(controlMCUSlugsMKII_B.wp0,&controlMCUSlugsMKII_B.CFunctionCall_d[0]);
1417
1418 {
1419 real32_T cg_in[9];
1420 int16_T i;
1421 real32_T rtb_Deg2R_idx;
1422 real32_T rtb_Deg2R_idx_0;
1423
1424
1425 if (controlMCUSlugsMKII_B.wp0 > 0U) {
1426 {
1427 real32_T cg_in[9];
1428 int16_T i;
1429
1430
1431 rtb_Deg2R_g = 1.745329238E-002F *
1432 controlMCUSlugsMKII_B.CFunctionCall_d[0];
1433
1434
1435 rtb_sinphi_a = (real32_T)sin(rtb_Deg2R_g);
1436
1437
1445 rtb_Rh_o = 6.378137E+006F / (real32_T)sqrt(1.0F - rtb_sinphi_a *
1446 rtb_sinphi_a * controlMCUSlugsMKII_ConstB.Sum5);
1447
1448
1449 rtb_Deg2R1_j = 1.745329238E-002F *
1450 controlMCUSlugsMKII_B.CFunctionCall_d[1];
1451
1452
1453 rtb_Deg2R_g = (real32_T)cos(rtb_Deg2R_g);
1454
1455
1456 rtb_Sum2_j = controlMCUSlugsMKII_B.CFunctionCall_d[2] + rtb_Rh_o;
1457
1458
1467 rtb_Sum1_f[0] = rtb_Sum2_j * rtb_Deg2R_g * (real32_T)cos(rtb_Deg2R1_j)
1468 - controlMCUSlugsMKII_B.RhhcosphicoslambXe;
1469 rtb_Sum1_f[1] = rtb_Sum2_j * rtb_Deg2R_g * (real32_T)sin(rtb_Deg2R1_j)
1470 - controlMCUSlugsMKII_B.RhhcosphisinlambYe;
1471 rtb_Sum1_f[2] = (controlMCUSlugsMKII_ConstB.e2 * rtb_Rh_o +
1472 controlMCUSlugsMKII_B.CFunctionCall_d[2]) *
1473 rtb_sinphi_a - controlMCUSlugsMKII_B.Ze;
1474
1475
1476 rtb_Deg2R_g = 1.745329238E-002F *
1477 controlMCUSlugsMKII_B.CFunctionCall_aj[1];
1478 rtb_sinphi_a = 1.745329238E-002F *
1479 controlMCUSlugsMKII_B.CFunctionCall_aj[0];
1480
1481
1492 cg_in[0] = (real32_T)(cos(rtb_Deg2R_g) * cos(rtb_sinphi_a));
1493 cg_in[1] = (real32_T)(-sin(rtb_Deg2R_g));
1494 cg_in[2] = (real32_T)((-sin(rtb_sinphi_a)) * cos(rtb_Deg2R_g));
1495 cg_in[3] = (real32_T)(sin(rtb_Deg2R_g) * cos(rtb_sinphi_a));
1496 cg_in[4] = (real32_T)cos(rtb_Deg2R_g);
1497 cg_in[5] = (real32_T)((-sin(rtb_Deg2R_g)) * sin(rtb_sinphi_a));
1498 cg_in[6] = (real32_T)sin(rtb_sinphi_a);
1499 cg_in[7] = 0.0F;
1500 cg_in[8] = (real32_T)cos(rtb_sinphi_a);
1501 for (i = 0; i < 9; i++) {
1502 rtb_TmpHiddenBufferAtProduct1_h[i] = cg_in[i];
1503 }
1504 }
1505
1506 {
1507 static const int_T dims[3] = { 3, 3, 1 };
1508
1509 rt_MatMultRR_Sgl(rtb_Product1_jw, rtb_TmpHiddenBufferAtProduct1_h,
1510 rtb_Sum1_f, &dims[0]);
1511 }
1512
1513
1519 {
1520 static const int_T dims[3] = { 3, 3, 1 };
1521
1522 rt_MatMultRR_Sgl((real32_T *)rtb_UEN2NEU, (real32_T *)
1523 &controlMCUSlugsMKII_ConstP.pooled51[0],
1524 (real32_T *)rtb_Product1_jw, &dims[0]);
1525 }
1526
1527 controlMCUSlugsMKII_B.Switch[0] = rtb_UEN2NEU[0];
1528 controlMCUSlugsMKII_B.Switch[1] = rtb_UEN2NEU[1];
1529 controlMCUSlugsMKII_B.Switch[2] = rtb_UEN2NEU[2];
1530 } else {
1531 controlMCUSlugsMKII_B.Switch[0] = controlMCUSlugsMKII_B.UAVPos[0];
1532 controlMCUSlugsMKII_B.Switch[1] = controlMCUSlugsMKII_B.UAVPos[1];
1533 controlMCUSlugsMKII_B.Switch[2] = controlMCUSlugsMKII_B.UAVPos[2];
1534 }
1535
1536
1537 rtb_Deg2R_idx = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_aj
1538 [1];
1539 rtb_Deg2R_idx_0 = 1.745329238E-002F *
1540 controlMCUSlugsMKII_B.CFunctionCall_aj[0];
1541
1542
1553 cg_in[0] = (real32_T)(cos(rtb_Deg2R_idx) * cos(rtb_Deg2R_idx_0));
1554 cg_in[1] = (real32_T)(-sin(rtb_Deg2R_idx));
1555 cg_in[2] = (real32_T)((-sin(rtb_Deg2R_idx_0)) * cos(rtb_Deg2R_idx));
1556 cg_in[3] = (real32_T)(sin(rtb_Deg2R_idx) * cos(rtb_Deg2R_idx_0));
1557 cg_in[4] = (real32_T)cos(rtb_Deg2R_idx);
1558 cg_in[5] = (real32_T)((-sin(rtb_Deg2R_idx)) * sin(rtb_Deg2R_idx_0));
1559 cg_in[6] = (real32_T)sin(rtb_Deg2R_idx_0);
1560 cg_in[7] = 0.0F;
1561 cg_in[8] = (real32_T)cos(rtb_Deg2R_idx_0);
1562 for (i = 0; i < 9; i++) {
1563 rtb_TmpHiddenBufferAtProduct1In[i] = cg_in[i];
1564 }
1565 }
1566
1567
1568 getWP(controlMCUSlugsMKII_B.wp1,&controlMCUSlugsMKII_B.CFunctionCall_a1[0]);
1569
1570
1571 rtb_Deg2R_c = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_a1[0];
1572
1573
1574 rtb_sinphi = (real32_T)sin(rtb_Deg2R_c);
1575
1576
1584 rtb_Rh = 6.378137E+006F / (real32_T)sqrt(1.0F - rtb_sinphi * rtb_sinphi *
1585 controlMCUSlugsMKII_ConstB.Sum5_l);
1586
1587
1588 rtb_Sum2_d = controlMCUSlugsMKII_B.CFunctionCall_a1[2] + rtb_Rh;
1589
1590
1591 rtb_Deg2R_c = (real32_T)cos(rtb_Deg2R_c);
1592
1593
1594 rtb_Deg2R1 = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_a1[1];
1595
1596
1605 rtb_UEN2NEU_f[0] = rtb_Sum2_d * rtb_Deg2R_c * (real32_T)cos(rtb_Deg2R1) -
1606 controlMCUSlugsMKII_B.RhhcosphicoslambXe;
1607 rtb_UEN2NEU_f[1] = rtb_Sum2_d * rtb_Deg2R_c * (real32_T)sin(rtb_Deg2R1) -
1608 controlMCUSlugsMKII_B.RhhcosphisinlambYe;
1609 rtb_UEN2NEU_f[2] = (controlMCUSlugsMKII_ConstB.e2_c * rtb_Rh +
1610 controlMCUSlugsMKII_B.CFunctionCall_a1[2]) * rtb_sinphi
1611 - controlMCUSlugsMKII_B.Ze;
1612
1613 {
1614 static const int_T dims[3] = { 3, 3, 1 };
1615
1616 rt_MatMultRR_Sgl(rtb_Product1_az, rtb_TmpHiddenBufferAtProduct1In,
1617 rtb_UEN2NEU_f, &dims[0]);
1618 }
1619
1620
1626 {
1627 static const int_T dims[3] = { 3, 3, 1 };
1628
1629 rt_MatMultRR_Sgl((real32_T *)rtb_UEN2NEU_f, (real32_T *)
1630 &controlMCUSlugsMKII_ConstP.pooled51[0],
1631 (real32_T *)rtb_Product1_az, &dims[0]);
1632 }
1633
1634
1635 controlMCUSlugsMKII_B.Reshape1[0] = rtb_UEN2NEU_f[0];
1636 controlMCUSlugsMKII_B.Reshape1[1] = rtb_UEN2NEU_f[1];
1637 controlMCUSlugsMKII_B.Reshape1[2] = rtb_UEN2NEU_f[2];
1638
1639
1640 rtb_Add_fn[0] = controlMCUSlugsMKII_B.Reshape1[0] -
1641 controlMCUSlugsMKII_B.Switch[0];
1642 rtb_Add_fn[1] = controlMCUSlugsMKII_B.Reshape1[1] -
1643 controlMCUSlugsMKII_B.Switch[1];
1644 rtb_Add_fn[2] = controlMCUSlugsMKII_B.Reshape1[2] -
1645 controlMCUSlugsMKII_B.Switch[2];
1646
1647
1648 co_EmbeddedMATLABFunction_h(rtb_Add_fn,
1649 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_hk);
1650
1651
1652 controlMCUSlug_negprotect_e
1653 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_hk.xDoty_j,
1654 &controlMCUSlugsMKII_B.sf_negprotect_g);
1655
1656
1657 controlMCUSlugsMKII_B.CFunctionCall_b = mySqrt
1658 (controlMCUSlugsMKII_B.sf_negprotect_g.zpVal_k);
1659
1660 {
1661 real32_T rtmax_U0DataInY0Container;
1662
1663
1664 rtmax_U0DataInY0Container = rt_MAX(controlMCUSlugsMKII_B.CFunctionCall_b,
1665 1.000000047E-003F);
1666
1667
1668 controlMCUSlugsMKII_B.Divide_n[0] = rtb_Add_fn[0] /
1669 rtmax_U0DataInY0Container;
1670 controlMCUSlugsMKII_B.Divide_n[1] = rtb_Add_fn[1] /
1671 rtmax_U0DataInY0Container;
1672 controlMCUSlugsMKII_B.Divide_n[2] = rtb_Add_fn[2] /
1673 rtmax_U0DataInY0Container;
1674
1675
1676
1677
1678
1679 controlMCUSlugsMKII_B.N[0] = -controlMCUSlugsMKII_B.Divide_n[1];
1680 controlMCUSlugsMKII_B.N[1] = controlMCUSlugsMKII_B.Divide_n[0];
1681 controlMCUSlugsMKII_B.N[2] = 0.0F;
1682 }
1683
1684
1685 co_EmbeddedMATLABFunction_h(controlMCUSlugsMKII_B.N,
1686 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_or);
1687
1688
1689 controlMCUSlug_negprotect_e
1690 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_or.xDoty_j,
1691 &controlMCUSlugsMKII_B.sf_negprotect_bp);
1692
1693
1694 controlMCUSlugsMKII_B.CFunctionCall_c0 = mySqrt
1695 (controlMCUSlugsMKII_B.sf_negprotect_bp.zpVal_k);
1696
1697 {
1698 real32_T rtmax_U0DataInY0Container;
1699
1700
1701 rtmax_U0DataInY0Container = rt_MAX(controlMCUSlugsMKII_B.CFunctionCall_c0,
1702 1.000000047E-003F);
1703
1704
1705 controlMCUSlugsMKII_B.Divide_p[0] = controlMCUSlugsMKII_B.N[0] /
1706 rtmax_U0DataInY0Container;
1707 controlMCUSlugsMKII_B.Divide_p[1] = controlMCUSlugsMKII_B.N[1] /
1708 rtmax_U0DataInY0Container;
1709 controlMCUSlugsMKII_B.Divide_p[2] = controlMCUSlugsMKII_B.N[2] /
1710 rtmax_U0DataInY0Container;
1711 }
1712 }
1713
1714
1715 rtb_Add_id[0] = controlMCUSlugsMKII_B.Reshape1[0] -
1716 controlMCUSlugsMKII_B.GetXYZnavSupportc[0];
1717 rtb_Add_id[1] = controlMCUSlugsMKII_B.Reshape1[1] -
1718 controlMCUSlugsMKII_B.GetXYZnavSupportc[1];
1719 rtb_Add_id[2] = controlMCUSlugsMKII_B.Reshape1[2] -
1720 controlMCUSlugsMKII_B.GetXYZnavSupportc[2];
1721
1722
1723 cont_EmbeddedMATLABFunction(controlMCUSlugsMKII_B.Divide_p, rtb_Add_id,
1724 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_m);
1725
1726
1727 rtb_RelationalOperator2_g =
1728 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_m.xDoty ==
1729 controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_m.xDoty);
1730
1731
1736 rtb_jxk = controlMCUSlugsMKII_DWork.IntegerDelay3_X_b3;
1737
1738
1739 if (rtb_RelationalOperator2_g > 0U) {
1740 rtb_Switch3_nn = controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_m.xDoty;
1741 } else {
1742 rtb_Switch3_nn = rtb_jxk;
1743 }
1744
1745
1746 rtb_Gain_m = -1.0F * rtb_Switch3_nn;
1747
1748
1749 rtb_NPey[0] = controlMCUSlugsMKII_B.Divide_p[0] * rtb_Gain_m;
1750 rtb_NPey[1] = controlMCUSlugsMKII_B.Divide_p[1] * rtb_Gain_m;
1751 rtb_NPey[2] = controlMCUSlugsMKII_B.Divide_p[2] * rtb_Gain_m;
1752
1753
1757 controlMCUSlugsMKII_B.Add = rtb_Divide4 * rtb_Divide4 - rtb_Switch3_nn *
1758 rtb_Switch3_nn;
1759
1760
1761 controlMCUSlugsMKII_B.CFunctionCall_o = myAbs(controlMCUSlugsMKII_B.Add);
1762
1763
1764 controlMCUSlug_negprotect_e(controlMCUSlugsMKII_B.CFunctionCall_o,
1765 &controlMCUSlugsMKII_B.sf_negprotect_f);
1766
1767
1768 controlMCUSlugsMKII_B.CFunctionCall_f = mySqrt
1769 (controlMCUSlugsMKII_B.sf_negprotect_f.zpVal_k);
1770
1771
1774 controlMCUSlugsMKII_B.L1_vec[0] = controlMCUSlugsMKII_B.Divide_n[0] *
1775 controlMCUSlugsMKII_B.CFunctionCall_f - rtb_NPey[0];
1776 controlMCUSlugsMKII_B.L1_vec[1] = controlMCUSlugsMKII_B.Divide_n[1] *
1777 controlMCUSlugsMKII_B.CFunctionCall_f - rtb_NPey[1];
1778 controlMCUSlugsMKII_B.L1_vec[2] = controlMCUSlugsMKII_B.Divide_n[2] *
1779 controlMCUSlugsMKII_B.CFunctionCall_f - rtb_NPey[2];
1780
1781
1789 rtb_Sum_mb[0] = rtb_u525_m[1] * controlMCUSlugsMKII_B.L1_vec[2] - rtb_u525_m[2]
1790 * controlMCUSlugsMKII_B.L1_vec[1];
1791 rtb_Sum_mb[1] = rtb_u525_m[2] * controlMCUSlugsMKII_B.L1_vec[0] - rtb_u525_m[0]
1792 * controlMCUSlugsMKII_B.L1_vec[2];
1793 rtb_Sum_mb[2] = rtb_u525_m[0] * controlMCUSlugsMKII_B.L1_vec[1] - rtb_u525_m[1]
1794 * controlMCUSlugsMKII_B.L1_vec[0];
1795
1796
1797 co_EmbeddedMATLABFunction_h(controlMCUSlugsMKII_B.L1_vec,
1798 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_d);
1799
1800
1801 controlMCUSlug_negprotect_e
1802 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_d.xDoty_j,
1803 &controlMCUSlugsMKII_B.sf_negprotect_b);
1804
1805
1806 controlMCUSlugsMKII_B.CFunctionCall_m = mySqrt
1807 (controlMCUSlugsMKII_B.sf_negprotect_b.zpVal_k);
1808
1809
1810 controlMCUSlugsM_negprotect(controlMCUSlugsMKII_B.CFunctionCall_m,
1811 &controlMCUSlugsMKII_B.sf_negprotect_fm);
1812
1813
1814 rtb_Divide5[0] = rtb_Sum_mb[0] / controlMCUSlugsMKII_B.sf_negprotect_fm.zpVal /
1815 rtb_u45;
1816 rtb_Divide5[1] = rtb_Sum_mb[1] / controlMCUSlugsMKII_B.sf_negprotect_fm.zpVal /
1817 rtb_u45;
1818 rtb_Divide5[2] = rtb_Sum_mb[2] / controlMCUSlugsMKII_B.sf_negprotect_fm.zpVal /
1819 rtb_u45;
1820
1821
1826 rtb_IntegerDelay3_d = controlMCUSlugsMKII_DWork.IntegerDelay3_X_g;
1827
1828
1831 if (((uint8_T)(rtb_Divide5[2] == rtb_Divide5[2])) > 0U) {
1832 rtb_Switch3_a = rtb_Divide5[2];
1833 } else {
1834 rtb_Switch3_a = rtb_IntegerDelay3_d;
1835 }
1836
1837
1838 controlMCUSlugsMKII_B.u1_h = rt_SATURATE(rtb_Switch3_a, -9.990000129E-001F,
1839 9.998999834E-001F);
1840
1841
1842 controlMCUSlugsMKII_B.CFunctionCall_h = myAsin(controlMCUSlugsMKII_B.u1_h);
1843
1844
1845 controlMCUSlugsMKII_B.CFunctionCall_e = mySin
1846 (controlMCUSlugsMKII_B.CFunctionCall_h);
1847
1848
1851 rtb_Product_m = (real32_T)((real_T)(rtb_u45 * rtb_u45) * 2.0) / rtb_Divide4 *
1852 controlMCUSlugsMKII_B.CFunctionCall_e;
1853
1854
1859 rtb_IntegerDelay3_d = controlMCUSlugsMKII_DWork.IntegerDelay3_X_f;
1860
1861
1864 if (((uint8_T)(rtb_Product_m == rtb_Product_m)) > 0U) {
1865 rtb_Switch3_m = rtb_Product_m;
1866 } else {
1867 rtb_Switch3_m = rtb_IntegerDelay3_d;
1868 }
1869
1870
1873 rtb_Product_c = controlMCUSlugsMKII_B.navSupportc_o[2] * rt_SATURATE
1874 (rtb_Switch3_m, -25.0F, 25.0F);
1875
1876
1877 controlMCUSlugsMK_myMuxFun1(rtb_Product_c, rtb_u45, rtb_Switch3_nn,
1878 &controlMCUSlugsMKII_B.sf_myMuxFun1_o);
1879
1880
1881 setLogFloat2(controlMCUSlugsMKII_B.sf_myMuxFun1_o.y);
1882
1883
1888 rtb_IntegerDelay3_d = controlMCUSlugsMKII_DWork.IntegerDelay3_X_a;
1889
1890
1895 rtb_IntegerDelay1_l = controlMCUSlugsMKII_DWork.IntegerDelay1_X_fi;
1896
1897
1901 if ((rtb_IntegerDelay1_l > ((uint8_T)0U)) > 0U) {
1902 rtb_stWP = rtb_IntegerDelay3_d;
1903 } else {
1904 rtb_stWP = 100.0F;
1905 }
1906
1907
1912 rtb_IntegerDelay3_d = controlMCUSlugsMKII_DWork.IntegerDelay1_X_i;
1913
1914
1919 rtb_IntegerDelay2_j = controlMCUSlugsMKII_DWork.IntegerDelay2_X_e[0];
1920
1921
1924 controlMCUSlugsMKII_B.Diff = controlMCUSlugsMKII_B.Switch[0] -
1925 controlMCUSlugsMKII_DWork.UD_DSTATE;
1926
1927
1928 controlMCUSlugsMKII_B.CFunctionCall_j = myAbs(controlMCUSlugsMKII_B.Diff);
1929
1930
1931 rtb_Saturation1 = rt_SATURATE(controlMCUSlugsMKII_B.CFunctionCall_j, 0.0F,
1932 1.0F);
1933
1934
1937 controlMCUSlugsMKII_B.Diff_o = controlMCUSlugsMKII_B.Switch[1] -
1938 controlMCUSlugsMKII_DWork.UD_DSTATE_e;
1939
1940
1941 controlMCUSlugsMKII_B.CFunctionCall_l = myAbs(controlMCUSlugsMKII_B.Diff_o);
1942
1943
1944 rtb_Saturation1_a = rt_SATURATE(controlMCUSlugsMKII_B.CFunctionCall_l, 0.0F,
1945 1.0F);
1946
1947
1950 controlMCUSlugsMKII_B.Diff_a = controlMCUSlugsMKII_B.Switch[2] -
1951 controlMCUSlugsMKII_DWork.UD_DSTATE_h;
1952
1953
1954 controlMCUSlugsMKII_B.CFunctionCall_ep = myAbs(controlMCUSlugsMKII_B.Diff_a);
1955
1956
1959 rtb_Sum_k = (rtb_Saturation1 + rtb_Saturation1_a) + rt_SATURATE
1960 (controlMCUSlugsMKII_B.CFunctionCall_ep, 0.0F, 1.0F);
1961
1962
1965 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_b) {
1966 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_b = 0U;
1967 controlMCUSlugsMKII_B.IC_e = 1.0F;
1968 } else {
1969 controlMCUSlugsMKII_B.IC_e = rt_SATURATE(rtb_Sum_k, 0.0F, 1.0F);
1970 }
1971
1972
1975 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_d) {
1976 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_d = 0U;
1977 rtb_IC = 1.0F;
1978 } else {
1979 rtb_IC = (rtb_IntegerDelay3_d + rtb_IntegerDelay2_j) +
1980 controlMCUSlugsMKII_B.IC_e;
1981 }
1982
1983 if (rtb_IC > 0.0F) {
1984
1985
1986
1987 rtb_Add_d[0] = controlMCUSlugsMKII_B.Switch[0] -
1988 controlMCUSlugsMKII_B.Reshape1[0];
1989 rtb_Add_d[1] = controlMCUSlugsMKII_B.Switch[1] -
1990 controlMCUSlugsMKII_B.Reshape1[1];
1991 rtb_Add_d[2] = controlMCUSlugsMKII_B.Switch[2] -
1992 controlMCUSlugsMKII_B.Reshape1[2];
1993
1994
1995 co_EmbeddedMATLABFunction_a(rtb_Add_d,
1996 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_mg);
1997
1998
1999 controlMCUSlug_negprotect_e
2000 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_mg.xDoty_g,
2001 &controlMCUSlugsMKII_B.sf_negprotect_l);
2002
2003
2004 controlMCUSlugsMKII_B.CFunctionCall_fg = mySqrt
2005 (controlMCUSlugsMKII_B.sf_negprotect_l.zpVal_k);
2006
2007
2008 rtb_Subtract1 = controlMCUSlugsMKII_B.CFunctionCall_fg - rtb_stWP;
2009
2010
2014 if ((rtb_Subtract1 == rtb_Subtract1) > 0U) {
2015 controlMCUSlugsMKII_B.Switch3 = rtb_Subtract1;
2016 } else {
2017 controlMCUSlugsMKII_B.Switch3 =
2018 (controlMCUSlugsMKII_DWork.IntegerDelay3_X_ft);
2019 }
2020
2021
2023 controlMCUSlugsMKII_DWork.IntegerDelay3_X_ft = controlMCUSlugsMKII_B.Switch3;
2024 }
2025
2026
2027 rtb_Subtract_h[0] = controlMCUSlugsMKII_B.GetXYZnavSupportc[0] -
2028 controlMCUSlugsMKII_B.Switch[0];
2029 rtb_Subtract_h[1] = controlMCUSlugsMKII_B.GetXYZnavSupportc[1] -
2030 controlMCUSlugsMKII_B.Switch[1];
2031 rtb_Subtract_h[2] = controlMCUSlugsMKII_B.GetXYZnavSupportc[2] -
2032 controlMCUSlugsMKII_B.Switch[2];
2033
2034
2035 cont_EmbeddedMATLABFunction(rtb_Subtract_h, controlMCUSlugsMKII_B.Divide_n,
2036 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_n);
2037
2038
2039 rtb_RelationalOperator2_i =
2040 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_n.xDoty ==
2041 controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_n.xDoty);
2042
2043
2048 rtb_IntegerDelay3 = controlMCUSlugsMKII_DWork.IntegerDelay3_X;
2049
2050
2051 if (rtb_RelationalOperator2_i > 0U) {
2052 rtb_Switch3 = (real_T)
2053 controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_n.xDoty;
2054 } else {
2055 rtb_Switch3 = rtb_IntegerDelay3;
2056 }
2057
2058
2059 rtb_DataTypeConversion_d = (real32_T)controlMCUSlugsMKII_B.wp0;
2060
2061
2062 rtb_DataTypeConversion2 = (real32_T)controlMCUSlugsMKII_B.wp1;
2063
2064
2065
2066
2067
2068 controlMCUSlugsMKII_B.y_e[0] = controlMCUSlugsMKII_B.Switch3;
2069 controlMCUSlugsMKII_B.y_e[1] = (real32_T)rtb_Switch3;
2070 controlMCUSlugsMKII_B.y_e[2] = rtb_DataTypeConversion_d;
2071 controlMCUSlugsMKII_B.y_e[3] = rtb_DataTypeConversion2;
2072
2073
2074 setNavNav(controlMCUSlugsMKII_B.y_e);
2075 if (rtb_LogicalOperator_e) {
2076
2077
2078
2079 rtb_Product1_m = controlMCUSlugsMKII_B.navSupportc_o[1] * rtb_u45;
2080
2081
2086 (void) memcpy(controlMCUSlugsMKII_B.IntegerDelay1,
2087 &controlMCUSlugsMKII_DWork.IntegerDelay1_X_k[0],
2088 3*sizeof(real32_T));
2089
2090
2091 controlMCUSlugsMKII_B.CFunctionCall_l0 = myAtan2
2092 (controlMCUSlugsMKII_B.IntegerDelay1[1],
2093 controlMCUSlugsMKII_B.IntegerDelay1[0]);
2094
2095
2098 rtb_Add_k[0] = (controlMCUSlugsMKII_DWork.IntegerDelay2_X_e3[0]) -
2099 controlMCUSlugsMKII_B.Reshape1[0];
2100 rtb_Add_k[1] = (controlMCUSlugsMKII_DWork.IntegerDelay2_X_e3[1]) -
2101 controlMCUSlugsMKII_B.Reshape1[1];
2102 rtb_Add_k[2] = (controlMCUSlugsMKII_DWork.IntegerDelay2_X_e3[2]) -
2103 controlMCUSlugsMKII_B.Reshape1[2];
2104
2105
2106 co_EmbeddedMATLABFunction_a(rtb_Add_k,
2107 &controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_a);
2108
2109
2110 controlMCUSlug_negprotect_e
2111 (controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_a.xDoty_g,
2112 &controlMCUSlugsMKII_B.sf_negprotect_e);
2113
2114
2115 controlMCUSlugsMKII_B.CFunctionCall_mb = mySqrt
2116 (controlMCUSlugsMKII_B.sf_negprotect_e.zpVal_k);
2117
2118 {
2119 real32_T rtmax_U0DataInY0Container;
2120
2121
2122 rtmax_U0DataInY0Container = rt_MAX(controlMCUSlugsMKII_B.CFunctionCall_mb,
2123 1.000000047E-003F);
2124
2125
2126 controlMCUSlugsMKII_B.Divide_l[0] = rtb_Add_k[0] /
2127 rtmax_U0DataInY0Container;
2128 controlMCUSlugsMKII_B.Divide_l[1] = rtb_Add_k[1] /
2129 rtmax_U0DataInY0Container;
2130 controlMCUSlugsMKII_B.Divide_l[2] = rtb_Add_k[2] /
2131 rtmax_U0DataInY0Container;
2132 }
2133
2134
2135 controlMCUSlugsMKII_B.CFunctionCall_ir = myAtan2
2136 (controlMCUSlugsMKII_B.Divide_l[1],controlMCUSlugsMKII_B.Divide_l[0]);
2137
2138
2139 rtb_Add_ir = controlMCUSlugsMKII_B.CFunctionCall_l0 -
2140 controlMCUSlugsMKII_B.CFunctionCall_ir;
2141
2142
2143 if ((real_T)rtb_Add_ir < 0.0) {
2144 controlMCUSlugsMKII_B.angle = rtb_Add_ir + 6.283185482E+000F;
2145 } else {
2146 controlMCUSlugsMKII_B.angle = rtb_Add_ir;
2147 }
2148
2149
2152 rtb_Largerthan180 = (controlMCUSlugsMKII_B.angle >= 3.141592741E+000F);
2153
2154
2155 if (rtb_Largerthan180) {
2156
2161 controlMCUSlugsMKII_B.Merge4 = (controlMCUSlugsMKII_B.angle -
2162 3.141592741E+000F) / 2.0F;
2163 }
2164
2165
2166
2167
2170 if (!rtb_Largerthan180) {
2171
2177 controlMCUSlugsMKII_B.Merge4 = (3.141592741E+000F -
2178 controlMCUSlugsMKII_B.angle) / 2.0F * -1.0F;
2179 }
2180
2181
2182
2183
2184 controlMCUSlugsMKII_B.CFunctionCall_hb = mySin(controlMCUSlugsMKII_B.Merge4);
2185
2186
2187 controlMCUSlugsMKII_B.CFunctionCall1_i = myCos(controlMCUSlugsMKII_B.Merge4);
2188
2189 {
2190 real32_T cg_in[9];
2191 int16_T i;
2192 real32_T rtb_Deg2R_b_idx;
2193 real32_T rtb_Deg2R_b_idx_0;
2194
2195
2199 rtb_Product1_b = controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[0] *
2200 controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[0] /
2201 9.814999580E+000F;
2202
2203
2204 {
2205 int16_T eml_i0;
2206 real_T eml_r_vec[3];
2207 real32_T eml_absVal;
2208
2209
2210
2211
2212 for (eml_i0 = 0; eml_i0 < 3; eml_i0++) {
2213 eml_r_vec[eml_i0] = 0.0;
2214 }
2215
2216 eml_r_vec[0] = (real_T)((-controlMCUSlugsMKII_B.IntegerDelay1[0]) *
2217 controlMCUSlugsMKII_B.CFunctionCall1_i -
2218 controlMCUSlugsMKII_B.IntegerDelay1[1] *
2219 controlMCUSlugsMKII_B.CFunctionCall_hb);
2220 eml_r_vec[1] = (real_T)(controlMCUSlugsMKII_B.IntegerDelay1[0] *
2221 controlMCUSlugsMKII_B.CFunctionCall_hb -
2222 controlMCUSlugsMKII_B.IntegerDelay1[1] *
2223 controlMCUSlugsMKII_B.CFunctionCall1_i);
2224 if ((real_T)controlMCUSlugsMKII_B.CFunctionCall_hb < 0.0) {
2225 eml_absVal = -1.0F * controlMCUSlugsMKII_B.CFunctionCall_hb;
2226 } else {
2227 eml_absVal = controlMCUSlugsMKII_B.CFunctionCall_hb;
2228 }
2229
2230 if ((real_T)eml_absVal > 0.01) {
2231
2232 eml_absVal = rtb_Product1_b / controlMCUSlugsMKII_B.CFunctionCall_hb;
2233 if ((real_T)eml_absVal < 0.0) {
2234 eml_absVal *= -1.0F;
2235 }
2236 } else {
2237 eml_absVal = 0.0F;
2238 }
2239
2240
2241 rtb_P = eml_absVal * controlMCUSlugsMKII_B.CFunctionCall1_i;
2242
2243
2244 for (eml_i0 = 0; eml_i0 < 3; eml_i0++) {
2245 rtb_O[eml_i0] = controlMCUSlugsMKII_B.Reshape1[eml_i0] + (real32_T)
2246 eml_r_vec[eml_i0] * eml_absVal;
2247
2248
2249 rtb_Pch[eml_i0] = controlMCUSlugsMKII_B.Reshape1[eml_i0] -
2250 controlMCUSlugsMKII_B.IntegerDelay1[eml_i0] * rtb_P;
2251 rtb_PchB[eml_i0] = controlMCUSlugsMKII_B.Reshape1[eml_i0] +
2252 controlMCUSlugsMKII_B.Divide_l[eml_i0] * rtb_P;
2253 }
2254 }
2255
2256
2257 rtb_Add_n = rtb_Product1_m + rtb_P;
2258
2259
2260 rtb_Deg2R_b_idx = 1.745329238E-002F *
2261 controlMCUSlugsMKII_B.CFunctionCall_aj[1];
2262 rtb_Deg2R_b_idx_0 = 1.745329238E-002F *
2263 controlMCUSlugsMKII_B.CFunctionCall_aj[0];
2264
2265
2276 cg_in[0] = (real32_T)(cos(rtb_Deg2R_b_idx) * cos(rtb_Deg2R_b_idx_0));
2277 cg_in[1] = (real32_T)(-sin(rtb_Deg2R_b_idx));
2278 cg_in[2] = (real32_T)((-sin(rtb_Deg2R_b_idx_0)) * cos(rtb_Deg2R_b_idx));
2279 cg_in[3] = (real32_T)(sin(rtb_Deg2R_b_idx) * cos(rtb_Deg2R_b_idx_0));
2280 cg_in[4] = (real32_T)cos(rtb_Deg2R_b_idx);
2281 cg_in[5] = (real32_T)((-sin(rtb_Deg2R_b_idx)) * sin(rtb_Deg2R_b_idx_0));
2282 cg_in[6] = (real32_T)sin(rtb_Deg2R_b_idx_0);
2283 cg_in[7] = 0.0F;
2284 cg_in[8] = (real32_T)cos(rtb_Deg2R_b_idx_0);
2285 for (i = 0; i < 9; i++) {
2286 rtb_TmpHiddenBufferAtProduct1_g[i] = cg_in[i];
2287 }
2288 }
2289
2290
2291 getWP(controlMCUSlugsMKII_B.wp2,&controlMCUSlugsMKII_B.CFunctionCall_ap[0]);
2292
2293
2294 rtb_Deg2R_a = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_ap[0];
2295
2296
2297 rtb_sinphi_c = (real32_T)sin(rtb_Deg2R_a);
2298
2299
2307 rtb_Rh_m = 6.378137E+006F / (real32_T)sqrt(1.0F - rtb_sinphi_c *
2308 rtb_sinphi_c * controlMCUSlugsMKII_ConstB.Sum5_c);
2309
2310
2311 rtb_Sum2_g0 = controlMCUSlugsMKII_B.CFunctionCall_ap[2] + rtb_Rh_m;
2312
2313
2314 rtb_Deg2R_a = (real32_T)cos(rtb_Deg2R_a);
2315
2316
2317 rtb_Deg2R1_g = 1.745329238E-002F * controlMCUSlugsMKII_B.CFunctionCall_ap[1];
2318
2319
2328 rtb_Sum1_g[0] = rtb_Sum2_g0 * rtb_Deg2R_a * (real32_T)cos(rtb_Deg2R1_g) -
2329 controlMCUSlugsMKII_B.RhhcosphicoslambXe;
2330 rtb_Sum1_g[1] = rtb_Sum2_g0 * rtb_Deg2R_a * (real32_T)sin(rtb_Deg2R1_g) -
2331 controlMCUSlugsMKII_B.RhhcosphisinlambYe;
2332 rtb_Sum1_g[2] = (controlMCUSlugsMKII_ConstB.e2_f * rtb_Rh_m +
2333 controlMCUSlugsMKII_B.CFunctionCall_ap[2]) * rtb_sinphi_c -
2334 controlMCUSlugsMKII_B.Ze;
2335
2336 {
2337 static const int_T dims[3] = { 3, 3, 1 };
2338
2339 rt_MatMultRR_Sgl(rtb_Product1_d4, rtb_TmpHiddenBufferAtProduct1_g,
2340 rtb_Sum1_g, &dims[0]);
2341 }
2342
2343
2349 {
2350 static const int_T dims[3] = { 3, 3, 1 };
2351
2352 rt_MatMultRR_Sgl((real32_T *)rtb_UEN2NEU_l, (real32_T *)
2353 &controlMCUSlugsMKII_ConstP.pooled51[0],
2354 (real32_T *)rtb_Product1_d4, &dims[0]);
2355 }
2356
2357
2358 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_k) {
2359 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_k = 0U;
2360 controlMCUSlugsMKII_B.IC_l = 50.0F;
2361 } else {
2362 controlMCUSlugsMKII_B.IC_l = rtb_Add_n;
2363 }
2364
2365
2367 (void) memcpy(&controlMCUSlugsMKII_DWork.IntegerDelay1_X_k[0],
2368 controlMCUSlugsMKII_B.Divide_n,
2369 3*sizeof(real32_T));
2370
2371
2373 (void) memcpy(&controlMCUSlugsMKII_DWork.IntegerDelay2_X_e3[0],rtb_UEN2NEU_l,
2374 3*sizeof(real32_T));
2375 }
2376
2377
2378 rtb_SwitchDistanceLessthan = (rtb_Switch3 >= (real_T)
2379 controlMCUSlugsMKII_B.Switch3);
2380
2381
2384 {
2385 uint32_T eml_u0;
2386 uint16_T eml_u1;
2387
2388
2389 rtb_swIncrement = 0.0;
2390 if ((rtb_SwitchDistanceLessthan == 1) &&
2391 (controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.oldSw == 0) &&
2392 ((real32_T)
2393 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.internalTimer >
2394 300.0F)) {
2395
2396
2397 rtb_swIncrement = 1.0;
2398 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.internalTimer = 0U;
2399 }
2400
2401 eml_u0 = (uint32_T)
2402 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.internalTimer + 1UL;
2403 if (eml_u0 > 65535UL) {
2404 eml_u1 = MAX_uint16_T;
2405 } else {
2406 eml_u1 = (uint16_T)eml_u0;
2407 }
2408
2409 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.internalTimer = eml_u1;
2410 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.oldSw =
2411 rtb_SwitchDistanceLessthan;
2412 }
2413
2414
2419 rtb_IntegerDelay3_d = controlMCUSlugsMKII_DWork.IntegerDelay3_X_n;
2420
2421
2424 if ((controlMCUSlugsMKII_B.IC_l == controlMCUSlugsMKII_B.IC_l) > 0U) {
2425 rtb_Switch3_e = controlMCUSlugsMKII_B.IC_l;
2426 } else {
2427 rtb_Switch3_e = rtb_IntegerDelay3_d;
2428 }
2429
2430
2431 setLogFloat1(controlMCUSlugsMKII_B.L1_vec);
2432
2433
2436 controlMCUSlugsMKII_B.Divide = rtb_Product_c / 9.81499958F;
2437
2438
2443 rtb_IntegerDelay3_d = controlMCUSlugsMKII_DWork.IntegerDelay3_X_ch;
2444
2445
2446 controlMCUSlugsMKII_B.CFunctionCall_g = myAtan(controlMCUSlugsMKII_B.Divide);
2447
2448
2451 if ((controlMCUSlugsMKII_B.CFunctionCall_g ==
2452 controlMCUSlugsMKII_B.CFunctionCall_g) > 0U) {
2453 rtb_Switch3_c = controlMCUSlugsMKII_B.CFunctionCall_g;
2454 } else {
2455 rtb_Switch3_c = rtb_IntegerDelay3_d;
2456 }
2457
2458
2460 controlMCUSlugsMKII_DWork.IntegerDelay3_X_lj = rtb_Switch3_h;
2461
2462
2464 controlMCUSlugsMKII_DWork.IntegerDelay2_X = rtb_swIncrement;
2465
2466
2468 controlMCUSlugsMKII_DWork.IntegerDelay1_X_p =
2469 controlMCUSlugsMKII_B.HitCrossing1;
2470
2471
2473 controlMCUSlugsMKII_DWork.IntegerDelay2_X_l = controlMCUSlugsMKII_B.IC;
2474
2475
2477 controlMCUSlugsMKII_DWork.IntegerDelay3_X_b3 = rtb_Switch3_nn;
2478
2479
2481 controlMCUSlugsMKII_DWork.IntegerDelay3_X_g = rtb_Switch3_a;
2482
2483
2485 controlMCUSlugsMKII_DWork.IntegerDelay3_X_f = rtb_Switch3_m;
2486
2487
2489 controlMCUSlugsMKII_DWork.IntegerDelay3_X_a = rtb_Switch3_e;
2490
2491
2493 controlMCUSlugsMKII_DWork.IntegerDelay1_X_fi = controlMCUSlugsMKII_B.wp0;
2494
2495
2497 controlMCUSlugsMKII_DWork.IntegerDelay1_X_i = controlMCUSlugsMKII_B.IC_e;
2498
2499
2501 controlMCUSlugsMKII_DWork.IntegerDelay2_X_e[0] =
2502 controlMCUSlugsMKII_DWork.IntegerDelay2_X_e[1];
2503 controlMCUSlugsMKII_DWork.IntegerDelay2_X_e[1] = controlMCUSlugsMKII_B.IC_e;
2504
2505
2506 controlMCUSlugsMKII_DWork.UD_DSTATE = controlMCUSlugsMKII_B.Switch[0];
2507
2508
2509 controlMCUSlugsMKII_DWork.UD_DSTATE_e = controlMCUSlugsMKII_B.Switch[1];
2510
2511
2512 controlMCUSlugsMKII_DWork.UD_DSTATE_h = controlMCUSlugsMKII_B.Switch[2];
2513
2514
2516 controlMCUSlugsMKII_DWork.IntegerDelay3_X = rtb_Switch3;
2517
2518
2520 controlMCUSlugsMKII_DWork.IntegerDelay3_X_n = rtb_Switch3_e;
2521
2522
2524 controlMCUSlugsMKII_DWork.IntegerDelay3_X_ch = rtb_Switch3_c;
2525
2526
2527 getPidIdx(((uint8_T)8U),&controlMCUSlugsMKII_B.navSupportc_n[0]);
2528
2529
2530
2531
2538 controlMCUSlugsMKII_B.Add_g = 1.0F - 3.280839920E+000F * rt_SATURATE(rtb_u020,
2539 0.0F, 1000.0F) / 145442.0F;
2540
2541
2542 controlMCUSlugsMKII_B.CFunctionCall_ab = myPow(controlMCUSlugsMKII_B.Add_g,
2543 4.255876064F);
2544
2545
2548 rtb_Divide1_d = controlMCUSlugsMKII_B.CFunctionCall_ab * 1.225000024E+000F;
2549
2550
2554 rtb_Divide2 = 2.0F * controlMCUSlugsMKII_B.GetDynamicPnavSupportc /
2555 rt_SATURATE(rtb_Divide1_d, 9.999999776E-003F, 50000.0F);
2556
2557
2558 controlMCUSlugsM_negprotect(rtb_Divide2,
2559 &controlMCUSlugsMKII_B.sf_negprotect_c);
2560
2561
2562 controlMCUSlugsMKII_B.CFunctionCall_m4 = mySqrt
2563 (controlMCUSlugsMKII_B.sf_negprotect_c.zpVal);
2564
2565
2566 rtb_RelationalOperator2_h = (controlMCUSlugsMKII_B.CFunctionCall_m4 ==
2567 controlMCUSlugsMKII_B.CFunctionCall_m4);
2568
2569
2574 rtb_Enforcelowerlimit_c = controlMCUSlugsMKII_DWork.IntegerDelay3_X_i;
2575
2576 {
2577 real32_T rateLimiterRate;
2578
2579
2580 if (rtb_RelationalOperator2_h > 0U) {
2581 rtb_Switch3_f = controlMCUSlugsMKII_B.CFunctionCall_m4;
2582 } else {
2583 rtb_Switch3_f = rtb_Enforcelowerlimit_c;
2584 }
2585
2586
2590 {
2591 real_T eml_omega;
2592
2593
2594
2595 if (!controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.a_not_empty) {
2596
2597
2598 eml_omega = 6.2831853071795862E+000 * (0.5);
2599 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.a = 0.01 * eml_omega /
2600 (2.0 + 0.01 * eml_omega);
2601 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.a_not_empty = true;
2602 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.b = (-(0.01 *
2603 eml_omega - 2.0)) / (0.01 * eml_omega + 2.0);
2604 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.y_km1 = rtb_Switch3_f;
2605 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.u_km1 = rtb_Switch3_f;
2606 }
2607
2608 rtb_y_i = (real32_T)controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.a *
2609 (rtb_Switch3_f +
2610 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.u_km1) + (real32_T)
2611 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.b *
2612 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.y_km1;
2613 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.y_km1 = rtb_y_i;
2614 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.u_km1 = rtb_Switch3_f;
2615 }
2616
2617
2620 rtb_Compare_l = (rtb_Switch3_f <= 10.0F);
2621
2622
2626 {
2627 real_T eml_omega;
2628
2629
2630
2631 if (!controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.a_not_empty) {
2632
2633
2634 eml_omega = 6.2831853071795862E+000 * (0.032);
2635 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.a = 0.01 * eml_omega /
2636 (2.0 + 0.01 * eml_omega);
2637 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.a_not_empty = true;
2638 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.b = (-(0.01 *
2639 eml_omega - 2.0)) / (0.01 * eml_omega + 2.0);
2640 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.y_km1 = rtb_Switch3_f;
2641 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.u_km1 = rtb_Switch3_f;
2642 }
2643
2644 rtb_y_g = (real32_T)controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.a *
2645 (rtb_Switch3_f +
2646 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.u_km1) + (real32_T)
2647 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.b *
2648 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.y_km1;
2649 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.y_km1 = rtb_y_g;
2650 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.u_km1 = rtb_Switch3_f;
2651 }
2652
2653
2654 if (rtb_Compare_l > 0U) {
2655 rtb_ScheduleLPF = rtb_y_i;
2656 } else {
2657 rtb_ScheduleLPF = rtb_y_g;
2658 }
2659
2660
2663 if (controlMCUSlugsMKII_B.wpFlynavSupportc > 0U) {
2664 rtb_Product1_ma = rt_SATURATE(controlMCUSlugsMKII_B.Reshape1[2], 170.0F,
2665 350.0F);
2666 } else {
2667 rtb_Product1_ma = controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[1];
2668 }
2669
2670
2671 rateLimiterRate = rtb_Product1_ma - controlMCUSlugsMKII_DWork.PrevY;
2672 if (rateLimiterRate > 7.000000030E-002F) {
2673 rtb_Product1_ma = controlMCUSlugsMKII_DWork.PrevY + 7.000000030E-002F;
2674 } else if (rateLimiterRate < -5.000000075E-002F) {
2675 rtb_Product1_ma = controlMCUSlugsMKII_DWork.PrevY + -5.000000075E-002F;
2676 }
2677
2678 controlMCUSlugsMKII_DWork.PrevY = rtb_Product1_ma;
2679
2680
2681 rtb_Add2 = rtb_Product1_ma - rtb_u020;
2682 }
2683
2684
2689 rtb_IntegerDelay3_hu = controlMCUSlugsMKII_DWork.IntegerDelay3_X_m;
2690
2691
2694 if (((uint8_T)(rtb_Add2 == rtb_Add2)) > 0U) {
2695 rtb_Switch3_c1 = rtb_Add2;
2696 } else {
2697 rtb_Switch3_c1 = rtb_IntegerDelay3_hu;
2698 }
2699
2700
2701 rtb_Product1_ma = rtb_Switch3_c1 *
2702 controlMCUSlugsMKII_B.GetPidaccordingtoIndex1[0];
2703
2704
2709 rtb_IntegerDelay2_f = controlMCUSlugsMKII_DWork.IntegerDelay2_X_lq;
2710
2711
2716 rtb_Sum2 = (9.999999776E-003F * rtb_Switch3_c1 *
2717 controlMCUSlugsMKII_B.GetPidaccordingtoIndex1[1] +
2718 controlMCUSlugsMKII_DWork.Memory1_PreviousInput) + rtb_Product1_ma;
2719
2720
2726 if ((rtb_Sum2 > controlMCUSlugsMKII_ConstB.Add4) && (rtb_Sum2 <
2727 controlMCUSlugsMKII_ConstB.Add3)) {
2728 rtb_AntiWindup = (real_T)rtb_Switch3_c1;
2729 } else {
2730 rtb_AntiWindup = 0.0;
2731 }
2732
2733
2738 rtb_IntegerDelay3_k = controlMCUSlugsMKII_DWork.IntegerDelay3_X_c;
2739
2740
2743 if (((uint8_T)(rtb_AntiWindup == rtb_AntiWindup)) > 0U) {
2744 rtb_Switch3_n = rtb_AntiWindup;
2745 } else {
2746 rtb_Switch3_n = rtb_IntegerDelay3_k;
2747 }
2748
2749
2754 rtb_IntegerDelay = controlMCUSlugsMKII_DWork.IntegerDelay_X;
2755
2756
2761 rtb_IntegerDelay1 = controlMCUSlugsMKII_DWork.IntegerDelay1_X[0];
2762
2763
2776 if (controlMCUSlugsMKII_B.ManualorAutonavSupportc > 0U) {
2777 rtb_Switch1 = 0.0F;
2778 } else {
2779 rtb_Switch1 = (((real32_T)(rtb_Switch3_n * (real_T)0.3333333433F) +
2780 (real32_T)(rtb_IntegerDelay * (real_T)1.333333373F)) +
2781 (real32_T)(rtb_IntegerDelay1 * 3.3333334326744080E-001)) *
2782 0.004999999888F + rtb_IntegerDelay2_f;
2783 }
2784
2785
2790 rtb_IntegerDelay3_hu = controlMCUSlugsMKII_DWork.IntegerDelay3_X_at;
2791
2792 {
2793 real32_T max;
2794
2795
2798 if (((uint8_T)(rtb_Switch1 == rtb_Switch1)) > 0U) {
2799 rtb_Switch3_b = rtb_Switch1;
2800 } else {
2801 rtb_Switch3_b = rtb_IntegerDelay3_hu;
2802 }
2803
2804
2807 rtb_Add2_i = rtb_Switch3_b * controlMCUSlugsMKII_B.GetPidaccordingtoIndex1[1]
2808 + rtb_Product1_ma;
2809
2810
2811 max = rt_MAX(controlMCUSlugsMKII_ConstB.Add4, rtb_Add2_i);
2812
2813
2814 max = rt_MIN(max, controlMCUSlugsMKII_ConstB.Add3);
2815
2816
2817 rtb_Theta_cLimit = rt_SATURATE(max, -3.490658402E-001F, 3.490658402E-001F);
2818
2819
2820
2821
2822
2823 controlMCUSlugsMKII_B.y_j[0] = rtb_ScheduleLPF;
2824 controlMCUSlugsMKII_B.y_j[1] = rtb_Theta_cLimit;
2825 }
2826
2827
2828 setNavLong(controlMCUSlugsMKII_B.y_j);
2829
2830
2831 rtb_RelationalOperator2_a = (controlMCUSlugsMKII_B.y_n[0] ==
2832 controlMCUSlugsMKII_B.y_n[0]);
2833
2834
2839 rtb_Add1_l = controlMCUSlugsMKII_DWork.IntegerDelay3_X_fk;
2840
2841
2842 if (rtb_RelationalOperator2_a > 0U) {
2843 rtb_Switch3_mx = controlMCUSlugsMKII_B.y_n[0];
2844 } else {
2845 rtb_Switch3_mx = rtb_Add1_l;
2846 }
2847
2848
2852 {
2853 real_T eml_omega;
2854
2855
2856
2857 if (!controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.a_not_empty) {
2858
2859
2860 eml_omega = 6.2831853071795862E+000 * (0.32);
2861 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.a = 0.01 * eml_omega /
2862 (2.0 + 0.01 * eml_omega);
2863 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.a_not_empty = true;
2864 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.b = (-(0.01 * eml_omega
2865 - 2.0)) / (0.01 * eml_omega + 2.0);
2866 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.y_km1 = rtb_Switch3_mx;
2867 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.u_km1 = rtb_Switch3_mx;
2868 }
2869
2870 rtb_y_o = (real32_T)controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.a *
2871 (rtb_Switch3_mx + controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.u_km1)
2872 + (real32_T)controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.b *
2873 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.y_km1;
2874 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.y_km1 = rtb_y_o;
2875 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.u_km1 = rtb_Switch3_mx;
2876 }
2877
2878
2879 rtb_Add_b1 = controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[0] -
2880 rtb_ScheduleLPF;
2881
2882
2885 rtb_Add4 = 0.0F - controlMCUSlugsMKII_B.DataTypeConversion;
2886
2887
2892 rtb_Add1_l = controlMCUSlugsMKII_DWork.IntegerDelay3_X_e;
2893
2894
2897 if (((uint8_T)(rtb_Add_b1 == rtb_Add_b1)) > 0U) {
2898 rtb_Switch3_kr = rtb_Add_b1;
2899 } else {
2900 rtb_Switch3_kr = rtb_Add1_l;
2901 }
2902
2903
2904 rtb_Product1_j = rtb_Switch3_kr * controlMCUSlugsMKII_B.GetPidaccordingtoIndex
2905 [0];
2906
2907
2912 rtb_NDelays = controlMCUSlugsMKII_DWork.NDelays_X[0];
2913
2914
2920 rtb_Add1_l = (rtb_Switch3_kr - rtb_NDelays) / 5.000000075E-002F *
2921 controlMCUSlugsMKII_B.GetPidaccordingtoIndex[2] + rtb_Product1_j;
2922
2923
2928 rtb_IntegerDelay2_fm = controlMCUSlugsMKII_DWork.IntegerDelay2_X_d;
2929
2930
2935 rtb_Sum2_k = (9.999999776E-003F * rtb_Switch3_kr *
2936 controlMCUSlugsMKII_B.GetPidaccordingtoIndex[1] +
2937 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_e) + rtb_Add1_l;
2938
2939
2942 rtb_Add3 = 1.0F - controlMCUSlugsMKII_B.DataTypeConversion;
2943
2944
2950 if ((rtb_Sum2_k > rtb_Add4) && (rtb_Sum2_k < rtb_Add3)) {
2951 rtb_AntiWindup_e = (real_T)rtb_Switch3_kr;
2952 } else {
2953 rtb_AntiWindup_e = 0.0;
2954 }
2955
2956
2961 rtb_IntegerDelay3_k = controlMCUSlugsMKII_DWork.IntegerDelay3_X_l;
2962
2963
2966 if (((uint8_T)(rtb_AntiWindup_e == rtb_AntiWindup_e)) > 0U) {
2967 rtb_Switch3_k = rtb_AntiWindup_e;
2968 } else {
2969 rtb_Switch3_k = rtb_IntegerDelay3_k;
2970 }
2971
2972
2977 rtb_IntegerDelay_g = controlMCUSlugsMKII_DWork.IntegerDelay_X_i;
2978
2979
2984 rtb_IntegerDelay1_n = controlMCUSlugsMKII_DWork.IntegerDelay1_X_o[0];
2985
2986
2999 if (controlMCUSlugsMKII_B.ManualorAutonavSupportc > 0U) {
3000 rtb_Switch1_o = 0.0F;
3001 } else {
3002 rtb_Switch1_o = (((real32_T)(rtb_Switch3_k * (real_T)0.3333333433F) +
3003 (real32_T)(rtb_IntegerDelay_g * (real_T)1.333333373F)) +
3004 (real32_T)(rtb_IntegerDelay1_n * 3.3333334326744080E-001)) *
3005 0.004999999888F + rtb_IntegerDelay2_fm;
3006 }
3007
3008
3013 rtb_IntegerDelay3_hu = controlMCUSlugsMKII_DWork.IntegerDelay3_X_ex;
3014
3015 {
3016 real32_T max;
3017
3018
3021 if (((uint8_T)(rtb_Switch1_o == rtb_Switch1_o)) > 0U) {
3022 rtb_Switch3_p = rtb_Switch1_o;
3023 } else {
3024 rtb_Switch3_p = rtb_IntegerDelay3_hu;
3025 }
3026
3027
3030 rtb_Add2_d = rtb_Switch3_p * controlMCUSlugsMKII_B.GetPidaccordingtoIndex[1]
3031 + rtb_Add1_l;
3032
3033
3034 max = rt_MAX(rtb_Add4, rtb_Add2_d);
3035
3036
3040 rtb_Add1 = (rt_MIN(max, rtb_Add3) + controlMCUSlugsMKII_B.DataTypeConversion)
3041 + controlMCUSlugsMKII_B.navSupportc_n[0] * controlMCUSlugsMKII_B.y_n[1];
3042
3043
3044 rtb_Add3_i = rtb_Theta_cLimit - controlMCUSlugsMKII_B.y_n[1];
3045
3046
3049 rtb_Add4_k = -2.617993951E-001F - controlMCUSlugsMKII_B.DataTypeConversion_c;
3050 }
3051
3052
3057 rtb_Add1_l = controlMCUSlugsMKII_DWork.IntegerDelay3_X_nv;
3058
3059
3062 if (((uint8_T)(rtb_Add3_i == rtb_Add3_i)) > 0U) {
3063 rtb_Switch3_f3 = rtb_Add3_i;
3064 } else {
3065 rtb_Switch3_f3 = rtb_Add1_l;
3066 }
3067
3068
3069 rtb_Product1_a = rtb_Switch3_f3 *
3070 controlMCUSlugsMKII_B.GetPidaccordingtoIndex2[0];
3071
3072
3077 rtb_NDelays_n = controlMCUSlugsMKII_DWork.NDelays_X_c[0];
3078
3079
3085 rtb_Add1_l = (rtb_Switch3_f3 - rtb_NDelays_n) / 5.000000075E-002F *
3086 controlMCUSlugsMKII_B.GetPidaccordingtoIndex2[2] + rtb_Product1_a;
3087
3088
3093 rtb_IntegerDelay2_h = controlMCUSlugsMKII_DWork.IntegerDelay2_X_n;
3094
3095
3100 rtb_Sum2_a = (9.999999776E-003F * rtb_Switch3_f3 *
3101 controlMCUSlugsMKII_B.GetPidaccordingtoIndex2[1] +
3102 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_f) + rtb_Add1_l;
3103
3104
3107 rtb_Add3_b = 2.617993951E-001F - controlMCUSlugsMKII_B.DataTypeConversion_c;
3108
3109
3115 if ((rtb_Sum2_a > rtb_Add4_k) && (rtb_Sum2_a < rtb_Add3_b)) {
3116 rtb_AntiWindup_d = (real_T)rtb_Switch3_f3;
3117 } else {
3118 rtb_AntiWindup_d = 0.0;
3119 }
3120
3121
3126 rtb_IntegerDelay3_k = controlMCUSlugsMKII_DWork.IntegerDelay3_X_k;
3127
3128
3131 if (((uint8_T)(rtb_AntiWindup_d == rtb_AntiWindup_d)) > 0U) {
3132 rtb_Switch3_o = rtb_AntiWindup_d;
3133 } else {
3134 rtb_Switch3_o = rtb_IntegerDelay3_k;
3135 }
3136
3137
3142 rtb_IntegerDelay_i = controlMCUSlugsMKII_DWork.IntegerDelay_X_g;
3143
3144
3149 rtb_IntegerDelay1_j = controlMCUSlugsMKII_DWork.IntegerDelay1_X_oa[0];
3150
3151
3164 if (controlMCUSlugsMKII_B.ManualorAutonavSupportc > 0U) {
3165 rtb_Switch1_k = 0.0F;
3166 } else {
3167 rtb_Switch1_k = (((real32_T)(rtb_Switch3_o * (real_T)0.3333333433F) +
3168 (real32_T)(rtb_IntegerDelay_i * (real_T)1.333333373F)) +
3169 (real32_T)(rtb_IntegerDelay1_j * 3.3333334326744080E-001)) *
3170 0.004999999888F + rtb_IntegerDelay2_h;
3171 }
3172
3173
3178 rtb_IntegerDelay3_hu = controlMCUSlugsMKII_DWork.IntegerDelay3_X_p;
3179
3180 {
3181 real32_T max;
3182
3183
3186 if (((uint8_T)(rtb_Switch1_k == rtb_Switch1_k)) > 0U) {
3187 rtb_Switch3_el = rtb_Switch1_k;
3188 } else {
3189 rtb_Switch3_el = rtb_IntegerDelay3_hu;
3190 }
3191
3192
3195 rtb_Add2_a = rtb_Switch3_el * controlMCUSlugsMKII_B.GetPidaccordingtoIndex2
3196 [1] + rtb_Add1_l;
3197
3198
3199 max = rt_MAX(rtb_Add4_k, rtb_Add2_a);
3200
3201
3202 rtb_Enforceupperlimit_m = rt_MIN(max, rtb_Add3_b);
3203
3204
3205 controlMCUSlugsMKII_B.u060 = rt_SATURATE(rtb_y_o, -60.0F, 60.0F);
3206 }
3207
3208
3209 controlMCUSlugsMKII_B.CFunctionCall1_b = myCos(controlMCUSlugsMKII_B.u060);
3210
3211
3218 rtb_Add4_ki = (1.0F / controlMCUSlugsMKII_B.CFunctionCall1_b - 1.0F) *
3219 controlMCUSlugsMKII_B.GetPidaccordingtoIndex1[2] + (rtb_Enforceupperlimit_m
3220 + controlMCUSlugsMKII_B.DataTypeConversion_c);
3221
3222
3223 rtb_ElevatorLimit = rt_SATURATE(rtb_Add4_ki, -2.617993951E-001F,
3224 2.617993951E-001F);
3225
3226
3227 rtb_ThrottleLimit = rt_SATURATE(rtb_Add1, 0.0F, 1.0F);
3228
3229
3231 controlMCUSlugsMKII_DWork.IntegerDelay3_X_i = rtb_Switch3_f;
3232
3233
3235 controlMCUSlugsMKII_DWork.IntegerDelay3_X_m = rtb_Switch3_c1;
3236
3237
3239 controlMCUSlugsMKII_DWork.IntegerDelay2_X_lq = rtb_Switch3_b;
3240
3241
3242 controlMCUSlugsMKII_DWork.Memory1_PreviousInput = rtb_Add2_i;
3243
3244
3246 controlMCUSlugsMKII_DWork.IntegerDelay3_X_c = rtb_Switch3_n;
3247
3248
3250 controlMCUSlugsMKII_DWork.IntegerDelay_X = rtb_Switch3_n;
3251
3252
3254 controlMCUSlugsMKII_DWork.IntegerDelay1_X[0] =
3255 controlMCUSlugsMKII_DWork.IntegerDelay1_X[1];
3256 controlMCUSlugsMKII_DWork.IntegerDelay1_X[1] = rtb_Switch3_n;
3257
3258
3260 controlMCUSlugsMKII_DWork.IntegerDelay3_X_at = rtb_Switch3_b;
3261
3262
3264 controlMCUSlugsMKII_DWork.IntegerDelay3_X_fk = rtb_Switch3_mx;
3265
3266
3268 controlMCUSlugsMKII_DWork.IntegerDelay3_X_e = rtb_Switch3_kr;
3269
3270
3272 controlMCUSlugsMKII_DWork.NDelays_X[0] = controlMCUSlugsMKII_DWork.NDelays_X[1];
3273 controlMCUSlugsMKII_DWork.NDelays_X[1] = controlMCUSlugsMKII_DWork.NDelays_X[2];
3274 controlMCUSlugsMKII_DWork.NDelays_X[2] = controlMCUSlugsMKII_DWork.NDelays_X[3];
3275 controlMCUSlugsMKII_DWork.NDelays_X[3] = controlMCUSlugsMKII_DWork.NDelays_X[4];
3276 controlMCUSlugsMKII_DWork.NDelays_X[4] = rtb_Switch3_kr;
3277
3278
3280 controlMCUSlugsMKII_DWork.IntegerDelay2_X_d = rtb_Switch3_p;
3281
3282
3283 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_e = rtb_Add2_d;
3284
3285
3287 controlMCUSlugsMKII_DWork.IntegerDelay3_X_l = rtb_Switch3_k;
3288
3289
3291 controlMCUSlugsMKII_DWork.IntegerDelay_X_i = rtb_Switch3_k;
3292
3293
3295 controlMCUSlugsMKII_DWork.IntegerDelay1_X_o[0] =
3296 controlMCUSlugsMKII_DWork.IntegerDelay1_X_o[1];
3297 controlMCUSlugsMKII_DWork.IntegerDelay1_X_o[1] = rtb_Switch3_k;
3298
3299
3301 controlMCUSlugsMKII_DWork.IntegerDelay3_X_ex = rtb_Switch3_p;
3302
3303
3305 controlMCUSlugsMKII_DWork.IntegerDelay3_X_nv = rtb_Switch3_f3;
3306
3307
3309 controlMCUSlugsMKII_DWork.NDelays_X_c[0] =
3310 controlMCUSlugsMKII_DWork.NDelays_X_c[1];
3311 controlMCUSlugsMKII_DWork.NDelays_X_c[1] =
3312 controlMCUSlugsMKII_DWork.NDelays_X_c[2];
3313 controlMCUSlugsMKII_DWork.NDelays_X_c[2] =
3314 controlMCUSlugsMKII_DWork.NDelays_X_c[3];
3315 controlMCUSlugsMKII_DWork.NDelays_X_c[3] =
3316 controlMCUSlugsMKII_DWork.NDelays_X_c[4];
3317 controlMCUSlugsMKII_DWork.NDelays_X_c[4] = rtb_Switch3_f3;
3318
3319
3321 controlMCUSlugsMKII_DWork.IntegerDelay2_X_n = rtb_Switch3_el;
3322
3323
3324 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_f = rtb_Add2_a;
3325
3326
3328 controlMCUSlugsMKII_DWork.IntegerDelay3_X_k = rtb_Switch3_o;
3329
3330
3332 controlMCUSlugsMKII_DWork.IntegerDelay_X_g = rtb_Switch3_o;
3333
3334
3336 controlMCUSlugsMKII_DWork.IntegerDelay1_X_oa[0] =
3337 controlMCUSlugsMKII_DWork.IntegerDelay1_X_oa[1];
3338 controlMCUSlugsMKII_DWork.IntegerDelay1_X_oa[1] = rtb_Switch3_o;
3339
3340
3342 controlMCUSlugsMKII_DWork.IntegerDelay3_X_p = rtb_Switch3_el;
3343
3344
3345 getPidIdx(((uint8_T)3U),&controlMCUSlugsMKII_B.GetPidaccordingtoIndex3[0]);
3346
3347
3348 getPidIdx(((uint8_T)4U),&controlMCUSlugsMKII_B.navSupportc_k[0]);
3349
3350
3351 controlMCUSlugsMKII_B.apUtilsc = myCos(controlMCUSlugsMKII_B.y_n[0]);
3352
3353
3354 rtb_Product = controlMCUSlugsMKII_B.y_n[5] * controlMCUSlugsMKII_B.apUtilsc;
3355
3356
3357 controlMCUSlugsMKII_B.apUtilsc_p = mySin(controlMCUSlugsMKII_B.y_n[0]);
3358
3359
3362 rtb_Subtract = controlMCUSlugsMKII_B.y_n[4] * controlMCUSlugsMKII_B.apUtilsc_p
3363 + rtb_Product;
3364
3365
3369 if (((uint8_T)(rtb_Subtract == rtb_Subtract)) > 0U) {
3370 rtb_Switch3_oe = rtb_Subtract;
3371 } else {
3372 rtb_Switch3_oe = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_b);
3373 }
3374
3375
3376 getPidIdx(((uint8_T)6U),&controlMCUSlugsMKII_B.navSupportc_g[0]);
3377 if (controlMCUSlugsMKII_B.navSupportc_g[2] > 0.0F) {
3378 if (controlMCUSlugsMKII_DWork.L1OutputFeedbackControllerWithP == (int32_T)
3379 SUBSYS_DISABLED) {
3380
3381
3382
3383 controlMCUSlugsMKII_DWork.UD_DSTATE_l = 0.0F;
3384
3385
3389 controlMCUSlugsMKII_DWork.IntegerDelay_X_d = (0.0F);
3390
3391
3395 controlMCUSlugsMKII_DWork.IntegerDelay1_X_nc = (0.0F);
3396
3397
3401 controlMCUSlugsMKII_DWork.IntegerDelay3_X_cw = (0.0F);
3402
3403
3404 controlMCUSlugsMKII_DWork.UD_DSTATE_ld = 0.0F;
3405
3406
3410 controlMCUSlugsMKII_DWork.IntegerDelay_X_c = (0.0F);
3411
3412
3416 controlMCUSlugsMKII_DWork.IntegerDelay1_X_a = (0.0F);
3417
3418
3422 controlMCUSlugsMKII_DWork.IntegerDelay_X_no = (0.0F);
3423
3424
3428 controlMCUSlugsMKII_DWork.IntegerDelay1_X_b = (0.0F);
3429
3430
3431 if (rtmIsFirstInitCond(controlMCUSlugsMKII_M)) {
3432 controlMCUSlugsMKII_B.Merge = 0.0F;
3433 }
3434
3435
3439 controlMCUSlugsMKII_DWork.IntegerDelay3_X_gww = (0.0F);
3440
3441
3445 controlMCUSlugsMKII_DWork.IntegerDelay_X_f = (0.0F);
3446
3447
3451 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[0] = (0.0F);
3452 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[1] = (0.0F);
3453
3454
3458 controlMCUSlugsMKII_DWork.IntegerDelay2_X_m = (0.0F);
3459
3460
3464 controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe = (0.0F);
3465
3466
3470 controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe1 = (0.0F);
3471 controlMCUSlugsMKII_DWork.L1OutputFeedbackControllerWithP = (int32_T)
3472 SUBSYS_ENABLED;
3473 }
3474 } else if (controlMCUSlugsMKII_DWork.L1OutputFeedbackControllerWithP ==
3475 (int32_T)SUBSYS_ENABLED) {
3476 controlMCUSlugsMKII_DWork.L1OutputFeedbackControllerWithP = (int32_T)
3477 SUBSYS_DISABLED;
3478 }
3479
3480 if (controlMCUSlugsMKII_DWork.L1OutputFeedbackControllerWithP == (int32_T)
3481 SUBSYS_ENABLED) {
3482
3483
3484
3487 rtb_Saturation1_pt = controlMCUSlugsMKII_B.navSupportc_g[0] -
3488 controlMCUSlugsMKII_DWork.UD_DSTATE_l;
3489
3490
3491 rtb_Saturation1_pt = rt_ABS(rtb_Saturation1_pt);
3492
3493
3496 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_g) {
3497 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_g = 0U;
3498 rtb_IC_n = 1.0F;
3499 } else {
3500 rtb_IC_n = rt_SATURATE(rtb_Saturation1_pt, 0.0F, 1.0F);
3501 }
3502
3503 if (rtb_IC_n > 0.0F) {
3504
3505
3506
3507 controlMCUSlugsMKII_B.T_i = -9.999999776E-003F *
3508 controlMCUSlugsMKII_B.navSupportc_g[0];
3509
3510
3511 controlMCUSlugsMKII_B.CFunctionCall_p = myExp(controlMCUSlugsMKII_B.T_i);
3512
3513
3516 controlMCUSlugsMKII_B.c_kt = 1.0F - controlMCUSlugsMKII_B.CFunctionCall_p;
3517 }
3518
3519
3522 rtb_Divide_p = controlMCUSlugsMKII_B.c_kt *
3523 (controlMCUSlugsMKII_DWork.IntegerDelay_X_d);
3524
3525
3529 rtb_Subtract_b = controlMCUSlugsMKII_B.CFunctionCall_p *
3530 (controlMCUSlugsMKII_DWork.IntegerDelay1_X_nc) + rtb_Divide_p;
3531
3532
3536 if (((uint8_T)(rtb_Switch3_oe == rtb_Switch3_oe)) > 0U) {
3537 rtb_Switch3_cj = rtb_Switch3_oe;
3538 } else {
3539 rtb_Switch3_cj = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_cw);
3540 }
3541
3542
3545 rtb_psi_ad = controlMCUSlugsMKII_B.navSupportc_g[1] -
3546 controlMCUSlugsMKII_DWork.UD_DSTATE_ld;
3547
3548
3549 rtb_psi_ad = rt_ABS(rtb_psi_ad);
3550
3551
3554 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_p) {
3555 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_p = 0U;
3556 rtb_IC_j = 1.0F;
3557 } else {
3558 rtb_IC_j = rt_SATURATE(rtb_psi_ad, 0.0F, 1.0F);
3559 }
3560
3561 if (rtb_IC_j > 0.0F) {
3562
3563
3564
3565 controlMCUSlugsMKII_B.T = -9.999999776E-003F *
3566 controlMCUSlugsMKII_B.navSupportc_g[1];
3567
3568
3569 controlMCUSlugsMKII_B.CFunctionCall_dr = myExp(controlMCUSlugsMKII_B.T);
3570
3571
3574 controlMCUSlugsMKII_B.c_i = 1.0F - controlMCUSlugsMKII_B.CFunctionCall_dr;
3575 }
3576
3577
3580 rtb_Divide_f4 = controlMCUSlugsMKII_B.c_i *
3581 (controlMCUSlugsMKII_DWork.IntegerDelay_X_c);
3582
3583
3587 rtb_Subtract_c = controlMCUSlugsMKII_B.CFunctionCall_dr *
3588 (controlMCUSlugsMKII_DWork.IntegerDelay1_X_a) + rtb_Divide_f4;
3589
3590
3593 rtb_Gain_ey = (rtb_Subtract_c - rtb_Switch3_cj) * -1.0F;
3594
3595
3596 rtb_LogicalOperator = (uint8_T)!(controlMCUSlugsMKII_B.navSupportc_g[2] !=
3597 0.0F);
3598
3599
3603 rtb_Divide4_a = 1.0F / controlMCUSlugsMKII_ConstB.Divide2 *
3604 (controlMCUSlugsMKII_DWork.IntegerDelay1_X_b) * 2.0F;
3605
3606
3611 rtb_Divide3 = ((controlMCUSlugsMKII_DWork.IntegerDelay1_X_b) *
3612 (controlMCUSlugsMKII_DWork.IntegerDelay1_X_b) -
3613 controlMCUSlugsMKII_ConstB.Divide1) /
3614 controlMCUSlugsMKII_ConstB.Divide2;
3615
3616
3621 rtb_LogicalOperator2 = ((rtb_Divide4_a * rtb_Gain_ey > 0.0F) && (rtb_Divide3
3622 >= 0.0F));
3623
3624
3627 if ((uint8_T)!(rtb_LogicalOperator2 != 0U) > 0U) {
3628
3629 controlMCUSlugsMKII_B.Merge = rtb_Gain_ey;
3630 }
3631
3632
3633
3634
3635 if (rtb_LogicalOperator2 > 0U) {
3636
3642 controlMCUSlugsMKII_B.Merge = (1.0F - rtb_Divide3 * rt_FSGN(rtb_Divide4_a))
3643 * rtb_Gain_ey;
3644 }
3645
3646
3647
3648
3649 rtb_Projection = controlMCUSlugsMKII_B.navSupportc_n[1] *
3650 controlMCUSlugsMKII_B.Merge;
3651
3652
3655 rtb_psi_ad = (controlMCUSlugsMKII_DWork.IntegerDelay_X_no) - rtb_Subtract_b;
3656
3657
3658 controlMCUSlugsMKII_B.PsiDotLimit = rt_SATURATE(rtb_psi_ad, -1.0F, 1.0F);
3659
3660
3663 rtb_psi_ad = controlMCUSlugsMKII_B.PsiDotLimit +
3664 (controlMCUSlugsMKII_DWork.IntegerDelay1_X_b);
3665
3666
3670 if ((rtb_psi_ad == rtb_psi_ad) > 0U) {
3671 rtb_Switch3_ae = rtb_psi_ad;
3672 } else {
3673 rtb_Switch3_ae = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_gww);
3674 }
3675
3676
3681 rtb_IntegerDelay1_ov = controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[0];
3682
3683
3687 if (((uint8_T)(rtb_Projection == rtb_Projection)) > 0U) {
3688 rtb_Switch3_gq = rtb_Projection;
3689 } else {
3690 rtb_Switch3_gq = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe);
3691 }
3692
3693
3706 rtb_Subtract1_d = (controlMCUSlugsMKII_DWork.IntegerDelay2_X_m) +
3707 (((rtb_Switch3_gq * 0.3333333433F +
3708 (controlMCUSlugsMKII_DWork.IntegerDelay_X_f) * 1.333333373F) +
3709 rtb_IntegerDelay1_ov * 0.3333333433F) * 0.004999999888F);
3710
3711
3715 if (rtb_LogicalOperator > 0U) {
3716 rtb_Subtract1_d = 0.0F;
3717 } else {
3718 rtb_Subtract1_d = rt_SATURATE(rtb_Subtract1_d, -2.0F, 2.0F);
3719 }
3720
3721
3725 if ((rtb_Subtract1_d == rtb_Subtract1_d) > 0U) {
3726 rtb_Switch3_im = rtb_Subtract1_d;
3727 } else {
3728 rtb_Switch3_im = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe1);
3729 }
3730 }
3731
3732
3733 getAccels(&controlMCUSlugsMKII_B.GettheAccelerometersnavSupportc[0]);
3734
3735 {
3736 static const int_T dims[3] = { 3, 3, 1 };
3737
3738 rt_MatMultRR_Sgl(rtb_Product2_cp, rtb_MathFunction,
3739 controlMCUSlugsMKII_B.GettheAccelerometersnavSupportc,
3740 &dims[0]);
3741 }
3742
3743
3744 getAccBias(&controlMCUSlugsMKII_B.GettheAccelBiasnavSupportc[0]);
3745
3746 {
3747 static const int_T dims[3] = { 3, 3, 1 };
3748
3749 rt_MatMultRR_Sgl(rtb_Product3_ep, rtb_MathFunction,
3750 controlMCUSlugsMKII_B.GettheAccelBiasnavSupportc, &dims[0]);
3751 }
3752
3753
3754 rtb_Sum_l[0] = rtb_Product2_cp[0] + rtb_Product3_ep[0];
3755 rtb_Sum_l[1] = rtb_Product2_cp[1] + rtb_Product3_ep[1];
3756 rtb_Sum_l[2] = rtb_Product2_cp[2] + rtb_Product3_ep[2];
3757
3758
3759
3760
3765 rtb_IntegerDelay3_j = controlMCUSlugsMKII_DWork.IntegerDelay3_X_nc;
3766
3767
3770 if (((uint8_T)(rtb_Switch3_c == rtb_Switch3_c)) > 0U) {
3771 rtb_Switch3_gn = rtb_Switch3_c;
3772 } else {
3773 rtb_Switch3_gn = rtb_IntegerDelay3_j;
3774 }
3775
3776
3777 controlMCUSlugsMKII_B.bankLimit = rt_SATURATE(rtb_Switch3_gn,
3778 -7.853981853E-001F, 7.853981853E-001F);
3779
3780
3781 controlMCUSlugsMKII_B.CFunctionCall_in = myTan(controlMCUSlugsMKII_B.bankLimit);
3782
3783
3788 rtb_IntegerDelay3_j = controlMCUSlugsMKII_DWork.IntegerDelay3_X_gw;
3789
3790
3793 if (((uint8_T)(rtb_ScheduleLPF == rtb_ScheduleLPF)) > 0U) {
3794 rtb_Switch3_h4 = rtb_ScheduleLPF;
3795 } else {
3796 rtb_Switch3_h4 = rtb_IntegerDelay3_j;
3797 }
3798
3799
3805 if (controlMCUSlugsMKII_B.wpFlynavSupportc > 0U) {
3806 rtb_IntegerDelay3_p = 1.0F / rt_SATURATE(rtb_Switch3_h4, 0.0F, 40.0F) *
3807 9.806650162E+000F * controlMCUSlugsMKII_B.CFunctionCall_in;
3808 } else {
3809 rtb_IntegerDelay3_p = controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[2];
3810 }
3811
3812
3813 rtb_PsiDotLimit = rt_SATURATE(rtb_IntegerDelay3_p, -1.0F, 1.0F);
3814
3815
3816 if (controlMCUSlugsMKII_B.navSupportc_g[2] > 3.000000119E-001F) {
3817 rtb_Switch = controlMCUSlugsMKII_B.PsiDotLimit;
3818 } else {
3819 rtb_Switch = rtb_PsiDotLimit;
3820 }
3821
3822 if (controlMCUSlugsMKII_B.navSupportc_n[2] > 0.0F) {
3823 if (controlMCUSlugsMKII_DWork.SideslipCompensation_MODE == (int32_T)
3824 SUBSYS_DISABLED) {
3825
3826
3827
3828 controlMCUSlugsMKII_DWork.UD_DSTATE_o = 0.0F;
3829
3830
3834 controlMCUSlugsMKII_DWork.IntegerDelay_X_b = (0.0F);
3835
3836
3840 controlMCUSlugsMKII_DWork.IntegerDelay1_X_f5 = (0.0);
3841
3842
3846 controlMCUSlugsMKII_DWork.IntegerDelay3_X_hc = (0.0F);
3847 controlMCUSlugsMKII_DWork.SideslipCompensation_MODE = (int32_T)
3848 SUBSYS_ENABLED;
3849 }
3850 } else if (controlMCUSlugsMKII_DWork.SideslipCompensation_MODE == (int32_T)
3851 SUBSYS_ENABLED) {
3852
3853
3854
3855 controlMCUSlugsMKII_B.Subtract = 0.0;
3856 controlMCUSlugsMKII_DWork.SideslipCompensation_MODE = (int32_T)
3857 SUBSYS_DISABLED;
3858 }
3859
3860 if (controlMCUSlugsMKII_DWork.SideslipCompensation_MODE == (int32_T)
3861 SUBSYS_ENABLED) {
3862
3863
3864
3865 controlMCUSlugsM_negprotect(rtb_ScheduleLPF,
3866 &controlMCUSlugsMKII_B.sf_negprotect);
3867
3868
3871 rtb_Divide_l = 1.0F / controlMCUSlugsMKII_B.sf_negprotect.zpVal *
3872 9.806650162F;
3873
3874
3875 controlMCUSlugsMKII_B.bankLimit_a = rt_SATURATE(controlMCUSlugsMKII_B.y_n[0],
3876 -7.853981853E-001F, 7.853981853E-001F);
3877
3878
3879 controlMCUSlugsMKII_B.CFunctionCall_gd = myTan
3880 (controlMCUSlugsMKII_B.bankLimit_a);
3881
3882
3883 rtb_Divide1_a = controlMCUSlugsMKII_B.CFunctionCall_gd * rtb_Divide_l;
3884
3885
3889 rtb_Diff = 3.000000119E-001F - controlMCUSlugsMKII_DWork.UD_DSTATE_o;
3890
3891
3892 rtb_Diff = rt_ABS(rtb_Diff);
3893
3894
3897 if (controlMCUSlugsMKII_DWork.IC_FirstOutputTime_e) {
3898 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_e = 0U;
3899 rtb_Diff = 1.0F;
3900 } else {
3901 rtb_Diff = rt_SATURATE(rtb_Diff, 0.0F, 1.0F);
3902 }
3903
3904
3905 if (rtb_Diff > 0.0F) {
3906
3910 controlMCUSlugsMKII_B.c = (real32_T)exp(-3.000000026E-003F);
3911
3912
3915 controlMCUSlugsMKII_B.c_k = 1.0F - controlMCUSlugsMKII_B.c;
3916 }
3917
3918
3919
3920
3923 rtb_Divide_cm = controlMCUSlugsMKII_B.c_k *
3924 (controlMCUSlugsMKII_DWork.IntegerDelay_X_b);
3925
3926
3931 rtb_IntegerDelay1_c = controlMCUSlugsMKII_DWork.IntegerDelay1_X_f5;
3932
3933
3936 controlMCUSlugsMKII_B.Subtract = (real_T)controlMCUSlugsMKII_B.c *
3937 rtb_IntegerDelay1_c + (real_T)rtb_Divide_cm;
3938
3939
3943 controlMCUSlugsMKII_B.Divide_a = (rtb_Divide1_a - controlMCUSlugsMKII_B.y_n
3944 [5]) * rtb_ScheduleLPF / 9.806650162E+000F;
3945
3946
3947 controlMCUSlugsMKII_B.CFunctionCall_id = myAtan
3948 (controlMCUSlugsMKII_B.Divide_a);
3949
3950
3954 if ((controlMCUSlugsMKII_B.CFunctionCall_id ==
3955 controlMCUSlugsMKII_B.CFunctionCall_id) > 0U) {
3956 rtb_Switch3_pq = controlMCUSlugsMKII_B.CFunctionCall_id;
3957 } else {
3958 rtb_Switch3_pq = (controlMCUSlugsMKII_DWork.IntegerDelay3_X_hc);
3959 }
3960
3961
3964 controlMCUSlugsMKII_DWork.UD_DSTATE_o = 3.000000119E-001F;
3965
3966
3968 controlMCUSlugsMKII_DWork.IntegerDelay_X_b = rtb_Switch3_pq;
3969
3970
3972 controlMCUSlugsMKII_DWork.IntegerDelay1_X_f5 =
3973 controlMCUSlugsMKII_B.Subtract;
3974
3975
3977 controlMCUSlugsMKII_DWork.IntegerDelay3_X_hc = rtb_Switch3_pq;
3978 }
3979
3980
3983 controlMCUSlugsMKII_B.Divide_m = rtb_Switch * rtb_ScheduleLPF /
3984 9.806650162E+000F;
3985
3986
3987 controlMCUSlugsMKII_B.CFunctionCall_i4 = myAtan(controlMCUSlugsMKII_B.Divide_m);
3988
3989
3990 rtb_IntegerDelay3_p = (real32_T)controlMCUSlugsMKII_B.Subtract +
3991 controlMCUSlugsMKII_B.CFunctionCall_i4;
3992
3993
3994 rtb_BankLimitCommand = rt_SATURATE(rtb_IntegerDelay3_p, -7.853981853E-001F,
3995 7.853981853E-001F);
3996
3997
4002 rtb_IntegerDelay3_p = controlMCUSlugsMKII_DWork.IntegerDelay3_X_h;
4003
4004
4007 if (((uint8_T)(rtb_Sum_l[1] == rtb_Sum_l[1])) > 0U) {
4008 rtb_Switch3_pa = rtb_Sum_l[1];
4009 } else {
4010 rtb_Switch3_pa = rtb_IntegerDelay3_p;
4011 }
4012
4013
4014 rtb_u020_g = rt_SATURATE(rtb_Switch3_pa, -20.0F, 20.0F);
4015
4016
4020 {
4021 real_T eml_omega;
4022
4023
4024
4025 if (!controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.a_not_empty) {
4026
4027
4028 eml_omega = 6.2831853071795862E+000 * (0.3183);
4029 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.a = 0.01 * eml_omega /
4030 (2.0 + 0.01 * eml_omega);
4031 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.a_not_empty = true;
4032 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.b = (-(0.01 * eml_omega -
4033 2.0)) / (0.01 * eml_omega + 2.0);
4034 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.y_km1 = rtb_u020_g;
4035 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.u_km1 = rtb_u020_g;
4036 }
4037
4038 rtb_y_m = (real32_T)controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.a *
4039 (rtb_u020_g + controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.u_km1) +
4040 (real32_T)controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.b *
4041 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.y_km1;
4042 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.y_km1 = rtb_y_m;
4043 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.u_km1 = rtb_u020_g;
4044 }
4045
4046
4047 getPidIdx(((uint8_T)9U),&controlMCUSlugsMKII_B.navSupportc_l[0]);
4048
4049
4050 rtb_RelationalOperator2_j4 = (controlMCUSlugsMKII_B.y_n[5] ==
4051 controlMCUSlugsMKII_B.y_n[5]);
4052
4053
4058 rtb_IntegerDelay3_p = controlMCUSlugsMKII_DWork.IntegerDelay3_X_ae;
4059
4060
4061 if (rtb_RelationalOperator2_j4 > 0U) {
4062 rtb_Switch3_fx = controlMCUSlugsMKII_B.y_n[5];
4063 } else {
4064 rtb_Switch3_fx = rtb_IntegerDelay3_p;
4065 }
4066
4067
4068 rtb_u2 = rt_SATURATE(rtb_Switch3_fx, -2.0F, 2.0F);
4069
4070
4071
4072
4077 rtb_IntegerDelay_k = controlMCUSlugsMKII_DWork.IntegerDelay_X_nm;
4078
4079
4084 rtb_IntegerDelay1_a = controlMCUSlugsMKII_DWork.IntegerDelay1_X_l;
4085
4086
4094 rtb_Subtract_a = (0.9991999865F * rtb_u2 - rtb_IntegerDelay_k * 0.9991999865F)
4095 + rtb_IntegerDelay1_a * 0.9983000159F;
4096
4097
4098 rtb_u2_o = rt_SATURATE(rtb_Subtract_a, -2.0F, 2.0F);
4099
4100
4102 controlMCUSlugsMKII_DWork.IntegerDelay_X_nm = rtb_u2;
4103
4104
4106 controlMCUSlugsMKII_DWork.IntegerDelay1_X_l = rtb_u2_o;
4107
4108
4112 if (controlMCUSlugsMKII_B.navSupportc_l[0] > 3.000000119E-001F) {
4113 rtb_Switch2 = -1.0F * rtb_y_m;
4114 } else {
4115 rtb_Switch2 = -1.0F * rtb_u2_o;
4116 }
4117
4118
4123 rtb_IntegerDelay3_p = controlMCUSlugsMKII_DWork.IntegerDelay3_X_b5;
4124
4125
4128 if (((uint8_T)(rtb_Switch2 == rtb_Switch2)) > 0U) {
4129 rtb_Switch3_my = rtb_Switch2;
4130 } else {
4131 rtb_Switch3_my = rtb_IntegerDelay3_p;
4132 }
4133
4134
4135 controlMCUSlugsMK_myMuxFun1(rtb_Switch, rtb_BankLimitCommand, rtb_Switch3_my,
4136 &controlMCUSlugsMKII_B.sf_myMuxFun1_h);
4137
4138
4139 setNavLat(controlMCUSlugsMKII_B.sf_myMuxFun1_h.y);
4140
4141
4144 rtb_Add4_m = -1.745329201E-001F - controlMCUSlugsMKII_B.DataTypeConversion_b;
4145
4146
4147 rtb_Product1_p = rtb_Switch3_my *
4148 controlMCUSlugsMKII_B.GetPidaccordingtoIndex3[0];
4149
4150
4155 rtb_NDelays_no = controlMCUSlugsMKII_DWork.NDelays_X_e[0];
4156
4157
4163 rtb_IntegerDelay3_p = (rtb_Switch3_my - rtb_NDelays_no) / 5.000000075E-002F *
4164 controlMCUSlugsMKII_B.GetPidaccordingtoIndex3[2] + rtb_Product1_p;
4165
4166
4171 rtb_IntegerDelay2_ih = controlMCUSlugsMKII_DWork.IntegerDelay2_X_g;
4172
4173
4178 rtb_Sum2_c = (9.999999776E-003F * rtb_Switch3_my *
4179 controlMCUSlugsMKII_B.GetPidaccordingtoIndex3[1] +
4180 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_a) +
4181 rtb_IntegerDelay3_p;
4182
4183
4186 rtb_Add3_k = 1.745329201E-001F - controlMCUSlugsMKII_B.DataTypeConversion_b;
4187
4188
4194 if ((rtb_Sum2_c > rtb_Add4_m) && (rtb_Sum2_c < rtb_Add3_k)) {
4195 rtb_AntiWindup_k = (real_T)rtb_Switch3_my;
4196 } else {
4197 rtb_AntiWindup_k = 0.0;
4198 }
4199
4200
4205 rtb_IntegerDelay3_l = controlMCUSlugsMKII_DWork.IntegerDelay3_X_o;
4206
4207
4210 if (((uint8_T)(rtb_AntiWindup_k == rtb_AntiWindup_k)) > 0U) {
4211 rtb_Switch3_g = rtb_AntiWindup_k;
4212 } else {
4213 rtb_Switch3_g = rtb_IntegerDelay3_l;
4214 }
4215
4216
4221 rtb_IntegerDelay_b = controlMCUSlugsMKII_DWork.IntegerDelay_X_i0;
4222
4223
4228 rtb_IntegerDelay1_o = controlMCUSlugsMKII_DWork.IntegerDelay1_X_f[0];
4229
4230
4243 if (controlMCUSlugsMKII_B.ManualorAutonavSupportc > 0U) {
4244 rtb_Switch1_i = 0.0F;
4245 } else {
4246 rtb_Switch1_i = (((real32_T)(rtb_Switch3_g * (real_T)0.3333333433F) +
4247 (real32_T)(rtb_IntegerDelay_b * (real_T)1.333333373F)) +
4248 (real32_T)(rtb_IntegerDelay1_o * 3.3333334326744080E-001)) *
4249 0.004999999888F + rtb_IntegerDelay2_ih;
4250 }
4251
4252
4253 rtb_RelationalOperator2_m3 = (rtb_Switch1_i == rtb_Switch1_i);
4254
4255
4260 rtb_IntegerDelay3_j = controlMCUSlugsMKII_DWork.IntegerDelay3_X_cn;
4261
4262 {
4263 real_T tmp;
4264
4265
4268 if (rtb_RelationalOperator2_m3 > 0U) {
4269 rtb_Switch3_pf = rtb_Switch1_i;
4270 } else {
4271 rtb_Switch3_pf = rtb_IntegerDelay3_j;
4272 }
4273
4274
4277 rtb_Add2_af = rtb_Switch3_pf * controlMCUSlugsMKII_B.GetPidaccordingtoIndex3
4278 [1] + rtb_IntegerDelay3_p;
4279
4280
4285 if (controlMCUSlugsMKII_B.navSupportc_l[1] > 3.000000119E-001F) {
4286 rtb_Add1_b = 1.745329238E-002F * controlMCUSlugsMKII_B.navSupportc_l[2];
4287 } else {
4288
4289 rtb_Add1_b = rt_MAX(rtb_Add4_m, rtb_Add2_af);
4290 rtb_Add1_b = rt_MIN(rtb_Add1_b, rtb_Add3_k) +
4291 controlMCUSlugsMKII_B.DataTypeConversion_b;
4292 }
4293
4294
4295 rtb_RudderLimit = rt_SATURATE(rtb_Add1_b, -1.745329201E-001F,
4296 1.745329201E-001F);
4297
4298
4299 rtb_UnitConversion_a = 5.729578018E+001F * rtb_RudderLimit;
4300
4301
4302 rtb_UnitConversion = 5.7295779513082323E+001 *
4303 controlMCUSlugsMKII_B.Subtract;
4304
4305
4306
4307
4308
4309 rtb_y_om[0] = rtb_UnitConversion_a;
4310 rtb_y_om[1] = controlMCUSlugsMKII_B.navSupportc_l[1];
4311 rtb_y_om[2] = (real32_T)rtb_UnitConversion;
4312
4313
4316 tmp = fmod(floor((real_T)(100.0F * rtb_y_om[0])), 65536.0);
4317 if (tmp < -32768.0) {
4318 tmp += 65536.0;
4319 } else if (tmp >= 32768.0) {
4320 tmp -= 65536.0;
4321 }
4322
4323 controlMCUSlugsMKII_B.DataTypeConversion2[0] = (int16_T)tmp;
4324 tmp = fmod(floor((real_T)(100.0F * rtb_y_om[1])), 65536.0);
4325 if (tmp < -32768.0) {
4326 tmp += 65536.0;
4327 } else if (tmp >= 32768.0) {
4328 tmp -= 65536.0;
4329 }
4330
4331 controlMCUSlugsMKII_B.DataTypeConversion2[1] = (int16_T)tmp;
4332 tmp = fmod(floor((real_T)(100.0F * rtb_y_om[2])), 65536.0);
4333 if (tmp < -32768.0) {
4334 tmp += 65536.0;
4335 } else if (tmp >= 32768.0) {
4336 tmp -= 65536.0;
4337 }
4338
4339 controlMCUSlugsMKII_B.DataTypeConversion2[2] = (int16_T)tmp;
4340 }
4341
4342
4343 setDiagnosticShort(controlMCUSlugsMKII_B.DataTypeConversion2);
4344
4345
4346 rtb_Add1_j = rtb_BankLimitCommand - controlMCUSlugsMKII_B.y_n[0];
4347
4348
4351 rtb_Add4_p = -2.792526782E-001F - controlMCUSlugsMKII_B.DataTypeConversion_f;
4352
4353
4358 rtb_Add1_b = controlMCUSlugsMKII_DWork.IntegerDelay3_X_mk;
4359
4360
4363 if (((uint8_T)(rtb_Add1_j == rtb_Add1_j)) > 0U) {
4364 rtb_Switch3_i = rtb_Add1_j;
4365 } else {
4366 rtb_Switch3_i = rtb_Add1_b;
4367 }
4368
4369
4370 rtb_Product1_mf = rtb_Switch3_i * controlMCUSlugsMKII_B.navSupportc_k[0];
4371
4372
4377 rtb_NDelays_m = controlMCUSlugsMKII_DWork.NDelays_X_m[0];
4378
4379
4385 rtb_Add1_b = (rtb_Switch3_i - rtb_NDelays_m) / 5.000000075E-002F *
4386 controlMCUSlugsMKII_B.navSupportc_k[2] + rtb_Product1_mf;
4387
4388
4393 rtb_IntegerDelay2_k = controlMCUSlugsMKII_DWork.IntegerDelay2_X_j;
4394
4395
4400 rtb_Sum2_b = (9.999999776E-003F * rtb_Switch3_i *
4401 controlMCUSlugsMKII_B.navSupportc_k[1] +
4402 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_l) + rtb_Add1_b;
4403
4404
4407 rtb_Add3_o = 2.792526782E-001F - controlMCUSlugsMKII_B.DataTypeConversion_f;
4408
4409
4415 if ((rtb_Sum2_b > rtb_Add4_p) && (rtb_Sum2_b < rtb_Add3_o)) {
4416 rtb_AntiWindup_m = (real_T)rtb_Switch3_i;
4417 } else {
4418 rtb_AntiWindup_m = 0.0;
4419 }
4420
4421
4426 rtb_IntegerDelay3_l = controlMCUSlugsMKII_DWork.IntegerDelay3_X_j;
4427
4428
4431 if (((uint8_T)(rtb_AntiWindup_m == rtb_AntiWindup_m)) > 0U) {
4432 rtb_Switch3_na = rtb_AntiWindup_m;
4433 } else {
4434 rtb_Switch3_na = rtb_IntegerDelay3_l;
4435 }
4436
4437
4442 rtb_IntegerDelay_c = controlMCUSlugsMKII_DWork.IntegerDelay_X_n;
4443
4444
4449 rtb_IntegerDelay1_d = controlMCUSlugsMKII_DWork.IntegerDelay1_X_n[0];
4450
4451
4464 if (controlMCUSlugsMKII_B.ManualorAutonavSupportc > 0U) {
4465 rtb_Switch1_g = 0.0F;
4466 } else {
4467 rtb_Switch1_g = (((real32_T)(rtb_Switch3_na * (real_T)0.3333333433F) +
4468 (real32_T)(rtb_IntegerDelay_c * (real_T)1.333333373F)) +
4469 (real32_T)(rtb_IntegerDelay1_d * 3.3333334326744080E-001)) *
4470 0.004999999888F + rtb_IntegerDelay2_k;
4471 }
4472
4473
4478 rtb_IntegerDelay3_p = controlMCUSlugsMKII_DWork.IntegerDelay3_X_hp;
4479
4480 {
4481 real32_T max;
4482
4483
4486 if (((uint8_T)(rtb_Switch1_g == rtb_Switch1_g)) > 0U) {
4487 rtb_Switch3_cv = rtb_Switch1_g;
4488 } else {
4489 rtb_Switch3_cv = rtb_IntegerDelay3_p;
4490 }
4491
4492
4495 rtb_Add2_n = rtb_Switch3_cv * controlMCUSlugsMKII_B.navSupportc_k[1] +
4496 rtb_Add1_b;
4497
4498
4499 max = rt_MAX(rtb_Add4_p, rtb_Add2_n);
4500
4501
4504 max = rt_MIN(max, rtb_Add3_o) + controlMCUSlugsMKII_B.DataTypeConversion_f;
4505
4506
4507 rtb_AileronLimit = rt_SATURATE(max, -2.792526782E-001F, 2.792526782E-001F);
4508 }
4509
4510
4512 controlMCUSlugsMKII_DWork.IntegerDelay3_X_nc = rtb_Switch3_gn;
4513
4514
4516 controlMCUSlugsMKII_DWork.IntegerDelay3_X_gw = rtb_Switch3_h4;
4517
4518
4520 controlMCUSlugsMKII_DWork.IntegerDelay3_X_h = rtb_Switch3_pa;
4521
4522
4524 controlMCUSlugsMKII_DWork.IntegerDelay3_X_ae = rtb_Switch3_fx;
4525
4526
4528 controlMCUSlugsMKII_DWork.IntegerDelay3_X_b5 = rtb_Switch3_my;
4529
4530
4532 controlMCUSlugsMKII_DWork.NDelays_X_e[0] =
4533 controlMCUSlugsMKII_DWork.NDelays_X_e[1];
4534 controlMCUSlugsMKII_DWork.NDelays_X_e[1] =
4535 controlMCUSlugsMKII_DWork.NDelays_X_e[2];
4536 controlMCUSlugsMKII_DWork.NDelays_X_e[2] =
4537 controlMCUSlugsMKII_DWork.NDelays_X_e[3];
4538 controlMCUSlugsMKII_DWork.NDelays_X_e[3] =
4539 controlMCUSlugsMKII_DWork.NDelays_X_e[4];
4540 controlMCUSlugsMKII_DWork.NDelays_X_e[4] = rtb_Switch3_my;
4541
4542
4544 controlMCUSlugsMKII_DWork.IntegerDelay2_X_g = rtb_Switch3_pf;
4545
4546
4547 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_a = rtb_Add2_af;
4548
4549
4551 controlMCUSlugsMKII_DWork.IntegerDelay3_X_o = rtb_Switch3_g;
4552
4553
4555 controlMCUSlugsMKII_DWork.IntegerDelay_X_i0 = rtb_Switch3_g;
4556
4557
4559 controlMCUSlugsMKII_DWork.IntegerDelay1_X_f[0] =
4560 controlMCUSlugsMKII_DWork.IntegerDelay1_X_f[1];
4561 controlMCUSlugsMKII_DWork.IntegerDelay1_X_f[1] = rtb_Switch3_g;
4562
4563
4565 controlMCUSlugsMKII_DWork.IntegerDelay3_X_cn = rtb_Switch3_pf;
4566
4567
4569 controlMCUSlugsMKII_DWork.IntegerDelay3_X_mk = rtb_Switch3_i;
4570
4571
4573 controlMCUSlugsMKII_DWork.NDelays_X_m[0] =
4574 controlMCUSlugsMKII_DWork.NDelays_X_m[1];
4575 controlMCUSlugsMKII_DWork.NDelays_X_m[1] =
4576 controlMCUSlugsMKII_DWork.NDelays_X_m[2];
4577 controlMCUSlugsMKII_DWork.NDelays_X_m[2] =
4578 controlMCUSlugsMKII_DWork.NDelays_X_m[3];
4579 controlMCUSlugsMKII_DWork.NDelays_X_m[3] =
4580 controlMCUSlugsMKII_DWork.NDelays_X_m[4];
4581 controlMCUSlugsMKII_DWork.NDelays_X_m[4] = rtb_Switch3_i;
4582
4583
4585 controlMCUSlugsMKII_DWork.IntegerDelay2_X_j = rtb_Switch3_cv;
4586
4587
4588 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_l = rtb_Add2_n;
4589
4590
4592 controlMCUSlugsMKII_DWork.IntegerDelay3_X_j = rtb_Switch3_na;
4593
4594
4596 controlMCUSlugsMKII_DWork.IntegerDelay_X_n = rtb_Switch3_na;
4597
4598
4600 controlMCUSlugsMKII_DWork.IntegerDelay1_X_n[0] =
4601 controlMCUSlugsMKII_DWork.IntegerDelay1_X_n[1];
4602 controlMCUSlugsMKII_DWork.IntegerDelay1_X_n[1] = rtb_Switch3_na;
4603
4604
4606 controlMCUSlugsMKII_DWork.IntegerDelay3_X_hp = rtb_Switch3_cv;
4607
4608
4609
4610
4611
4612 rtb_y[0] = rtb_ThrottleLimit;
4613 rtb_y[1] = rtb_AileronLimit;
4614 rtb_y[2] = rtb_RudderLimit;
4615 rtb_y[3] = rtb_ElevatorLimit;
4616
4617
4618 if (controlMCUSlugsMKII_B.GetControlTypenavSupportc == 1U) {
4619
4620
4621
4622 rtb_Gain_fi = rtb_y_n[0] >> 1;
4623
4624
4625 rtb_Gain1_cp = rtb_y_n[1] >> 1;
4626
4627
4628 rtb_Gain2_fp = rtb_y_n[3] >> 1;
4629
4630
4631 rtb_Gain3_j = rtb_y_n[2] >> 1;
4632
4633
4634 controlMCUSlugs_myMuxFun1_a(rtb_Gain_fi, rtb_Gain1_cp, rtb_Gain2_fp,
4635 rtb_Gain3_j, controlMCUSlugsMKII_B.Merge_n);
4636 } else if ((controlMCUSlugsMKII_B.GetControlTypenavSupportc == 2U) ||
4637 (controlMCUSlugsMKII_B.GetControlTypenavSupportc == 3U)) {
4638
4639 {
4640 real_T tmp;
4641
4642
4648 tmp = fmod(floor((real_T)rtb_y[3] * 3.9411311193641618E+003 +
4649 3.7764285714285725E+003), 65536.0);
4650 if (tmp < 0.0) {
4651 tmp += 65536.0;
4652 }
4653
4654 rtb_DataTypeConversion_k = (uint16_T)tmp;
4655
4656
4662 tmp = fmod(floor((real_T)rtb_y[0] * 1274.0 + 3176.0), 65536.0);
4663 if (tmp < 0.0) {
4664 tmp += 65536.0;
4665 }
4666
4667 rtb_DataTypeConversion_o = (uint16_T)tmp;
4668
4669
4675 tmp = fmod(floor((real_T)rtb_y[1] * 3.4254691037464213E+003 +
4676 3.6921428571428564E+003), 65536.0);
4677 if (tmp < 0.0) {
4678 tmp += 65536.0;
4679 }
4680
4681 rtb_DataTypeConversion_o5 = (uint16_T)tmp;
4682
4683
4689 tmp = fmod(floor((real_T)rtb_y[2] * 2.8579680495216048E+003 +
4690 3.7214285714285706E+003), 65536.0);
4691 if (tmp < 0.0) {
4692 tmp += 65536.0;
4693 }
4694
4695 rtb_DataTypeConversion_j = (uint16_T)tmp;
4696 }
4697
4698
4699 controlMCUSlugs_myMuxFun1_a(rtb_DataTypeConversion_o,
4700 rtb_DataTypeConversion_o5, rtb_DataTypeConversion_j,
4701 rtb_DataTypeConversion_k, controlMCUSlugsMKII_B.Merge_n);
4702 } else if (controlMCUSlugsMKII_B.GetControlTypenavSupportc == 4U) {
4703
4704
4705
4706 rtb_Gain_pn = rtb_y_n[0] >> 1;
4707
4708
4709 rtb_Gain1_c = rtb_y_n[1] >> 1;
4710
4711
4712 rtb_Gain2_d = rtb_y_n[3] >> 1;
4713
4714
4715 rtb_Gain3_p = rtb_y_n[2] >> 1;
4716
4717
4718 controlMCUSlugs_myMuxFun1_a(rtb_Gain_pn, rtb_Gain1_c, rtb_Gain2_d,
4719 rtb_Gain3_p, controlMCUSlugsMKII_B.Merge_n);
4720 } else if (controlMCUSlugsMKII_B.GetControlTypenavSupportc == 5U) {
4721
4722
4723
4724 getPassValues(&controlMCUSlugsMKII_B.GetPassSwitchesnavSupportc[0]);
4725
4726 {
4727 real_T tmp;
4728
4729
4737 if (controlMCUSlugsMKII_B.GetPassSwitchesnavSupportc[3] >= 1U) {
4738 rtb_Switch_k = rtb_y_n[0] >> 1;
4739 } else {
4740 tmp = fmod(floor((real_T)rtb_y[0] * 1274.0 + 3176.0), 65536.0);
4741 if (tmp < 0.0) {
4742 tmp += 65536.0;
4743 }
4744
4745 rtb_Switch_k = (uint16_T)tmp;
4746 }
4747
4748
4756 if (controlMCUSlugsMKII_B.GetPassSwitchesnavSupportc[2] >= 1U) {
4757 rtb_Switch1_bs = rtb_y_n[1] >> 1;
4758 } else {
4759 tmp = fmod(floor((real_T)rtb_y[1] * 3.4254691037464213E+003 +
4760 3.6921428571428564E+003), 65536.0);
4761 if (tmp < 0.0) {
4762 tmp += 65536.0;
4763 }
4764
4765 rtb_Switch1_bs = (uint16_T)tmp;
4766 }
4767
4768
4776 if (controlMCUSlugsMKII_B.GetPassSwitchesnavSupportc[1] >= 1U) {
4777 rtb_Switch2_l = rtb_y_n[3] >> 1;
4778 } else {
4779 tmp = fmod(floor((real_T)rtb_y[2] * 2.8579680495216048E+003 +
4780 3.7214285714285706E+003), 65536.0);
4781 if (tmp < 0.0) {
4782 tmp += 65536.0;
4783 }
4784
4785 rtb_Switch2_l = (uint16_T)tmp;
4786 }
4787
4788
4796 if (controlMCUSlugsMKII_B.GetPassSwitchesnavSupportc[0] >= 1U) {
4797 rtb_Switch3_c5 = rtb_y_n[2] >> 1;
4798 } else {
4799 tmp = fmod(floor((real_T)rtb_y[3] * 3.9411311193641618E+003 +
4800 3.7764285714285725E+003), 65536.0);
4801 if (tmp < 0.0) {
4802 tmp += 65536.0;
4803 }
4804
4805 rtb_Switch3_c5 = (uint16_T)tmp;
4806 }
4807 }
4808
4809
4810 controlMCUSlugs_myMuxFun1_a(rtb_Switch_k, rtb_Switch1_bs, rtb_Switch2_l,
4811 rtb_Switch3_c5, controlMCUSlugsMKII_B.Merge_n);
4812 }
4813
4814
4815 PDC1 = controlMCUSlugsMKII_B.Merge_n[2] ;
4816 PDC2 = controlMCUSlugsMKII_B.Merge_n[3] ;
4817 PDC3 = controlMCUSlugsMKII_B.Merge_n[1] ;
4818 PDC4 = controlMCUSlugsMKII_B.Merge_n[0] ;
4819
4820
4821 rtb_TmpHiddenBufferAtSFunctionI[0] = controlMCUSlugsMKII_B.Merge_n[0];
4822 rtb_TmpHiddenBufferAtSFunctionI[1] = controlMCUSlugsMKII_B.Merge_n[1];
4823 rtb_TmpHiddenBufferAtSFunctionI[2] = controlMCUSlugsMKII_B.Merge_n[3];
4824 rtb_TmpHiddenBufferAtSFunctionI[3] = controlMCUSlugsMKII_B.Merge_n[2];
4825
4826
4827 {
4828 int16_T eml_i0;
4829
4830
4831
4832 for (eml_i0 = 0; eml_i0 < 4; eml_i0++) {
4833 controlMCUSlugsMKII_B.y_d[eml_i0] = rtb_TmpHiddenBufferAtSFunctionI[eml_i0];
4834 }
4835
4836 controlMCUSlugsMKII_B.y_d[4] = rtb_y_n[4];
4837 }
4838
4839
4840 updatePWM(controlMCUSlugsMKII_B.y_d);
4841
4842
4843 updateEuler(controlMCUSlugsMKII_B.sf_myMuxFun1_e.y_i);
4844
4845
4846 updatePQR(controlMCUSlugsMKII_B.Product1);
4847
4848
4849 prepareTelemetry(&controlMCUSlugsMKII_B.CreateTelemetrySentencegroundSt[0]);
4850
4851
4852 send2GS(controlMCUSlugsMKII_B.CreateTelemetrySentencegroundSt);
4853
4854
4855 controlMCUSlugsMK_myMuxFun1(rtb_Switch3_oe, rtb_PsiDotLimit,
4856 controlMCUSlugsMKII_B.PsiDotLimit, &controlMCUSlugsMKII_B.sf_myMuxFun2_l);
4857
4858
4859 setDiagnosticFloat(controlMCUSlugsMKII_B.sf_myMuxFun2_l.y);
4860
4861
4862 controlMCUSlugsMKII_B.DataTypeConversion4 = (uint16_T)
4863 (controlMCUSlugsMKII_ConstB.Gain4 <= 65535.0 ?
4864 controlMCUSlugsMKII_ConstB.Gain4 >= 0.0 ? controlMCUSlugsMKII_ConstB.Gain4 :
4865 0.0 : 65535.0);
4866
4867
4868 updatePWM2(controlMCUSlugsMKII_B.DataTypeConversion4,((uint8_T)4U));
4869
4870 {
4871 real_T tmp;
4872
4873
4874 rtb_Abs2 = 100.0F * controlMCUSlugsMKII_B.DataTypeConversion;
4875
4876
4879 tmp = fmod(floor((real_T)rt_ABS(rtb_Abs2)), 65536.0);
4880 if (tmp < 0.0) {
4881 tmp += 65536.0;
4882 }
4883
4884 controlMCUSlugsMKII_B.DataTypeConversion2_e = (uint16_T)tmp;
4885 }
4886
4887
4888 updatePWM2(controlMCUSlugsMKII_B.DataTypeConversion2_e,((uint8_T)0U));
4889
4890 {
4891 real_T tmp;
4892
4893
4894 rtb_Gain2_f = 5729.578125F * controlMCUSlugsMKII_B.DataTypeConversion_f;
4895
4896
4899 tmp = fmod(floor((real_T)rt_ABS(rtb_Gain2_f)), 65536.0);
4900 if (tmp < 0.0) {
4901 tmp += 65536.0;
4902 }
4903
4904 controlMCUSlugsMKII_B.DataTypeConversion3 = (uint16_T)tmp;
4905 }
4906
4907
4908 updatePWM2(controlMCUSlugsMKII_B.DataTypeConversion3,((uint8_T)1U));
4909
4910 {
4911 real_T tmp;
4912
4913
4914 rtb_Gain2_f = 5729.578125F * controlMCUSlugsMKII_B.DataTypeConversion_c;
4915
4916
4919 tmp = fmod(floor((real_T)rt_ABS(rtb_Gain2_f)), 65536.0);
4920 if (tmp < 0.0) {
4921 tmp += 65536.0;
4922 }
4923
4924 controlMCUSlugsMKII_B.DataTypeConversion1 = (uint16_T)tmp;
4925 }
4926
4927
4928 updatePWM2(controlMCUSlugsMKII_B.DataTypeConversion1,((uint8_T)2U));
4929
4930 {
4931 real_T tmp;
4932
4933
4934 rtb_Gain2_f = 5729.578125F * controlMCUSlugsMKII_B.DataTypeConversion_b;
4935
4936
4939 tmp = fmod(floor((real_T)rt_ABS(rtb_Gain2_f)), 65536.0);
4940 if (tmp < 0.0) {
4941 tmp += 65536.0;
4942 }
4943
4944 controlMCUSlugsMKII_B.DataTypeConversion4_p = (uint16_T)tmp;
4945 }
4946
4947
4948 updatePWM2(controlMCUSlugsMKII_B.DataTypeConversion4_p,((uint8_T)3U));
4949
4950
4951 controlMCUSlugsMKII_B.GetFilterOnOff = getFilterOnOff();
4952
4953
4954 controlMCUSlugsMKII_B.DataTypeConversion1_e =
4955 (controlMCUSlugsMKII_B.GetFilterOnOff != 0U);
4956
4957
4958 LATBbits.LATB6 = controlMCUSlugsMKII_B.DataTypeConversion1_e;
4959
4960
4961 LATEbits.LATE9 = controlMCUSlugsMKII_B.DataTypeConversion1_e;
4962
4963
4965 controlMCUSlugsMKII_DWork.IntegerDelay_X_p = rtb_ScheduleLPF;
4966
4967
4969 controlMCUSlugsMKII_DWork.IntegerDelay2_X_k = controlMCUSlugsMKII_B.IC_c;
4970
4971
4973 controlMCUSlugsMKII_DWork.IntegerDelay3_X_j5 = rtb_Switch3_ov;
4974
4975
4977 controlMCUSlugsMKII_DWork.IntegerDelay3_X_b = rtb_Switch3_oe;
4978 if (controlMCUSlugsMKII_DWork.L1OutputFeedbackControllerWithP == (int32_T)
4979 SUBSYS_ENABLED) {
4980
4981
4982
4983 controlMCUSlugsMKII_DWork.UD_DSTATE_l = controlMCUSlugsMKII_B.navSupportc_g
4984 [0];
4985
4986
4988 controlMCUSlugsMKII_DWork.IntegerDelay_X_d = rtb_Switch3_im;
4989
4990
4992 controlMCUSlugsMKII_DWork.IntegerDelay1_X_nc = rtb_Subtract_b;
4993
4994
4996 controlMCUSlugsMKII_DWork.IntegerDelay3_X_cw = rtb_Switch3_cj;
4997
4998
4999 controlMCUSlugsMKII_DWork.UD_DSTATE_ld = controlMCUSlugsMKII_B.navSupportc_g
5000 [1];
5001
5002
5004 controlMCUSlugsMKII_DWork.IntegerDelay_X_c = rtb_Switch3_ae;
5005
5006
5008 controlMCUSlugsMKII_DWork.IntegerDelay1_X_a = rtb_Subtract_c;
5009
5010
5012 controlMCUSlugsMKII_DWork.IntegerDelay_X_no = rtb_PsiDotLimit;
5013
5014
5016 controlMCUSlugsMKII_DWork.IntegerDelay1_X_b = rtb_Switch3_im;
5017
5018
5020 controlMCUSlugsMKII_DWork.IntegerDelay3_X_gww = rtb_Switch3_ae;
5021
5022
5024 controlMCUSlugsMKII_DWork.IntegerDelay_X_f = rtb_Switch3_gq;
5025
5026
5028 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[0] =
5029 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[1];
5030 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[1] = rtb_Switch3_gq;
5031
5032
5034 controlMCUSlugsMKII_DWork.IntegerDelay2_X_m = rtb_Switch3_im;
5035
5036
5038 controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe = rtb_Switch3_gq;
5039
5040
5042 controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe1 = rtb_Switch3_im;
5043 }
5044
5045
5046 controlMCUSlugsMKII_M->Timing.clockTick0++;
5047 }
5048
5049
5050 void controlMCUSlugsMKII_step1(void)
5051 {
5052
5053 }
5054
5055 void controlMCUSlugsMKII_step(int_T tid)
5056 {
5057 switch (tid) {
5058 case 0 :
5059 controlMCUSlugsMKII_step0();
5060 break;
5061
5062 case 1 :
5063 controlMCUSlugsMKII_step1();
5064 break;
5065
5066 default :
5067 break;
5068 }
5069 }
5070
5071
5072 void controlMCUSlugsMKII_initialize(boolean_T firstTime)
5073 {
5074 (void)firstTime;
5075
5076
5077
5078 (void) memset((char_T *)controlMCUSlugsMKII_M,0,
5079 sizeof(RT_MODEL_controlMCUSlugsMKII));
5080
5081
5082 (void) memset(((void *) &controlMCUSlugsMKII_B),0,
5083 sizeof(BlockIO_controlMCUSlugsMKII));
5084
5085 {
5086 int_T i;
5087 void *pVoidBlockIORegion;
5088 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.IC);
5089 for (i = 0; i < 2; i++) {
5090 ((real_T*)pVoidBlockIORegion)[i] = 0.0;
5091 }
5092
5093 pVoidBlockIORegion = (void *)
5094 (&controlMCUSlugsMKII_B.GetMidLevelCommandsnavSupportc[0]);
5095 for (i = 0; i < 83; i++) {
5096 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5097 }
5098
5099 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.y_n[0]);
5100 for (i = 0; i < 113; i++) {
5101 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5102 }
5103
5104 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1_e.y_i[0]);
5105 for (i = 0; i < 3; i++) {
5106 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5107 }
5108
5109 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun2_c.y_i[0]);
5110 for (i = 0; i < 3; i++) {
5111 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5112 }
5113
5114 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1_a.y_i[0]);
5115 for (i = 0; i < 3; i++) {
5116 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5117 }
5118
5119 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1_m.y_l[0]);
5120 for (i = 0; i < 9; i++) {
5121 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5122 }
5123
5124 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun2.y_i[0]);
5125 for (i = 0; i < 3; i++) {
5126 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5127 }
5128
5129 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1.y_i[0]);
5130 for (i = 0; i < 3; i++) {
5131 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5132 }
5133
5134 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1_n.y_l[0]);
5135 for (i = 0; i < 9; i++) {
5136 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5137 }
5138
5139 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun2_l.y[0]);
5140 for (i = 0; i < 3; i++) {
5141 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5142 }
5143
5144 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1_o.y[0]);
5145 for (i = 0; i < 3; i++) {
5146 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5147 }
5148
5149 pVoidBlockIORegion = (void *)(&controlMCUSlugsMKII_B.sf_myMuxFun1_h.y[0]);
5150 for (i = 0; i < 3; i++) {
5151 ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
5152 }
5153
5154 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect1.zpVal)[0] = 0.0F;
5155 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_h.zpVal_k)[0] = 0.0F;
5156 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_f.zpVal_k)[0] = 0.0F;
5157 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_fm.zpVal)[0] = 0.0F;
5158 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_d.xDoty_j)[0] =
5159 0.0F;
5160 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_b.zpVal_k)[0] = 0.0F;
5161 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_or.xDoty_j)[0] =
5162 0.0F;
5163 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_bp.zpVal_k)[0] = 0.0F;
5164 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_hk.xDoty_j)[0] =
5165 0.0F;
5166 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_g.zpVal_k)[0] = 0.0F;
5167 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_mg.xDoty_g)[0] =
5168 0.0F;
5169 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_l.zpVal_k)[0] = 0.0F;
5170 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_n.xDoty)[0] =
5171 0.0F;
5172 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_a.xDoty_g)[0] =
5173 0.0F;
5174 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_e.zpVal_k)[0] = 0.0F;
5175 ((real32_T*)&controlMCUSlugsMKII_B.sf_EmbeddedMATLABFunction_m.xDoty)[0] =
5176 0.0F;
5177 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect_c.zpVal)[0] = 0.0F;
5178 ((real32_T*)&controlMCUSlugsMKII_B.sf_negprotect.zpVal)[0] = 0.0F;
5179 }
5180
5181
5182 (void) memset((char_T *) &controlMCUSlugsMKII_DWork,0,
5183 sizeof(D_Work_controlMCUSlugsMKII));
5184
5185 {
5186 int_T i;
5187 real_T *dwork_ptr = (real_T *) &controlMCUSlugsMKII_DWork.IntegerDelay2_X;
5188 for (i = 0; i < 24; i++) {
5189 dwork_ptr[i] = 0.0;
5190 }
5191 }
5192
5193 {
5194 int_T i;
5195 real32_T *dwork_ptr = (real32_T *)
5196 &controlMCUSlugsMKII_DWork.IntegerDelay_X_p;
5197 for (i = 0; i < 91; i++) {
5198 dwork_ptr[i] = 0.0F;
5199 }
5200 }
5201
5202
5203
5204
5205
5206 ConfigIntTimer1(T1_INT_PRIOR_0 & T1_INT_OFF);
5207 T1CON = 0x8010 ;
5208 PR1 = 49999;
5209
5210
5211 ConfigIntTimer2(T2_INT_PRIOR_0 & T2_INT_OFF);
5212 OpenTimer2(T2_ON & T2_GATE_OFF &
5213 T2_PS_1_8 & T2_SOURCE_INT , 65535);
5214
5215
5216 TRISB = 65471;
5217 TRISE = 65023;
5218
5219
5220 AD1PCFGL = (68);
5221 AD2PCFGL = (68);
5222 AD1PCFGH = ((2097220 >> 16) & 65535);
5223
5224
5225
5226
5227 OpenCapture2(IC_IDLE_CON & IC_TIMER2_SRC & IC_INT_1CAPTURE &
5228 IC_EVERY_RISE_EDGE);
5229 ConfigIntCapture2(IC_INT_ON & IC_INT_PRIOR_6);
5230
5231
5232 OpenCapture3(IC_IDLE_CON & IC_TIMER2_SRC & IC_INT_1CAPTURE &
5233 IC_EVERY_RISE_EDGE);
5234 ConfigIntCapture3(IC_INT_ON & IC_INT_PRIOR_6);
5235
5236
5237 OpenCapture4(IC_IDLE_CON & IC_TIMER2_SRC & IC_INT_1CAPTURE &
5238 IC_EVERY_RISE_EDGE);
5239 ConfigIntCapture4(IC_INT_ON & IC_INT_PRIOR_6);
5240
5241
5242 OpenCapture5(IC_IDLE_CON & IC_TIMER2_SRC & IC_INT_1CAPTURE &
5243 IC_EVERY_RISE_EDGE);
5244 ConfigIntCapture5(IC_INT_ON & IC_INT_PRIOR_6);
5245
5246
5247 OpenCapture8(IC_IDLE_CON & IC_TIMER2_SRC & IC_INT_1CAPTURE &
5248 IC_EVERY_RISE_EDGE);
5249 ConfigIntCapture8(IC_INT_ON & IC_INT_PRIOR_6);
5250
5251
5252 controlMCUSlugsMKII_B.IC_c = 1U;
5253 controlMCUSlugsMKII_DWork.IC_FirstOutputTime = 1U;
5254
5255
5256
5257
5258 controlMCUSlugsMKII_DWork.IC1_FirstOutputTime = 1U;
5259
5260
5261 controlMCUSlugsMKII_B.IC = 1.0;
5262 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_i = 1U;
5263
5264
5265 controlMCUSlugsMKII_B.IC_e = 1.0F;
5266 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_b = 1U;
5267
5268
5269 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_d = 1U;
5270
5271
5272
5273
5274
5275
5276 controlMCUSlugsMKII_B.Switch3 = 150.0F;
5277
5278
5279
5280
5281 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_k = 1U;
5282
5283
5284
5285
5286 controlMCUSlugsMKII_B.IC_l = 50.0F;
5287
5288
5289
5290
5291 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_g = 1U;
5292
5293
5294 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_p = 1U;
5295
5296
5297
5298
5299 controlMCUSlugsMKII_DWork.UD_DSTATE_l = 0.0F;
5300
5301
5305 controlMCUSlugsMKII_DWork.IntegerDelay_X_d = (0.0F);
5306
5307
5311 controlMCUSlugsMKII_DWork.IntegerDelay1_X_nc = (0.0F);
5312
5313
5317 controlMCUSlugsMKII_DWork.IntegerDelay3_X_cw = (0.0F);
5318
5319
5320 controlMCUSlugsMKII_DWork.UD_DSTATE_ld = 0.0F;
5321
5322
5326 controlMCUSlugsMKII_DWork.IntegerDelay_X_c = (0.0F);
5327
5328
5332 controlMCUSlugsMKII_DWork.IntegerDelay1_X_a = (0.0F);
5333
5334
5338 controlMCUSlugsMKII_DWork.IntegerDelay_X_no = (0.0F);
5339
5340
5344 controlMCUSlugsMKII_DWork.IntegerDelay1_X_b = (0.0F);
5345
5346
5347 if (rtmIsFirstInitCond(controlMCUSlugsMKII_M)) {
5348 controlMCUSlugsMKII_B.Merge = 0.0F;
5349 }
5350
5351
5355 controlMCUSlugsMKII_DWork.IntegerDelay3_X_gww = (0.0F);
5356
5357
5361 controlMCUSlugsMKII_DWork.IntegerDelay_X_f = (0.0F);
5362
5363
5367 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[0] = (0.0F);
5368 controlMCUSlugsMKII_DWork.IntegerDelay1_X_ny[1] = (0.0F);
5369
5370
5374 controlMCUSlugsMKII_DWork.IntegerDelay2_X_m = (0.0F);
5375
5376
5380 controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe = (0.0F);
5381
5382
5386 controlMCUSlugsMKII_DWork.IntegerDelay3_X_oe1 = (0.0F);
5387
5388
5389
5390
5391
5392
5393 controlMCUSlugsMKII_DWork.IC_FirstOutputTime_e = 1U;
5394
5395
5396
5397
5398 controlMCUSlugsMKII_DWork.UD_DSTATE_o = 0.0F;
5399
5400
5404 controlMCUSlugsMKII_DWork.IntegerDelay_X_b = (0.0F);
5405
5406
5410 controlMCUSlugsMKII_DWork.IntegerDelay1_X_f5 = (0.0);
5411
5412
5416 controlMCUSlugsMKII_DWork.IntegerDelay3_X_hc = (0.0F);
5417
5418
5419
5420 SetDCMCPWM(1,0,0);
5421 SetDCMCPWM(2,0,0);
5422 SetDCMCPWM(3,0,0);
5423 SetDCMCPWM(4,0,0);
5424
5425 #define config2 (0xffff &PWM_PEN1L & PWM_MOD1_IND & PWM_PDIS1H &PWM_PEN2L & PWM_MOD2_IND & PWM_PDIS2H &PWM_PEN3L & PWM_MOD3_IND & PWM_PDIS3H &PWM_PEN4L & PWM_MOD4_IND & PWM_PDIS4H)
5426 #define config (PWM_INT_DIS & PWM_FLTA_DIS_INT & PWM_INT_PR1 & PWM_FLTA_INT_PR0)
5427
5428 ConfigIntMCPWM( config );
5429
5430 #define config1 (PWM_EN & 0xDFFF & PWM_OP_SCALE1 & PWM_IPCLK_SCALE16 & PWM_MOD_UPDN)
5431 #define config3 (PWM_SEVOPS1 & PWM_OSYNC_TCY & PWM_UEN)
5432
5433 OpenMCPWM(25000,0,config1,config2,config3);
5434
5435
5436
5437
5438 controlMCUInit();
5439 controlMCUSlugsM_PrevZCSigState.HitCrossing_ZCE = UNINITIALIZED_ZCSIG;
5440 controlMCUSlugsM_PrevZCSigState.HitCrossing1_ZCE = UNINITIALIZED_ZCSIG;
5441
5442
5443 {
5444 int16_T eml_i0;
5445 for (eml_i0 = 0; eml_i0 < 7; eml_i0++) {
5446 controlMCUSlugsMKII_DWork.BufferICChannel.oldValues[eml_i0] = 0U;
5447 }
5448 }
5449
5450
5451 {
5452 int16_T eml_i0;
5453 for (eml_i0 = 0; eml_i0 < 7; eml_i0++) {
5454 controlMCUSlugsMKII_DWork.BufferICChannel1.oldValues[eml_i0] = 0U;
5455 }
5456 }
5457
5458
5459 {
5460 int16_T eml_i0;
5461 for (eml_i0 = 0; eml_i0 < 7; eml_i0++) {
5462 controlMCUSlugsMKII_DWork.BufferICChannel2.oldValues[eml_i0] = 0U;
5463 }
5464 }
5465
5466
5467 {
5468 int16_T eml_i0;
5469 for (eml_i0 = 0; eml_i0 < 7; eml_i0++) {
5470 controlMCUSlugsMKII_DWork.BufferICChannel3.oldValues[eml_i0] = 0U;
5471 }
5472 }
5473
5474
5475
5476
5480 controlMCUSlugsMKII_DWork.IntegerDelay2_X = (1.0);
5481
5482
5483 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_g.fromWP_not_empty = false;
5484
5485
5489 controlMCUSlugsMKII_DWork.IntegerDelay3_X_a = (50.0F);
5490
5491
5495 controlMCUSlugsMKII_DWork.IntegerDelay1_X_i = (1.0F);
5496
5497
5501 controlMCUSlugsMKII_DWork.IntegerDelay2_X_e[0] = (1.0F);
5502 controlMCUSlugsMKII_DWork.IntegerDelay2_X_e[1] = (1.0F);
5503
5504
5505 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.internalTimer = 0U;
5506 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction1.oldSw = 0U;
5507
5508
5509
5510
5511 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_m.a_not_empty = false;
5512
5513
5514 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_l.a_not_empty = false;
5515
5516
5517 controlMCUSlugsMKII_DWork.PrevY = 180.0F;
5518
5519
5520 controlMCUSlugsMKII_DWork.Memory1_PreviousInput = 0.0F;
5521
5522
5523 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction_j.a_not_empty = false;
5524
5525
5526 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_e = 0.0F;
5527
5528
5529 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_f = 0.0F;
5530
5531
5532
5533
5534 controlMCUSlugsMKII_DWork.EmbeddedMATLABFunction.a_not_empty = false;
5535
5536
5537 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_a = 0.0F;
5538
5539
5540 controlMCUSlugsMKII_DWork.Memory1_PreviousInput_l = 0.0F;
5541 }
5542
5543
|