《计算机控制技术》实验指导书 -...

83
《计算机控制技术》实验指导书 深圳大学光电工程学院 2016 12

Upload: others

Post on 09-Jul-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

《计算机控制技术》实验指导书

深圳大学光电工程学院

2016 年 12 月  

Page 2: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

目录

一.计算机控制实验指导

1.概述........................................................1

2.实验一 A/D 与 D/A 转换......................................3

3.实验二 数字滤波............................................7

4.实验三 D(s)离散化方法的研究................................9

5.实验四 数字 PID 控制算法的研究..............................13

6.实验五 串级控制算法的研究..................................16

7.实验六 解耦控制算法的研究..................................19

8.实验七 最少拍控制算法的研究................................23

9.实验八 具有纯滞后系统的大林控制............................28

10.实验九 线性离散系统的全状态反馈控制.......................30

11.实验十 二维模糊控制器.....................................33

12.实验十一 单神经元控制器...................................36

二.计算机控制对象实验指导

1.实验一 直流电机转速计算机控制实验..........................39 2.实验二 水箱液位计算机控制实验..............................41

三.计算机控制软件说明

1.概 述.......................................................43 2.安装指南及系统要求..........................................47 3.功能使用说明................................................48 4.VBScript 编程及疑难解答.....................................55 5.使用实例....................................................78

Page 3: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

1

概 述

一.系统功能特点

1.以 PC 微机为操作台,高效率支持“计算机控制”的教学实验。

2.系统含有高阶电模拟单元,可根据教学实验需要进行灵活组合,构成各种典型环节

与系统。

3.系统含有界面友好、功能丰富的软件。PC 微机在实验中,除了用作实验测试所需

的虚拟仪器外,还可用作测试信号发生器以及具有很强柔性的数字控制器。

4.系统的硬件、软件设计,充分考虑了开放型、研究型实验的需要。可自己设计实验

内容,构建系统对象,编写控制算法,进行计算机控制技术的研究。

二.系统构成

实验系统由上位 PC 微机(含实验系统软件)、ACCT-I 实验箱、并行通讯线等组成。

ACCT-I 实验箱内装有以 ADμC812 芯片(含数据处理系统软件)为核心构成的数据处理卡,

通过并口与 PC 微机连接。

1.ACCT-I 实验箱简介

ACCT-I 实验箱是一个通用的实验箱。它主要由电源部分 U1 单元,信号源部分 U2 单

元,与 PC 机进行通讯的数据处理单元 U3,元器件单元 U4,非线性单元 U5,U6,U7,模

拟电路单元 U8~U16 组成,详见附图。

电源单元 U1,包括电源开关,保险丝,+5V,-5V,+15V,-15V,0V,1.2V~15V

可调电压的输出。

U2 信号源单元可以产生周期方波信号、周期斜坡信号、周期抛物线信号和正弦信号,

频率幅值可调。

U3 单元为数据处理模块,用于完成数据采集与数据输出,并通过并行口与上位 PC 机

进行通讯。

U4 单元提供了实验所需的电容与电阻,电位器,另提供插接电路,供放置自己选定大

小的元器件。

U5,U6,U7 分别为典型的非线性环节电路。

U8~U16 为由运算放大器与电阻,电容等器件组成的模拟电路单元,由场效应管组成

的电路用于锁零。在“计算机控制”实验中,这些单元常被用于模拟被控对象。

2.软件

系统上位机软件使用及怎样用 VBScript 语言编写计算机控制软件脚本文件详见《计算

Page 4: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

2

机控制技术软件说明》。

三.计算机控制实验系统实验内容

1. A/D 与 D/A 转换

2. 数字滤波

3. D(s)离散化方法的研究

4. 数字 PID 控制算法的研究

5. 串级控制算法的研究

6. 解耦控制算法的研究

7. 少拍控制算法的研究

8. 具有纯滞后系统的大林控制

9. 线性离散系统的全状态反馈控制

10.二维模糊控制器

11.单神经元控制器

四.实验注意事项

1.实验开始前需要对实验箱上的运算放大器电路进行调零。

2.运算放大器边上的锁零点 G 接线要正确。在需要锁零时,可与输入信号同步的锁

零信号相连。如采用 PC 产生输入信号,则连 U3 单元的 G1(同步对应 O1 信号),G2(同

步对应 O2);如采用 U2 单元的输入信号,则连接 U2 单元上的 G(同步对应 U2 单元发生

信号)。锁零主要用于对电容充电后需要放电的场合,一般情况下不需要锁零信号。不需要

锁零时,请把 G 与-15V 相连。

3.系统软件支持锁零信号设定。通过对 O1 的端口输出实现其对应端口 G1 的输出,

通过对 O2 的端口输出实现对应端口 G2 的输出(脚本程序对应处编程设定),G1 与 G2 信号

分别与 O1,O2 信号同步。经常的操作有:用一路输出作为计算机控制时数据处理的 D/A

通道,另一路用来控制锁零信号;当同时需用 O1 与 O2 作为数据处理的 D/A 通道时,处

理方法参照上面第 2 点内容。

4.在设计和连接被控对象或系统的模拟电路时,要特别注意,实验箱上的运放都是反

相输入的,因此对于整个系统以及反馈的正负引出点是否正确都需要仔细考虑,必要时接

入反相器。

Page 5: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

3

实验一 A/D 与 D/A 转换

一.实验目的

1.通过实验,熟悉并掌握实验系统原理与使用方法。 2.通过实验掌握模拟量通道中模数转换与数模转换的实现方法。

二.实验内容

1.利用实验系统完成测试信号的产生 2.测取模数转换的量化特性,并对其量化精度进行分析。 3.设计并完成两通道模数转换与数模转换实验。

三.实验步骤

1.了解并熟悉实验设备,掌握以 ADμC812 为核心的数据处理系统的模拟量通道设计

方法,熟悉上位机的用户界面,学习其使用方法; 2.利用实验设备产生 0~5V 的斜坡信号,输入到一路模拟量输入通道,在上位机软

件的界面上测取该模拟量输入通道当 A/D 转换数为 4 位时的模数转换量化特性; 3.利用实验箱设计并连接产生两路互为倒相的周期斜坡信号的电路,分别输入两路模

拟量输入通道,在上位机界面的界面上测取它们的模数转换结果,然后将该转换结果的数

字量,通过数模转换变为模拟量和输入信号作比较; 4.编写程序实现各种典型测试信号的产生,熟悉并掌握程序设计方法; 5.对实验结果进行分析,并完成实验报告。

四.附录

1.ADμC812 概述

ADμC812 是一个高性能数据采集芯片。芯片内集成了: (1)与 8051 兼容的内核:额定工作频率 12MHz,3 个 16 位定时器∕计数器,32 条

可编程的 I/O 线,9 个中断源(2 个优先级)。 (2)模拟 I/O:一个 8 通道、5μs 转换时间、12 位精度、逐次逼近型 ADC 转换器,

ADC 至 RAM 的 DMA 控制器;两个 12 位电压输出 DAC 转换器。 (3)存贮器:8KB 片内闪速/电擦除程序存贮器(EEPROM),640 字节片内闪速/电擦

除数据存贮器(EEPROM),256 字节片内数据存贮器(SRAM),16KB 外部数据地址空间,

64KB 外部程序地址空间。

(4)片内其它外围:UART 串行 I/O,SPI 串行 I/O,看门狗定时器,电源监视器。

2.实验设备中的模拟量输入通道

Page 6: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

4

(1)主要功能:允许-5V~+5V 信号输入,而至 ADμC812 引脚 ADC 的信号则被限

制在要求的 0V~+5V(芯片参考电压为+5V)。 (2)模拟量输入通道基本电路:见图 1.1 由一个偏移电路环节(+5V)与放大器电路环节(放大倍数 0.5)组成。

(3)模拟量输入通道输入端口:实验箱面板上,有模拟量输入通道输入端口 I1~I6。

3.实验设备中的模拟量输出通道

(1)主要功能:变 ADμC812 引脚 DAC 的单极性输出(0V~+5V)为双极性输出(-

5V~+5V)。 (2)模拟量输出通道基本电路:见图 1.2。 由一个偏移电路环节(-2.5V)与放大器电路环节(放大倍数 2)组成。

(3)模拟量输出通道输出端口:实验箱面板上,有模拟量输出通道输出端口 O1,O2。

4.ADμC812 与上位机的关系与分工

ADμC812 与上位机之间,通过并行口完成数据通讯。以 ADμC812 为核心构成的数据

采集系统主要完成模拟量采集、模数转换、数模转换和模拟量输出(零阶保持器)等功能。

而数据处理与显示,包括有关信号发生、数字滤波、数字控制与虚拟仪器等功能则通过上

位机实现。系统通过 A/D 变换器对模拟信号进行 A/D 转换,转换后的值通过并口通讯传至

上位机,由上位机软件显示;将欲转换的数字量送至 D/A 变换器还原成模拟量。本系统中

A/D,D/A 为 12 位,可以通过脚本程序设置取得其他较低的转换精度以达到实验目的。

R2

R1

+5v

+

ui R0

-

图1.1

+

+R3

-

R5

+

R4

0

ADCx(ADuC812)

+5v

R6

R2

R1

-2.5v

+

DACx R0

-

+

+R3

-

R5

+

R4

OutR6

图1.2

Page 7: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

5

有关 ADμC812 与上位机构成系统的具体使用方法,特别是有关上位机用户界面上的

操作,请参阅“计算机控制上位机程序使用说明书”。

5.两路互为倒相的周期斜坡信号的产生

利用实验设备产生两路相位互差 180°的斜坡信号的电路见图 1.3,其中 R0=R1=R2,R3

=R4。在上位机界面上,选择测试信号为周期斜坡,在 O1 端得到周期斜坡信号,如图 1.4.a所示,在 I2 和 I1 端分别得到如图 1.4.b、1.4.c 所示互为倒相的周期信号。

6.软件编程实现测试信号发生

在上位机软件留给用户的编程接口中,编程实现典型信号的发生如正弦信号,周期方

波信号,周期锯齿波信号,周期抛物线信号。 (1)正弦信号

sin( )y A tω ϕ= + ,2T πω

=

(2)方波

(3)锯齿波

图 1.4

1

1

0 0 A t T

yT t T≤ <⎧

= ⎨ ≤ <⎩

R2

O2 R1+

O1 R0

-

图1.3

+

R3+

-

+

R4

I2

I1

Page 8: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

6

(4)抛物线

1

1

0 0 at t T

yT t T≤ <⎧

= ⎨ ≤ <⎩

21

1

1 02

0

at t Ty

T t T

⎧ ≤ <⎪= ⎨⎪ ≤ <⎩

Page 9: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

7

图2.1

R2

尖脉冲干扰

正弦信号

R1+

R0

-

+

+R3

R4

-

+

实验二 数字滤波

一.实验目的

1.通过实验掌握数字滤波器设计方法。

2.学习并掌握数字滤波器的实验研究方法。

二.实验内容

1.产生实验测试用频率可变带尖脉冲干扰的正弦信号。

2.设计并调试数字化一阶惯性滤波器。

3.设计并调试高阶数字滤波器。

三.实验步骤

1.利用实验装置,设计和连接产生频率可变带尖脉冲干扰正弦信号的电路,并利用数

据采集系统采集该电路输出信号,利用上位机的虚拟仪器功能进行测试,根据测试结果调

整电路参数,使它满足实验要求;

2.根据信号频谱,设计并选择数字化一阶惯性滤波器的参数,编制并运行一阶惯性数

字滤波程序,并观察参数变化对滤波效果的影响;

3.根据信号频谱,设计并选择高阶数字滤波器的参数,编制并运行高阶数字滤波器的

滤波程序,并观察参数变化对滤波效果的影响;

4.改变干扰信号,设计产生如带方波干扰的正弦信号,带随机干扰的正弦信号电路,

同上做实验。

5.对实验结果进行分析,并完成实验报告。

四.附录

1.测试信号的产生

利用实验装置,产生

频率可变带尖脉冲干扰正

弦信号的参考电路,如图

2.1 所示: 2.一阶惯性滤波

器及其数字化 一阶惯性滤波器的传

递函数为:

Page 10: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

8

( ) 1( )( ) 1F

Y sG sX s sτ

= =+

利用一阶差分法离散化,可以得到一阶惯性数字滤波算法:

( ) ( ) (1 ) ( 1)T Ty k x k y kτ τ

= + − −

其中 T 为采样周期,τ 为滤波时间常数。T 和τ 必须根据信号频谱来选择。 3.高阶数字滤波器 高阶数字滤波器算法很多,这里给出一种四阶加权平均算法:

1 2 3 4( ) ( ) ( 1) ( 2) ( 3)y k A x k A x k A x k A x k= + − + − + −

其中权系数 iA 满足:4

11i

iA

=

=∑ ,类似地,Ai 必须根据信号频谱来选择。

4.实验系统程序编制与调试 参考计算机控制上位机程序软件使用说明书。

Page 11: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

9

实验三 D(s)离散化方法的研究

一.实验目的

1.学习并掌握数字控制器的混合仿真实验研究方法。 2.熟悉常用的从连续化途径(先按连续系统设计再离散化)设计数字控制器的方法。 3.学习并掌握将模拟控制器 D(s)离散化为数字控制器 D(z)的方法。 4.通过混合仿真实验,对 D(s)的各种离散化方法作比较研究,并对 D(s)离散化前后闭

环系统性能作比较研究,以加深对计算机控制系统特性的理解。

二.实验内容

1.按连续系统设计串联校正控制器 D(s),并利用实验设备测取该连续系统的动态特性。 2.利用实验设备,设计并构成用于混合仿真实验的计算机闭环控制系统。 3.采用保持器等价、匹配 Z 变换、一阶差分和双线性变换等方法离散化 D(s),从而得

到控制算法,并加以实现。 4.研究采样控制周期变化时,不同离散化方法对闭环控制系统性能的影响。 5.对上述连续系统和计算机控制系统的动态性能作比较研究。

三.实验步骤 1.在已知二阶被控对象传递函数的条件下,用连续系统综合方法设计串联校正控制器

D(s);再利用实验设备,设计并连接用于模拟该闭环控制系统的电路,在上位机测取并记

录其阶跃响应。 2.设计并连接模拟二阶被控对象的电路,并利用 ADμC812 构成的数据采集系统完成

计算机控制系统的模拟量输入、输出通道的设计和连接。利用上位机的虚拟仪器功能对此

模拟二阶被控对象的电路进行测试,根据测试结果调整电路参数,使它满足实验要求。 3.选定采样控制周期,采用保持器等价法离散化 D(s),再从 D(z)推导控制算法,然后

在上位机上完成该算法编程、调试和运行。以阶跃信号作为系统输入,观测系统输出的屏

幕显示,并作记录。 4.以相同的采样控制周期,采用匹配 Z 变换法离散化 D(s),再从 D(z)推导控制算法,

然后在上位机上完成该算法编程、调试和运行。以阶跃信号作为系统输入,观测系统输出

的屏幕显示,并作记录。 5.以相同的采样控制周期,采用一阶差分法离散化 D(s),再从 D(z)推导控制算法,然

后在上位机上完成该算法编程、调试和运行。以阶跃信号作为系统输入,观测系统输出的

屏幕显示,并作记录。 6.以相同的采样控制周期,采用双线性变换法离散化 D(s),再从 D(z)推导控制算法,

然后在上位机上完成该算法编程、调试和运行。以阶跃信号作为系统输入,观测系统输出

Page 12: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

10

的屏幕显示,并作记录。 7.将采样控制周期减小,重复 3-6,观测采样控制周期减小对系统阶跃响应的影响。 8.将采样控制周期不断增加,重复 3-6,观测采样控制周期增大对系统阶跃响应的

影响。如有系统不稳定情况发生,记下此时的采样控制周期和所采用的离散化方法。 9.对实验结果进行比较、分析和研究,写成实验报告。

四.附录

1.按连续系统串联校正及其动态性能 实验系统被控对象的传递函数为

5 50( )0.2 (0.5 1) ( 2)

G ss s s s

= =+ +

(3-1)

具有串联校正控制器 ( )G s 的线性连续系统的结构方块图如图 3.1 所示

按以下要求设计期望系统的开环对数幅频特性: (1)超调量 20%pM ≤

(2)调节时间(过渡过程时间) 1st s≤

(3)校正后系统开环增益(静态速度误差系数) 25%vK ≥

从期望系统的开环对数幅频特性中,减去上述二阶被控对象的对数幅频特性,可以得

到串联校正控制器的对数幅频特性,由此得到其传递函数 0.5 1( )0.05 1

sD ss+

=+

(3-2)

已知 ( )G s 和 ( )D s 后,参阅图 3.1 所示系统结构,设计系统被控对象的模拟电路如图

3.2 所示。

e(t)r(t)

图3.1

D(s)u(t)

G(s)y(t)

Page 13: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

11

2.计算机闭环控制系统的混合仿真

实验系统被控对象的传递函数见式(3-1),它可以用图 3.3 所示电路来模拟。 图中电路可利用实验箱 U9 、U11 等单元组成。其中 Om 端连实验箱 U3 单元 O1,In

端连实验箱 U3 单元 I1,以便利用该单元的数据处理功能与上位机的虚拟仪器功能观测和

记录系统动态过程,用于对比分析。

c(t)

图3.2

200k

200k

r(t)

200k

+

-

+

R1

+

+

+

100k

C

-

+

R4

R3R2

500k1u

- 200k

+

+

-

1u

图3.3

+

+

Om 100k500k1u

- 200k

+

+

-

1u

In

图3.4

R(t) e(t)D(z) Z.0.H G(s)

y(t)

Page 14: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

12

计算机控制系统的方框图如图 3.4 所示,除了虚线框内部分用电路模拟外,其余部分

由上位机和数据处理系统完成。

图 3.4 中,Z.0.H 为零阶保持器,其传递函数为1 Tses−− (以后实验中均同此义)。

3. ( )D s 的离散化方法 (1)保持器等价

20 1

20 1

1 10 ( 9)( ) [ ( )]1

Ts T

T

e e zD z Z D ss e z

− − −

− −

− − += =

20 20( ) ( 1) 10 ( ) ( 9) ( 1)T Tu k e u k e k e e k− −= − + − + − (2)匹配 Z 变换 对应 D(s)的 1 20s = − 、 2 2s = − ,有

201

Tz e−= 、2

2Tz e−=

故2 1

20 1

(1 )( )1

T

T

K e zD ze z

− −

− −

−=

从0 1

lim ( ) lim ( )s z

D s D z→ →

= 确定 K 得20

2

11

T

T

eKe

−=

所以 20 2( ) ( 1) ( ) ( 1)T Tu k e u k Ke k Ke e k− −= − + − − (3)一阶后向差分

以11 zs

T

−−= 代入

0.5 1( )0.05 1

sD ss+

=+

1 1

11

0.5 0.5 1 0.5 0.5( ) 0.050.05 0.05 0.05 10.05

T z T zD zT z T z

T

− −

−−

+ − + −= = ⋅

+ − + −+

所以 0.05 0.5 0.5( ) ( 1) ( ) ( 1)

0.05 0.05 0.05Tu k u k e k e k

T T T+

= − + − −+ + +

(4)双线性变换

以1

1

2 11

zsT z

−= ⋅

+代入

0.5 1( )0.05 1

sD ss+

=+

1 1

11

1 (1 ) 1 1 (1 )( ) 0.10.1 (0.1 ) 0.1 10.1

T T z T T zD z TT T z T zT

− −

−−

+ − − + − −= = ⋅

−+ − − + −+

所以 0.1 1 1( ) ( 1) ( ) ( 1)0.1 0.1 0.1

T T Tu k u k e k e kT T T

− + −= − + − −

+ + +

Page 15: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

13

实验四 数字 PID 控制算法的研究

一.实验目的

1.学习并掌握常规数字 PID 及积分分离 PID 控制算法的原理和应用。

2.学习并掌握数字 PID 控制算法参数整定方法。

3.学习并掌握数字控制器的混合仿真实验研究方法。

二.实验内容

1.利用实验设备,设计并构成用于混合仿真实验的计算机闭环控制系统。 2.采用常规数字 PID 控制,并用扩充响应曲线法整定控制器的参数。 3.采用积分分离 PID 控制,并整定控制器的参数。

三.实验步骤

1.设计并连接模拟二阶被控对象的电路,并利用 ADμC812 构成的数据采集系统完成

计算机控制系统的模拟量输入、输出通道的设计和连接。利用上位机的虚拟仪器功能对此

模拟二阶被控对象的电路进行测试,根据测试结果调整电路参数,使它满足实验要求。 2.在上位机完成常规数字 PID 控制器的计算与实验结果显示、记录,并用扩充响应曲

线法整定 PID 控制器的参数,在整定过程中注意观察参数变化对系统动态性能的影响。 3.在上位机完成积分分离 PID 控制器的计算与实验结果显示、记录,改变积分分离值,

观察该参数变化对系统动态性能的影响。 4.对实验结果进行分析,并完成实验报告。

四.附录

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

实验系统被控对象的传

递函数为

5 2.5( )( 1) (0.5 1)

G ss s

= ⋅+ +

它可以用图 4.1 所示电

路来模拟,计算机控制系统

的方框图如图 4.2 所示,虚

InOm

图4.1

+

+

R0

R1

-

C1

R2

+

+

C2

R3

-

Page 16: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

14

线框内部分由上位机和数据处理系统完成。

参数可以取为 R0=100k,R1=500k,C1=2u,R2=200k,R3=500k,C2=1u。 2.常规数字 PID 控制算法

常规的 PID 控制律为 0

1 ( )( ) [ ( ) ( ) ]t

p di

de tu t K e t e t dt TT dt

= + +∫

采用一阶差分法离散化后,可以得到常规数字 PID 控制位置式算法

1

( ) { ( ) ( ) [ ( ) ( 1)]}k

dp

ii

TTu k K e k e i e k e kT T=

= + + − −∑

简记为 1

( ) ( ) ( ) [ ( ) ( 1)]k

iu k Pe k I e i D e k e k

=

= + + − −∑

这里 P、I、D 参数分别为 pP K= , pi

TI KT

= , dp

TD KT

=

采用增量式形式有:

( ) ( 1) [ ( ) ( 1)] ( ) [ ( ) 2 ( 1) ( 2)]u k u k P e k e k Ie k D e k e k e k= − + − − + + − − + − 3.积分

分离 PID 控制算法 设积分分离值为 EI,则积分分离 PID 控制算法可表达为下式:

( ) ( ) ( ) | ( ) |( )

( ) ( ) | ( ) |p I D

p D

u k u k u k e k EIu k

u k u k e k EI

+ + <⎧⎪= ⎨ + >⎪⎩ 其中 ( ) ( )Pu k Pe k=

( ) ( 1) ( )I Iu k u k Ie k= − + ( ) [ ( ) ( 1)]Du k D e k e k= − −

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

(1)按扩充阶跃响应曲线法整定 PID 参数 在模拟控制系统中,参数整定方法较多,常用的实验整定方法有:临界比例度法、阶

跃响应曲线法、试凑法等。数字控制时也可采用类似方法,如扩充的临界比例度法、扩充

的阶跃响应曲线法与试凑法等等。下面简要介绍扩充阶跃响应曲线法。

R(t) e(t) e(k)PID G(s)

图4.2

Z.0.Hu(k) y(t)

Page 17: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

15

扩充阶跃响应曲线法只适用于含多惯

性环节的自平衡系统。用扩充响应曲线法整

定 PID 参数的步骤如下: (a)数字控制器不接入控制系统,让

系统处于开环工作状态下,将被调量调节到

给定值附近,并使之稳定下来。 (b)记录被调量在阶跃输入下的整个

变化过程曲线如图 4.3 所示。 (c)在曲线 大斜率处做切线,求得

滞后时间τ ,被控对象时间常数 τT 以及它们

的比值 ττ /T ,查表 4-1 控制器的 Kp,Ki,Kd 及采样周期 T。

(d)在运行中,对上述参数作适当调

整,以获得满意的性能。 表 4-1

控制度 控制律 T KP TI TD

PI 0.1τ 0.84 /Tτ τ 0.34τ - 1.05

PID 0.05τ 1.15 /Tτ τ 2.0τ 0.45τ

PI 0.2τ 0.78 /Tτ τ 3.6τ - 1.2

PID 0.16τ 1.0 /Tτ τ 1.9τ 0.55τ

PI 0.5τ 0.68 /Tτ τ 3.9τ - 1.5

PID 0.34τ 0.85 /Tτ τ 1.62τ 0.82τ

扩充响应曲线法通过测取阶跃响应曲线的τ ,Tτ 参数获得一个初步的 PID 控制参数,

然后在此基础上通过部分参数的调节(试凑)获得满意的控制性能。参数对性能的影响参

见(2)。

(2)PID 参数对性能的影响

增大比例系数 Kp 一般将加快系统的响应,在有静差的情况下有利于减小静差。但过大

会使系统有较大的超调,并产生振荡,使系统稳定性变坏。

增大积分时间 Ti 有利于减小超调,减小振荡,使系统更加稳定,但系统静差的消除将

随之减慢。

增大微分时间 Td 有利于加快系统响应,使超调量减小,稳定性增加,但系统对扰动的

抑制能力减弱,对扰动有较敏感的响应。

图 4..3 阶跃输入响应曲线

Page 18: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

16

实验五 串级控制算法的研究

一.实验目的

1.熟悉并掌握串级控制系统的结构、特点及其混合仿真研究方法。 2.熟悉并掌握串级控制系统的控制器参数整定方法。

二.实验内容

1.设计一已知三阶被控对象的串级控制系统,并完成它的混合仿真。 2.学习用逐步逼近方法整定串级控制所包含的内、外两环 PI 控制器参数。

三.实验步骤

1.设计并连接模拟三阶被控对象的电路,并利用 ADμC812 构成的数据采集系统完成

计算机控制系统的两路模拟量输入、一路模拟量输出通道的设计和连接。利用上位机的虚

拟仪器功能对此模拟三阶被控对象的电路进行测试,根据测试结果调整电路参数,使它满

足实验要求。 2.在上位机完成内、外两环的常规数字 PI 控制器的算法编程、调试。特别注意内、

外两环的采样控制周期是不同的。通常外环的采样控制周期是内环的 3-10 倍。 3.将外环断开,先整定内环的常规数字 PI 控制器参数,在整定过程中注意观察参数

变化对系统动态性能的影响。 4.将内环的常规数字 PI 控制器参数按整定好的值固定下来,再整定外环的常规数字

PI 控制器参数,在整定过程中注意观察参数变化对系统动态性能的影响。 5.如果对上两步参数整定的结果不满意,可以将外环的常规数字 PI 控制器参数固定

下来,重新整定内环的常规数字 PI 控制器参数。如果仍不能得到满意的结果,可再重复步

骤 4,直至满意为止。 6.对实验结果进行分析,并完成实验报告。

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

实验系统被控对象的传递函数为20 1( )

(0.05 1)(2 1)G s

s s s= ⋅

+ +

它可以用图 5.1 所示电路来模拟

Page 19: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

17

y(k)

+

C2

C1

D1(

z)

e(k)

Om

R0

R(t)

-R3 +

+

R1 -

R2

+

+R4

C3

- +

D2(z

)u(

k)

图5.1

Z.0.

H0.

05s+

15

+R

R

- +

I1 I2

s12s

+1

4I2

I1y(

t)

图5.2

Page 20: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

18

计算机串级控制系统的方框图如图 5.2 所示,该图中,除了虚线框内部分用电路模拟

外,其余部分由上位机和数据处理系统完成。 2.常规数字 PI 控制算法

常规的 PI 控制律为0

1( ) [ ( ) ( ) ]t

pi

u t K e t e t dtT

= + ∫

采用一阶差分法离散化后,可以得到常规数字 PI 控制算法

简记为1

( ) ( ) ( )]k

pp

ii

K Tu k K e k e i

T =

= + ∑

或者 ( ) ( 1) [ ( ) ( 1)] ( )u k u k P e k e k Ie k= − + − − +

这里 P、I 参数分别为 pP K= , pi

TI KT

=

3.逐步逼近整定法的整定步骤:

(1)外环断开,把内环当作一个单闭环控制系统,并按单闭环控制系统的 PID 控制器

参数整定方法(如实验四介绍的扩充响应曲线法),求取内环 PID 控制器参数。 (2)将内环 PID 控制器参数置于整定值上,闭合外环。把内环当作外环的一个等效环

节,外环又成为一个单闭环控制系统,再按单闭环控制系统的 PID 控制器参数整定方法(如

扩充响应曲线法),求取外环 PID 控制器参数。 (3)将外环 PID 控制器参数置于整定值上,闭合外环。再按上述方法求取内环 PID

控制器参数。至此,完成了一次逼近循环。如控制系统性能已满足要求,参数整定即告结

束。否则,就回到步骤(2)。如此循环下去,逐步逼近,直到控制系统性能满足要求为止

Page 21: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

19

实验六 解耦控制算法的研究 一.实验目的

1.熟悉并掌握多变量耦合系统的结构、特点及其混合仿真研究方法。 2.熟悉并掌握一种常用的多变量系统解耦控制算法的设计和实现方法。

二.实验内容

1.用前馈补偿解耦法设计一已知的两输入、两输出有耦合被控对象的解耦控制系统,

并完成它的混合仿真。 2.熟悉解耦控制系统的控制器参数调试方法。 3.对无耦合系统、有耦合而未解耦系统以及有耦合且采用解耦控制系统的控制作比较

研究。

三.实验步骤

1.设计并连接模拟两输入、两输出有耦合被控对象的电路,并利用 ADμC812 构成的

数据采集系统完成计算机控制系统的两路模拟量输入、两路模拟量输出通道的设计和连接。

利用上位机的虚拟仪器功能对此模拟三阶被控对象的电路进行测试,根据测试结果调整电

路参数,使它满足实验要求。 2.按已知的两输入、两输出有耦合被控对象的结构和传递函数,用前馈补偿解耦法设

计解耦控制算法,并在上位机编写、调试和运行相应的控制程序。 3.按两个独立的单闭环控制系统的整定各自的 PID 控制器参数。 4.改变控制器参数,观测并记录实验结果。 5.对实验结果进行分析,并完成实验报告。

四.附录

1.实验系统的结构和被控对象参数

实验所采用的两输入、两输出解耦控制系

统的结构方块图,如图 6.1 所示:图中虚线框

内部分是两输入、两输出有耦合的被控对象,

其传递函数 G(s)为:

111( )

0.5 1G s

s=

+

12 ( ) 0G s =

图6.1

M2 G22

M1

G21

G12

G11

c2

c1

Page 22: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

20

21( ) 0.5G s =

221( )

0.1 1G s

s=

+ (6-1)

该两输入、两输出有耦合的

被控对象可用图 6.2 所示电路模

拟,参数选择符合传递函数要

求,不妨取为 R0=R1=100k,R2=R3=500k,C1=1uF,R4=

R5=100k,C2=1uF,R6=R7=

100k,R8=200k。 实验所采用的两输入、两输

出解耦控制系统的混合仿真系

统方框图如图 6.3 所示:

2.前馈补偿解耦法

见图 6.3,图中 12 ( )D z 和 21( )D z 构成解耦网络,它们是先按连续系统设计 ( )D s 然后离

散化得到 ( )D z 的。 见图 6.4,这是一个连续的采用前馈补偿解耦的两输入、两输入解耦控制系统的方块结

构图。图中,如无解耦网络存在, 1M 不仅影响 1C 而且影响 2C ;同样地, 2M 不仅影响 2C而且影响 1C 。

在图 6.4 中,为利用前馈补偿消除上述耦合影响,令

11 12 2

21 22 1

( ) ( ) 0 0 ( ) ( ) 0 0

C t C t MC t C t M

+ = ≠⎧⎨

+ = ≠⎩

当 (6-2)

O2+ +

I2

图6.2

+ +

O1

R4

R5

-

C2

+

+

R0

R1

- I1R2

R8

R6 -

+

R7

+

C1

R3

-

d2(k)

d1(k)

r2(k)

r1(k)

u2(k)e2(k)PID2

PID1e1(k) u1(k)

M1(t)

Z.0.H

Z.0.H

图6.3

D21(z)

D12(z)

M2(t)c2(t)

G(s)

c1(t)

Page 23: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

21

因而有12 12 11

21 21 22

( ) ( ) ( ) 0( ) ( ) ( ) 0

G s D s G sG s D s G s

+ =⎧⎨ + =⎩

(6-3)

从而得到连续的解耦网络数学模型

12

1112

21 21

22

( )1( )1 ( )

( )( ) 1 ( ) 1

( )

G sG sD s

D sD s G s

G s

⎛ ⎞−⎜ ⎟⎛ ⎞ ⎜ ⎟= =⎜ ⎟ ⎜ ⎟⎝ ⎠ −⎜ ⎟⎝ ⎠

(6-4)

在实验系统中,

1212

11

( )( )( )

G sD sG s

= − , 2121

22

( )( ) 0.5(0.1 1) (0.05 0.5)( )

G sD s s sG s

= − = − + = − +

用一阶差分法将 ( )D s 离散化得到12

21

1 ( )( )

( ) 1D z

D zD z

⎛ ⎞= ⎜ ⎟⎝ ⎠

(6-5)

其中 12 ( ) 0D z = ,1

121

0.05(1 ) 0.05 0.05( ) 0.5 ( 0.5)zD z zT T T

−−−

= − − = − + +

在实验系统中, 12

211

( ) 0.05 0.05( ) ( 0.5)( )

d zD z zM z T T

−= = − + + (6-6)

于是 2 1 10.05 0.05( ) ( 0.5) ( ) ( 1)d k m k m kT T

= − + + − (6-7)

于是得到解耦控制算法

1 1( ) ( )m k u k= (6-8)

r2(t)

r1(t)

u2(t)e2(t)PID2

PID1e1(t) u1(t)

M1(t)

M2(t)

图6.4

G22

D21(s)

D12(s)

G21

G12

G11

c2(t)

c1(t)

Page 24: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

22

2 2 2 2 1 10.05 0.05( ) ( ) ( ) ( ) ( 0.5) ( ) ( 1)m k u k d k u k u k u kT T

= + = − + + − (6-9)

其中

1 1 1 1 1 1 1

1 1 1 1

( ) ( 1) [ ( ) ( 1)] ( )[ ( ) 2 ( 1) ( 2)]

u k u k P e k e k I e kD e k e k e k

= − + − − ++ − − + −

(6-10)

2 2 2 2 2 2 2

2 2 2 2

( ) ( 1) [ ( ) ( 1)] ( )[ ( ) 2 ( 1) ( 2)]

u k u k P e k e k I e kD e k e k e k

= − + − − ++ − − + −

(6-11)

3.控制器参数调试

经前馈补偿解耦法解耦以后,两输入、两输入连续控制系统的方块结构图将等价于如

图 6.5 所示系统,成为两个相互独立的单闭环控制系统,故调试可分以下两步进行: (1)在实际系统中,由于被控对象模型的误差,按前馈补偿解耦法设计的解耦算法的

参数,需要按是否达到解耦效果进行调试。为此,先将两个 PID 控制器置为比例环节,分

别加 r1(t)和 r2(t),测试解耦效果,调试解耦参数。 (2)在解耦效果达到以后,两个 PID 控制器参数就可以分别按两个相互独立的单闭环

控制系统各自整定。

4.关于对比分析 上述解耦控制的 PID 控制结果同图 6.2 中去掉电阻 R8 后的系统,用 PID 控制的实验结

果相比较,以及同不加解耦的图 6.2 系统 PID 控制实验结果相比较。

r2(t)

r1(t)

图6.5

PID2

PID1

e2(t)

e1(t)

G22(s)

G22(s)

Z.0.H

Z.0.H

c2(t)

c1(t)

Page 25: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

23

实验七 最少拍控制算法的研究

一.实验目的

1.学习并掌握 少拍控制器的设计和实现方法,并研究 少拍控制系统对三种典型输

入的适应性及输出采样点间的纹波。 2.学习并掌握 少拍无纹波控制器的设计和实现方法,并研究输出采样点间的纹波消

除以及 少拍无纹波控制系统对三种典型输入的适应性。

二.实验内容

1.设计并实现对象具有一个积分环节的二阶系统的 少拍控制,并通过混合仿真实验

研究该闭环控制系统对三种典型输入的适应性以及输出采样点间的纹波。 2.设计并实现对象具有一个积分环节的二阶系统的 少拍无纹波控制,并通过混合仿

真实验观察,该闭环控制系统输出采样点间纹波的消除,以及系统对三种典型输入的适应

性。

三.实验步骤

1.设计并连接模拟由一个积分环节和一个惯性环节组成的二阶被控对象的电路,并利

用 ADμC812 构成的数据处理系统完成计算机控制系统的模拟量输入、输出通道的设计和

连接。 2.利用上位机的虚拟仪器功能对此模拟二阶被控对象的电路进行测试,分别测取惯性

环节的放大倍数、时间常数以及积分环节的积分时间常数。 在上位机完成阶跃输入下 少拍控制计算与实验结果显示、记录。先完成阶跃输入下 少

拍控制器的参数设计和调试,然后再用另外两种典型信号(等速与等加速)作为系统输入,

观察系统输出并记录。 3.在上位机完成阶跃输入下 少拍无纹波控制器的计算与实验结果显示、记录。先完

成阶跃输入下 少拍无纹波控制器的参数设计和调试,然后再用另外两种典型信号(等速

与等加速)作为系统输入,观察系统输出并记录。 4.对记录的实验结果进行分析,写出实验报告。 四.附录

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

实验系统被控对象的传递函数为1

( )( 1)

KG ss T s

=+

(7-1)

它可以用图 7.1 所示电路来模拟,计算机控制系统的方框图如图 7.2 所示:

Page 26: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

24

少拍控制的效果对被

控对象的参数变化非常敏

感,实验中必须测取模拟对

象的实际参数。 2.系统环节参数测

(1)惯性环节 1

1 1K

T s +的参数测定

测取图 7.1 中第一环节

模拟电路的阶跃响应,根据

阶跃响应的稳态值和阶跃信号幅值确定 1K 和 1T 。

由 1( )yKu∞

= 确定 1K ,其中u -阶跃信号幅值

( )y ∞ -环节输出稳定值

根据 1 1

1

( ) 0.63( )

y Ty

=∞

确定 1T

(2)积分环节时间常数的测定 如要测图 7.1 第二个环节的积分时间常数,取同样阻值 R2 的电阻并联于 C2 两端,于

是变成一个惯性环节2

11T s +,同(1)法测取 2T , 2 2

2

( ) 0.63( )

y Ty

=∞

, 2T 即积分时间常数。

(3)系统 K 的确定

于是对于式(7-1)中的 K ,有 1

2

KKT

= 。

3.等速输入下最少拍控制器的设计及其对其它典型输入的适应性 见图 7.2,对实验系统来说,加零阶保持器后对象的 S 传递函数为

1

1( )( 1)

Tse KG ss s T s

−−=

+ (7-2)

选择采样控制T ,将上述 S 传递函数离散化,可得到加零阶保持器后对象的 Z 传递函

图7.2

r(t) e(t)D(z)

e(k)Z.0.H G(s) y(t)

InOm

图7.1

+

+

R0

R1

-

C1

R2

+

+

C2

-

Page 27: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

25

图 7.3a 阶跃信号输入

1 1 1

1

/ / /1 21 1 1 1

/1 1

( ) ( )( )(1 )(1 )

T T T T T T

T T

T T T e z T T e Te zG z Kz e z

− − −− −

−− −

− + + − −=

− − (7-3)

考虑等速输入下 少拍无差条件,可以得到 1 1( ) (2 )z z zφ − −= − (7-4)

1 21 ( ) (1 )z zφ −− = − (7-5)

所以有 1/1 1

1 1

( ) 1 ( ) (2 )(1 )( )( ) ( ) 1 ( ) (1 )(1 )

T TU z z z e zD zE z G z z KA z Bz

φφ

−− −

− −

− −= = =

− − +

1 1/ /1 2

1 2

1 2 (1 2 )1 ( 1)

T T T Te z e zKA B z Bz

− −− −

− −

− + +=

+ − − (7-6)

其中 1/1 1

T TA T T e T−= + − , 1 1/ /1 1( ) /T T T TB T T e Te A− −= − −

由此可得等速输入下 少拍算法:

1 1/ /

2( ) (1 ) ( 1) ( 2) ( )

1 2 ( 1) ( 2)T T T T

u k B u k Bu k e kKA

e ee k e kKA KA

− −

= − − + − +

+− − + −

(7-7)

差系统设计的控制器,在等速输入下可使闭

环系统的输出在第二拍(即两个采样周期)

跟上,此后在采样点上达到无差,见图 7.3b)。 对等加速输入来说,系统出现稳态误

差,其稳态的输出误差值为2 1T = ,见图

7.3c)。 对阶跃输入来说,虽然输出在第二拍开

始也达到无差,但在输出的第一拍出现了

100%的超调,见图 7.3a)。

4.等速输入下最少拍无纹波控制

器的设计及其对其它典型输入的适应

图 7.3b 等速信号输入

图 7.3c 抛物线输入

Page 28: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

26

图 7.4c 抛物线无纹波

按 少拍无差系统设计, 多只能达到采样点上无偏差,而不能保证采样点间无纹波。

少拍无纹波设计,不仅要做到采样点上无偏差,而且要做到采样点间无纹波。 已经得到实验系统的加零阶保持器后对象的 Z 传递函数,如式(7-3)所示。根据等

速输入下 少拍无纹波条件,可以得到 1 1 1

1 2( ) (1 )( )z Bz a a z zφ − − −= + + (7-8) 1 2 11 ( ) (1 ) (1 )z z bzφ − −− = − + (7-9)

两 式 联 立 求 解 确 定 1 2, ,a a b , 取 有 1 2

3 22 1

BaB B

+=

+ +, 2 2

(2 1)2 1Ba

B B− +

=+ +

2

(2 1)2 1

B BbB B

+=

+ +

有 1/ 1 1

1 21 1

( ) 1 ( ) (1 )( )( )( ) ( ) 1 ( ) (1 )(1 )

T TU z z e z a a zD zE z G z z KA z bz

φφ

− − −

− −

− += = =

− − +

1 1/ /1 21 2 1 2

1 2

1 ( )1 ( 1)

T T T Ta a a e z a e zKA b z bz

− −− −

− −

+ − −=

+ − −

(7-

10)

由此可得等速输入下 少拍无纹波算法

图 7.4a 阶跃无纹波 图 7.4b 等速无纹波

Page 29: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

27

1 1

1

/ /2 1 2

( ) (1 ) ( 1) ( 2) ( )

( 1) ( 2)T T T T

au k b u k bu k e kKA

a a e a ee k e kKA KA

− −

= − − + − +

−+ − − −

(7-11)

在不同典型输入下,按等速输入下 少拍无纹波条件设计系统的时域响应如图

7.4a),b),c)所示。 按等速输入下 少拍无纹波条件设计的系统与按等速输入下 少拍无差条件设计的系

统相比较,可见: (1)在等速输入下, 少拍无纹波系统不仅做到采样点上无偏差,而且能做到采样点

间无纹波。但是,其过渡过程比 少拍无差系统延长了一拍。 (2) 少拍无纹波系统只在纹波问题上有改进,在对输入的适应性上,和 少拍无差

系统一样,没有改善。

Page 30: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

28

实验八 具有纯滞后系统的大林控制

一.实验目的

通过混合仿真实验,学习并掌握用于具有纯滞后系统的大林控制算法的设计及其实现。

二.实验内容

针对一个具有纯滞后的被控对象,设计并实现大林控制,并通过混合仿真实验观察振

铃现象。

三.实验步骤

1.设计并连接模拟具有一个惯性环节的被控对象的电路,利用 ADμC812 构成的数据

处理系统完成计算机控制系统的模拟量输入、输出通道的设计和连接,利用上位机模拟被

控对象的纯滞后。利用上位机的虚拟仪器功能对此模拟被控对象的电路进行测试,根据测

试结果调整电路参数,使它满足实验要求。 2.编制程序并运行,完成所设计的大林算法的控制计算,观察系统输出中的振铃现象。 3.对实验结果进行分析,并写出实验报告。

四.附录

1.被控对象模拟与计算机闭环控制系统的构成 实验系统被控对象的传递函数为

01 1

( )1 1

ssKe KG s e

T s T s

θθ

−−= = ⋅

+ + (8-1)

上式中,滞后环节se θ−由

上位机软件模拟,θ 为滞后时

间,这里取 nTθ = ,T 为采

样周期。 对象传递函数的其余部

分可以用图 8.1 所示电路来模

拟,计算机控制系统的方框图

如图 8.2 所示,这里 10K = ,

1 1T = , 1n = 。

InOm

图8.1

+

+

R0

R1

-

C1

R

+

+

-

R

Page 31: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

29

2.大林算法 根据被控对象的 S 传递函数式(8-1),大林算法选定

0

( )1

sesT s

θ

φ−

=+

nTθ = (8-2)

0T 按控制要求选择。作为闭环控制的综合目标,与 ( )sφ 相对应的

0

0

/ 1

/ 1

1 (1 )( ) [ ( )]1

T TTs n

T T

e e zz Z ss e z

φ φ−− − −

− −

− −= ⋅ =

− (8-3)

而包含零阶保持器被控对象的 S 传递函数为

01

1 1( ) ( )1

Ts Ts se e KeG s G ss s T s

θ− − −− −= ⋅ = ⋅

+

离散化后得到1

1

/ 1

/ 1

(1 )( ) [ ( )]1

T T n

T T

K e zG z Z G se z

− − −

− −

−= =

− (8-4)

于是可以得到大林算法控制器的 Z 传递函数 0 1

0 01

/ / 1

/ // 1 1

(1 )(1 )( )(1 )[1 (1 ) ]

T T T T

T T T TT T n

e e zD zK e e z e z

− − −

− −− − − −

− −=

− − − − (8-5)

由此得到大林算法

0 0

0 01

1 1

/ /

/ //

/ /

( ) ( 1) (1 ) ( 1)(1 ) (1 ) ( ) ( 1)(1 ) (1 )

T T T T

T T T TT T

T T T T

u k e u k e u k ne e ee k e k

K e K e

− −

− −−

− −

= − + − − −

− −+ ⋅ − −

− −

(8-6)

e(k)e(t)r(t)

D(z)T1s+1

图8.2

Z.0.Hk

e-nTs y(t)

Page 32: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

30

实验九 线性离散系统的全状态反馈控制

一.实验目的

1.学习并掌握用极点配置方法设计线性离散系统的全状态反馈控制算法。 2.用混合仿真方法研究控制参数对系统性能的影响。

二.实验内容

1.设计并实现一典型二阶系统的全状态反馈计算机控制混合仿真系统。 2.通过混合仿真实验研究参数变化对系统性能的影响。

三.实验步骤

1.设计并连接具有一个积分环节的二阶被控对象的模拟电路,并利用 ADμC812 构成

的数据采集系统完成计算机控制系统的模拟量输入、输出通道的设计和连接。利用上位机

的虚拟仪器功能对此模拟二阶被控对象的电路进行测试,根据测试结果调整电路参数,使

它满足实验要求。 2.用极点配置方法,设计一给定的二阶系统的计算机控制全状态反馈系数;按设计的

全状态反馈系数编写全状态反馈控制程序,运行,观察并记录该混合仿真系统的阶跃响应。 3.再次调用全状态反馈控制程序,改变全状态反馈系数后运行,观察并记录该混合仿

真系统的阶跃响应的变化。 4.将以上实验结果与全数字仿真结果进行比较分析,并完成实验报告。

四.附录

1.典型二阶系统被控对象计算机控制的极点配置设计方法

(1)典型二阶系统全状态反馈计算机控制系统的结构方块图 实验用典型二阶系

统全状态反馈计算机控

制系统的结构方块图,

如图 9.1 所示 如图所示,该系统

是一个采样控制系统。

其被控对象是连续的,

反馈信号经过采样、模

数转换进入计算机,用

计算机实现的数字控制

器是离散的。控制器输

u(t)

图9.1

e(k)

k1

k2

e(t)Z.0.H

s+11 x2 x1

s1 y(t)

Page 33: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

31

出经过零阶保持器恢复成模拟信号,加到被控对象上。 (2)被控对象连续状态方程及其离散化 为了设计被控对象控制器,需要根据给出的被控对象连续传递函数,对于

1( )( 1)

G ss s

=+

,其连续方程如下:

1( ) ( )y t x t= , 1 2 ( )x x t=& , 2 2x u x= −& 写成状态空间表达式有:

1 1

2 2

0 1 00 1 1

x xu

x x⎛ ⎞ ⎛ ⎞⎛ ⎞ ⎛ ⎞

= +⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟−⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠

&

&

)( 1

2

1 0x

yx

⎛ ⎞= ⎜ ⎟

⎝ ⎠ (9-1)

离散化后 ( 1) ( ) ( )x k Ax k Bu k+ = + (9-2)

其中1 0.632

( )0 0.368

A T ⎛ ⎞= ⎜ ⎟⎝ ⎠

(9-3)

0.368( )

0.632B T ⎛ ⎞

= ⎜ ⎟⎝ ⎠

(9-4)

注意:离散化过程中,已经把零阶保持器的作用考虑进去了。 (3)加全状态反馈后闭环控制系统的特征方程

为加上全状态反馈,令 )( 11 2

2

( )( ) ( )

( )x k

u k Kx k k kx k

⎛ ⎞= = ⎜ ⎟

⎝ ⎠

将此式代入式(9-2)可以得到 ( 1) ( ) ( )x k A BK x k+ = + (9-5)

其中

)( 1 2

1 2

1 2

1 0.632 0.368

0 0.368 0.632

1 0.368 0.632 0.3680.632 0.368 0.632

A BK k k

k kk k

⎛ ⎞ ⎛ ⎞+ = +⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠+ +⎛ ⎞

= ⎜ ⎟+⎝ ⎠

由此可得闭环特征方程

1 2 1 2( 1 0.368 )( 0.368 0.632 ) 0.632 (0.632 0.368 ) 0z k z k k k− − − − − + = (9-6)

(4)理想极点和理想特征方程 为了获得快速过渡过程,选择两个理想极点均处于单位圆的圆心,即 1,2 0z = ,故理想

特征方程为 2 0z = (9-7) (5)全状态反馈的反馈系数确定 为了使所设计的全状态反馈计算机控制系统获得快速过渡过程,令式(9-6)等于式

(9-7),得到 2

1 2 1 2( 1 0.368 )( 0.368 0.632 ) 0.632 (0.632 0.368 )z k z k k k z− − − − − + = (9-8)

Page 34: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

32

从而确定全状态反馈的反馈系数 1 1.58k = − , 2 1.24k = − (9-9) (6)控制算法

1 2( ) 1.58 ( ) 1.24 ( )u k x k x k= − − (9-10)

2.实验系统设计

系统实现方块图如图 9.2 所示: 在本实验中可以取 R0=R1=100k,C1=10u,R2=500k,C2=2u 。

C1

R1

图9.2

A/D

控制器

Om

A/D

D/AR0

+

-

-x2

+R2

+

-

+

C2

x1

Page 35: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

33

实验十 二维模糊控制器

一.实验目的

1.学习并掌握常用的二维模糊控制器的设计和实现。 2.用混合仿真方法研究常用的二维模糊控制器的特性,以及参数变化对过渡过程的影

响。

二.实验内容

1.以具有纯滞后的二阶系统为被控对象,设计一个二维模糊控制器。 2.利用实验设备设计并实现一个混合仿真系统。 3.利用上述混合仿真系统,完成二维模糊控制控制特性的研究,以及对不同对象的适

应性研究。

三.实验步骤

1.利用实验设备设计并实现一个采用模糊控制的混合仿真系统

(1)利用实验箱,设计并连接模拟二阶被控对象的电路,并将该电路的输入与输出连

接到模拟量输出与输入通道。再利用上位机提供的界面进行调试,使参数满足实验要求。

同实验五,被控对象的纯滞后将由上位机程序模拟。 (2)设计与编写模糊控制程序,熟悉并掌握模糊控制程序设计方法。 (3)设计模糊控制器有关参数,运行上位机的模糊控制程序,观察对象输出;并对此

模糊控制器参数进行调试,直至获得较满意的结果,作下记录。 2.用混合仿真方法研究二维模糊控制的控制特性

(1)为改变被控对象结构,利用实验箱,设计并连接模拟一阶和三阶被控对象的电路,

并将它们分别连接到模拟量通道,再利用上位机提供的界面进行调试,使参数满足实验要

求。同实验五,被控对象的纯滞后将由上位机程序模拟。 (2)利用一阶被控对象构成混合仿真系统,用 1 所记录的控制器参数运行程序,研究

对象具有不同结构时的适应性。 (3)利用三阶被控对象构成混合仿真系统,用 1 所记录的控制器参数运行程序,研究

对象具有不同结构时的适应性。 3.对实验结果进行分析和比较,写出实验报告。

四.附录 1.实验选择的典型被控对象及其模拟电路 (1)具有纯滞后的二阶系统

Page 36: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

34

传递函数为

21 2

( ) ( )( 1)( 1)

s sKG s e G s eT s T s

τ τ− −= =+ +

(10-1)

其中不含纯滞后部分的参考模拟电路如图 10.1 所示:

(2)具有纯滞后的一阶系统 传递函数为

1( ) ( )1

s sKG s e G s eTs

τ τ− −= =+

(10-2)

其中不含纯滞后部分的参考模拟电路如图 10.2 所示: (3)具有纯滞后的三阶系统 传递函数为

31 2 3

( ) ( )( 1)( 1)( 1)

s sKG s e G s eT s T s T s

τ τ− −= =+ + +

(10-3)

其中不含纯滞后部分的参考模拟电路如图 10.3 所示:

2.混合仿真系统结构 混合仿真系统结构如图 10.4 所示 如图所示,除虚线框内部分由电路模拟外,其它部分均由上位机和数据采集系统完成。

C1

R1

Om R0

+

-

R3

图10.1

+R2

+

-

+

C2

In

C1

R1

Om R0

+

-

R3

图10.2

+R2

+

-

+In

Om R0

+

+

- R2

+

-

C1

R1 R3

C2

图10.3

+R4

+

+

- R

C3

R5

In

+

-

+

R

Page 37: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

35

3.二维模糊控制器

所采用的二维模糊控制器的结构方块图如图 10.5 所示: 所谓二维,指的是该控制器的输入是 e 和 e&,离散化即 ( )e k 和 ( ) ( 1)e k e k− − ,图中

1 2 3, ,k k k 分别是两维输入与一维输出的比例因子, 1q 和 2q 分别表示两维输入信号的整量化

操作。 Fuzzy 规则可用控制规则表给出,见表 10-1。

表 10—1 模糊控制规则表 dei ei

-2 -1 0 1 2

-4 3 2 2 3 0 -3 3 2 2 2 0 -2 2 2 1 1 0 -1 2 1 1 0 -1 0 1 1 0 -1 -1 1 1 0 -1 -1 -2 2 0 -1 -1 -2 -2 3 0 -2 -2 -2 -3 4 0 -3 -2 -2 -3

Fuzz

y

图10.5

1-z q2K2

K1 q1

Z

K3

du对象

-1

u

Z.0.H

图10.4

u(k)e(k)e(t)u(t)

Fuzzy

D(z) G(s) e- sy(t)

Page 38: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

36

实验十一 单神经元控制器

一.实验目的

1.学习并理解单神经元控制器的原理和实现方法。 2.用混合仿真方法研究单神经元控制器的自适应特性,并研究改变参数对控制特性的

影响。

二.实验内容

1.以具有纯滞后的二阶系统为被控对象,设计一个单神经元控制器。 2.利用实验设备设计并实现一个混合仿真系统。 3.用上述混合仿真系统,完成单神经元控制自适应特性研究,以及对不同对象的适应

性研究。

三.实验步骤

1.利用实验设备设计并实现一个采用单神经元控制的混合仿真系统

(1)利用实验箱,设计并连接模拟二阶被控对象的电路,并将该电路的输入与输出连

接到模拟量输出与输入通道。再利用上位机提供的界面进行调试,使参数满足实验要求。

同实验 5,被控对象的纯滞后将由上位机程序模拟。 (2)熟悉并掌握单神经元控制原理,编写运行单神经元控制程序。 (3)设计单神经元控制器有关参数,运行单神经元控制程序,观察对象输出;并对此

单神经元控制器参数进行调试,直至获得较满意的结果,作下记录。 2.用混合仿真方法研究单神经元控制的控制特性

(1)为改变被控对象结构,利用实验箱,设计并连接模拟一阶和三阶被控对象的电路,

并将它们分别连接到模拟量通道,再利用上位机提供的界面进行调试,使参数满足实验要

求。同实验 5,被控对象的纯滞后将由上位机程序模拟。 (2)利用一阶被控对象构成混合仿真系统,用 1 所记录的控制器参数运行程序,研究

对象具有不同结构时的适应性。 (3)利用三阶被控对象构成混合仿真系统,用 1 所记录的控制器参数运行程序,研究

对象具有不同结构时的适应性。 3.对实验结果进行分析和比较,写出实验报告。

四.附录

1.实验选择的典型被控对象及其模拟电路 参见实验十的附录 1。

Page 39: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

37

2.混合仿真系统结构

混合仿真系统结构如图 11.1 所示 如图所示,除

虚线框内部分由

电路模拟外,其它

部分均由上位机

和数据采集系统

完成。 3.单神经

元控制器 单神经元控

制器的结构模型如图 11.2 所示。转换器的输入为设定值 )(kr 与输出值 )(ky 的误差

)()()( kykrke −= ,输出为神经元学习控制所需要的输入状态量 1x 、 2x 、 3x ,

分别取:

⎪⎭

⎪⎬

−+−−=−−==−=

)2()1(2)()()1()()(

)()()()(

3

2

1

kekekekxkekekx

kekykrkx (11-1)

iω 为 神

经元各输入状

态量所对应的

权系数;神经

元的阀值Q取

为零;K 为比

例系数;神经

元输出激发函

数 ( )f 取线

性截断函数,

表示为:

⎪⎩

⎪⎨

−≤−<<−

≥=

mm

mm

mm

UxUUxUx

UxUxf

,,,

)( (11-2)

因此,单神经元控制器的输出控制量为:

⎟⎠

⎞⎜⎝

⎛+−=Δ+−= ∑

=

3

1)()()1()()1()(

iii kxkKfkukukuku ω (11-3)

神经元的自适应功能是通过改变权系数 iω 来实现的,学习规则即是如何调整 iω 的规

则,它是神经元控制器的核心。在这里,学习算法借用 优控制中二次型性能指标的思想,

在权重值的调整引入二次性能指标,实现对输出误差的约束控制。

Z.0.H

图11.1

e(k)e(t)u(t)

单神经元

控制器

D(z) G(s) e- sy(t)

w1x1

r(k)

学习规则

换器

w3w2

x3

x2 Q 对象du

图11.2

K f( )

-1Z

y(k)

Page 40: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制实验指导

38

目标函数为:2 2

1 1

1 1( ) [ ( ) ( )] ( )2 2

k k

i iJ k r i y i e i

= =

= − =∑ ∑ (11-4)

为了保证权重值修正以 ( )J k 相应于 ( )i kω 的负梯度方向进行,必须满足:

)()()()1(

kkJkk

iiii ω

ηωω∂∂

−=+ (11-5)

其中 iη 为学习速率,1 0iη> > 综上而有单神经元控制算法为:

1 2 33

1

2

3

1

( ) ( ) ( )( ) ( ), ( ) ( ) ( 1), ( ) ( ) 2 ( 1) ( 2)

( ) [ ( ) ( )], ( ) ( 1) ( )

( )( 1) ( ) ( ) ( )( )( 1)( 1)

( 1)

i ii

i i i i

ii

ii

e k r k y kx k e k x k e k e k x k e k e k e k

u k f K k x k u k u k u k

x kk k e k Kx ku kkk

k

ω

ω ω η

ωωω

=

=

= − ⎫⎪= = − − = − − + − ⎪⎪

Δ = = − + Δ ⎪⎪⎪⎬

+ = − ⋅ ⋅ ⎪Δ ⎪+ ⎪+ = ⎪+ ⎪

⎪⎭

(11-6)

在推导过程中做了一定的近似化处理。 4.补充说明 本单神经元自适应算法的稳定条件是:

1)(20 −<< TAAη

其中1 2 3

( ) ( ) ( ) ( )( ) ( ) ( ) ( )

Te k e k e k e kA k k k kω ω ω ω∂ ∂ ∂ ∂⎛ ⎞⎛ ⎞= =⎜ ⎟ ⎜ ⎟∂ ∂ ∂ ∂⎝ ⎠ ⎝ ⎠

该单神经元控制器实际上就是一类在线自适应 PID 控制,从 3

1

1 1 2 2 3 3

( ) [ ( ) ( )]

[ ( ) ( ) ( ) ( ) ( ) ( )]

I ii

u k f K k x k

K k x k k x k k x k

ω

ω ω ω=

Δ =

= + +

1 2

3

( ) { ( ) ( ) ( )[ ( ) ( 1)]( )[ ( ) 2 ( 1) ( 2)]}

u k K k e k k e k e kk e k e k e kω ω

ωΔ = + − −

+ − − + −

比较可得到 PID 地参数分别为:

ip T

TKkK =)(1ω ………积分系数

pKkK =)(2ω ………比例系数

TT

KkK dp=)(3ω ………微分系数

Page 41: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制对象实验指导

39

r(t)被控对象

u(k)e(k)PID Z.0.H

c(t)

图 1.1 计算机控制闭环系统框图

Om

转速测量IN OUT M

功率转换

Im

图 1.2 被控对象的接线图

实验一 直流电机转速计算机控制实验

一.实验目的:

1.熟悉并加深理解 PID 参数对系统动态性能的影响;

2.掌握数字 PID 控制方法;

二.实验原理:

计算机控制系统的框图如图 1.1 所示,虚线框内部分由上位机和数据处理系统来实现。

通过数字 PID 控制器来控制直流电机在给定一定的情况下,电机的转速按给定的转速稳定

运转。

三.实验设备:

1.ACCC-I 型自动控制理论及计算机控制技术实验装置; 2.数字式万用表。 四.实验内容和步骤:

计算机控制闭环系统除了实际物理模型外,其它的控制部分由上位机的软件和数据处

理器来实现。

Page 42: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制对象实验指导

40

1.将 ACCT-II 面板和 ACCT-III 面板上的船形开关拨到“OFF”状态;

2.如图 1.2 所示,将 ACCT-II 面板上 U3 单元 A/D、D/A 转换器的 D/A 输出 O1 接到

ACCT-III 面板上低压直流电动机调速中功率转换电路的输入,同时将转速测量电路的输出

接到 A/D 输入 I1,由于功率转换电路和转速测量电路不共地,所以将输入和输出的负极短

接后接到 ACCT-II 面板上的任一地线;

3.检查线路后,再将两块面板上的船形开关拨到“ON”状态;

4.打开计算机控制技术实验软件的界面,系统连接上后,打开上位机软件的脚本程序

中 exp4PID.vbs 或者 exp4PID_积分分离.vbs,采用试凑法,调节程序中的 PID 参数使得系

统稳定,达到无静差。

5.改变给定信号的幅值,观测系统的动态特性。

Page 43: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制对象实验指导

41

r(t)被控对象

u(k)e(k)PID Z.0.H

c(t)

图 2.1 计算机控制闭环系统框图

水泵输入

Om Im

液位测

量输出

图 2.2 被控对象的接线图

实验二 水箱液位计算机控制实验

一.实验目的:

1.熟悉并加深理解 PID 参数对系统动态性能的影响;

2.掌握数字 PID 控制方法;

二.实验原理:

计算机控制系统的框图如图 2.1 所示,虚线框内部分由上位机和数据处理系统来实现。

通过数字 PID 控制器来实现在给定一定的情况下,水箱液位保持在给定的液位不变。

三.实验设备:

1.ACCC-I 型自动控制理论及计算机控制技术实验装置; 2.数字式万用表。 四.实验内容和步骤:

计算`机控制闭环系统除了实际物理模型外,其它的控制部分由上位机的软件和数据处

理器来实现。

Page 44: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制对象实验指导

42

1.将 ACCT-II 面板和 ACCT-IV 面板上的船形开关拨到“OFF”状态;

2.如图 2.2 所示,将 ACCT-II 面板上 U3 单元 A/D、D/A 转换器的 D/A 输出 O1 接到

ACCT-IV 面板上水泵输入,同时将液位测量的输出接到 A/D 输入 I1,由于水泵输入和液位

测量输出不共地,所以将输入和输出的负极短接后接到 ACCT-II 面板上的任一地线;

3.检查线路后,再将两块面板上的船形开关拨到“ON”状态;

4.打开计算机控制技术实验软件的界面,系统连接上后,打开上位机软件的脚本程序

中 exp4PID.vbs 或者 exp4PID_积分分离.vbs,采用试凑法,调节程序中的 PID 参数使得系

统稳定,达到无静差。

5.改变给定信号的幅值,观测系统的动态特性。

Page 45: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

43

第一章 概 述

计算机控制实验上位机程序是与“ACCT-I 型实验箱(或 ACCC-I 型实验装置)”配套的

上位机控制程序。实验箱上配备有并行口接口,使用本软件前,计算机必须与实验箱通过

并口进行连接,并合上实验箱电源。脱离实验箱,本软件将无法正常使用。

程序主界面(User Interface)如图 1.1 所示。

ACT-I 型实验箱,内部包含有以 ADμC812 为核心的数据处理系统。上位机控制程序可

以通过该数据处理系统完成 6 通道数据采集输入(同时采集 多 2 通道)和 2 通道检测波

形输出(同时输出 多 2通道)。在该实验系统的上位机上可以完成包括计算机控制实验所

需的检测信号发生、数据采集、控制计算以及数据输出等任务,并提供虚拟示波器功能,

将支持多种波形显示方式和后期图像数据处理。

1.1 实验设置

使用 ACT-I 计算机控制实验上位机软件可以完成计算机控制的基础实验和高级的开放

型实验。已提供控制算法程序支持的计算机控制实验有:

图 1.1 ACT-I 计算机控制实验上位机软件主界面

Page 46: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

44

实验一 A/D 与 D/A 转换 实验二 数字滤波 实验三 D(S)离散化方法的研究 实验四 数字 PID 控制算法的研究 实验五 串级控制算法的研究 实验六 解耦控制算法的研究 实验七 少拍控制算法的研究 实验八 具有纯滞后系统的大林控制 实验九 线性离散系统的全状态反馈控制 实验十 二维模糊控制器 实验十一 单神经元控制器 对以上每个实验的有关内容,包括:实验目的、实验内容、实验步骤和附录,在“计

算机控制技术实验指导”中详细说明。 1.2 虚拟示波器

ACT-I 计算机控制实验上位机软件提供了虚拟示波器功能,如图 1.2 所示: 虚拟示波器完成对两路测试信号与两路采样信号的显示功能,具体的功能有: 1.X-T、X-Y 两种显示模式。 2.四种量程选择。 3.各通道显示∕隐藏功能。 4.各通道缩放功能。

图 1.2 虚拟示波器

Page 47: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

45

5.各通道读数功能。 6.采样通道反相显示功能。 7.网格显示∕隐藏功能。 8.显示曲线位移功能。 9.图象保存功能。

1.3 开放型脚本编辑环境

ACT-I 计算机控制实验系统为“计算机控制算法的研究”提供了一个自主编程的环境。

在后面第四、第五章中,将详细介绍上位机软件提供的开放型脚本编辑环境中所使用的语

言、编程方法以及应用实例。开放型脚本编辑环境如图 1.3 所示: 脚本语言使用 Visual Basic Scripting(VBScript 脚本语言)。用户可以自行设计计算机控

制策略,通过 VBScript 语言编程实现硬件端口控制、控制策略实现和数据显示等功能。其

开放性和灵活性使用户可以设计并完成指定实验外的计算机控制策略。 1.4 完整的系统信息

ACT-I 计算机控制实验上位机软件有自己的信息框,及时准确地提供系统的各类信息,

如图 1.4 所示:

图 1.3 脚本编辑环境

图 1.4 系统信息框

Page 48: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

46

Page 49: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

47

第二章 安装指南及系统要求

2.1 安装指南

本程序的安装文件为 SETUP.EXE,如果是软盘安装,将有四张软盘,分别标记为安装

盘 1#、2#、3#和安装盘 4#。

1.软盘安装: 运行安装盘1#的 SETUP.EXE, 双击运行后, 按系统提示插入安装盘2#、

3#和 4#, 然后按提示完成安装。

2.拷贝安装:先将安装盘 1#、2#、3#和 4#的文件全部拷贝至同一目录,例如 d:\SetUp,再运行 SETUP.EXE, 按提示完成安装。

3.并口使用:使用标准 25 针并口线,连接 ACT-I 型实验箱上插座与电脑并口插座。

4.并口属性设置:重新启动计算机,进入 CMOS(启动时按 DEL 键)状态,在 PP MODE内设置并口工作模式为:EPP/ECP 或者 EPP。

注意:安装时安装路径不能使用中文目录名,应全为英文目录。

2.2 系统要求

操作系统:WIN2000 建议配置:

CPU:不低于 Pentium II/K6 内存:不低于 64M

硬盘:程序需要大概 10M.硬盘空间

预装软件:

Microsoft Word 2000

Page 50: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

48

第三章 功能使用说明

3.1 菜单功能说明

ACT-I 计算机控制实验上位机软件菜单项如图 3.1 所示:

菜单包括文件、实验、系统、窗口、显示、操作和帮助等七大类,其功能分别为:

3.1.1 文件

菜单如图 3.1 所示。 1.打开脚本文件:打开已经存在的脚本文件,文件后缀名为 vbs,文件打开后可以在

脚本编辑器编辑该文件(详见 3.3 节)。 2.保存脚本文件:保存在脚本编辑器内修改过(详见 3.3 节)的脚本文件,文件后缀

名为 vbs。 3.脚本文件另存为:将脚本编辑器内(详见 3.3 节)的脚本文件另存为另外一个文件,

文件后缀名为 vbs。 4.保存位图文件:将虚拟示波器(详见 3.4 节)的图形保存为一个位图文件,文件后

缀名为 bmp。

3.1.2 实验

菜单如图 3.1.2 所示。 1.实验选择: 2.实验说明:

图 3.1 菜单项

图 3. 1.2 菜单“实验”项 图 3. 1.3 菜单“系统”项

Page 51: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

49

3.1.3 系统

菜单如图 3.1.3 所示。

连接下位机∕断开连接:用于与下位机建立∕断开通讯。程序启动时,并未与下位机

建立连接,按“系统》连接下位机”可以建立与下位机的连接。当程序与下位机建立了连

接以后,显示变为“系统》断开连接”,系统工具条表示与下位机连接正常。当与下位机通

讯完成以后,需要按菜单“系统》断开连接”来结束与下位机的连接。同时可以使用工具

条内“连接”功能来完成(详见 3.2 节)

3.1.4 窗口

菜单如图 3.1.4 所示。

1.脚本编辑器:当“脚本编辑器”菜单项前面打钩标记时,表示激活“脚本编辑器”;

单击该菜单项,“脚本编辑器”将 小化,位于屏幕的左下角。反之,将再次激活“脚本编

辑器”。

2.虚拟示波器:当“虚拟示波器”菜单项前面打钩标记时,表示激活“虚拟示波器”;

单击该菜单项,“虚拟示波器”将 小化,位于屏幕的左下角。反之,将再次激活“虚拟示

波器”。

3.信息框:当“信息框”菜单项前面打钩标记时,表示激活“信息框”;单击该菜单

项,“信息框”将 小化,位于屏幕的左下角。反之,将再次激活“信息框”。

4.实验指导书:当“实验指导书”菜单项前面打钩标记时,表示激活“实验指导书”;

单击该菜单项,“实验指导书”将 小化,位于屏幕的左下角。反之,将再次激活“实验指

导书”。

3.1.5 显示

菜单如图 3.1.5 所示。 1.显示设置:显示设置用于设置显示曲线的各类属性。如图 3.1.6 所示,程序同时可

以显示四条曲线。可以在显示设置对话框内设置四个曲线的颜色、线形、是否在显示区域

内显示和设置背景色,在“显示”前面打钩表示显示该曲线;按“颜色”后面的“…”按

钮可以进入颜色选择对话框,如图 3.1.7 所示,可以选择适当的颜色,按“线形”后面的

图 3. 1.4 菜单“窗口”项 图 3. 1.5 菜单“显示”项

Page 52: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

50

下拉框可以选择该曲线的线形,有“实线”、“划线”和“点线”三种选择。在设置完成之

后,如按“确定”则更改设置并退出对话框;如按“取消”则放弃修改并退出对话框。

2.系统测试信号 1#:当“系统测试信号 1#”菜单项前面打钩标记时,表示在虚拟示

波器中显示“系统测试信号 1#”曲线;单击该菜单项,“系统测试信号 1#”将不显示该曲

线。反之,将再次在虚拟示波器中显示“系统测试信号 1#”曲线。

3.系统测试信号 2#:当“系统测试信号 2#”菜单项前面打钩标记时,表示在虚拟示

波器中显示“系统测试信号 2#”曲线;单击该菜单项,“系统测试信号 2#”将不显示该曲

线。反之,将再次在虚拟示波器中显示“系统测试信号 2#”曲线。

4.采样通道 X:当“采样通道 X”菜单项前面打钩标记时,表示在虚拟示波器中显示

“采样通道 X”曲线;单击该菜单项,“采样通道 X”将不显示该曲线。反之,将再次在虚

拟示波器中显示“采样通道 X”曲线。

5.采样通道 Y:当“采样通道 Y”菜单项前面打钩标记时,表示在虚拟示波器中显示

“采样通道 Y”曲线;单击该菜单项,“采样通道 Y”将不显示该曲线。反之,将再次在虚

拟示波器中显示“采样通道 Y”曲线。

图 3. 1.6 显示设置 图 3. 1.7 显示设置颜色设置

图 3.1.8 网格显示 图 3.1.9 无网格显示

Page 53: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

51

6.网格:当“网格”菜单项前面打钩标记时,表示显示网格,如图 3.1.8 所示;单击

该菜单项,表示不显示网格,如图 3.1.9 所示。反之,将再次显示网格。

3.1.6 操作

菜单如图 3.1.10 所示。 清空信息框:清空信息框内的内容。

3.1.7 帮助

菜单如图 3.1.11 所示。 关于:软件版本说明。

3.2 工具条功能说明

工具条如图 3.2.1 所示。当与下位机的连接未建立时,如图 3.2.1 所示。当与下位机

的连接建立后,如图 3.2.2 所示。各工具条的功能分别为:

1.新建文件:新建脚本文件(详见 3.1.1 节)。

2.打开文件:打开脚本文件(详见 3.1.1 节)。

3.保存文件:保存脚本文件(详见 3.1.1 节)。

4.连接/断开:连接/断开下位机系统(详见 3.1.3 节)。

5.脚本语法检查:对当前脚本编辑器内的脚本进行语法检查,语法检查的结果将在信

息框内显示(详见 3.6 节)。

6.执行脚本语言:执行当前脚本编辑器内的脚本,实验运行。

7.停止脚本语言:停止当前脚本编辑器内的脚本的执行,实验停止。

8.显示设置:设置虚拟示波器的显示属性(详见 3.1.6 节)。

图 3.1.10 菜单“操作”项 图 3. 1.11 菜单“帮助”项

图 3.2.2 工具条

Page 54: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

52

9.帮助:(详见 3.1.7 节)。

3.3 脚本编辑器

ACT-I 计算机控制实验上位机软件提供开放型脚本编辑环境, 如图 1.3 所示。脚本语

言使用 Visual Basic Scripting(VBScript 脚本语言)。脚本编辑器是一个语言敏感的文

本编辑器,编辑器的左边灰色一列是行标记,它标记每一行的行数,便于调试查找。编辑

器对 VBScript 的声明、定义、关键字、数字、变量和注释等不同类别的字符串显示不同的

颜色,这样可以避免拼写错误。脚本编辑器对大小写不敏感。

脚本的使用可参考第四章《VBScript 编程及疑难解答》与第五章《使用实例》。

3.4 虚拟示波器

虚拟示波器如图 1.2 所示,虚拟示波器完成对两路测试信号与两路采样信号的显示、

读数等功能,下面详细介绍虚拟示波器的各个功能:

3.4.1 X-t、X-Y 两种显示模式

1.X-t 模式:横坐标为时间轴,纵坐标为通道数据

值。选择 X-t 显示模式,横坐标时间轴的量程设置(详见

3.4.2),纵坐标幅值范围为-5V~5V。X-t 模式可以用于

显示系统的测试信号、暂态或稳态的时域响应等.

2.X-Y 模式:横坐标为采样通道 X值,纵坐标为采样

通道 Y 值。选择 X-Y 显示模式,横、纵坐标幅值范围为-5V~5V,X-Y 模式主要用于显示李

沙育图形等。

3.4.2 四种量程选择

量程设置模块如图 3.4.2 所示,位于虚拟示波器右侧中间位置。有四个量程值:

1.100 ms/div,一屏为 10 格,画满一屏的时间为 1 S。

2.200 ms/div,画满一屏的时间为 2 S。

3.400 ms/div,画满一屏的时间为 4 S。

4.1000 ms/div,画满一屏的时间为 10 S。

3.4.3 各通道显示/隐藏功能

信号显示模块如图 3.4.3 所示,位于虚拟示波器右侧中间位置,有四个小模块,测试信

号 1#显示模块、测试信号 2#显示模块、采样通道 X 显示模块和采样通道 Y 显示模块。以

采样通道 X显示模块为例, 显示 触发按钮表示是否显示该曲线,图 3.4.3 中, 显示 按

钮被按下,表示显示采样通道 X 曲线。当 显示 按钮弹起时,表示不显示该曲线。程序

同时可以显示四条曲线。

图 3.4.2 量程设置

Page 55: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

53

3.4.4 各通道缩放功能

信号显示模块如图 3.4.3 所示,接上面 3.4.3 节

说明,在每个显示模块的下方的缩放框用于曲线的纵

坐标值的缩放比例调节,可以调整曲线在图像显示框

中的大小,调节范围为 0~3.0。

3.4.5 各通道读数功能

信号显示模块如图 3.4.3 所示,接上面 3.4.3 节

说明,各通道读数功能位于显示∕隐藏按钮(3.4.3

节)的下方,该框中间数字的颜色与图像显示框内显

示的曲线颜色一致,而其数值则用于显示鼠标指向的

曲线某点的纵坐标实际数值。(见 3.4.9 说明)。

3.4.6 采样通道反相功能

信号显示模块如图 3.4.3 所示,接上面 3.4.3 节说明,在采样通道 X 和采样通道 Y 显示

模块,有“反相”功能,用于曲线翻转。

3.4.7 网格显示/隐藏功能

网格按钮如图 3.4.4 所示,位于虚拟示波器显示区域左

上角,按钮被按下时,表示显示网格,如图 3.4.4 所示;当

按钮弹起时,表示不显示网格。网格显示/隐藏效果可参考 3.1.5 节显示。(图 3.1.8,3.1.9)

3.4.8 显示曲线位移功能

图 3.4.3 通道显示模块

图 3.4.4 网格按钮

图 3.4.5 曲线移动默认显示 图 3.4.6 曲线移动后显示

Page 56: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

54

曲线移动位于图像显示模块的左侧和上方,左侧的移动条的移动使曲线上下移动(横

坐标上下移动),上方的移动条的移动使曲线左右移动(纵坐标左右移动)。如图 3.4.5 是

系统默认的曲线位置,图 3.4.6 是曲线移动后的图形。注意图 3.4.6 中的移动条中指向条

的位置已经被移动了。注意,该功能仅在显示模式(详见 3.4.1)为 X-T 模式时有效。

3.5 信息框

信息框是一个独立的,及时准确地提供系统的各类信息,如图 1.4 所示。包括:连接

信息、出错信息、通道设置信息、语法检查信息、执行信息等。

可以通过菜单“操作》清空信息框”来清空信息框(详见 3.1.6 节)。

Page 57: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

55

第四章 VBScript 编程及疑难解答

4.1 VBScript 简介

Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的

新成员,它将灵活的 Script 应用于更广泛的领域,包括 Microsoft Internet Explorer

中的 Web 客户机 Script 和 Microsoft Internet Information Server 中的 Web 服务器

Script。

4.2 VBScript 基础

4.2.1 VBScript 数据类型

1.什么是 VBScript 数据类型?

VBScript 只有一种数据类型,称为 Variant。Variant 是一种特殊的数据类型,根据

使用的方式,它可以包含不同类别的信息。因为 Variant 是 VBScript 中唯一的数据类型,

所以它也是 VBScript 中所有函数的返回值的数据类型。

简单的 Variant 可以包含数字或字符串信息。Variant 用于数字上下文中时作为数

字处理,用于字符串上下文中时作为字符串处理。这就是说,如果使用看起来象是数字的

数据,则 VBScript 会假定其为数字并以适用于数字的方式处理。与此类似,如果使用的

数据只可能是字符串,则 VBScript 将按字符串处理。当然,也可以将数字包含在引号 ("

") 中使其成为字符串。

2.Variant 子类型

除简单数字或字符串以外,Variant 可以进一步区分数值信息的特定含义。例如使用

数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表

示为日期或时间。当然,从 Boolean 值到浮点数,数值信息是多种多样的。Variant 包含

的数值信息类型称为子类型。大多数情况下,可将所需的数据放进 Variant 中,而 Variant

也会按照 适用于其包含的数据的方式进行操作。

下表显示 Variant 包含的数据子类型:

子类型 描述

Empty 未初始化的 Variant。对于数值变量,值为 0;对于字符串变量,值

为零长度字符串 ("")。

Null 不包含任何有效数据的 Variant。

Boolean 包含 True 或 False。

Page 58: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

56

Byte 包含 0 到 255 之间的整数。

Integer 包含 -32,768 到 32,767 之间的整数。

Currency -922,337,203,685,477.5808 到 922,337,203,685,477.5807。

Long 包含 -2,147,483,648 到 2,147,483,647 之间的整数。

Single 包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,

正数范围从 1.401298E-45 到 3.402823E38。

Double 包含双精度浮点数,负数范围从 -1.79769313486232E308 到

-4.94065645841247E-324,正数范围从 4.94065645841247E-324 到

1.79769313486232E308。

Date

(Time)

包含表示日期的数字,日期范围从公元 100 年 1 月 1 日到公元

9999 年 12 月 31 日。

String 包含变长字符串, 大长度可为 20 亿个字符。

Object 包含对象。

Error 包含错误号。

您可以使用转换函数来转换数据的子类型。另外,可使用 VarType 函数返回数据的

Variant 子类型。

4.2.2 VBScript 变量

1.什么是变量?

变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运

行时可更改的程序信息。例如,可以创建一个名为 ClickCount 的变量来存储用户单击 Web

页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变

量名引用变量就可以查看或更改变量的值。在 VBScript 中只有一个基本数据类型,即

Variant,因此所有变量的数据类型都是 Variant。

2.声明变量

声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在 Script 中显

式声明变量。例如:

Dim DegreesFahrenheit

声明多个变量时,使用逗号分隔变量。例如:

Dim Top, Bottom, Left, Right

Page 59: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

57

另一种方式是通过直接在 Script 中使用变量名这一简单方式隐式声明变量。这通常

不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行 Script 时出现意外的

结果。因此, 好使用 Option Explicit 语句显式声明所有变量,并将其作为 Script 的

第一条语句。

3.命名规则

变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循:

⑴ 第一个字符必须是字母。

⑵ 不能包含嵌入的句点。

⑶ 长度不能超过 255 个字符。

⑷ 在被声明的作用域内必须唯一。

4.变量的作用域与存活期

变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码

可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过程之外

声明变量,则该变量可以被 Script 中所有过程所识别,称为 Script 级变量,具有 Script

级作用域。

变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起,直到 Script

运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之

消失。在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局

部变量,这是因为每个局部变量只被声明它的过程识别。

5.给变量赋值

创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例

如:

B = 200

6.标量变量和数组变量

多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有

时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数

组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量

名后面带有括号 ( )。下例声明了一个包含 11 个元素的一维数组:

Dim A(10)

虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以

这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的

数目加 1。这种数组被称为固定大小的数组。

在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如

下所示:

A(0) = 256

A(1) = 324

A(2) = 100

Page 60: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

58

. . .

A(10) = 55

与此类似,使用索引可以检索到所需的数组元素的数据。例如:

. . .

SomeVariable = A(8)

. . .

数组并不仅限于一维。数组的维数 大可以为 60(尽管大多数人不能理解超过 3 或 4

的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中,MyTable

变量是一个有 6 行和 11 列的二维数组:

Dim MyTable(5, 10)

在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。 也可以

声明动态数组,即在运行 Script 时大小发生变化的数组。对数组的 初声明使用 Dim 语

句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。例如:

Dim MyArray()

ReDim AnotherArray()

要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。在下例中,ReDim 将

动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整为 30,同时

使用 Preserve 关键字在重新调整大小时保留数组的内容。

ReDim MyArray(25)

. . .

ReDim Preserve MyArray(30)

重新调整动态数组大小的次数是没有任何限制的,但是应注意:将数组的大小调小时,

将会丢失被删除元素的数据。

4.2.3 VBScript 常数

1.什么是常数?

常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。VBScript 定义

了许多固有常数。详细信息,请参阅 VBScript 语言参考。

2.创建常数

您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以

创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。例如:

Const MyString = "这是一个字符串。"

Const MyAge = 49

Page 61: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

59

请注意字符串文字包含在两个引号 (" ") 之间。这是区分字符串型常数和数值型常数

的 明显的方法。日期文字和时间文字包含在两个井号 (#) 之间。例如:

Const CutoffDate = #6-1-97#

好采用一个命名方案以区分常数和变量。这样可以避免在运行 Script 时对常数重

新赋值。例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母大写。

将常数和变量区分开可以在开发复杂的 Script 时避免混乱。

4.2.4 VBScript 运算符

VBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运

算符。 当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优

先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总

是先执行括号中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算

符优先级。

当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符, 后计算

逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。算

术运算符和逻辑运算符的优先级如下所示:

算术运算符 比较运算符 逻辑运算符

描述 符号 描述 符号 描述 符号

求幂 ^ 等于 = 逻辑非 Not

负号 - 不等于 <> 逻辑与 And

乘 * 小于 < 逻辑或 Or

除 / 大于 > 逻辑异或 Xor

整除 \ 小于等于 <= 逻辑等价 Eqv

求余 Mod 大于等于 >= 逻辑隐含 Imp

加 + 对象引用比较 Is

减 -

字符串连接 &

当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同

Page 62: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

60

样当加与减同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。

字符串连接 (&) 运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算

符之后和所有比较运算符之前。Is 运算符是对象引用比较运算符。它并不比较对象或对象

的值,而只是进行检查,判断两个对象引用是否引用同一个对象。

4.2.5 使用条件语句

控制程序执行,使用条件语句和循环语句可以控制 Script 的流程。使用条件语句可

以编写进行判断和重复操作的 VBScript 代码。在 VBScript 中可使用以下条件语句:

If...Then...Else 语句 Select Case.语句

1.使用 If...Then...Else 进行判断

If...Then...Else 语句用于计算条件是否为 True 或 False,并且根据计算结果指定

要运行的语句。通常,条件是使用比较运算符对值或变量进行比较的表达式。有关比较运

算符的详细信息,请参阅比较运算符。If...Then...Else 语句可以按照需要进行嵌套。

⑴ 条件为 True 时运行语句

要在条件为 True 时运行单行语句,可使用 If...Then...Else 语句的单行语法。下

例示范了单行语法。请注意此例省略了关键字 Else。

Sub FixDate()

Dim myDate

myDate = #2/13/95#

If myDate < Now Then myDate = Now

End Sub

要运行多行代码,必须使用多行(或块)语法。多行(或块)语法包含 End If 语句,

如下所示:

Sub AlertUser(value)

If value = 0 Then

AlertLabel.ForeColor = vbRed

AlertLabel.Font.Bold = True

AlertLabel.Font.Italic = True

End If

End Sub

⑵ 条件为 True 和 False 时分别运行某些语句

可以使用 If...Then...Else 语句定义两个可执行语句块:条件为 True 时运行某一

语句块,条件为 False 时运行另一语句块。

Sub AlertUser(value)

If value = 0 Then

Page 63: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

61

AlertLabel.ForeColor = vbRed

AlertLabel.Font.Bold = True

AlertLabel.Font.Italic = True

Else

AlertLabel.Forecolor = vbBlack

AlertLabel.Font.Bold = False

AlertLabel.Font.Italic = False

End If

End Sub

⑶ 对多个条件进行判断

If...Then...Else 语句的一种变形允许您从多个条件中选择,即添加 ElseIf 子句以

扩充 If...Then...Else 语句的功能,使您可以控制基于多种可能的程序流程。例如:

Sub ReportValue(value)

If value = 0 Then

MsgBox value

ElseIf value = 1 Then

MsgBox value

ElseIf value = 2 then

Msgbox value

Else

Msgbox "数值超出范围!"

End If

可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf 子句经常会变得很累

赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。

2.使用 Select Case 进行判断

Select Case 结构提供了 If...Then...ElseIf 结构的一个变通形式,可以从多个语

句块中选择执行其中的一个。Select Case 语句提供的功能与 If...Then...Else 语句类

似,但是可以使代码更加简练易读。

Select Case 结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果

将与结构中每个 Case 的值比较。如果匹配,则执行与该 Case 关联的语句块:

Select Case Document.Form1.CardType.Options(SelectedIndex).Text

Case "MasterCard"

DisplayMCLogo

ValidateMCAccount

Case "Visa"

DisplayVisaLogo

ValidateVisaAccount

Page 64: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

62

Case "American Express"

DisplayAMEXCOLogo

ValidateAMEXCOAccount

Case Else

DisplayUnknownImage

PromptAgain

End Select

注意: Select Case 结构只计算开始处的一个表达式(只计算一次),而

If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。

仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替

If...Then...ElseIf 结构。

4.2.6 使用循环语句

循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行

语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。

在 VBScript 中可使用下列循环语句:

Do...Loop: 当(或直到)条件为 True 时循环。

While...Wend: 当条件为 True 时循环。

For...Next: 指定循环次数,使用计数器重复运行语句。

For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。

1.使用 Do 循环

可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变

为 True 之前,重复执行语句块。

⑴ 当条件为 True 时重复执行语句

While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环

之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条

件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被

设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环

体中的语句只会执行一次,因为条件在检查时已经为 False。

Sub ChkFirstWhile()

Dim counter, myNum

counter = 0

myNum = 20

Do While myNum > 10

myNum = myNum - 1

counter = counter + 1

Page 65: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

63

Loop

MsgBox "循环重复了 " & counter & " 次。"

End Sub

Sub ChkLastWhile()

Dim counter, myNum

counter = 0

myNum = 9

Do

myNum = myNum - 1

counter = counter + 1

Loop While myNum > 10

MsgBox "循环重复了 " & counter & " 次。"

End Sub

⑵ 重复执行语句直到条件变为 True

Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环

之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条

件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。

Sub ChkFirstUntil()

Dim counter, myNum

counter = 0

myNum = 20

Do Until myNum = 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "循环重复了 " & counter & " 次。"

End Sub

Sub ChkLastUntil()

Dim counter, myNum

counter = 0

myNum = 1

Do

myNum = myNum + 1

counter = counter + 1

Loop Until myNum = 10

MsgBox "循环重复了 " & counter & " 次。"

Page 66: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

64

End Sub

⑶ 退出循环

Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环

(例如要避免死循环),所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do

语句。如果条件为 False,循环将照常运行。

在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,

防止出现死循环。

Sub ExitExample()

Dim counter, myNum

counter = 0

myNum = 9

Do Until myNum = 10

myNum = myNum - 1

counter = counter + 1

If myNum < 10 Then Exit Do

Loop

MsgBox "循环重复了 " & counter & " 次。"

End Sub

2.使用 While...Wend

While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少

灵活性,所以建议 好使用 Do...Loop 语句。

3.使用 For...Next

⑴ For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变

量的值随每一次循环增加或减少。

例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其

起始值与终止值。Next 语句使计数器变量每次加 1。

Sub DoMyProc50Times()

Dim x

For x = 1 To 50

MyProc

Next

End Sub

⑵ 关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器

变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。

Sub TwosTotal()

Dim j, total

Page 67: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

65

For j = 2 To 10 Step 2

total = total + j

Next

MsgBox "总和为 " & total & "。"

End Sub

要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起

始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、

14、12、10、8、6、4 和 2 的总和。

Sub NewTotal()

Dim myNum, total

For myNum = 16 To 2 Step -2

total = total + myNum

Next

MsgBox "总和为 " & total & "。"

End Sub

⑶ Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常

只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else

语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。

4.2.7 VBScript 过程

在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。

1.Sub 过程

Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但无

返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Sub 过

程无任何参数,则 Sub 语句必须包含空括号 ()。

下面的 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和

InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用 VBScript

创建的 Function 过程完成。此过程在以下讨论之后演示。

Sub ConvertTemp()

temp = InputBox("请输入华氏温度。", 1)

MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"

End Sub

2.Function 过程

Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语

句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程可

Page 68: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

66

以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,

则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是

在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。

在下面的示例中,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用

此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。

Sub ConvertTemp()

temp = InputBox("请输入华氏温度。", 1)

MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"

End Sub

Function Celsius(fDegrees)

Celsius = (fDegrees - 32) * 5 / 9

End Function

3.过程的数据进出

给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数

名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必

须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees

是传递给 Celsius 函数的值的占位符:

Function Celsius(fDegrees)

Celsius = (fDegrees - 32) * 5 / 9

End Function

要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值,

而 Sub 过程无返回值。

4.在代码中使用 Sub 和 Function 过程

调用 Function 过程时,函数名必须用在变量赋值语句的右端或表达式中。例如:

Temp = Celsius(fDegrees)

MsgBox "温度为 " & Celsius(fDegrees) & " 摄氏度。"

调用 Sub 过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使

用 Call 语句,但如果使用了此语句,则必须将所有参数包含在括号之中。

下面的示例显示了调用 MyProc 过程的两种方式。一种使用 Call 语句;另一种则不使用。

两种方式效果相同。

Call MyProc(firstarg, secondarg)

MyProc firstarg, secondarg

注意:当不使用 Call 语句进行调用时,括号被省略。

Page 69: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

67

4.2.8 VBScript 编码约定

1.什么是编码约定?

编码约定是帮助您使用 Microsoft Visual Basic Scripting Edition 编写代码的一

些建议。编码约定包含以下内容:

⑴ 对象、变量和过程的命名约定

⑵ 注释约定

⑶ 文本格式和缩进指南

使用一致的编码约定的主要原因是使 Script 或 Script 集的结构和编码样式标准

化,这样代码易于阅读和理解。使用好的编码约定可以使源代码明白、易读、准确,更加

直观且与其他语言约定保持一致。

2.常数命名约定

VBScript 的早期版本不允许创建用户自定义常数。如果要使用常数,则常数以变量的

方式实现,且全部字母大写以和其他变量区分。常数名中的多个单词用下划线 (_) 分隔。

例如:

USER_LIST_MAX

NEW_LINE

这种标识常数的方法依旧可行,但您还可以选择其他方案,用 Const语句创建真正的

常数。这个约定使用大小写混合的格式,并以“con”作为常数名的前缀。例如:

conYourOwnConstant

3.变量命名约定

出于易读和一致性的目的,请在 VBScript 代码中使用以下变量命名约定:

子类型 前缀 示例

Boolean bln blnFound

Byte byt bytRasterData

Date (Time) dtm dtmStart

Double dbl dblTolerance

Error err errOrderNum

Integer int intQuantity

Long lng lngDistance

Object obj objCurrent

Single sng sngAverage

Page 70: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

68

String str strFirstName

⑴ 变量作用域

变量应定义在尽量小的作用域中。VBScript 变量的作用域如下所示:

作用域 声明变量处 可见性

过程级 事件、函数或子过程 在声明变量的过程中可见

Script 级 HTML 页面的 HEAD 部分,任何过程之外 在 Script 的所有过程中可见

⑵ 变量作用域前缀

随着 Script 代码长度的增加,有必要快速区分变量的作用域。在类型前缀前面添加

一个单字符前缀可以实现这一点,而不致使变量名过长。

作用域 前缀 示例

过程级 无 dblVelocity

Script 级 s sblnCalcInProgress

⑶ 描述性变量名和过程名

变量名或过程名的主体应使用大小写混合格式,并且尽量完整地描述其目的。另外,

过程名应以动词开始,例如 InitNameArray 或 CloseDialog。

对于经常使用的或较长的名称,推荐使用标准缩写以使名称保持在适当的长度内。通

常多于 32 个字符的变量名会变得难以阅读。使用缩写时,应确保在整个 Script 中保持

一致。例如,在一个 Script 或 Script 集中随意切换 Cnt 和 Count 将造成混乱。

4.对象命名约定

下表列出了 VBScript 中可能用到的对象命名约定(推荐):

对象类型 前缀 示例

3D 面板 pnl pnlGroup

动画按钮 ani aniMailBox

复选框 chk chkReadOnly

组合框、下拉列表框 cbo cboEnglish

命令按钮 cmd cmdExit

公共对话框 dlg dlgFileOpen

Page 71: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

69

框架 fra fraLanguage

水平滚动条 hsb hsbVolume

图像 img imgIcon

标签 lbl lblHelpMessage

直线 lin linVertical

列表框 lst lstPolicyCodes

旋钮 spn spnPages

文本框 txt txtLastName

垂直滚动条 vsb vsbRate

滑块 sld sldScale

5.代码注释约定

所有过程的开始部分都应有描述其功能的简要注释。这些注释并不描述细节信息(如

何实现功能),这是因为细节有时要频繁更改。这样就可以避免不必要的注释维护工作以及

错误的注释。细节信息由代码本身及必要的内部注释来描述。

当传递给过程的参数的用途不明显,或过程对参数的取值范围有要求时,应加以说明。

如果过程改变了函数和变量的返回值(特别是通过参数引用来改变),也应在过程的开始部

分描述该返回值。

过程开始部分的注释应包含以下区段标题。相关样例,请参阅后面的“格式化代码”

部分。

区段标题 注释内容

目的 过程的功能(不是实现功能的方法)。

假设 其状态影响此过程的外部变量、控件或其他元素的列表。

效果 过程对每个外部变量、控件或其他元素的影响效果的列表。

输入 每个目的不明显的参数的解释。每个参数都应占据单独一行并有其内部注释。

返回 返回值的解释。

请记住以下几点:

⑴ 每个重要的变量声明都应有内部注释,描述变量的用途。

⑵ 应清楚地命名变量、控件和过程,仅在说明复杂细节时需要内部注释。

Page 72: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

70

⑶ 应在 Script 的开始部分包含描述该 Script 的概述,列举对象、过程、运算法则、

对话框和其他系统从属物。有时一段描述运算法则的假码是很有用的。

6.格式化代码

应尽可能多地保留屏幕空间,但仍允许用代码格式反映逻辑结构和嵌套。以下为几点

提示:

⑴ 标准嵌套块应缩进 4 个空格。

⑵ 过程的概述注释应缩进 1 个空格。

⑶ 概述注释后的 高层语句应缩进 4 个空格,每一层嵌套块再缩进 4 个空格。例如:

'*********************************************************

' 目的: 返回指定用户在 UserList 数组中第一次出现的位置。

' 输入: strUserList(): 所查找的用户列表。

' strTargetUser: 要查找的用户名。

' 返回: strTargetUser 在 strUserList 数组中第一次出现时的索引。

' 如果目标用户未找到,返回 -1。

'*********************************************************

Function intFindUser (strUserList(), strTargetUser)

Dim i ' 循环计数器。

Dim blnFound ' 发现目标的标记。

intFindUser = -1

i = 0 ' 初始化循环计数器。

Do While i <= Ubound(strUserList) and Not blnFound

If strUserList(i) = strTargetUser Then

blnFound = True ' 标记设为 True。

intFindUser = i ' 返回值设为循环计数器。

End If

i = i + 1 ' 循环计数器加 1。

Loop

End Function

4.3 脚本编程

4.3.1 一个简单脚本

下面是一个简单的脚本文件:

’模块 1:全局变量定义

Dim Exp_Ts, Exp_tor

'模块 2:通道参数、变量初始化

Page 73: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

71

Sub Init()

Daq.SetChannelXNumber 1 'X 通道使用 A/D 通道 1

Daq.SetChannelYNumber 2 'Y 通道使用 A/D 通道 2

Daq.SetSignal1State true 'D/A 通道 1开通

Daq.SetSignal2State false 'D/A 通道 2关闭

Daq.SetExpLastTime 0 '持续时间,0 表示持续

Daq.SetExpSamplePeriod 1 '采样周期,1ms

Exp_Ts=1 ’Script 级变量 初始化

Exp_tor=50

End Sub

'模块 3:测试信号发生函数

Sub Signal()

Dim eWave(1000) '测试信号定义,1000 为每个周期点数

Dim i,j,K

dim A,T,W,fi

A=1

T=1000

w=2*3.1415/T

fi=3.1415/2

Signal1.SetPeriod T '测试信号 1的周期,单位 ms,周期 1000ms

Signal1.SetAmp A '测试信号 1的幅值,单位 V,幅值 1.0

For i = 0 To ubound(ewave)-1

eWave(i) =A*sin(w*i+fi)

Next

Signal1.setwave eWave

End Sub

'模块 4:执行

Sub Run()

dim y

dim n,x

x= Signal1.getcursignal()-daq.getchannelXvalue(0)

Daq.SetSignal1Value x

y=(Exp_Ts/Exp_tor)*Daq.GetChannelxValue(0)+

(1-Exp_TsExp_/tor)*Daq.GetChannelY Value(-1)

DAQ.SetChannelYValue y

End Sub

Page 74: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

72

4.3.2 脚本四个模块

从上面的脚本例子可以看到,一个完整的脚本包括四个模块:全局变量定义模块、通

道及变量初始模块、测试信号初始模块和执行模块。

在脚本模块中用到了 DAQ 对象、Signal1 对象和 Signal2 对象,可参阅 4.3.3 节

1.全局变量定义模块

从本教程 4.2.2 节 VBScript 变量定义中,可知在过程之外声明变量,则该变量可以被

Script 中所有过程所识别,称为 Script 级变量,具有 Script 级作用域。所以我们在过

程外用 Dim 或者 Public(全局变量)来声明变量。如示例中:

Dim Exp_Ts, Exp_tor

同样可以定义为:

Public Exp_Ts, Exp_tor

或者定义数组:

Dim Exp_A(10)

可以根据脚本需要定义多个 Script 级变量,出于编码约定考虑,Script 级变量应用

“Exp_”前缀开始。

2.通道及变量初始化模块 Sub Init()

通道及变量初始化模块在 Sub Init()过程内完成,通道参数初始化通过设置 DAQ 对象

的各个参数来完成(详见 4.3.3 中 DAQ 对象),变量初始化则是对 Script 级变量初始值的

设置。

它在整个脚本执行过程中只被执行一次,而且是在 初被执行。过程 Init()在脚本中必须

存在。

Sub Init()

End Sub

在上例中,Init()过程完成了对 X、Y 通道的通道号设置和 D/A 采样通道的设置,并

设置了实验持续时间和采样周期。 后,初始化了 Script 级变量。

Sub Init()

Daq.SetChannelXNumber 1 'X 通道使用 A/D 通道 1

Daq.SetChannelYNumber 2 'Y 通道使用 A/D 通道 2

Daq.SetSignal1State true 'D/A 通道 1开通

Daq.SetSignal2State false 'D/A 通道 2关闭

Daq.SetExpLastTime 0 '持续时间,0 表示持续

Daq.SetExpSamplePeriod 1 '采样周期,1ms

Exp_Ts=1 ’Script 级变量 初始化

Exp_tor=50

End Sub

Page 75: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

73

3.测试信号初始模块 Sub Signal()

测试信号初始化模块在 Sub Signal()过程内完成,过程通过设置 D/A 通道 1#的

Signal1对象和D/A通道 2#的 Signal2对象来完成(详见4.3.3中 Signal1、Signal2对象)。

它在整个脚本执行过程中只被执行一次,而且是在 Init()过程被执行后执行。过程 Signal()

在脚本中必须存在。

Sub Signal()

End Signal

在上例中,在 Init()过程中,设置了 D/A 通道 1 开启,D/A 通道 2 关闭:

...

Daq.SetSignal1State true 'D/A 通道 1开通

Daq.SetSignal2State false 'D/A 通道 2关闭

...

所以在 Signal()过程中,我们只需定义 Signal1 的测试信号。

⑴ 定义测试信号数组:

...

Dim eWave(1000) '测试信号定义,1000 为每个周期点数

...

在这里要注意的是数组的长度,它跟测试信号的周期有关,设数组长度为 nLength,

测试信号周期为 T(单位为毫秒 ms),则公式:

nLength=T/1ms

这里我们设:T=1000ms , ,nLength=1000/1=1000。

⑵ 定义信号周期和幅值,使用 Signal1 对象提供的方法:

Dim A,T

A=1

T=1000

Signal1.SetPeriod T '设置测试信号 1 的周期,单位 ms,周期 1000ms

Signal1.SetAmp A '设置测试信号 1 的幅值,单位 V,幅值 1.0

⑶ 编写测试信号,赋值给预先定义的数组 eWave:

Dim i,W,fi

w=2*3.1415/T

fi=3.1415/2

For i = 0 To ubound(ewave)-1

eWave(i) =A*sin(w*i+fi)

Next

Page 76: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

74

⑷ 设置测试信号

Signal1.setwave eWave

一个完整的测试信号初始模块应包含以上四个模块。

4.执行模块 Sub Run()

执行模块在 Sub Run()过程内完成。它在每个采样控制周期被执行一次,控制算法就

在执行模块内被实现。同样,过程 Run()在脚本中必须存在。

Sub Run()

End Sub

执行模块分为四个步骤:

⑴ 得到当前给定值

Signal1.getcursignal()

该函数返回当前的 D/A 通道的给定值。

⑵ 参加控制算法

x= Signal1.getcursignal()-daq.getchannelXvalue(0)

在本例中,当前给定值减去通道 X的采样值。

⑶ 输出 D/A 通道值

Daq.SetSignal1Value x

在本例中,将控制算法的结果 x 输出到 D/A 通道 1#。

如果我们直接输出给定值,可使用:

Daq.SetSignal1Value Signal1.getcursignal()

也可以直接输出给定值:

Daq.SetSignal1Value 1 ’输出 1v

⑷ 采样通道值后期运算

对于采样通道得到的值,可以通过函数修改其当前值,来达到 后修改显示效果的结

果。在本例中,使用了下面两句:

y=( Exp_Ts/ Exp_tor)*Daq.GetChannelxValue(0)+

(1- Exp_Ts Exp_/tor)*Daq.GetChannelY Value(-1)

DAQ.SetChannelYValue y

其作用相当于:

Y(k)=(Ts/Tor)×X(k)+(1- Ts/Tor)×Y(k-1)

4.3.3 系统对象

1.DAQ 对象可调用函数声明

Page 77: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

75

(1)DAQ.SetSignal1State(ByVal brun As Boolean)

说明:设置信号发生通道 1(D/A1)的开/关。当 brun=True 时,表示信号发生通道 1输

出信号;brun=False 时,表示信号发生通道不输出信号。默认值为 True。

使用:在 Init()过程中调用。

返回值:无

注意:必须被调用一次,否则可能引起通道设置错误。

(2)DAQ.SetSignal2State(ByVal brun As Boolean)

说明:设置信号发生通道 2(D/A2)的开/关。当 brun=True 时,表示信号发生通道 2输

出信号;brun=False 时,表示信号发生通道不输出信号。默认值为 True。

使用:在 Init()过程中调用。

返回值: 无

注意:必须被调用一次,否则可能引起通道设置错误。

(3)DAQ.SetSignal1Value(ByVal sval As Double)

说明:设置信号发生通道 1(D/A1)要输出的值,数值范围:-5V~+5V,设定的值立刻

被输出。

使用: 在 Run()过程中调用。

返回值:无。

注意:如果通道 1 打开,则该函数必须在 Run()中被调用以确保数值输出。一般调用

示例:Daq.SetSignal1Value Signal1.getcursignal()

(4)DAQ.SetSignal2Value(ByVal sval As Double)

说明:设置信号发生通道 1(D/A1)要输出的值,数值范围:-5V~+5V,设定的值立刻

被输出。

使用:在 Run()过程中调用。

返回值: 无

注意:如果通道 2 打开,则该函数必须在 Run()中被调用以确保数值输出。一般调用

示例:Daq.SetSignal2Value Signal2.getcursignal()

(5)DAQ.SetChannelXNumber(ByVal ichannel As Integer)

说明: 设置采样通道 X使用哪一路 A/D,共有 6路 A/D 通道可以使用,分别对应数值:

1~6,当设置 ichannel=0 时,表示不使用采样通道 X。默认值为 1。

使用:在 Init()过程中调用。

返回值: 无

注意: 采样通道 X 和采样通道 Y 可以使用相同的 A/D 通道。

(6)DAQ.SetChannelYNumber(ByVal ichannel As Integer)

说明:设置采样通道 Y使用哪一路 A/D,共有 6路 A/D 通道可以使用,分别对应数值:

1~6,当设置 ichannel=0 时,表示不使用采样通道 Y。默认值为 0。

使用:在 Init()过程中调用。

返回值: 无

注意:采样通道 X 和采样通道 Y 可以使用相同的 A/D 通道。

(7)DAQ.GetChannelXValue(idx As Integer) As Double

Page 78: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

76

说明: 得到采样通道 X指定的 A/D 通道的采样值。idx 的值指定取值的偏移,当当前

指针指向 K(即在 Run()过程被调用第 K 次,或在第 K 个采样控制周期),当 idx=0,表示取

当前采样周期内采样通道 X 指定的 A/D 通道的采样值,当 idx=-1 时,取上一次(K-1 次)

通道的采样值。

使用:在 Run()过程中调用。

返回值: 函数返回通道采样值,范围-5V~+5V。

注意:idx<=0。

(8)DAQ.GetChannelYValue(idx As Integer) As Double

说明:得到采样通道 X 指定的 A/D 通道的采样值。idx 的值指定取值的偏移,当当前

指针指向 K(即在 Run()过程被调用第 K 次,或在第 K 个采样控制周期),当 idx=0,表示取

当前采样周期内采样通道 Y 指定的 A/D 通道的采样值,当 idx=-1 时,取上一次(K-1 次)

通道的采样值。

使用:在 Run()过程中调用。

返回值:函数返回通道采样值,范围-5V~+5V。

注意:idx<=0。

(9)DAQ.SetExpLastTime(ByVal stime As Long)

说明: 设置信号持续时间,单位为毫秒,范围 0~10000ms,当设置持续时间为 0 时,

表示信号将周期发生,一直持续。默认值为 0(一直持续)。

使用:在 Init()过程中调用。

返回值: 无。

注意:必须被调用一次。

(10)DAQ.SetExpSamplePeriod(ByVal sPeriod As Long) As Boolean

说明: 系统采样控制周期设置,单位是 ms,下限 低 1ms。默认值 1ms。

使用:在 Init()过程中调用。

返回值: 无

注意:必须被调用一次。

2.Signal1 对象可调用函数声明

(1)Signal1.SetPeriod(ByVal sysPeriod As Single)

说明: 设置测试信号 1的信号周期,单位是 ms,范围 20ms~5000ms。默认值 1000ms。

使用:在 Signal()过程中调用。

返回值: 无

注意:如果 DAQ 设置中通道 1 打开,则该函数必须在 Singal()函数中被调用。

(2)Signal1.SetAmp(ByVal sysAmp As Double)

说明: 设置测试信号 1的信号幅值,范围:0~5V,默认值 1V

使用:在 Signal()过程中调用。

返回值: 无

注意:如果 DAQ 设置中通道 1 打开,则该函数必须在 Singal()函数中被调用。

(3)Signal1.SetWave(sysWave As Variant)

说明: 设置测试信号 1 的信号,传递的参数是一个数组。数组在 Signal()过程中定

Page 79: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

77

义。数组的长度应遵循下面的公式:Length=测试信号周期(单位毫秒 ms)/1ms。

使用:在 Signal()过程中调用。

返回值: 无

注意:如果 DAQ 设置中通道 1 打开,则该函数必须在 Singal()函数中被调用。

(4)Signal1.GetCurSignal() As Double

说明: 得到当前应该输出的设定值(给定值)。

使用:在 Run()过程中调用。

返回值: 当前的信号给定值。

注意:Run()过程在每个采样控制周期被执行一次,在每次调用 GetCurSignal()以后,

内部指针会指向下一个即将被输出的给定值,所以在 Run()过程中,该函数只允许被调用

一次。

3.Signal2 对象可调用函数声明

(1)Signal2.SetPeriod(ByVal sysPeriod As Single)

说明: 设置测试信号 2的信号周期,单位是 ms,范围 20ms~5000ms。默认值 1000ms。

使用:在 Signal()过程中调用。

返回值: 无

注意:如果 DAQ 设置中通道 2 打开,则该函数必须在 Singal()函数中被调用。

(2)Signal2.SetAmp(ByVal sysAmp As Double)

说明: 设置测试信号 2的信号幅值,范围:0~5V,默认值 1V

使用:在 Signal()过程中调用。

返回值: 无

注意:如果 DAQ 设置中通道 2 打开,则该函数必须在 Singal()函数中被调用。

(3)Signal2.SetWave(sysWave As Variant)

说明: 设置测试信号 2 的信号,传递的参数是一个数组。数组在 Signal()过程中定

义。数组的长度应遵循下面的公式:Length=测试信号周期(单位毫秒 ms)/1ms。

使用:在 Signal()过程中调用。

返回值: 无

注意:如果 DAQ 设置中通道 2 打开,则该函数必须在 Singal()函数中被调用。

(4)Signal2.GetCurSignal() As Double

说明: 得到当前应该输出的设定值(给定值)。

使用:在 Run()过程中调用。

返回值: 当前的信号给定值。

注意:Run()过程在每个采样控制周期被执行一次,在每次调用 GetCurSignal()以后,

内部指针会指向下一个即将被输出的给定值,所以在 Run()过程中,该函数只允许被调用

一次。

Page 80: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

78

第五章 使用实例

5.1 一阶惯性环节时间常数与放大倍数的测量

在 ACT-I 面板上,有八个独立的运放环节,每个独立的运放周围有一些分立元件,面

板上标注了这些元件的符号和值。通常根据面板上的标注值,通过连接线搭建被控对象模

拟电路。由于每个元件的实际值与标注值有一定的偏差,而偏差的累积则导致被控对象模

拟的误差。在一些对被控对象参数变化敏感的计算机控制实验中,如 少拍控制,参数的

不准确性将直接影响到实验结果和实验的准确性。为此,在这类实验进行前,必须对环节

的参数进行测量,以便得到它的准确参数,用于控制算法设计。下面介绍一阶惯性环节参

数测量的方法与步骤。

实验步骤:

1.检查 ACT-I 实验箱、电源线是否正常,并口连接线有无损坏。检查完毕后,用配套

并口线连接计算机与实验箱,连接完毕后实验箱上电,检查指示灯是否显示正常。如果出

现问题,应向实验指导老师汇报。

2.打开程序,位置在计算机菜单“开始 → 程序 → 求是教仪 → 计算机控制上

位机程序”,或者在桌面上“计算机控制上位机程序”。程序运行后,出现主界面。

3.点击主界面工具条“连接”按钮,与下位机建立连接,若连接失败,重复步骤 1 或

者联系实验指导老师。

4.设计一个“惯性环节”的模拟电路,如图 5.1.1 所示,其中 1

0

RKR

= , 1T R C= ,

实验参数取 R0=200k,R1=200k,C=2uF,并在实验

箱上搭建模拟电路。

5.在实验箱上完成模拟电路搭建后,如选用 O1

端输出信号作为测试信号,则将已搭建完的模拟电

路 的

输 入

端 与

箱 上

的 O1

端口连接,并将运放锁零信号与 G1 端口连接。

将模拟电路的输出端与箱上的 I1 数据采集端

口连接。连接完毕后再次检查连线,确认无误

后进入下一步骤。

6.编辑测试脚本文件,设置测试信号为

阶跃信号,幅值 3V,通道 O1(D/A1#)输出测

试信号,通道 In1(A/D1#)采集环节输出信号。

Om

图5.1.1贯性环节

+

+

R0

R1

-

C1

In

Page 81: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

79

)111(1

1)()()(

ττ +

−=•+

==ss

Kss

KsRsGsC

实验持续时间 10s,采样控制周期 2ms。脚本如下所示:

7.设置虚拟示波器,显示测试信号 1#通道,显示采样信号 X,并且在采样信号 X 模

块中选择反相,不显示测试信号 2#和采样信号 Y。设置量程为 1000ms/DIV。

8.启动实验,实验在执行 10s 后自动停止,刚好满一屏。如图 5.1.2 所示。

9.从步骤 4中可知,系统预期的放大系数 K=200k/200k=1,时间常数 T=0.4。当输入为

单位阶跃信号,即 r(t)=1(t),其拉普拉斯变换为: 1( )R s s= 。在初始条件为零的情况下,

输出量的拉普拉斯变化为:

(5-1-1)

Page 82: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

80

由拉普拉斯反变换可得:

)1()( ψt

eKtC−

−= (5-1-2)

从图 5.1.2 中,我们可以通过通道读数功能(3.4.5 节)得到当环节输出稳定时的信

号值,其值为 OUT=3.14V,所以可以得到:

K=OUT/3=3.14/3=1.05 (5-3)

从公式(5-1-2)可知,当 τ=t 时, )(τc =K(1-0.368)=0.632K=1.97V。所以我们可

以通过红线读数功能在采样信号 X 上查找 接近 V 的值的地方,查到以后,通过读横坐标

的 t 值来得到τ 值。图中,τ =0.41

10.通过上面的步骤可以测量其他运放模块的参数值,值得注意的是,对于一些放大

预测放大倍数比较大的环节(放大倍数>5),应缩小测试信号的幅值,防止因为通道输出>5V

而导致采样信号饱和,影响实验结果。

11.实验结束时,先“断开连接”,再关闭程序,然后关闭实验箱电源,拔掉实验箱上

连线。

5.2 最少拍控制算法的研究

设计并实现对具有一个积分环节的二阶系统的 少拍控制,并通过混合仿真实验研究

该闭环控制系统对三种典型输入的适应性以及输出采样点间的纹波。

实验步骤:

1.检查 ACT-I 实验箱、电源线是否正常,并口连接线有无损坏。检查完毕后,用配套

并口线连接计算机与实验箱,连接完毕后实验箱上电,检查指示灯是否显示正常。如果出

现问题,应向实验指导老师汇报。

2.打开程序,位置在计算机菜单“开始 → 程序 → 求是教仪 → 计算机控制上

位机程序”,或者在桌面上“计算机控制上位机程序”。程序运行后,出现主界面。

3.点击主界面工具条

“连接”按钮,与下位机

建立连接,若连接失败,

重复步骤 1 或者联系实验

指导老师。

4.设计被控对象,实

验系统被控对象的传递函

数为1

( ) ( 1)KG s s T s= + ,它

可用图 5.2.1 所示电路来

模拟。

5.在进行实验之前,我们要先确定模拟环节的精确参数值,这里 R0=50k, R1=

500k,C1=2u,R2=100k,C2=10u。可知理论值:K=R1/R0=10,T1=1。现在我们需要实际的环节参

InOm

图5.2.1

+

+

R0

R1

-

C1

R2

+

+

C2

-

Page 83: 《计算机控制技术》实验指导书 - opto.szu.edu.cnopto.szu.edu.cn/OptoLab/files/《计算机控制技术》实验指导书.pdf · 经常的操作有:用一路输出作为计算机控制时数据处理的d/a

计算机控制软件说明

81

数,我们使用在本文 5.1 节介绍的方法测试惯性环节的参数,对于图 5.2.1 的前半部分惯

性环节,通过本文 5.1 节介绍的方法,我们可以测得其环节放大系数 K1和时间常数 T1。对

于图 5.2.2 的后半积分环节,我们可以通过在电容上并联一个阻值与 R2相同的电阻来构成

另一个惯性环节,然后测出其时间常数 T2。从图 5.2.1 可知,被控系统的传递函数可为:

)1()(

12

1

+=

sTsTKsG (5-2-1)

所以,被控系统放大倍数:

2

1

TKK = (5-2-2)

6.在测得被控对象参数后,可以设计等速输入下 少拍算法,并编写相应的脚本程序,

并验证脚本正确性(详见 3.2 节)。

7.根据脚本的不同,在虚拟示波器上设置不同的显示参数及量程。

8.运行实验,若出现脚本语法错误,或者在实验执行中发生错误,请修改脚本后再运

行实验。

9.实验结束,得到实验曲线,可保存实验数据为位图文件,作为实验结果图形,可在

后实验报告中作为图形结果说明。图 5.2.2 给出了斜坡输入时 少拍系统的输出。

10.实验结束时,先“断开连接”,再关闭程序,然后关闭实验箱电源,拔掉实验箱上

连线。

图 5.2.2 实验结果