📄 ex33c_pid_acc.c
字号:
rtb_Sum_l1 += rtb_Product_m[1];
ex33C_pid_B->IW113_a[0] = ex33C_pid_P->IW113_Value_n[0];
ex33C_pid_B->IW113_a[1] = ex33C_pid_P->IW113_Value_n[1];
rtb_Product_e[0] = ex33C_pid_B->IW113_a[0] * ex33C_pid_B->SE1_d;
rtb_Product_e[1] = ex33C_pid_B->IW113_a[1] * ex33C_pid_B->SDE001_m;
/* Sum: '<S39>/Sum' */
rtb_Sum_ao = rtb_Product_e[0];
rtb_Sum_ao += rtb_Product_e[1];
ex33C_pid_B->IW114_b[0] = ex33C_pid_P->IW114_Value_l[0];
ex33C_pid_B->IW114_b[1] = ex33C_pid_P->IW114_Value_l[1];
rtb_Product_h[0] = ex33C_pid_B->IW114_b[0] * ex33C_pid_B->SE1_d;
rtb_Product_h[1] = ex33C_pid_B->IW114_b[1] * ex33C_pid_B->SDE001_m;
/* Sum: '<S40>/Sum' */
rtb_Sum_ls = rtb_Product_h[0];
rtb_Sum_ls += rtb_Product_h[1];
ex33C_pid_B->IW115_n[0] = ex33C_pid_P->IW115_Value_b[0];
ex33C_pid_B->IW115_n[1] = ex33C_pid_P->IW115_Value_b[1];
rtb_Product_j[0] = ex33C_pid_B->IW115_n[0] * ex33C_pid_B->SE1_d;
rtb_Product_j[1] = ex33C_pid_B->IW115_n[1] * ex33C_pid_B->SDE001_m;
/* Sum: '<S41>/Sum' */
rtb_Sum_m = rtb_Product_j[0];
rtb_Sum_m += rtb_Product_j[1];
{
real_T cg_in_0_61_0[5];
int32_T i1;
for(i1=0; i1<5; i1++) {
ex33C_pid_B->b1_b[i1] = ex33C_pid_P->b1_Value_i[i1];
}
cg_in_0_61_0[0] = rtb_Sum_j;
cg_in_0_61_0[1] = rtb_Sum_l1;
cg_in_0_61_0[2] = rtb_Sum_ao;
cg_in_0_61_0[3] = rtb_Sum_ls;
cg_in_0_61_0[4] = rtb_Sum_m;
for(i1=0; i1<5; i1++) {
rtb_netsum_h[i1] = cg_in_0_61_0[i1] + ex33C_pid_B->b1_b[i1];
rtb_Product_a[i1] = ex33C_pid_B->IW211_e[i1] *
rt_SATURATE(rtb_netsum_h[i1], ex33C_pid_P->Saturation_LowerSat_h,
ex33C_pid_P->Saturation_UpperSat_h);
}
}
/* Sum: '<S46>/Sum' */
rtb_Sum_f = rtb_Product_a[0];
rtb_Sum_f += rtb_Product_a[1];
rtb_Sum_f += rtb_Product_a[2];
rtb_Sum_f += rtb_Product_a[3];
rtb_Sum_f += rtb_Product_a[4];
ex33C_pid_B->b2_f = ex33C_pid_P->b2_Value_g;
ex33C_pid_B->SU1_h = (rtb_Sum_f + ex33C_pid_B->b2_f) *
ex33C_pid_P->SU1_Gain_c;
}
ex33C_pid_B->Sum9 = ex33C_pid_B->Sum2 + ex33C_pid_B->SU1_h;
/* Derivative Block: <Root>/Derivative1 */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = ex33C_pid_DWork->Derivative1_RWORK_o.TimeStampA;
real_T timeStampB = ex33C_pid_DWork->Derivative1_RWORK_o.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
rtb_Derivative1_c = 0.0;
} else {
real_T deltaT;
real_T *lastBank = &ex33C_pid_DWork->Derivative1_RWORK_o.TimeStampA;
if (timeStampA < timeStampB) {
if (timeStampB < t) {
lastBank += 2;
}
} else if (timeStampA >= t) {
lastBank += 2;
}
deltaT = t - *lastBank++;
rtb_Derivative1_c = (ex33C_pid_B->Sum9 - *lastBank++) / deltaT;
}
}
ex33C_pid_B->Sum4 = rtb_Gain12 - rtb_TransferFcn3;
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.001s, 0.0s] */
{
int32_T i1;
for(i1=0; i1<5; i1++) {
ex33C_pid_B->IW211_d[i1] = ex33C_pid_P->IW211_Value_o[i1];
}
ex33C_pid_B->IW111_k[0] = ex33C_pid_P->IW111_Value_c[0];
ex33C_pid_B->IW111_k[1] = ex33C_pid_P->IW111_Value_c[1];
}
}
ex33C_pid_B->SE1_b = ex33C_pid_B->Sum4 * ex33C_pid_P->SE1_Gain_o;
/* Derivative Block: <S3>/Derivative1 */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = ex33C_pid_DWork->Derivative1_RWORK_h5.TimeStampA;
real_T timeStampB = ex33C_pid_DWork->Derivative1_RWORK_h5.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
rtb_Derivative1_g = 0.0;
} else {
real_T deltaT;
real_T *lastBank = &ex33C_pid_DWork->Derivative1_RWORK_h5.TimeStampA;
if (timeStampA < timeStampB) {
if (timeStampB < t) {
lastBank += 2;
}
} else if (timeStampA >= t) {
lastBank += 2;
}
deltaT = t - *lastBank++;
rtb_Derivative1_g = (ex33C_pid_B->Sum4 - *lastBank++) / deltaT;
}
}
ex33C_pid_B->SDE001_b = rtb_Derivative1_g * ex33C_pid_P->SDE001_Gain_m;
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.001s, 0.0s] */
rtb_Product_mi[0] = ex33C_pid_B->IW111_k[0] * ex33C_pid_B->SE1_b;
rtb_Product_mi[1] = ex33C_pid_B->IW111_k[1] * ex33C_pid_B->SDE001_b;
/* Sum: '<S58>/Sum' */
rtb_Sum_my = rtb_Product_mi[0];
rtb_Sum_my += rtb_Product_mi[1];
ex33C_pid_B->IW112_d[0] = ex33C_pid_P->IW112_Value_o[0];
ex33C_pid_B->IW112_d[1] = ex33C_pid_P->IW112_Value_o[1];
rtb_Product_g[0] = ex33C_pid_B->IW112_d[0] * ex33C_pid_B->SE1_b;
rtb_Product_g[1] = ex33C_pid_B->IW112_d[1] * ex33C_pid_B->SDE001_b;
/* Sum: '<S59>/Sum' */
rtb_Sum_c = rtb_Product_g[0];
rtb_Sum_c += rtb_Product_g[1];
ex33C_pid_B->IW113_n[0] = ex33C_pid_P->IW113_Value_d[0];
ex33C_pid_B->IW113_n[1] = ex33C_pid_P->IW113_Value_d[1];
rtb_Product_n[0] = ex33C_pid_B->IW113_n[0] * ex33C_pid_B->SE1_b;
rtb_Product_n[1] = ex33C_pid_B->IW113_n[1] * ex33C_pid_B->SDE001_b;
/* Sum: '<S60>/Sum' */
rtb_Sum_jn = rtb_Product_n[0];
rtb_Sum_jn += rtb_Product_n[1];
ex33C_pid_B->IW114_i[0] = ex33C_pid_P->IW114_Value_b[0];
ex33C_pid_B->IW114_i[1] = ex33C_pid_P->IW114_Value_b[1];
rtb_Product_mn[0] = ex33C_pid_B->IW114_i[0] * ex33C_pid_B->SE1_b;
rtb_Product_mn[1] = ex33C_pid_B->IW114_i[1] * ex33C_pid_B->SDE001_b;
/* Sum: '<S61>/Sum' */
rtb_Sum_lq = rtb_Product_mn[0];
rtb_Sum_lq += rtb_Product_mn[1];
ex33C_pid_B->IW115_e[0] = ex33C_pid_P->IW115_Value_k[0];
ex33C_pid_B->IW115_e[1] = ex33C_pid_P->IW115_Value_k[1];
rtb_Product_jm[0] = ex33C_pid_B->IW115_e[0] * ex33C_pid_B->SE1_b;
rtb_Product_jm[1] = ex33C_pid_B->IW115_e[1] * ex33C_pid_B->SDE001_b;
/* Sum: '<S62>/Sum' */
rtb_Sum_g = rtb_Product_jm[0];
rtb_Sum_g += rtb_Product_jm[1];
{
real_T cg_in_0_91_0[5];
int32_T i1;
for(i1=0; i1<5; i1++) {
ex33C_pid_B->b1_f[i1] = ex33C_pid_P->b1_Value_c[i1];
}
cg_in_0_91_0[0] = rtb_Sum_my;
cg_in_0_91_0[1] = rtb_Sum_c;
cg_in_0_91_0[2] = rtb_Sum_jn;
cg_in_0_91_0[3] = rtb_Sum_lq;
cg_in_0_91_0[4] = rtb_Sum_g;
for(i1=0; i1<5; i1++) {
rtb_netsum_l[i1] = cg_in_0_91_0[i1] + ex33C_pid_B->b1_f[i1];
rtb_Product_et[i1] = ex33C_pid_B->IW211_d[i1] *
rt_SATURATE(rtb_netsum_l[i1], ex33C_pid_P->Saturation_LowerSat_b,
ex33C_pid_P->Saturation_UpperSat_m);
}
}
/* Sum: '<S67>/Sum' */
rtb_Sum_p = rtb_Product_et[0];
rtb_Sum_p += rtb_Product_et[1];
rtb_Sum_p += rtb_Product_et[2];
rtb_Sum_p += rtb_Product_et[3];
rtb_Sum_p += rtb_Product_et[4];
ex33C_pid_B->b2_p = ex33C_pid_P->b2_Value_l;
ex33C_pid_B->SU1_m = (rtb_Sum_p + ex33C_pid_B->b2_p) *
ex33C_pid_P->SU1_Gain_p;
}
ex33C_pid_B->Sum10 = ex33C_pid_B->Sum4 + ex33C_pid_B->SU1_m;
/* Derivative Block: <Root>/Derivative2 */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = ex33C_pid_DWork->Derivative2_RWORK.TimeStampA;
real_T timeStampB = ex33C_pid_DWork->Derivative2_RWORK.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
rtb_Derivative2 = 0.0;
} else {
real_T deltaT;
real_T *lastBank = &ex33C_pid_DWork->Derivative2_RWORK.TimeStampA;
if (timeStampA < timeStampB) {
if (timeStampB < t) {
lastBank += 2;
}
} else if (timeStampA >= t) {
lastBank += 2;
}
deltaT = t - *lastBank++;
rtb_Derivative2 = (ex33C_pid_B->Sum10 - *lastBank++) / deltaT;
}
}
ex33C_pid_B->Sum6 = rtb_Gain12 - rtb_TransferFcn4;
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.001s, 0.0s] */
{
int32_T i1;
for(i1=0; i1<5; i1++) {
ex33C_pid_B->IW211_dk[i1] = ex33C_pid_P->IW211_Value_n[i1];
}
ex33C_pid_B->IW111_n[0] = ex33C_pid_P->IW111_Value_ic[0];
ex33C_pid_B->IW111_n[1] = ex33C_pid_P->IW111_Value_ic[1];
}
}
ex33C_pid_B->SE1_j = ex33C_pid_B->Sum6 * ex33C_pid_P->SE1_Gain_f;
/* Derivative Block: <S4>/Derivative1 */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = ex33C_pid_DWork->Derivative1_RWORK_g.TimeStampA;
real_T timeStampB = ex33C_pid_DWork->Derivative1_RWORK_g.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
rtb_Derivative1_a = 0.0;
} else {
real_T deltaT;
real_T *lastBank = &ex33C_pid_DWork->Derivative1_RWORK_g.TimeStampA;
if (timeStampA < timeStampB) {
if (timeStampB < t) {
lastBank += 2;
}
} else if (timeStampA >= t) {
lastBank += 2;
}
deltaT = t - *lastBank++;
rtb_Derivative1_a = (ex33C_pid_B->Sum6 - *lastBank++) / deltaT;
}
}
ex33C_pid_B->SDE001_e = rtb_Derivative1_a * ex33C_pid_P->SDE001_Gain_js;
if (ssIsSampleHit(S, 1, tid)) { /* Sample time: [0.001s, 0.0s] */
rtb_Product_gv[0] = ex33C_pid_B->IW111_n[0] * ex33C_pid_B->SE1_j;
rtb_Product_gv[1] = ex33C_pid_B->IW111_n[1] * ex33C_pid_B->SDE001_e;
/* Sum: '<S79>/Sum' */
rtb_Sum_ic = rtb_Product_gv[0];
rtb_Sum_ic += rtb_Product_gv[1];
ex33C_pid_B->IW112_g[0] = ex33C_pid_P->IW112_Value_a[0];
ex33C_pid_B->IW112_g[1] = ex33C_pid_P->IW112_Value_a[1];
rtb_Product_f[0] = ex33C_pid_B->IW112_g[0] * ex33C_pid_B->SE1_j;
rtb_Product_f[1] = ex33C_pid_B->IW112_g[1] * ex33C_pid_B->SDE001_e;
/* Sum: '<S80>/Sum' */
rtb_Sum_lj = rtb_Product_f[0];
rtb_Sum_lj += rtb_Product_f[1];
ex33C_pid_B->IW113_j[0] = ex33C_pid_P->IW113_Value_b[0];
ex33C_pid_B->IW113_j[1] = ex33C_pid_P->IW113_Value_b[1];
rtb_Product_n0[0] = ex33C_pid_B->IW113_j[0] * ex33C_pid_B->SE1_j;
rtb_Product_n0[1] = ex33C_pid_B->IW113_j[1] * ex33C_pid_B->SDE001_e;
/* Sum: '<S81>/Sum' */
rtb_Sum_fv = rtb_Product_n0[0];
rtb_Sum_fv += rtb_Product_n0[1];
ex33C_pid_B->IW114_n[0] = ex33C_pid_P->IW114_Value_m[0];
ex33C_pid_B->IW114_n[1] = ex33C_pid_P->IW114_Value_m[1];
rtb_Product_np[0] = ex33C_pid_B->IW114_n[0] * ex33C_pid_B->SE1_j;
rtb_Product_np[1] = ex33C_pid_B->IW114_n[1] * ex33C_pid_B->SDE001_e;
/* Sum: '<S82>/Sum' */
rtb_Sum_bz = rtb_Product_np[0];
rtb_Sum_bz += rtb_Product_np[1];
ex33C_pid_B->IW115_j[0] = ex33C_pid_P->IW115_Value_n[0];
ex33C_pid_B->IW115_j[1] = ex33C_pid_P->IW115_Value_n[1];
rtb_Product_op[0] = ex33C_pid_B->IW115_j[0] * ex33C_pid_B->SE1_j;
rtb_Product_op[1] = ex33C_pid_B->IW115_j[1] * ex33C_pid_B->SDE001_e;
/* Sum: '<S83>/Sum' */
rtb_Sum_h = rtb_Product_op[0];
rtb_Sum_h += rtb_Product_op[1];
{
real_T cg_in_0_121_0[5];
int32_T i1;
for(i1=0; i1<5; i1++) {
ex33C_pid_B->b1_d[i1] = ex33C_pid_P->b1_Value_b[i1];
}
cg_in_0_121_0[0] = rtb_Sum_ic;
cg_in_0_121_0[1] = rtb_Sum_lj;
cg_in_0_121_0[2] = rtb_Sum_fv;
cg_in_0_121_0[3] = rtb_Sum_bz;
cg_in_0_121_0[4] = rtb_Sum_h;
for(i1=0; i1<5; i1++) {
rtb_netsum_b[i1] = cg_in_0_121_0[i1] + ex33C_pid_B->b1_d[i1];
rtb_Product_hb[i1] = ex33C_pid_B->IW211_dk[i1] *
rt_SATURATE(rtb_netsum_b[i1], ex33C_pid_P->Saturation_LowerSat_i,
ex33C_pid_P->Saturation_UpperSat_k);
}
}
/* Sum: '<S88>/Sum' */
rtb_Sum_ht = rtb_Product_hb[0];
rtb_Sum_ht += rtb_Product_hb[1];
rtb_Sum_ht += rtb_Product_hb[2];
rtb_Sum_ht += rtb_Product_hb[3];
rtb_Sum_ht += rtb_Product_hb[4];
ex33C_pid_B->b2_n = ex33C_pid_P->b2_Value_n;
ex33C_pid_B->SU1_k = (rtb_Sum_ht + ex33C_pid_B->b2_n) *
ex33C_pid_P->SU1_Gain_a;
}
ex33C_pid_B->Sum11 = ex33C_pid_B->Sum6 + ex33C_pid_B->SU1_k;
/* Derivative Block: <Root>/Derivative3 */
{
real_T t = ssGetTaskTime(S,tid);
real_T timeStampA = ex33C_pid_DWork->Derivative3_RWORK.TimeStampA;
real_T timeStampB = ex33C_pid_DWork->Derivative3_RWORK.TimeStampB;
if (timeStampA >= t && timeStampB >= t) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -