📄 lcpid.cpp
字号:
#include<iostream.h>
void main()
{
cout<<"/////////////////////////////////////////////////////////////////////////////"<<endl;
cout<<"/ 数字PID仿真计算 /"<<endl;
cout<<"/////////////////////////////////////////////////////////////////////////////"<<endl;
cout<<"endl";
cout<<"请依次输入PID参数,并按回车键!"<<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<<"阶跃响应"<<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<<"排序后阶跃响应"<<i<<":"<<y[i]<<endl;
}
w=( y[99]-4.21)/4.21*100;
cout<<"//////////////////////////////////////////////////"<<endl<<endl;
cout<<"超调量:"<<w<<"%"<<endl;
cout<<"//////////////////////////////////////////////////"<<endl<<endl;
cout<<" 3012班 Forward 版权所有!"<<endl;
cout<<"//////////////////////////////////////////////////"<<endl<<endl;
cout<<"继续整定参数!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -