?? lcpid.cpp
字號:
#include<iostream.h>
void main()
{
cout<<"/////////////////////////////////////////////////////////////////////////////"<<endl;
cout<<"/ 數(shù)字PID仿真計(jì)算 /"<<endl;
cout<<"/////////////////////////////////////////////////////////////////////////////"<<endl;
cout<<"endl";
cout<<"請依次輸入PID參數(shù),并按回車鍵!"<<endl;
cout<<endl;
int i=0;
int j=0;
float w;
float p;
float r[100];
float y[100],u[100],e[100],d[100];
y[0]=0;
u[0]=0;
e[0]=0;
e[1]=0;
y[1]=0;
u[1]=0;
float Kp,Ki,Kd;
for(i=0;i<1000;i++)
{
cout<<"輸入kp=";
cin>>Kp;
cout<<endl;
cout<<"輸入Ki=";
cin>>Ki;
cout<<endl;
cout<<"輸入Kd=";
cin>>Kd;
cout<<endl;
for(i=0;i<100;i++){
r[i]=4.08;}
for(i=2;i<100;i++)
{ e[i]=r[i]-y[i-1];
d[i]=(Ki+Kp+Kd)*e[i]-(Kp+2*Kd)*e[i-1]+e[i-2];
u[i]=d[i]+u[i-1];
y[i]=1.724*y[i-1]-0.741*y[i-2]+0.0453*u[i-1]+0.04095*u[i-2];
}
for(i=0;i<100;i++)
{
cout<<"階躍響應(yīng)"<<i<<":"<<y[i]<<endl;
}
cout<<"////////////////////////////////////////////////////////"<<endl;
for(i=0;i<100;i++)
{
cout<<"誤差"<<i<<":"<<e[i]<<endl;
}
cout<<"////////////////////////////////////////////////////////"<<endl;
for(i=0;i<99;i++)
{
for(j=i;j<100;j++)
{
if(y[i]>y[j])
{
p=y[i];
y[i]=y[j];
y[j]=p;
}
}
}
for(i=0;i<100;i++)
{
cout<<"排序后階躍響應(yīng)"<<i<<":"<<y[i]<<endl;
}
w=( y[99]-4.21)/4.21*100;
cout<<"//////////////////////////////////////////////////"<<endl<<endl;
cout<<"超調(diào)量:"<<w<<"%"<<endl;
cout<<"//////////////////////////////////////////////////"<<endl<<endl;
cout<<" 3012班 Forward 版權(quán)所有!"<<endl;
cout<<"//////////////////////////////////////////////////"<<endl<<endl;
cout<<"繼續(xù)整定參數(shù)!"<<endl;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -