当前位置:首页 > 范文大全 > 整改报告 >

整改报告

测试技术实验报告

2021-10-22 10:10:17整改报告
测试技术实验报告本文关键词:实验,测试,报告,技术测试技术实验报告本文简介:xx学院《过程控制测试技

测试技术实验报告 本文关键词:实验,测试,报告,技术

测试技术实验报告 本文简介:xx学院《过程控制测试技术》实验报告本2012----2013学年第二学期专业班级:xx班姓名:xxx学号:xxx指导老师:xxxx实验一MATLAB基本应用一、实验目的1、学习MATLAB的基本用法;2、了解MATLAB的目录结构和基本功能。二、实验内容:题目1、已知x的取值范围,画出y=sin(

测试技术实验报告 本文内容:

xx学院

《过程控制测试技术》实验报告本

2012----

2013学年

学期

专业班级:

xx

名:

xxx

号:

xxx

指导老师:

xxxx

实验一

MATLAB

基本应用

一、实验目的

1、学习MATLAB的基本用法;

2、了解

MATLAB

的目录结构和基本功能。

二、实验内容:

题目1、已知x的取值范围,画出y=sin(x)的图型。

参考程序:x=0:0.05:4*pi;

y=sin(x);

plot(y)

运行结果:

题目2、

已知z

取值范围,x=sin(z);y=cos(z);画三维图形。

参考程序:z=0:pi/50:10*pi;

x=sin(z);

y=cos(z);

plot3(x,y,z)

xlabel(

x

)

ylabel(

y

)

zlabel(

z

)

运行结果:

题目3、已知x的取值范围,用subplot函数绘图。

参考程序:x=0:0.05:7;

y1=sin(x);

y2=1.5*cos(x);

y3=sin(2*x);

y4=5*cos(2*x);

subplot(2,2,1),plot(x,y1),title(

sin(x)

)

subplot(2,2,2),plot(x,y2),title(

1.5*cos(x)

)

subplot(2,2,3),plot(x,y3),title(

sin(2*x)

)

subplot(2,2,4),plot(x,y4),title(

5*cos(2*x)

)

连续信号的MATLAB表示

题目4、指数信号:指数信号Aeat在MATLAB中可用exp函数表示,其调用形式为:y=A*exp(a*t)

(例

A=1,a=-0.4)

参考程序:A=1;

a=-0.4;

t=0:0.01:10;

ft=A*exp(a*t);

plot(t,ft);grid

on;

运行结果:

题目5、正弦信号:正弦信号Acos(w0t+j)和Asin(w0t+j)分别由函数cos和sin表示,其调用形式为:A*cos(w0t+phi)

;A*sin(w0t+phi)

(例

取A=1,w0=2p,j=p/6)

参考程序:A=1;

w0=2*pi;

phi=pi/6;

t=0:0.001:8;

ft=A*sin(w0*t+phi);

plot(t,ft);grid

on

;

运行结果

题目6、抽样函数:抽样函数Sa(t)在MATLAB中用sinc函数表示,其定义为:sinc(t)=sin(pt)/(

pt),其调用形式为:y=sinc(t)

参考程序:t=-3*pi:pi/100:3*pi;

ft=sinc(t/pi);

plot(t,ft);grid

on;

运行结果:

实验二

周期信号波形的合成与分解

一、实验目的

学会使用MATLAB观察方波信号的分解与合成

二、实验内容

编制MATLAB程序,仿真实现下图周期方波信号的分解与合成。

参考程序:

%[ex3.1]方波分解与合成

t=0:0.01:2*pi;

f1=4/pi*sin(t);

%

基波

f3=4/pi*(sin(3*t)/3);

%三次谐波

f5=4/pi*(sin(5*t)/5);

f7=4/pi*(sin(7*t)/7);

f9=4/pi*(sin(9*t)/9);

y1=f1+f3;

y2=f1+f3+f5;

y3=f1+f3+f5+f7+f9;

subplot(2,2,1)

%在第一个子窗口画基波分量

plot(t,f1),hold

on

y=1*sign(pi-t);

%画方波信号

plot(t,y,c:

)

title(

周期矩形波的形成-基波

)

subplot(2,2,2)

%在第二个子窗口画

(基波+3次谐波)分量

plot(t,y1),hold

on

y=1*sign(pi-t);

plot(t,y,c:

)

title(

周期矩形波的形成-基波+3次谐波

)

subplot(2,2,3)

%在第三个子窗口画

(基波+3次谐波+

5次谐波)分量

plot(t,y2),hold

on

y=1*sign(pi-t);

plot(t,y,c:

)

title(

基波+3次谐波+5次谐波

)

subplot(2,2,4)

%第四个子窗口画

(基波+3次谐波+5次谐波+7次谐波+9次谐波)分量

plot(t,y3),hold

on

y=1*sign(pi-t);

plot(t,y,c:

)

title(

-基波+3次谐波+5次谐波+7次谐波+9次谐波

)

三、程序运行结果

四、思考

周期信号的频谱如何求取?其特点是什么?其物理意义是什么?答:一般周期信号的傅立叶变换

对于一般周期信号,我们可以采用下面得方法求它得傅立叶变换:

周期信号的频谱有以下特点:

1.由一些冲激组成离散频谱。

2.位于信号的谐频处。

3.大小不是有限值,而是无穷小频带内有无穷大的频谱值。

2.周期信号的傅立叶变换存在条件

尽管周期信号不满足绝对可积条件,但是引入冲激信号后,冲激信号的积分是有意义的。因此,在这个意义上,周期信号的傅立叶变换是存在的。周期信号的频谱是离散的,其频谱密度,即傅立叶变换是一系列冲激。

3.正弦、余弦信号的傅立叶变换

我们先研究最常见的周期信号——正弦和余弦信号的傅立叶变换。可以通过傅立叶变换的频移特性来得到正弦和余弦信号的傅立叶变换。

实验三

傅立叶变换的性质

一、目的

(1)掌握利用MATLAB实现连续时间信号傅立叶变换的方法;

(2)掌握连续时间信号傅立叶变换的方性质。

二、傅立叶变换及MATLAB实现

信号的傅立叶变换定义为:

(3-1)

值得注意的是,的傅立叶变换存在的充分条件是在无限区间内绝对可积,即满足下式:

(3-2)

但式(3-2)并非存在的必要条件。当引入奇异函数概念后,使一些不满足绝对可积的也能进行傅立叶变换。

傅立叶逆变换定义是:

(3-3)

MATLAB的Symbolic

Math

Toolbox提供了能直接求解傅立叶变换及逆变的函数fourier()和ifourier()。两者调用格式如下:

1、傅立叶变换

(1)

F=fourier(f)

(2)

F=fourier(f,v)

(3)

F=fourier(f,u,v)

说明如下:

(1)

F=fourier(f)是符号函数f的傅立叶变换,默认返回是关于的函数。如果,则fourier函数返回关于的函数;

(2)

F=fourier(f,v)返回函数F关于符号对象v的函数,而不是默认的,即

(3)

F=fourier(f,u,v)对关于的函数f进行变换,返回函数F关于v的函数,即

2、傅立叶逆变换

(1)

f=ifourier(F)

(2)

f=ifourier(F,u)

(3)

f=ifourier(F,v,u)

说明如下:

(1)

f=ifourier(F)是函数F的傅立叶逆变换。默认的独立变量为,默认返回是关于的函数。如果,则ifourier函数返回关于的函数;

(2)

f=ifourier(F,u)返回函数f是的函数,而不是默认的函数;

(3)

f=ifourier(F,v,u)对关于的函数F进行逆变换,返回关于的函数。

注意:在调用fourier()和ifourier()之前,要用syms命令对所有用到的变量(如,,,)等进行说明,即要将这些变量说明成符号变量。对fourier()中的函数f及ifourier()中的函数F也要用符号定义符syms将f或F说明为符号表达式;若f或F是MATLAB中的通用函数表达式,则不必用syms加以说明。下面举例说明如何调用函数实现傅立叶变换。

求的傅立叶变换。

解:利用如下MATLAB命令实现:

syms

t

fourier(exp(-2*abs(t)))

则有:

ans

=

4/(4+w^2)

若傅立叶变换的结果变量希望是,则可执行如下命令:

syms

t

v

fourier(exp(-2*abs(t)),t,v)

则有:ans

=4/(4+v^2)

求的傅立叶逆变换。

解:利用如下MATLAB命令实现:

syms

t

w

ifourier(1/(1+w^2),t)

则有:

ans

=

1/2*exp(-t)*Heaviside(t)+1/2*exp(t)*Heaviside(-t)

其中,Heaviside(t)即为单位阶跃函数。

四、傅立叶变换主要性质及MATLAB实现

1、尺度变换特性

若,则傅立叶变换的尺度变换特性为:

下面举例说明傅立叶变换的尺度特性。

例3-3:已知门信号,求其傅立叶变换。

解:由信号分析可知,该信号的频谱为,其第一个过零点频率为,一般将此频率认为信号的带宽。考虑到的形状,将精度提高到该值的50倍,即,据此确定取样间隔:

实现该过程的MATLAB程序如下:

R=0.02;t=-2:R:2;

f=Heaviside(t+1)-Heaviside(t-1);

W1=2*pi*5;

N=500;k=0:N;W=k*W1/N;

F=f*exp(-j*tW)*R;

F=real(F);

W=[-fliplr(W),W(2:501)];

F=[fliplr(F),F(2:501)];

subplot(2,1,1);plot(t,f);

xlabel(

t

);ylabel(

f(t)

);

title(

f(t)=u(t+1)-u(t-1)

);

subplot(2,1,2);plot(W,F);

xlabel(

w

);ylabel(

F(w)

);

title(

f(t)的付氏变换F(w)

);

程序运行结果如图3-1所示。

图3-1

矩形脉冲信号的傅立叶变换

设,用MATLAB求的频谱,并与的频谱进行比较。

解:将例3-3的程序进行修改,就可得到该例的MATLAB程序,即将信号改:f=Heaviside(2*t+1)-Heaviside(2*t-1),其它语句不变。运行结果如下:

图3-2

尺度变换例子

通过图3-3与图3-2比较可见,将展宽了一倍,而幅度将为的一半。

2、对称性

若,则傅立叶变换的对称性为:

(4-11)

例3-5:设,已知信号的傅立叶变换为,利用MATLAB求的傅立叶变换,验证对称性。

解:MATLAB程序为:

r=0.01;

t=-15:r:15;

f=sin(t)./t;

f1=pi*(Heaviside(t+1)-Heaviside(t-1));

N=500;

W=5*pi*1;

k=-N:N;

w=k*W/N;

F=r*sinc(t/pi)*exp(-j*tw);

F1=r*f1*exp(-j*tw);

subplot(221);

plot(t,f);

xlabel(

t

);

ylabel(

f(t)

);

subplot(222);

plot(w,F);

axis([-2

2

-1

4]);

xlabel(

w

);

ylabel(

F(w)

);

subplot(223);

plot(t,f1);

axis([-2

2

-1

4]);

xlabel(

t

);

ylabel(

f1(t)

);

subplot(224);

plot(w,F1);

axis([-20

20

-3

7]);

xlabel(

w

);

ylabel(

F1(w)

);

运行结果如下:

图3-3

傅立叶变换对称性

五、思考

傅立叶变换还有哪些性质?请列举。

1线性性

2对称性

3相似性

4平移性

5像函数的平移性(频移性)

6微分性

7像函数的微分性

8积分性

9卷积与卷积定理

10乘积定理

11能量积分

篇2:猜数字vhdl设计-数字电路实验报告

猜数字vhdl设计-数字电路实验报告 本文关键词:数字电路,实验,数字,报告,设计

猜数字vhdl设计-数字电路实验报告 本文简介:数字电路实验报告猜数字学院:班级:姓名:学号:实验组号:一.实验要求【基本要求】1、游戏规则:通常由两个人玩,一方出数字,另一方猜。出数字的人要想好一个没有重复数字的4位数,不能让猜的人知道。2、数字设置:通过4*4键盘进行4位数字输入,在数码管(DISP0~DISP3)上显示当前所输入的数字。通过

猜数字vhdl设计-数字电路实验报告 本文内容:

数字电路实验报告

猜数字

学院:

班级:

姓名:

学号:

实验组号:

一.实验要求

【基本要求】

1、

游戏规则:通常由两个人玩,一方出数字,另一方猜。出数字的人要想好一个没有

重复数字的4位数,不能让猜的人知道。

2、

数字设置:通过4*4键盘进行4位数字输入,在数码管(DISP0~DISP3)上显示当前

所输入的数字。通过设置确定键(BTN1键)进行锁定,此时数码管上的数值消失,

同时用点阵开始倒计时,即:初始状态点阵全亮,然后从右下角开始,由右到左、

由下到上逐点逐排依次熄灭,间隔时间为1s,共计64s。

3、

猜数字:可以通过4*4键盘进行4位数字输入进行猜数字,且每输入一位数字在数

码管(DISP0~DISP3)上显示当前所输入的数字,按确定键(BTN2键)进行确认,

此时要根据输入的这组数字给出几A几B,其中:

l

A前面的数字表示位置正确的数的个数,用DISP5显示

l

B前的数字表示数字正确而位置不对的数的个数,用DISP4显示

l

如正确答案为

2134,而猜的人猜

5314,则是

1A2B,其中有一个4的位置对

了,记为1A,而1和3这三个数字对了,而位置没对,因此记为

2B,合起来就

1A2B

l

接着猜的人再根据出题者的几A几B继续猜,直到猜中(即

4A0B)为止。

4、

若数字正确则显示猜数字成功,点阵显示“?”笑脸;若输入数字错误系统仍然处

于猜数字状态,点阵显示“X”,并用蜂鸣器或led闪烁报警。

5、

若到点阵全灭时(64s结束)仍未猜出正确数字,游戏失败,点阵显示“囧”。

6、

设置游戏机开关。

【实验所用仪器及元器件】

1.计算机

2.数字系统与逻辑设计实验开发板

【实验软件】

Quartus

【资源利用】

二、

程序设计

1、

程序流程图

开始

初始化

开始游戏?

设置数字

猜测

猜数字,点阵倒计时

确认数字

?A?B

计时结束?

正确?

重新开始?

结束

显示笑脸

显示囧

2、

逻辑框图

蜂鸣器模块

点阵模块

数码管模块

分频模块

CLK

键盘模块

3、

MDS图

Idle

初始化

S1

设置数字

S3

?A?B

S2

猜数字

Over

结束

st=’1’

rs=’1’

rs=’1’

reset=’1’

ms1=’1’

ms2=’1’

done=’1’

tm=’1’

tf=’0’

tm=’0’

st=’1’

rs=’1’

三、程序分析

1、

引脚注释

clk——时钟

st——游戏开始

scan_out[30]——键盘的行扫描输出信号

key_row[30]——键盘的列输入信号

ms1——输入确认键

ms2——猜数字

rs

——复位

bee_out——蜂鸣器输出

ld_out——状态指示灯

seg_out

——数码管显示

cat_out——数码管排列显示

led_row_out——点阵行显示

led_col_out——点阵列显示

2、

键盘数字

data0

IF

st=

1

THEN

next_state

IF

ms1=

1

THEN—确认输入数字

next_state

IF

ms2=

1

THEN

---开始猜数字

next_state

IF

done=

1

THEN

–判断完成,数字对比结束

next_state

IF

st=

1

THEN

next_statenext_state

CASE

cat

IS

WHEN

“111110“=>

cat

cat

cat

cat

cat

cat

cat

CASE

cat

IS

WHEN

“111110“=>

cat

cat

cat

cat

cat

cat

cat

CASE

cat

IS

WHEN

“111110“=>

cat

cat

cat

cat

cat

cat

cat

CASE

cat

IS

WHEN

“111110“=>

cat

cat

cat

cat

cat

cat

cat

CASE

cat

IS

WHEN

“111110“=>

cat

cat

cat

cat

cat

cat

catNULL;

END

CASE;

cat_out

scan

scan

scan

scan

scan

seg_a

seg_a

seg_a

seg_a

seg_a

seg_a

seg_b

seg_b

seg_b

seg_b

seg_b

seg_b

x1

count_clear

CASE

scan

IS

WHEN

“0111“=>

key1

key1

key1

key1

NULL;

END

CASE;

WHEN

“1011“=>

CASE

scan

IS

WHEN

“0111“=>

key1

key1

key1

key1

NULL;

END

CASE;

WHEN

“1101“=>

CASE

scan

IS

WHEN

“1011“=>

key1

key1

NULL;

END

CASE;

WHEN

OTHERS

=>

NULL;

END

CASE;

CASE

count1

IS

WHEN

0

=>

IF

key1

/=

x4

THEN

x1

IF

key1

/=

x1

THEN

x2

IF

key1

/=

x2

THEN

x3

IF

key1

/=

x3

THEN

x4

NULL;

END

CASE;

WHEN

s2

=>

bee

CASE

scan

IS

WHEN

“0111“=>

key2

key2

key2

key2

NULL;

END

CASE;

WHEN

“1011“=>

CASE

scan

IS

WHEN

“0111“=>

key2

key2

key2

key2

NULL;

END

CASE;

WHEN

“1101“=>

CASE

scan

IS

WHEN

“1011“=>

key2

key2

NULL;

END

CASE;

WHEN

OTHERS

=>

NULL;

END

CASE;

CASE

count2

IS

WHEN

0

=>

IF

key2

/=

y4

THEN

y1

IF

key2

/=

y1

THEN

y2

IF

key2

/=

y2

THEN

y3

IF

key2

/=

y3

THEN

y4

NULL;

END

CASE;

WHEN

s3=>

count5:=0;

count6:=0;

IF

x1=y1

THEN

count5:=count5+1;

ELSIF

x1=y2

THEN

count6:=count6+1;

ELSIF

x1=y3

THEN

count6:=count6+1;

ELSIF

x1=y4

THEN

count6:=count6+1;

ELSE

NULL;

END

IF;

IF

x2=y2

THEN

count5:=count5+1;

ELSIF

x2=y1

THEN

count6:=count6+1;

ELSIF

x2=y3

THEN

count6:=count6+1;

ELSIF

x2=y4

THEN

count6:=count6+1;

ELSE

NULL;

END

IF;

IF

x3=y3

THEN

count5:=count5+1;

ELSIF

x3=y1

THEN

count6:=count6+1;

ELSIF

x3=y2

THEN

count6:=count6+1;

ELSIF

x3=y4

THEN

count6:=count6+1;

ELSE

NULL;

END

IF;

IF

x4=y4

THEN

count5:=count5+1;

ELSIF

x4=y1

THEN

count6:=count6+1;

ELSIF

x4=y2

THEN

count6:=count6+1;

ELSIF

x4=y3

THEN

count6:=count6+1;

ELSE

NULL;

END

IF;

IF

count5=4

THEN

tf

done

NULL;

END

CASE;

END

IF;

END

PROCESS

p7;

10、

状态指示灯

P8:PROCESS(clk_scan)

BEGIN

IF

clk_scan

event

AND

clk_scan=

1

THEN

CASE

state

IS

WHEN

idle

=>

ld_out

ld_out

ld_out

ld_out

ld_outld_out

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

CASE

led_row

IS

WHEN

“10111111“=>

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

CASE

led_row

IS

WHEN

“10111111“=>

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

CASE

led_row

IS

WHEN

“10111111“=>

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

CASE

led_row

IS

WHEN

“10111111“=>

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

CASE

led_row

IS

WHEN

“10111111“=>

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

CASE

led_row

IS

WHEN

“10111111“=>

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

--led

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row

led_row<=“01111111“;led_col<=“11111111“;

END

CASE;

END

CASE;

END

IF;

led_row_out<=led_row;

led_col_out<=led

篇3:数字PID调节器算法的研究实验报告

数字PID调节器算法的研究实验报告 本文关键词:调节器,算法,实验,数字,报告

数字PID调节器算法的研究实验报告 本文简介:实验四数字PID调节器算法的研究一、实验目的1.学习并熟悉常规的数字PID控制算法的原理;2.学习并熟悉积分分离PID控制算法的原理;3.掌握具有数字PID调节器控制系统的实验和调节器参数的整定方法。二、实验设备1.THTJ-1型计算机控制技术实验箱2.THVLW-1型USB数据采集卡一块(含37芯

数字PID调节器算法的研究实验报告 本文内容:

实验四

数字

PID

调节器算法的研究

一、实验目的

1.学习并熟悉常规的数字PID

控制算法的原理;

2.学习并熟悉积分分离PID

控制算法的原理;

3.掌握具有数字PID

调节器控制系统的实验和调节器参数的整定方法。

二、实验设备

1.THTJ-1

型计算机控制技术实验箱

2.THVLW-1

型USB

数据采集卡一块(含37

芯通信线、USB

电缆线各1

根)

3.PC

机1

台(含上位机软件“THTJ-1”)

三、实验内容

1.利用本实验平台,设计并构成一个用于混合仿真实验的计算机闭环实时控制系统;

2.采用常规的PI

和PID

调节器,构成计算机闭环系统,并对调节器的参数进行整定,

使之具有满意的动态性能;

3.对系统采用积分分离PID

控制,并整定调节器的参数。

四、实验原理

在工业过程控制中,应用最广泛的控制器是

PID

控制器,它是按偏差的比例(P)、积分(I)、微分(D)组合而成的控制规律。而数字PID

控制器则是由模拟PID

控制规律直接变换所得。

PID

控制规律中,引入积分的目的是为了消除静差,提高控制精度,但系统中引入了积分,往往使之产生过大的超调量,这对某些生产过程是不允许的。因此在工业生产中常用改进的PID

算法,如积分分离PID

算法,其思想是当被控量与设定值偏差较大时取消积分控制;当控制量接近给定值时才将积分作用投入,以消除静差,提高控制精度。这样,既保持了积分的作用,又减小了超调量。

五、实验步骤

1、实验接线

1.1

按图4-1

和图4-2

连接一个二阶被控对象闭环控制系统的电路;

1.2

该电路的输出与数据采集卡的输入端AD1

相连,电路的输入与数据采集卡的输出端DA1

相连;

1.3

待检查电路接线无误后,打开实验平台的电源总开关,并将锁零单元的锁零按钮处于“不锁零”状态。

2、脚本程序运行

2.1

启动计算机,在桌面双击图标THTJ-1,运行实验软件;

2.2

顺序点击虚拟示波器界面上的“开始采集”按钮和工具栏上的脚本编程器按钮;

2.3

在脚本编辑器窗口的文件菜单下点击“打开”按钮,并在“计算机控制算法VBS/

计算机控制技术基础算法/数字PID

调器算法”文件夹下选中“位置式PID”脚本程序并打开,阅读、理解该程序,然后点击脚本编辑器窗口的调试菜单下“步长设置”,将脚本算法的运行步长设为100ms;

2.4

点击脚本编辑器窗口的调试菜单下“启动”;用虚拟示波器观察图4-2

输出端的响应曲线;

2.5

点击脚本编辑器的调试菜单下“停止”,利用扩充响应曲线法(参考本实验附录4)整定PID控制器的P、I、D及系统采样时间Ts等参数,然后再运行。在整定过程中注意观察参数的变化对系统动态性能的影响;

2.6

参考步骤2.4、2.4和2.5,用同样的方法分别运行增量式PID和积分分离PID脚本程序,并整定PID控制器的P、I、D及系统采样时间Ts等参数,然后观察参数的变化对系统动态性能的影响。另外在积分分离PID程序运行过程中,注意不同的分离阈值tem对系统动态性能的影响;

2.7

实验结束后,关闭脚本编辑器窗口,退出实验软件。

五、实验原理

1.被控对象的模拟与计算机闭环控制系统的构成

图中信号的离散化通过数据采集卡的采样开关来实现。

被控对象的传递函数为:

它的模拟电路图如下图所示

2.常规PID控制算法

常规PID控制位置式算法为

对应的Z传递函数为

其增量形式为

3.积分分离PID控制算法

系统中引入的积分分离算法时,积分分离PID算法要设置分离阈E0:

│e(kT)│≤│E0│时,采用PID控制,以保持系统的控制精度。

│e(kT)│>│E0│时,采用PD控制,可使δp减小。积分分离PID控制算法为:

式中Ke称为逻辑系数:

│e(k)│≤│E0│时,

Ke=1

当│e(k)│>│E0│时,

Ke=0

对应的控制方框图为

图中信号的离散化是由数据采集卡的采样开关来实现。

4.数字PID控制器的参数整定

在模拟控制系统中,参数整定的方法较多,常用的实验整定法有:临界比例度法、阶跃响应曲线法、试凑法等。数字控制器参数的整定也可采用类似的方法,如扩充的临界比例度法、扩充的阶跃响应曲线法、试凑法等。下面简要介绍扩充阶跃响应曲线法。

扩充阶跃响应曲线法只适合于含多个惯性环节的自平衡系统。用扩充阶跃响应曲线法整定PID参数的步骤如下:

数字控制器不接入控制系统,让系统处于开环工作状态下,将被调量调节到给定值附近,并使之稳定下来。

记录被调量在阶跃输入下的整个变化过程

在曲线最大斜率处作切线,求得滞后时间τ和被控对象时间常数Tx,以及它们的比值Tx/τ,然后查课本表确定控制器的KP、Ki、Kd及采样周期T。

扩充阶跃响应曲线法通过测取响应曲线的τ、Tx参数获得一个初步的PID控制参数,然后在此基础上通过部分参数的调节(试凑)使系统获得满意的控制性能。

六、调试过程

去掉积分作用和微分作用,只保留比例作用,逐渐减小比例度,直到系统发生持续等幅振荡,如图所示

6-1

由图可得使系统发生振荡的临界比例度为1/2.314

系统的临界振荡周期为1.438

选取控制度为1.05进行参数整定:

根据1.05控制度计算得参数如下:

控制度

T

Kp

Ti

Td

1.05

0.02

0.272

0.705

0.201

a.

采用PID结构,根据参数计算得出参数有如下波形:

6-2

b.

对参数进行微调,保持其他值不变,将Ti都值变为2.0,有如下波形,可看出反应响应变慢,但是静差变小。

6-3

c.

继续不断微调各参数,得出如下图6-4与图6-5两个波形,最终结构选取了图6-5波形的参数,达到要求的结果,反应快,超调小,无静差。

6-4

6-5

d.

采用积分分离算法波形如

图6-6所示:

带积分分离的PID算法的特点是:偏差e(k)较大时,取消积分作用;当偏差e(k)较小时才将积分作用投入;其应用场合:当有较大的扰动或大幅度改变给定值采用积分分离措施。

推荐访问:实验 测试 报告