National Instruments AutoCode NI MATRIX User Manual

Page 183

Advertising
background image

Chapter 6

Vectorized Code Generation

AutoCode Reference

6-20

ni.com

Example 6-8

Generated Code (for Figure 6-5)

/***** Output Update. *****/

/* ---------------------------- Gain Block */

/* {gain.top.2} */

for (i=1; i<=5; i++) {

top[-1+i] = R_P[-1+i]*U->gain_1[-1+i];

}

/* ---------------------------- Gain Block */

/* {gain.bottom.1} */

for (i=1; i<=5; i++) {

bottom[-1+i] = R_P[4+i]*U->gain_1[4+i];

}

/* ---------------------------- Gain Block */

/* {gain.merge.12} */

merged_data[0] = top[2];

merged_data[1] = bottom[3];

merged_data[2] = top[0];

merged_data[3] = bottom[2];

merged_data[4] = top[1];

merged_data[5] = bottom[0];

/* ---------------------------- Nth Order Integrator */

/* {gain..3} */

if (INIT && XREMAP) {

for (i=1; i<=6; i++) {

X->gain_3_S1[0] = X->gain_3_S1[0] - TSAMP*X->gain_3_S1[1];

X->gain_3_S1[1] = X->gain_3_S1[1] - TSAMP*merged_data[1+i];

}

}

for (i=1; i<=6; i++) {

Y->gain_3_1[-1+i] = X->gain_3_S1[1] + TSAMP*merged_data[-1+i];

Y->gain_3_1[-1+i] = X->gain_3_S1[0] + TSAMP*Y->gain_3_1[-1+i];

Y->gain_3_1[-1+i] = R_P[15+i]*Y->gain_3_1[-1+i];

}

/***** State Update. *****/

/* ---------------------------- Nth Order Integrator */

/* {gain..3} */

for (i=1; i<=6; i++) {

XD->gain_3_S1[1] = X->gain_3_S1[1] + TSAMP*merged_data[-1+i];

XD->gain_3_S1[0] = X->gain_3_S1[0] + TSAMP*(XD->gain_3_S1[1]);}

Advertising