⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcpid.cpp

📁 自己做的数字PID控制的vc++源代码
💻 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 + -