Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed nRF51822
ControllerFactory.cpp
00001 00002 #include "ControllerFactory.hpp" 00003 00004 00005 void ControllerFactory::createController (Controller *c, SysObjTypes &ctrlType) { 00006 00007 switch (ctrlType) { 00008 case P: //fall-through 00009 case PI: 00010 case PID: { 00011 c = new PIDController(); 00012 break; 00013 } 00014 case RST: { 00015 //c = new RST::RST(); 00016 break; 00017 } 00018 default: c = 0; 00019 } 00020 } 00021 00022 void ControllerFactory::createControllerParams (ControllerParams &cp, SysObjTypes &ctrlType, float *paramsList, int paramsListLen) { 00023 /* 00024 paramsList form: { 00025 P: [kp] 00026 PI: [kp, ti] 00027 PID: [kp, ti, td] 00028 RST: [nR,r0,r1,...,r_nR,nS,s0,s1,...,s_nS,nT,t0,t1,...,t_nT] 00029 } 00030 cond: paramsListLen = nR + nS + nT + 6 00031 */ 00032 switch (ctrlType) { 00033 case P: { 00034 cp.kp = *paramsList; 00035 cp.ti = 0; 00036 cp.td = 0; 00037 break; 00038 } 00039 case PI: { 00040 cp.kp = *paramsList; 00041 cp.ti = paramsList[1]; 00042 cp.td = 0; 00043 break; 00044 } 00045 case PID: { 00046 cp.kp = *paramsList; 00047 cp.ti = paramsList[1]; 00048 cp.td = paramsList[2]; 00049 break; 00050 } 00051 case RST: { 00052 int i; 00053 cp.ordR = *paramsList; 00054 cp.R = new float[cp.ordR+1]; 00055 for (i=1; i<cp.ordR+2;i++) { 00056 cp.R[i] = paramsList[i]; 00057 } 00058 cp.ordS = paramsList[i]; 00059 cp.S = new float[cp.ordS+1]; 00060 for (i=cp.ordR+2; i<cp.ordR+cp.ordS+3; i++) { 00061 cp.S[i] = paramsList[i]; 00062 } 00063 cp.ordT = paramsList[i]; 00064 cp.T = new float[cp.ordT+1]; 00065 for(i=cp.ordR+cp.ordS+3; i<paramsListLen; i++) { 00066 cp.T[i] = paramsList[i]; 00067 } 00068 break; 00069 } 00070 } 00071 } 00072
Generated on Sun Jul 24 2022 19:55:49 by
1.7.2