软件综合设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
E[i] = 1 - y[i];
p[i] = p[i - 1] + Kp * (E[i] - E[i - 1]) + Ki * E[i] + Kd * (E[i] - 2 * E[i - 1] + E[i - 2]);
}
系统响应
例如当输入PID参数:
输入参数如下:
Kp = 1,Ti = 0,Td = 0;采样周期T = 0.01
仿真曲线如下所示:
2.
正弦函数响应值代码
//注:sin中角频率W与初相角Phi单位为:rad/s与rad
double[] y = new double[2000];
//公式:y(nT) = A * sin(2*pi*n/N + Phi) n= 1....(N-1)
sinA = System.Convert.ToDouble(sinForm.sinParam[0]); // Sin幅值A
软件
一
通过本课程设计实习,使学生在下列方面有所了解和提高:
1.掌握Visual Basic进行程序设计的基本思路和方法
2.能利用Visual Basic编程实现简单的任务
3.结合控制系统理论用VB进行计算机控制仿真
二
1.对一阶系统实现PID算法控制并进行仿真,具体功能如下:
基本要求:实现PID算法和一阶系统差分方程仿真,PID算法中的四个参数和一阶系统的参数都可以通过菜单进行设定,系统对阶跃函数的响应以图形方式实时显示在窗口中。
p[1] = p[0] + Kp * (E[1] - E[0]) + Ki * E[1] + Kd * (E[1] - 2);
//以下为循环迭代运算实现系统经过PID调节的输出y[i] (i = 2,3,4,5,......1999)
for (int i = 2; i < 2000; i++)
{
y[i] = T / T1 * K1 * p[i - 1] - (T / T1 - 1) * y[i - 1];
于是式(9)可写成:
经整理后,得:
(10)
在T足够小的条件下,微分方程(9)可以近似成差分方程(10),T值越小,则近似得越好。
四
1. PID
源程序(PID响应值计算部分)
Kd = Kp * Td / T; //微分系数
//以下为初始状态的计算与迭代计算过程,根据的是设计指导书内容
y[0] = 0; //系统初始输出信号
:第k次采样时的偏差值;
:第(k-1)次采样时的偏差值;
:采样序号,
:第k次采样时调节器的输出
由于(4)的输出值与阀门开度的位置一一对应,因此,通常把(4)称为位置型PID的位置控制算式。
由(4)可以看出,要想计算 ,不仅需要本次与上次的偏差信号 和 ,而且还要在积分项中把历次的偏差信号 进行相加,即 ,这样,不仅计算繁琐,而且为保存 还要占用很多内存。为此,作如下改动。
double N = 2 * Math.PI / (sinW * sinT);
for(int i=0;i<2000;i++)
{
double alfa = 2*Math.PI*i/N;
y[i] = sinA * Math.Sin(alfa + sinPhi);
}
系统响应
作为演示,第一组参数输入如下:
幅值A = 2,角频率w = 3.14初相角 = 0;采样周期T = 0.01
由于计算机控制是一种采样控制,只能根据采样时刻的偏差来计算控制量。因此,在计算机控制系统中,必须对式(1)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程,此时积分项和微分项可用求和及增量式表示:
(2)
(3)
将式(2)、(3)代入式(1),则可得到离散的PID表达式:
(4)
式中 :采样周期,必须使T足够小,才能保证系统有一定的精度;
附加功能:将系统的时间响应数据保存到数据库中,具体应包括下列属性:时间,输出值。将系统的历史响应重现。使用Teechart控件作为显示输出。
三
1.
在模拟系统中,PID算法的表达式为
(1)
式中 :调节器的输出信号 :调节器的偏差信号,等于测量值与给定值之差
:调节器的比例系数 :调节器的积分时间
:调节器的微分时间
sinW = System.Convert.ToDouble(sinForm.sinParam[1]); // Sin角频率w
sinPhi = System.Convert.ToDouble(sinForm.sinParam[2]); // Sin初相角phi
sinT = System.Convert.ToDouble(sinForm.sinParam[3]); // Sin采样周期T
根据递推原理,可写出(k-1)次的PID输出表达式:
(5)
用式(5)减去(4),可得:
(6)
式中 :积分系数
ห้องสมุดไป่ตู้:微分系数
式(6)称为增量式PID控制算式。
增量型PID算法的算式为:
(7)
设
所以:
(8)
2.
设系统为一阶惯性环节,系统的传递函数为:
其微分方程为:
(9)
差分方程和微分方程在形式上有一定的相似之处,设时间间隔T足够小,当 时,可有:
附加功能:将系统的时间响应数据保存到数据库中,具体应包括下列属性:时间,输出值。将系统的历史响应重现,使用Teechart控件作为显示输出。
2.实现各种函数发生器并显示
基本要求:实现下列函数发生器,正弦函数、方波函数、锯齿函数、三角函数,函数的生成参数都可以通过菜单设定,并且将生成的函数以图形方式实时显示在窗口中。
一阶系统参数设置输入参数如下:
K1 = 1,T1 = 5;
系统输出响应曲线如下所示:
改变输入参数就可以进行不同的PID参数仿真:
当输入如下参数:
Kp = 1,Ti = 1,Td = 1,K1 = 1,T1 = 5,采样时间T = 0.05时,显示如下曲线:
输入第3组数据:
Kp = 3,Ti = 1,Td = 1,K1 = 1,T1 = 5,采样时间T = 0.05时,
E[0] = 1; //初始偏差,由于刚开始为0,后来阶跃输入为1,所以初始偏差为1
p[0] = Kp + Ki + Kd; //由增量式PID控制算式计算,k=0代入求得p[0] = 0
y[1] = T / T1 * K1 * p[0] - (T / T1 - 1) * y[0];
E[1] = 1 - y[1];
p[i] = p[i - 1] + Kp * (E[i] - E[i - 1]) + Ki * E[i] + Kd * (E[i] - 2 * E[i - 1] + E[i - 2]);
}
系统响应
例如当输入PID参数:
输入参数如下:
Kp = 1,Ti = 0,Td = 0;采样周期T = 0.01
仿真曲线如下所示:
2.
正弦函数响应值代码
//注:sin中角频率W与初相角Phi单位为:rad/s与rad
double[] y = new double[2000];
//公式:y(nT) = A * sin(2*pi*n/N + Phi) n= 1....(N-1)
sinA = System.Convert.ToDouble(sinForm.sinParam[0]); // Sin幅值A
软件
一
通过本课程设计实习,使学生在下列方面有所了解和提高:
1.掌握Visual Basic进行程序设计的基本思路和方法
2.能利用Visual Basic编程实现简单的任务
3.结合控制系统理论用VB进行计算机控制仿真
二
1.对一阶系统实现PID算法控制并进行仿真,具体功能如下:
基本要求:实现PID算法和一阶系统差分方程仿真,PID算法中的四个参数和一阶系统的参数都可以通过菜单进行设定,系统对阶跃函数的响应以图形方式实时显示在窗口中。
p[1] = p[0] + Kp * (E[1] - E[0]) + Ki * E[1] + Kd * (E[1] - 2);
//以下为循环迭代运算实现系统经过PID调节的输出y[i] (i = 2,3,4,5,......1999)
for (int i = 2; i < 2000; i++)
{
y[i] = T / T1 * K1 * p[i - 1] - (T / T1 - 1) * y[i - 1];
于是式(9)可写成:
经整理后,得:
(10)
在T足够小的条件下,微分方程(9)可以近似成差分方程(10),T值越小,则近似得越好。
四
1. PID
源程序(PID响应值计算部分)
Kd = Kp * Td / T; //微分系数
//以下为初始状态的计算与迭代计算过程,根据的是设计指导书内容
y[0] = 0; //系统初始输出信号
:第k次采样时的偏差值;
:第(k-1)次采样时的偏差值;
:采样序号,
:第k次采样时调节器的输出
由于(4)的输出值与阀门开度的位置一一对应,因此,通常把(4)称为位置型PID的位置控制算式。
由(4)可以看出,要想计算 ,不仅需要本次与上次的偏差信号 和 ,而且还要在积分项中把历次的偏差信号 进行相加,即 ,这样,不仅计算繁琐,而且为保存 还要占用很多内存。为此,作如下改动。
double N = 2 * Math.PI / (sinW * sinT);
for(int i=0;i<2000;i++)
{
double alfa = 2*Math.PI*i/N;
y[i] = sinA * Math.Sin(alfa + sinPhi);
}
系统响应
作为演示,第一组参数输入如下:
幅值A = 2,角频率w = 3.14初相角 = 0;采样周期T = 0.01
由于计算机控制是一种采样控制,只能根据采样时刻的偏差来计算控制量。因此,在计算机控制系统中,必须对式(1)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程,此时积分项和微分项可用求和及增量式表示:
(2)
(3)
将式(2)、(3)代入式(1),则可得到离散的PID表达式:
(4)
式中 :采样周期,必须使T足够小,才能保证系统有一定的精度;
附加功能:将系统的时间响应数据保存到数据库中,具体应包括下列属性:时间,输出值。将系统的历史响应重现。使用Teechart控件作为显示输出。
三
1.
在模拟系统中,PID算法的表达式为
(1)
式中 :调节器的输出信号 :调节器的偏差信号,等于测量值与给定值之差
:调节器的比例系数 :调节器的积分时间
:调节器的微分时间
sinW = System.Convert.ToDouble(sinForm.sinParam[1]); // Sin角频率w
sinPhi = System.Convert.ToDouble(sinForm.sinParam[2]); // Sin初相角phi
sinT = System.Convert.ToDouble(sinForm.sinParam[3]); // Sin采样周期T
根据递推原理,可写出(k-1)次的PID输出表达式:
(5)
用式(5)减去(4),可得:
(6)
式中 :积分系数
ห้องสมุดไป่ตู้:微分系数
式(6)称为增量式PID控制算式。
增量型PID算法的算式为:
(7)
设
所以:
(8)
2.
设系统为一阶惯性环节,系统的传递函数为:
其微分方程为:
(9)
差分方程和微分方程在形式上有一定的相似之处,设时间间隔T足够小,当 时,可有:
附加功能:将系统的时间响应数据保存到数据库中,具体应包括下列属性:时间,输出值。将系统的历史响应重现,使用Teechart控件作为显示输出。
2.实现各种函数发生器并显示
基本要求:实现下列函数发生器,正弦函数、方波函数、锯齿函数、三角函数,函数的生成参数都可以通过菜单设定,并且将生成的函数以图形方式实时显示在窗口中。
一阶系统参数设置输入参数如下:
K1 = 1,T1 = 5;
系统输出响应曲线如下所示:
改变输入参数就可以进行不同的PID参数仿真:
当输入如下参数:
Kp = 1,Ti = 1,Td = 1,K1 = 1,T1 = 5,采样时间T = 0.05时,显示如下曲线:
输入第3组数据:
Kp = 3,Ti = 1,Td = 1,K1 = 1,T1 = 5,采样时间T = 0.05时,
E[0] = 1; //初始偏差,由于刚开始为0,后来阶跃输入为1,所以初始偏差为1
p[0] = Kp + Ki + Kd; //由增量式PID控制算式计算,k=0代入求得p[0] = 0
y[1] = T / T1 * K1 * p[0] - (T / T1 - 1) * y[0];
E[1] = 1 - y[1];