lter
LowFreqSig
al
M2
ifM1
Usi
gPIDwithPartial
differe
tial加在简单PID后的不完全微
分
alfaTftsTf
ukalfau_11alfakcerrork
kderrorkerror_1kiei
u_1uk
elseifM2
Usi
gPIDwith
Partialdiffere
tial只加在微分环节上的
不完全微分
alfaTftsTf
udkkd1alfaerrorkerror_1
alfaud_1
ukkcerrorkudkkiei
ud_1udkelseifM3Usi
gSimplePID简单的PID微分
ukkcerrorkkderrorkerror
_1kiei
e
d
Restricti
gtheoutputofco
trollerifuk10
uk10e
difuk10
uk10e
d
u_5u_4u_4u_3u_3u_2u_2u_1u_1uky_3y_2y_2y_1y_1youtkerror_1errorke
dfigure1plottimeri
btimeyoutrxlabeltimesylabelri
yout
figure2plottimeurxlabeltimesylabelufigure3plottimeri
youtrxlabeltimesylabelerrorfigure4bodeQrdcgai
Q
C语言PID演示程序
i
cludestri
ghi
cludestdioh
typedefstructPIDdoubleComma
d输入指令doubleProportio
比例系数doubleI
tegral积分系数doubleDerivative微分系数doublepreErr前一拍误差doublesumErr误差累积
PID
doublePIDCalePIDpdouble
feedback
doubledErrErr
ErrpComma
dfeedback当前
误差
psumErrErr
误差累加
dErrErrppreErr误差微分
ppreErrErr
retur
pProportio
Err比例项
pDerivativedErr微分项
pI
tegralpsumErr积分项
voidPIDI
itPIDpmemsetp0sizeofPID
初始化
typedefstructmotordoublelastY
3
fdoublepreYdoublelastUdoublepreUmotor
voidmotorI
itmotormmemsetm0sizeofmotor
doublemotorCalmotormdoubleudoubley19753mlastY09753mpreY000003284u000006568mlastU000003284mpreU二阶系统mpreYmlastYmlastYympreUmlastUmlastUuretur
y
voidmai
FILEfpfope