我现在要用c语言编关于pid算法的仿真程序,可是我对c语言仅停留在了解阶段,不知道怎么用c编出图形啊,我下面写出了个程序,对于sample采样函数,我也不知道怎么编,希望高手给指点下啊。真的好迷茫,。!
#include <stdio>
#define MAXVAL 1
#define MINVAL 0
float EK,EK1,EK2;
float UK,UK1,UK2,DeltaUK;
float SV;
int main()
{
int i;
float ctrloutput,PV;
PIDInit();
while(1)
{
PV=sample();
for(i=0;i<1000;i++);
while(UK!=SV)
{
ctrloutput=PID(PV);
if(ctrloutput>=MAXVAL)
ctrloutput=MAXVAL;
if(ctrloutput<=MINVAL)
ctrloutput=MINVAL;
}
printf("u(k)=%f\n",ctrloutput);
//送D/A转换器
}
}
void PIDInit()
{
EK=0;
EK1=0;
EK2=0;
UK=0;
UK1=0;
UK2=0;
DeltaUK=0;
}
float PID(float PV)
{
EK=SV-PV;
DeltaUK=0.3*UK1-0.3*UK2+1.3*EK-1.9*EK1+0.6*EK2;
UK=UK+DeltaUK;
EK2=EK1;
EK1=EK;
UK2=UK1;
UK1=UK;
return (UK);
}