当前位置:文档之家› 现代控制理论实验指导书

现代控制理论实验指导书

现代控制理论实验指导书
现代控制理论实验指导书

现代控制理论实验指导书

西安文理学院

物理与机电工程学院

目录

前言 (1)

实验一系统的传递函数阵和状态空间表达式的转换 (3)

实验二多变量系统的能控性和能观测性分析 (7)

实验三多变量系统的稳定性分析 (13)

实验四系统设计:状态观测器的设计 (17)

现代控制理论实验指导书

前言

这是一本为工科高年级学生编写的实验指导书,作为控制系统领域各门控制课程的配套实验教材。

一、现代控制理论实验的任务

“现代控制理论”是全日制本科自动化专业的重要专业课程,它的实践性教学环节,对学生理解和掌握现代控制理论起着至关重要的直接影响作用。

现代控制理论实验的主要任务是使学生通过实验进一步理解和掌握现代控制理论的基本概念、基本原理和控制系统的分析与设计方法。它是现代控制理论课程教学的一部分,其主要目标如下:

(1)深刻理解现代控制理论的基本理论;

(2)初步掌握控制系统的分析与设计方法;

(3)学习和掌握现代计算机技术及其辅助工具的运用,提高计算机的应用能力与水平;

(4)提高实际应用能力和动手操作能力,培养严肃认真、一丝不苟的科学态度。

二、实验的要求

现代控制理论实验是一个专业性较强的实践环节,要求有专门的实验场所和实验设备;并且要求参加实验者必须具备必要的相关理论基础知识,对所做实验的前提条件及制约因素有足够的认识和理解;同时要求参加实验者具有较强的观察思考能力、研究分析能力和创新能力。

三、现代控制理论实验的实现方法

现代控制理论课程的实验方法比较灵活,实验方案和思路也比较多。众多厂家和高校都研制开发出了各种实验箱以及相应的实验平台,但大多数受到实验场所、实验设备等教学条件的制约。

按照加强理论、巩固基础、培养学生的观察思考能力和创新能力的指导思想,本实验指导书主要通过“计算机软件仿真”的实现方法去完成实验,使学生加深对所学理论的理解和认识。

四、对参加实验学生要求

(1)认真阅读实验指导书,复习与实验有关的理论知识,明确每次实验的目的,了解实验所涉及的相关软件的操作,熟悉实验的内容和方法。

(2)爱护实验设备,遵守实验室的规章制度,服从实验指导教师和实验室管理教师的安排和管理。

五、对实验报告的要求

(1)标明实验名称、实验内容、实验目的,以及实验时间、实验地点、同组实验人员等。

(2)注明实验所用的设备、软件及实验的步骤和方法。

(3)认真分析所得的实验结果,得出明确的实验结论。并注明该结论所依据的原理和理论。

(4)字迹工整,书写规范,并使用统一的实验报告纸。

现代控制理论实验指导书

实验一 系统的传递函数阵和状态空间表达式的转换

1.0 实验设备

PC 计算机1台(要求P4-1.8G 以上),MATLAB6.X 软件1套。

1.1 实验目的

①学习多变量系统状态空间表达式的建立方法、了解统状态空间表达式与传递函数相互转换的方法;

②通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。

1.2 实验原理说明

设系统的模型如式(1.1)示。

p

m n R y R u R x D

Cx y Bu Ax x ∈∈∈??

?+=+= (1.1)

其中:A 为n ×n 维系数矩阵; B 为n ×m 维输入矩阵; C 为p ×n 维输出矩阵;

D 为传递阵,一般情况下为0,只有n 和m 维数相同时,D=1。 系统的传递函数阵和状态空间表达式之间的关系如式(1.2)示。

D

B A SI

C s den s num s G +-==

-1)()()

(()( (1.2)

式(1.2)中,)s (num 表示传递函数阵的分子阵,其维数是p ×m ; )s (den 表示传递函数阵的按s 降幂排列的分母。

( 即:

n n n

m m m a s a s b s b s b )s (U )s (Y )s (G ++++++==-- 1

1110 则:]b b b [num m 10=,

]

a a a [den n 2

1

1

=

函数的用法如下例所示:

例如:若给定系统的传函为

13210

61262

34

23+++++++==s s s s s s s )s (U )s (Y )s (G MATLAB 程序如下:

>>num=[0 6 12 6 10];den=[1 2 3 1 1]; >>printsys(num,den) 执行结果为 num/den =

6 s^3 + 12 s^2 + 6 s + 10

---------------------------- ) s^4 + 2 s^3 + 3 s^2 + s + 1

1.3 实验步骤

① 根据所给系统的传递函数或(A 、B 、C 阵),依据系统的传递函数阵和状态空间表达

式之间的关系如式(1.2),采用MATLAB 的file.m 编程。

注意:ss2tf 和tf2ss 是互为逆转换的指令。

② 在MATLAB 界面下调试程序,并检查是否运行正确。 ③ 举例说明程序的运行过程

[例1-1] 已知SISO 系统的状态空间表达式为(1.3)式所示,求系统的传递函数。

u x x x x x x ??????????-+????????????????????---=??????????631234100010321321 ,[]??

??

?

?????=321001x x x y (1.3) 程序:

%首先给A 、B 、C 阵赋值; A=[0 1 0; 0 0 1; -4 -3 -2]; B=[1;3;-6]; C=[1 0 0]; D=0;

%状态空间表达式转换成传递函数阵的格式为: [num,den]=ss2tf(a,b,c,d,u)

[num,den]=ss2tf(A,B,C,D,1)

程序运行结果: num =

0 1.0000 5.0000 3.0000 den =

1.0000

2.0000

3.0000

4.0000 从程序运行结果得到:系统的传递函数为:

4323

5)(23

2+++++=s s s s s S G …………………… (1.4)

[例1-2] 从系统的传递函数(1.4)式求状态空间表达式。 程序:

num =[0 1 5 3]; % 在给num 赋值时,在系数前补0,使num 和den 赋值的个数相同; den =[1 2 3 4];

[A,B,C,D]=tf2ss(num,den) 程序运行结果: A =

-2 -3 -4 1 0 0 0 1 0 B = 1 0 0 C =

1 5 3 D = 0

由于一个系统的状态空间表达式并不唯一, [例1-2]程序运行结果虽然不等于式(1.3)中的A 、B 、C 阵,但该结果与式(1.3)是等效的。现在对上述结果进行验证。

[例1-3] 对[例1-2]的上述结果进行验证编程 %将[例1-2]上述结果赋值给A 、B 、C 、D 阵;

A =[-2 -3 -4;1 0 0; 0 1 0];

B =[1;0;0];

C =[1 5 3]; D=0;

[num,den]=ss2tf(A ,B ,C ,D,1) 程序运行结果与[例1-1]完全相同。

1.4 实验要求

①在运行以上[例]程序的基础上,应用MATLAB 对(1.5)式所示的系统仿照[例1.2]编程,求系统的A 、B 、C 、D 阵;然后再仿照[例1-3]进行验证。

432352)(232+++?

????

?+++=s s s s s s s G (1.5)

提示:num =[0 0 1 2;0 1 5 3]; ② 要求调试自编程序,并写出实验报告。

1.5 实验思考题

1. 系统的传递函数阵和系统的状态空间表达式之间的关系是什么?

2. 同一系统的状态空间表达式是否唯一?

现代控制理论实验指导书

实验二 多变量系统的能控性和能观测性分析

2.0 实验设备

PC 计算机1台(要求P4-1.8G 以上),MATLAB6.X 软件1套。

2.1 实验目的

①学习多变量系统状态能控性定义及判别方法; ②学习多变量系统状态能观性定义及判别方法;

③通过用MATLAB 编程、上机调试,掌握多变量系统能控能观测性的判别方法。

2.2 函数功能简介

利用Matlab 控制系统工具箱中提供的函数分析系统的能控性和能观测性 1. ctrb 函数 功能: 根据动态系统∑),,(C B A 生成能控性判别矩阵

]

[1B A AB B

Q n c -=

调用格式:

)

,(B A ctrb Q c =

2. obsv 函数 功能: 根据动态系统

∑),,(C B A 生成能观测性判别矩阵。

????

?

????

???=-1n o CA CA C Q 调用格式:

)

,(C A obsv Q o =

3. gram 函数 功能: 根据动态系统

∑)C ,B ,A (生成判别能控性、能观测性的格拉姆矩阵。

dt

e

BB e

W t

A t T At T f

--?=0

dt Ce C e M At

t T t A f

T

?=0

调用格式: )B ,A (gram W = %生成判别能控性的格拉姆矩阵。

)C ,A (gram M ''= %生成判别能观测性的格拉姆矩阵, 其中, C ,A ''分别

为A,C 的转置。

4. dgram 函数

功能: 生成判别离散系统能控或能观测性的格拉姆矩阵。 调用格式: 参见函数gram 5. ctrbf 函数 功能: 将不能控系统∑)C ,B ,A (按能控性进行分解。

调用格式:

),,(][C B A ctrbf K T

Cbar Bbar

Abar =

其中:??

????==-c c A A A TAT

Abar 211

0,

?

??

???==c B TB Bbar 0,

[

]c

c

C C CT Cbar ==-1

T 为变换阵,K 为包含状态能控个数信息的行向量,执行sum(K)语句即可得到能控状态数。能控子系统为

)C ,B

,A (c c

c

∑,不能控子系统为)C ,,A (c c ∑0。

6.

obsvf 函数

功能: 将不能观测系统

∑)C ,B ,A (按能观测性进行分解。

调用格式: [Abar, Bbar, Cbar, T, K]=obsvf(A , B , C)

其中:

??????==-o o

A A A TAT

Abar 0

121

, ???

???==o o B B TB Bbar

[]o C CT Cbar 01

==-

T 为变换阵,K 为包含状态能观个数信息的行向量, 执行sum(K)语句即可得到能观测状态数。能观测子系统为

)C ,B

,A (o o

o

∑,不能观测子系统为),B ,A (o o ∑0。

注意:本次试验主要掌握ctrb 函数obsv 函数。

2.3 实验原理说明

①设系统的状态空间表达式

p

m n R y R u R x D

Cx y Bu Ax x ∈∈∈??

?+=+= (2.1)

系统的能控分析是多变量系统设计的基础,包括能控性的定义和能控性的判别。 系统状态能控性的定义的核心是:对于线性连续定常系统(2.1),若存在一个分段连续的输入函数)t (u ,在有限的时间0t ~f t 内,能把任一给定的初态)t (x 0转移至预期的终端

)t (x f ,则称此状态是能控的。若系统所有的状态都是能控的,则称该系统是状态完全能控

的。

②系统输出能控性是指输入函数)t (u 加入到系统,在有限的时间0t ~f t 内,能把任一给定的初态)t (x 0转移至预期的终态输出)t (y f 。

能控性判别分为状态能控性判别和输出能控性判别。

状态能控性分为一般判别和直接判别法,后者是针对系统的系数阵A 是对角标准形或约当标准形的系统,状态能控性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能控性分为一般判别是应用最广泛的一种判别法。

输出能控性判别式为:

[]

p B CA CAB CB Rank RankQ n cy

==-1

(2.2)

状态能控性判别式为:

[

]

n

B A AB B

Rank RankQ n c ==-1 (2.3)

系统的能观分析是多变量系统设计的基础,包括能观性的定义和能观性的判别。 系统状态能观性的定义:对于线性连续定常系统(2.1),如果对t0时刻存在ta ,t0

状态能观性分为一般判别和直接判别法,后者是针对系统的系数阵A 是对角标准形或约当标准形的系统,状态能观性判别时不用计算,应用公式直接判断,是一种直接简易法;前者状态能观性分为一般判别是应用最广泛的一种判别法。

状态能控性判别式为:

[]

n CA CA C

Rank RankQ T

n o ==-1 (2.4)

2.4 实验步骤

(1)先调试[例2.1]、[例2.2]系统能控性、能观性程序,然后根据所给系统的系数阵A 和输入阵B ,依据2.3能控性、能观性判别式,对所给系统采用MATLB 的file.m 编程;

(2)在MATLAB 界面下调试程序,并检查是否运行正确。

(3)按实验要求,判断所给的具有两个输入的二节系统的能控性及能观测性。

2.5 用MATLAB 进行系统能控性和能观测性分析举例

[例2-1] 已知系统状态方程为

?

???????????????+????????????????????----=??????????21321321011000041020122u u x x x x x x

,判别系统的能控性。

解: MATLAB Program 2_1为应用秩判据求解本题的程序。 程序如下: %MATLAB Program 2_1 A=[-2,2,-1;0,-2,0;1,-4,0]; B=[0,0;0,1;1,0]; Qc=ctrb(A,B); n=rank(Qc); L=length(A); if n==L

str='系统是状态完全能控' else

str='系统是状态不完全能控' end

MATLAB Program 2_1运行结果为 str =

系统是状态完全能控

[例2-2] 控制系统的状态空间表达式为

u 020011x 100030013x ??????????-+??????????--=)t ( , x 011101y ??????-=)t (

试分析系统的输出能控性

解 MATLAB Program 2_2为应用秩判据求解本题的程序。 %MATLAB Program 2_2

A=[-3,1,0;0,-3,0;0,0,-1];B=[1,-1;0,0;2,0]; C=[1,0,1;-1,1,0];D=zeros(2,2); C 0=ctrb(A,B); m=size(C,1); Qy=[C*C 0,D]; Qm=rank(Qy); if m==Qm

str='系统输出是完全能控的' else

str='系统输出是不完全能控的' end

MATLAB Program 3_2运行结果为 str =

系统输出是完全能控的

[例2-3] 控制系统的状态空间表达式为

x 02211211x 4000140000400014

x

?

?

????=?

?

???

???????=y ,

判别系统的能观测性。

解 MATLAB Program2_3为应用秩判据求解本题的程序。 %MATLAB Program 2_3

A=[4,1,0,0;0,4,0,0;0,0,4,1;0,0,0,4]; C=[1,1,2,1;1,2,2,0]; Q 0=obsv(A,C);

R =rank(Q 0); L=size(A); if r==L

str='系统是状态完全能观测' else

str='系统是状态不完全能观测' end

MATLAB Program 2_3运行结果为 str =

系统是状态不完全能观测

2.6 实验要求

①在运行以上[例]程序的基础上,编程判别下面系统的能控性和能观测性。 已知线性系统的状态空间表达式为:

???

???

???????-=??????+??????--=x

y u x x 111111113113 ,试判别系统的能控性和能观测性。

② 要求调试自编程序,并写出实验报告。

2.7 实验思考题

1. SISO 系统与MIMO 系统的能控性、能观测性判别准则有何异同之处。

2. 在什么情况下一个系统既是能控的又是能观测的。

现代控制理论实验指导书

实验三 多变量系统的稳定性分析

3.0 实验设备

PC 计算机1台(要求P4-1.8G 以上),MATLAB6.X 软件1套。

3.1 实验目的

①学习多变量系统状态能控性及稳定性分析的定义及判别方法; ②学习多变量系统状态能观性及稳定性分析的定义及判别方法;

③通过用MATLAB 编程、上机调试,掌握多变量系统能控性及稳定性判别方法。

3.2 实验原理说明

① 设系统的状态空间表达式

p

m n R y R u R x Cx

y Bu Ax x ∈∈∈??

?=+= (3.1)

由状态方程求出系统的传递函数为:

)det()()()(1A SI B

A SI Cadj

B A SI

C s G --=

-=- (3.2)

其中A SI )A SI det(-=-——矩阵A 的特征多项式。特征值就是系统矩阵A 的特征值,即特征方程

0=-A sI 的根。

若该系统具有能控性和能观性,则(3.2)式的分子和分母不存在公因子相消,即有

)det()(A sI s D -= (3.3)

式(3.3)表明,该系统的传递函数极点与系统的特征值完全相同。

若该系统不具有能控性和能观性,则(3.2)式的分子和分母有相同的公因子相消,即有

)det()(A sI s D -≠ (3.4)

式(3.4)表明,该系统的传递函数极点只是系统特征值的一部分。在这种情况下,如果系统具有外部稳定性,就不一定具有内部稳定性。因为当式(3.2)的分子和分母多项式含有正根的公因子项时,与正特征值相对应的状态变量不稳定;而在传递函数中,由于零、极点对消后没有出现该正极点,故系统却具有外部稳定性。但是若线性定常系统具有能控性和能观性,则其内部稳定性和外部稳定性是等价的。

② 只要系统的A 的特征根实部为负,系统就是状态稳定的。式(1.2) [D B )A SI (C )

s (den )s ((num )s (G +-==-1]又可写成:

D B )A SI (C )

s (den )

s ((num )s (D )s (N )s (G +-===

-1 (3.5) 当状态方程是系统的最小实现时,A sI )s (D -=,系统的状态渐近稳定与系统的

BIBO (有界输入有界输出)稳定等价;

当A sI )s (D -≠

时,若系统状态渐近稳定则系统一定是的BIBO 稳定的。

3.3 实验步骤

① 先调试[例3-1]系统能控性、能观性程序,然后根据所给系统的系数阵A 和输入阵B ,依据2.3能控性、能观性判别式,对所给系统采用MATLB 的file.m 编程;在MATLAB 界面下调试程序,并检查是否运行正确。

② 调试[例3-1]系统稳定性分析程序,验证稳定性判据的正确性。 ③ 按实验要求,判断所给系统的稳定性。

[例3-1]:已知系数阵A 、B 、和C 阵分别如下,分析系统的状态稳定性。

??????????---=234100010A , ??

???

?????-=631B , []001=C (3.6)

④ 根据题义编程:

A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;-6]; C=[1 0 0]; D=0;

[z,p,k]=ss2zp(A,B,C,D,1) 程序运行结果: z = -4.3028

-0.6972

p =

-1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i k = 1

由于系统的零、极点均具有负的实部,则系统是BIBO 稳定的;又因为状态方程是系统的最小实现,系统的状态渐近稳定与系统的BIBO 稳定等价,所以系统是状态渐近稳定的。

[例3-2] 已知系统的状态矩阵为?

?

?

???---=4121A . ① 求系统特征值,判断稳定性。 ② 对系统进行李雅普诺夫稳定性分析。 [例3-2]的实验步骤:

1.用函数eig()求系统的特征值,并判稳定性。 在Command Window 下键入以下命令: >> A=[-1 -2;1 -4]; >> eig(A) 运行结果为: ans = -2 -3

系统特征根都为负值,可知系统稳定。 2.对系统进行李雅普诺夫稳定性分析 选定正定矩阵Q ,求解P 。参考程序如下: A=[-1 -2; 1 -4]; %定义系统状态矩阵A

Q=[1 0;0 1]; %定义正定矩阵Q 为二阶单位阵 P=lyap(A',Q) %求解稳定性判别矩阵P detp=det(P) %求P

detp1=det(P(1,1)) %求P 的一阶主子式 运行结果为: P =

0.3833 -0.1167 -0.1167 0.1833 detp = 0.0567 detp1 = 0.3833

P 的各阶主子式的值都大于0,P 为正定对称阵,根据李雅普诺夫稳定性定理可知:系统稳定,和利用特征值求解的结果一致。

3.4 实验要求

①在运行以上[例3-2]程序的基础上,编程判别下面系统的稳定性。

已知系统状态方程为:??????????

??????+??????

????????---=21012001121

00103212u u x x

, 当Q=I 时,P=?如选Q 为半正定矩阵,Q=?对应P=?判断系统稳定性。

② 要求调试自编程序,并写出实验报告。

3.5 实验思考题

1. 什么是李雅普诺夫稳定性?如何判断系统是否大范围渐进稳定?

2. 如何构造李雅普诺夫函数?

现代控制理论实验指导书

实验四 系统设计:状态观测器的设计

4.0 实验设备

PC 计算机1台(要求P4-1.8G 以上)、MATLAB6.X 软件1套、

4.1 实验目的

(1)掌握用状态反馈配置极点的方法 (2)掌握状态观测器的设计方法

(3)了解状态反馈与状态观测器的物理意义。

4.2 实验原理说明

设系统的模型如式(4.1)示。

p

m n R y R u R x D

Cx y Bu Ax x ∈∈∈??

?+=+= (4.1)

系统状态观测器包括全阶观测器和降阶观测器。设计全阶状态观测器的条件是系统状态完全能观。全阶状态观测器的方程为:

Bu y K z C K A z z z ++-=)( (4.2)

4.3 实验步骤

①在MATLAB 界面下调试[例4-1]程序,并检查是否运行正确。

②已知三阶系数阵A 、B 和C 阵分别如式(4.4)示,设计全阶状态观测器,要求状态观测器的极点为[-1 -2 -3]。

[例4-1]:

??????--=1210A , ??????=10B , []01=C (4.3)

首先验证系统是状态完全能观的,设状态观测器的增益阵为Kz=[k1 k2]T

根据题义编程: A=[0 1;-2 -1]; B=[0;1]; C=[1 0]; D=0;

[num,den]=ss2tf(A,B,C,D,1); %求出原系统特征多相式 denf=[1 6 9]; %希望的极点的特征多相式 k1=den(:,2)-denf(:,2) %计算k1=d1-a1 k2=den(:,3)-denf(:,3) %计算k2=d2-a2 程序运行结果: k1 =-5 k2 =-7

所以,状态观测器的增益阵为Kz=[k1 k2]T

=[-5 –7]T

。则状态观测器的方程为

u y z z Bu y K z C K A z z z ???

???+??????--+????????????-=++-=10751375)(21 4.4 实验要求

??????????---=234100010A ,??

???

?????-=631B ,[]001=C (4.4) 设计全阶状态观测器,要求状态观测器的极点为[-1 -2 -3]。

① 对系统式(4.4)所示系统,采用[例4-1]的思路,用MATLAB 编程求状态观测器的增益阵Kz=[k1 k2 k3]T

② 要求调试自编程序,并写出实验报告。

4.5 实验思考题

设计全阶状态观测器的条件是什么,为什么要加这样的限制条件?

链表实验报告

C语言程序设计实验报告 实验一:链表的基本操作一·实验目的 1.掌握链表的建立方法 2.掌握链表中节点的查找与删除 3.掌握输出链表节点的方法 4.掌握链表节点排序的一种方法 5.掌握C语言创建菜单的方法 6.掌握结构化程序设计的方法 二·实验环境 1.硬件环境:当前所有电脑硬件环境均支持 2.软件环境:Visual C++6.0 三.函数功能 1. CreateList // 声明创建链表函数 2.TraverseList // 声明遍历链表函数 3. InsertList // 声明链表插入函数 4.DeleteTheList // 声明删除整个链表函数 5. FindList // 声明链表查询函数 四.程序流程图 五.程序代码 #include #include typedef int Elemtype; typedef int Status; typedef struct node//定义存储节点 { int data;//数据域 struct node *next;//结构体指针 } *linklist,node;//结构体变量,结构体名称 linklist creat (int n)//创建单链表 { linklist head,r,p;//定义头指针r,p,指针 int x,i; head=(node *)malloc(sizeof(node));//生成头结点

r=head;//r指向头结点 printf("输入数字:\n"); for(i=n;i>0;i--)//for 循环用于生成第一个节点并读入数据{ scanf("%d",&x); p=(node *)malloc(sizeof(node)); p->data=x;//读入第一个节点的数据 r->next=p;//把第一个节点连在头结点的后面 r=p;//循环以便于生成第二个节点 } r->next=0;//生成链表后的断开符 return head;//返回头指针 } void output (linklist head)//输出链表 { linklist p; p=head->next; do { printf("%3d",p->data); p=p->next; } while(p); printf("\n") } Status insert ( linklist &l,int i, Elemtype e)//插入操作 { int j=0; linklist p=l,s; while(jnext; ++j; } if(!p || j>i-1) return -1; else { s=(node *)malloc(sizeof(node)); s->data=e; s->next=p->next; p->next=s; return 1; } } Status delect ( linklist &l,int i, Elemtype &e)//删除操作 { int j=0; linklist p=l,q; while(jnext) { p=p->next; ++j; } if(!p->next || j>i-1) return -1;

《数据结构》实验报告 设计循环单链表

《数据结构》实验报告 1、实验名称:设计循环单链表 2、实验日期: 2013-3-26 3、基本要求: 1)循环单链表的操作,包括初始化、求数据元素个数、插入、删除、取数据元素; 2)设计一个测试主函数实际运行验证所设计循环单链表的正确性。 4、测试数据: 依次输入1,2,3,4,5,6,7,8,9,10,删除5,再依次输出数据元素。 5、算法思想或算法步骤: 主函数主要是在带头结点的循环单链表中删除第i个结点,其主要思想是在循环单链表中寻找到第i-1个结点并由指针p指示,然后让指针s指向a[i]结点,并把数据元素a[i]的值赋给x,最后把a[i]结点脱链,并动态释放a[i]结点的存储空间。 6、模块划分: 1)头文件LinList.h。头文件LinList.h中包括:结点结构体定义、初始化操作、求当前数据个数、插入一个结点操作、删除一个结点操作以及取一个数据元素操作; 2)实现文件dlb.cpp。包含主函数void main(void),其功能是测试所设计的循环单链表的正确性。

7、数据结构: 链表中的结点的结构体定义如下: typedef struct Node { DataType data; struct Node *next; }SLNode; 8、源程序: 源程序存放在两个文件中,即头文件LinList.h和实现文件dlb.cpp。//头文件LinList.h typedef struct Node { DataType data; struct Node *next; }SLNode; void ListInitiate(SLNode **head) //初始化 { *head=(SLNode *)malloc(sizeof(SLNode)); //申请头结点,由head指示其地址 (*head)->next=*head; }

现代控制理论基础考试题A卷及答案

即 112442k g k f M L M ML θθθ??=-+++ ??? && 212 44k k g M M L θθθ??=-+ ??? && (2)定义状态变量 11x θ=,21x θ=&,32 x θ=,42x θ=& 则 一.(本题满分10分) 如图所示为一个摆杆系统,两摆杆长度均为L ,摆杆的质量忽略不计,摆杆末端两个质量块(质量均为M )视为质点,两摆杆中点处连接一条弹簧,1θ与2θ分别为两摆杆与竖直方向的夹角。当12θθ=时,弹簧没有伸长和压缩。水平向右的外力()f t 作用在左杆中点处,假设摆杆与支点之间没有摩擦与阻尼,而且位移足够小,满足近似式sin θθ=,cos 1θ=。 (1)写出系统的运动微分方程; (2)写出系统的状态方程。 【解】 (1)对左边的质量块,有 ()2111211 cos sin sin cos sin 222 L L L ML f k MgL θθθθθθ=?-?-?-&& 对右边的质量块,有 ()221222 sin sin cos sin 22 L L ML k MgL θθθθθ=?-?-&& 在位移足够小的条件下,近似写成: ()1121 24f kL ML Mg θθθθ=---&& ()2122 4kL ML Mg θθθθ=--&&

2 / 7 1221 334413 44244x x k g k f x x x M L M ML x x k k g x x x M M L =?? ???=-+++ ???? ? =????=-+? ????? &&&& 或写成 11 223 34401 000014420001000044x x k g k x x M L M f ML x x x x k k g M M L ? ? ?? ?????????? ??-+???? ???????????=+???? ????? ??????????????????? ????-+?? ? ? ?????? ? &&&& 二.(本题满分10分) 设一个线性定常系统的状态方程为=x Ax &,其中22R ?∈A 。 若1(0)1?? =??-??x 时,状态响应为22()t t e t e --??=??-?? x ;2(0)1??=??-??x 时,状态响应为 2()t t e t e --?? =??-?? x 。试求当1(0)3??=????x 时的状态响应()t x 。 【解答】系统的状态转移矩阵为()t t e =A Φ,根据题意有 221()1t t t e t e e --????==????--???? A x 22()1t t t e t e e --????==????--???? A x 合并得 2212211t t t t t e e e e e ----????=????----?? ??A 求得状态转移矩阵为 1 22221212221111t t t t t t t t t e e e e e e e e e -----------?????? ?? ==????????------???? ????A 22222222t t t t t t t t e e e e e e e e --------?? -+-+=??--??

测试技术实验指导书及实验报告2006级用汇总

矿压测试技术实验指导书 学号: 班级: 姓名: 安徽理工大学 能源与安全学院采矿工程实验室

实验一常用矿山压力仪器原理及使用方法 第一部分观测岩层移动的部分仪器 ☆深基点钻孔多点位移计 一、结构简介 深基点钻孔多点位移计是监测巷道在掘进和受采动影响的整个服务期间,围岩内部变形随时间变化情况的一种仪器。 深基点钻孔多点位移包括孔内固定装置、孔中连接钢丝绳、孔口测读装置组成。每套位移计内有5~6个测点。其结构及其安装如图1所示。 二、安装方法 1.在巷道两帮及顶板各钻出φ32的钻孔。 2.将带有连接钢丝绳的孔内固定装置,由远及近分别用安装圆管将其推至所要求的深度。(每个钻孔布置5~6个测点,分别为;6m、5m、4m、3m、2m、lm或12m、10m、8m、6m、4m、2m)。 3.将孔口测读装置,用水泥药圈或木条固定在孔口。 4。拉紧每个测点的钢丝绳,将孔口测读装置上的测尺推至l00mm左右的位置后,由螺丝将钢丝绳与测尺固定在一起。 三、测试方法 安装后先读出每个测点的初读数,以后每次读得的数值与初读数之差,即为测点的位移值。当读数将到零刻度时,松开螺丝,使测尺再回到l00mm左右的位置,重新读出初读数。 ☆顶板离层指示仪 一、结构简介: 顶板离层指示仪是监测顶板锚杆范围内及锚固范围外离层值大小的一种监测仪器,在顶板钻孔中布置两个测点,一个在围岩深部稳定处,一个在锚杆端部围岩中。离层值就是围岩中两测点之间以及锚杆端部围岩与巷道顶板表面间的相对位移值。顶板离层指示仪由孔内固定装置、测量钢丝绳及孔口显示装置组成如图1所示。

二、安装方法: 1.在巷道顶板钻出φ32的钻孔,孔深由要求而定。 2.将带有长钢丝绳的孔内固定装置用安装杆推到所要求的位置;抽出安装杆后再将带有短钢丝绳的孔内固定装置推到所要求的位置。 3.将孔口显示装置用木条固定在孔口(在显示装置与钻孔间要留有钢丝绳运动的间隙)。 4.将钢丝绳拉紧后,用螺丝将其分别与孔口显示装置中的圆管相连接,且使其显示读数超过零刻度线。 三、测读方法: 孔口测读装置上所显示的颜色,反映出顶板离层的范围及所处状态,显示数值表示顶板的离层量。☆DY—82型顶板动态仪 一、用途 DY-82型顶板动态仪是一种机械式高灵敏位移计。用于监测顶底板移近量、移近速度,进行采场“初次来压”和“周期来压”的预报,探测超前支撑压力高 峰位置,监测顶板活动及其它相对位移的测量。 二、技术特征 (1)灵敏度(mm) 0.01 (2)精度(%) 粗读±1,微读±2.5 (3)量程(mm) 0~200 (4)使用高度(mm) 1000~3000 三、原理、结构 其结构和安装见图。仪器的核心部件是齿条6、指针8 以及与指针相连的齿轮、微读数刻线盘9、齿条下端带有读 数横刻线的游标和粗读数刻度管11。 当动态仪安装在顶底板之间时,依靠压力弹簧7产生的 弹力而站立。安好后记下读数(初读数)并由手表读出时间。 粗读数由游标10的横刻线在刻度管11上的位置读出,每小 格2毫米,每大格(标有“1”、“22'’等)为10毫米,微读数 由指针8在刻线盘9的位置读出,每小格为0.01毫米(共200 小格,对应2毫米)。粗读数加微读数即为此时刻的读数。当 顶底板移近时,通过压杆3压缩压力弹簧7,推动齿条6下 移,带动齿轮,齿轮带动指针8顺时针方向旋转,顶底板每 移近0.01毫米,指针转过1小格;同时齿条下端游标随齿条 下移,读数增大。后次读数减去前次读数,即为这段时间内的顶底板移近量。除以经过的时间,即得

单链表实验报告

计算机与信息技术学院综合性、设计性实验报告 一、实验目的 (1)熟悉顺序表的创建、取值、查找、插入、删除等算法,模块化程序设计方法。 二、实验仪器或设备 (1)硬件设备:CPU为Pentium 4 以上的计算机,内存2G以上 (2)配置软件:Microsoft Windows 7 与VC++6.0 三、总体设计(设计原理、设计方案及流程等) 设计原理: 单链表属于线性表,线性表的存储结构的特点是:用一组任意存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。因此,对于某个元素来说,不仅需要存储其本身的信息,还需要存储一个指示其直接后继的信息。 设计方案: 采用模块化设计的方法,设计各个程序段,最终通过主函数实现各个程序段的功能。设计时,需要考虑用户输入非法数值,所以要在程序中写入说可以处理非法数值的代码。 设计流程: 1. 引入所需的头文件; 2. 定义状态值; 3. 写入顺序表的各种操作的代码; 写入主函数,分别调用各个函数。在调用函数时,采用if结构进行判断输 入值是否非法,从而执行相应的程序 四、实验步骤(包括主要步骤、代码分析等) #include // EOF(=A Z 或F6),NULL #in clude // srand( ) ,rand( ),exit (n) #in clude // malloc( ),alloc( ),realloc() 等 #in clude // INT_MAX 等 #in clude #in clude #in clude // floor(),ceil( ),abs() #in clude // cout,ci n #in clude // clock( ),CLK_TCK,clock_t #defi ne TRUE 1 #defi ne FALSE 0 #defi ne OK 1 #defi ne ERROR 0 #defi ne INFEASIBLE -1

混凝土结构实验指导书及实验报告(学生用)

土木工程学院 《混凝土结构设计基本原理》实验指导书 及实验报告 适用专业:土木工程周淼 编 班级::学 号: 理工大学 2018 年9 月

实验一钢筋混凝土梁受弯性能试验 一、实验目的 1.了解适筋梁的受力过程和破坏特征; 2.验证钢筋混凝土受弯构件正截面强度理论和计算公式; 3.掌握钢筋混凝土受弯构件的实验方法及荷载、应变、挠度、裂缝宽度等数据的测试技术 和有关仪器的使用方法; 4.培养学生对钢筋混凝土基本构件的初步实验分析能力。 二、基本原理当梁中纵向受力钢筋的配筋率适中时,梁正截面受弯破坏过程表现为典型的三个阶段:第一阶段——弹性阶段(I阶段):当荷载较小时,混凝土梁如同两种弹性材料组成的组合梁,梁截面的应力呈线性分布,卸载后几乎无残余变形。当梁受拉区混凝土的最大拉应力达到混凝土的抗拉强度,且最大的混凝土拉应变超过混凝土的极限受拉应变时,在纯弯段某一薄弱截面出现首条垂直裂缝。梁开裂标志着第一阶段的结束。此时,梁纯弯段截面承担的弯矩M cr称为开裂弯矩。第二阶段——带裂缝工作阶段(II阶段):梁开裂后,裂缝处混凝土退出工作,钢筋应力急增,且通过粘结力向未开裂的混凝土传递拉应力,使得梁中继续出现拉裂缝。压区混凝土中压应力也由线性分布转化为非线性分布。当受拉钢筋屈服时标志着第二阶段的结束。此时梁纯弯段截面承担的弯矩M y称为屈服弯矩。第三阶段——破坏阶段(III阶段):钢筋屈服后,在很小的荷载增量下,梁会产生很大的变形。裂缝的高度和宽度进一步发展,中和轴不断上移,压区混凝土应力分布曲线渐趋丰满。当受压区混凝土的最大压应变达到混凝土的极限压应变时,压区混凝土压碎,梁正截面受弯破坏。此时,梁承担的弯矩M u 称为极限弯矩。适筋梁的破坏始于纵筋屈服,终于混凝土压碎。整个过程要经历相当大的变形,破坏前有明显的预兆。这种破坏称为适筋破坏,属于延性破坏。 三、试验装置

单链表的插入和删除实验报告

. 实验一、单链表的插入和删除 一、目的 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 二、要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 三、程序源代码 #include"stdio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" typedef struct node //定义结点 { char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode; typedef ListNode * LinkList; // 自定义LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表

ListNode *LocateNode(); //函数,按值查找结点 void DeleteList(); //函数,删除指定值的结点void printlist(); //函数,打印链表中的所有值 void DeleteAll(); //函数,删除所有结点,释放内存 //==========主函数============== void main() { char ch[10],num[10]; LinkList head; head=CreatListR1(); //用尾插入法建立单链表,返回头指针printlist(head); //遍历链表输出其值 printf(" Delete node (y/n):");//输入“y”或“n”去选择是否删除结点scanf("%s",num); if(strcmp(num,"y")==0 || strcmp(num,"Y")==0){ printf("Please input Delete_data:"); scanf("%s",ch); //输入要删除的字符串 DeleteList(head,ch); printlist(head); } DeleteAll(head); //删除所有结点,释放内存 } //==========用尾插入法建立带头结点的单链表

现代控制理论基础试卷及答案.doc

现代控制理论基础考试题 西北工业大学考试题(A卷) (考试时间120分钟) 学院:专业:姓名:学号: 一.填空题(共27分,每空1.5分) 1.现代控制理论基础的系统分析包括___________和___________。 2._______是系统松弛时,输出量、输入量的拉普拉斯变换之比。 3.线性定常系统齐次状态方程是指系统___________时的状态方程。 4.推导离散化系统方程时在被控对象上串接一个开关,该开关以T 为周期进行开和关。这个开关称为_______。 5.离散系统的能______和能______是有条件的等价。 6.在所有可能的实现中,维数最小的实现称为最小实现,也称为 __________。 7.构造一个与系统状态x有关的标量函数V(x, t)来表征系统的广义 能量, V(x, t)称为___________。 8.单输入-单输出线性定常系统,其BIBO稳定的充要条件是传递函

数的所有极点具有______。 9. 控制系统的综合目的在于通过系统的综合保证系统稳定,有满意的_________、_________和较强的_________。 10. 所谓系统镇定问题就是一个李亚普诺夫意义下非渐近稳定的 系统通过引入_______,以实现系统在李亚普诺夫意义下渐近稳定的问题。 11. 实际的物理系统中,控制向量总是受到限制的,只能在r 维控 制空间中某一个控制域内取值,这个控制域称为_______。 12. _________和_________是两个相并行的求解最优控制问题的 重要方法。 二. 判断题(共20分,每空2分) 1. 一个系统,状态变量的数目和选取都是惟一的。 (×) 2. 传递函数矩阵的描述与状态变量选择无关。 (√) 3. 状态方程是矩阵代数方程,输出方程是矩阵微分方程。 (×) 4. 对于任意的初始状态)(0t x 和输入向量)(t u ,系统状态方程的解存在并且 惟 一 。 (√) 5. 传递函数矩阵也能描述系统方程中能控不能观测部分的特性。 (×)

土工实验指导书及实验报告

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二OO九年五月

目录 实验一试样制备 实验二含水率试验 实验三密度试验 实验四液限和塑限试验 实验五颗粒分析试验 实验六固结试验 实验七直接剪切试验 实验八击实试验 土工试验复习题

实验一试样制备 一、概述 试样的制备是获得正确的试验成果的前提,为保证试验成果的可靠性以及试验数据的可比性,应具备一个统一的试样制备方法和程序。 试样的制备可分为原状土的试样制备和扰动土的试样制备。对于原状土的试样制备主要包括土样的开启、描述、切取等程序;而扰动土的制备程序则主要包括风干、碾散、过筛、分样和贮存等预备程序以及击实等制备程序,这些程序步骤的正确与否,都会直接影响到试验成果的可靠性,因此,试样的制备是土工试验工作的首要质量要素。 二、仪器设备 试样制备所需的主要仪器设备,包括: (1)孔径0.5mm、2mm和5mm的细筛; (2)孔径0.075mm的洗筛; (3)称量10kg、最小分度值5g的台秤; (4)称量5000g、最小分度值1g和称量200g、最小分度值0.01g的天平;

(5)不锈钢环刀(内径61.8mm、高20mm;内径79.8mm、高20mm或内径61.8mm、高40mm); (6)击样器:包括活塞、导筒和环刀; (7)其他:切土刀、钢丝锯、碎土工具、烘箱、保湿器、喷水设备、凡士林等。 三、试样制备 (一)原状土试样的制备步骤 1、将土样筒按标明的上下方向放置,剥去蜡封和胶带,开启土样筒取土样。 2、检查土样结构,若土样已扰动,则不应作为制备力学性质试验的试样。 3、根据试验要求确定环刀尺寸,并在环刀内壁涂一薄层凡士林,然后刃口向下放在土样上,将环刀垂直下压,同时用切土刀沿环刀外侧切削土样,边压边削直至土样高出环刀,制样时不得扰动土样。 4、采用钢丝锯或切土刀平整环刀两端土样,然后擦净环刀外壁,称环刀和土的总质量。 5、切削试样时,应对土样的层次、气味、颜色、夹杂物、裂缝和均匀性进行描述。 6、从切削的余土中取代表性试样,供测定含水率以及颗粒分析、界限含水率等试验之用。

链表实验报告

链表实验报告

————————————————————————————————作者: ————————————————————————————————日期:

《数据结构》实验报告二 系别:嵌入式系统工程系班级:嵌入式11003班 学号:11160400314姓名:孙立阔 日期:2012年4月9日指导教师:申华 一、上机实验的问题和要求: 单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查找、插入与删除。具体实现要求: 1.从键盘输入10个字符,产生不带表头的单链表,并输入结点值。 2.从键盘输入1个字符,在单链表中查找该结点的位置。若找到,则显示“找到了”;否则, 则显示“找不到”。 3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出单链表所有结点值,观察输出结果。 4.从键盘输入1个整数,表示欲删除结点的位置,输出单链表所有结点值,观察输出结果。 5.将单链表中值重复的结点删除,使所得的结果表中个结点值均不相同,输出单链表所有结 点值,观察输出结果。 6.删除其中所有数据值为偶数的结点,输出单链表所有结点值,观察输出结果。 7.(★)将单链表分解成两个单链表A和B,使A链表中含有原链表中序号为奇数的元素, 而B链表中含有原链表中序号为偶数的元素,且保持原来的相对顺序,分别输出单链表A和单链表B的所有结点值,观察输出结果。 二、程序设计的基本思想,原理和算法描述: (包括程序的结构,数据结构,输入/输出设计,符号名说明等) 创建一个空的单链表,实现对单链表的查找,插入,删除的功能。 三、源程序及注释: #defineOK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define TRUE 1

CAD上机实验指导书及实验报告

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 北京邮电大学世纪学院 教务处 2009-8

实验报告 课程名称计算机绘图(CAD) 实验项目AutoCAD二维绘图实验 专业班级 姓名学号 指导教师实验成绩 2016年11月日

单链表实验报告

数据结构 课程设计 设计题目:单链表 专业班级:11软会四班 指导教师:吉宝玉 日期:2012 目录 一、实验目的 (2) 1、 (2) 2、 (2) 二、实验内容 (3)

三、实验基本要求(软、硬件) (3) 四、算法设计思想 (3) 1、 (3) 2、 (3) 3、 (3) 4、 (3) 5、 (3) 6、 (3) 7、 (3) 8、 (3) 五、算法流程图 (4) 六、算法源代码 (4) 七、运行结果 (9) 1、 (9) 2、 (10) 3、 (11) 4、 (11) 5、 (11) 6、 (12) 7、 (12) 8、 (13) 9、 (13) 八、收获及体会 (14) 一、实验目的 1、理解并掌握单链表的结构特点和相关概念; 2、学会单链表的基本操作:建立、插入、删除、查找、 输入、撤销、逆置、求前驱和后继等并实现其算法。

二、实验内容 利用头插建立一个带头结点的单链表,并用算法实现该单链表的插入、删除查找、输出、求前驱和后继、再把此单链表逆置,然后在屏幕上显示每次操作的结果当所有操作完成后能撤销该单链表。 三、实验基本要求(软、硬件) 用VC++6.0软件平台,操作系统:Windows XP 硬件:内存要求:内存大小在256MB,其他配置一般就行。 四、算法设计思想 1、定义一个创建链表的函数,通过该函数可以创建一个链表,并为下面的函数应用做 好准备。 2、定义输出链表的算法,通过对第一步已经定义好的创建链表函数的调用,在这一步 通过调用输出链表的函数算法来实现对链表的输出操作。 3、定义一个遍历查找的算法,通过此算法可以查找到链表中的每一个节点是否存在。 4、定义查找链表的每一个前驱和后继,通过定义这个算法,可以很容易的实现对链表 的前驱和后继的查找工作。 5、定义插入节点的算法,通过定义这个算法,并结合这查找前驱和后继的算法便可以 在连链表的任意位置进行插入一个新节点。 6、定义删除节点的操作,这个算法用于对链表中某个多余节点的删除工作。 7、定义一个逆置单链表的操作,通过定义这个算法,可以逆置输出单链表。 8、定义一个撤销链表的算法,这个算法用于删除单链表中的所有节点,使链表为空。

链表实现多项式相加实验报告

实验报告 课程名称:数据结构 题目:链表实现多项式相加 班级: 学号: 姓名: 完成时间:2012年10月17日

1、实验目的和要求 1)掌握链表的运用方法; 2)学习链表的初始化并建立一个新的链表; 3)知道如何实现链表的插入结点与删除结点操作; 4)了解链表的基本操作并灵活运用 2、实验内容 1)建立两个链表存储一元多项式; 2)实现两个一元多项式的相加; 3)输出两个多项式相加后得到的一元多项式。 3、算法基本思想 数降序存入两个链表中,将大小较大的链表作为相加后的链表寄存处。定义两个临时链表节点指针p,q,分别指向两个链表头结点。然后将另一个链表中从头结点开始依次与第一个链表比较,如果其指数比第一个小,则p向后移动一个单位,如相等,则将两节点的系数相加作为第一个链表当前节点的系数,如果为0,则将此节点栓掉。若果较大,则在p前插入q,q向后移动一个,直到两个链表做完为止。 4、算法描述 用链表实现多项式相加的程序如下: #include #include #include struct node{ int exp; float coef; struct node*next; };

void add_node(struct node*h1,struct node*h2); void print_node(struct node*h); struct node*init_node() { struct node*h=(struct node*)malloc(sizeof(struct node)),*p,*q; int exp; float coef=1.0; h->next=NULL; printf("请依次输入多项式的系数和指数(如:\"2 3\";输入\"0 0\"时结束):\n"); p=(struct node*)malloc(sizeof(struct node)); q=(struct node*)malloc(sizeof(struct node)); for(;fabs(coef-0.0)>1.0e-6;) { scanf("%f %d",&coef,&exp); if(fabs(coef-0.0)>1.0e-6) { q->next=p; p->coef=coef; p->exp=exp; p->next=NULL; add_node(h,q); } } free(p); free(q); return(h); } void add_node(struct node*h1,struct node*h2) { struct node*y1=h1,*y2=h2; struct node*p,*q; y1=y1->next; y2=y2->next; for(;y1||y2;) if(y1) { if(y2) { if(y1->expexp) y1=y1->next; else if(y1->exp==y2->exp) { y1->coef+=y2->coef; if(y1->coef==0)

《流体力学》课程实验(上机)指导书及实验报告格式

《流体力学》课程实验指导书袁守利编 汽车工程学院 2005年9月

前言 1.实验总体目标、任务与要求 1)学生在学习了《流体力学》基本理论的基础上,通过伯努利方程实验、动量方程实 验,实现对基本理论的验证。 2)通过实验,使学生对水柱(水银柱)、U型压差计、毕托管、孔板流量计、文丘里流量计等流体力学常用的测压、测流量装置的结构、原理和使用有基本认识。 2.适用专业 热能与动力工程 3.先修课程 《流体力学》相关章节。 4.实验项目与学时分配 5. 实验改革与特色 根据实验内容和现有实验条件,在实验过程中,采取学生自己动手和教师演示相结合的方法,力求达到较好的实验效果。

实验一伯努利方程实验 1.观察流体流经实验管段时的能量转化关系,了解特定截面上的总水头、测压管水头、压强水头、速度水头和位置水头间的关系,从而加深对伯努利方程的理解和认识。 2.掌握各种水头的测试方法和压强的测试方法。 3.掌握流量、流速的测量方法,了解毕托管测速的原理。 二、实验条件 伯努利方程实验仪 三、实验原理 1.实验装置: 图一伯努利方程实验台 1.水箱及潜水泵 2.上水管 3.电源 4.溢流管 5.整流栅 6.溢流板 7.定压水箱 8.实验 细管9. 实验粗管10.测压管11.调节阀12.接水箱13.量杯14回水管15.实验桌 2.工作原理 定压水箱7靠溢流来维持其恒定的水位,在水箱下部装接水平放置的实验细管8,水经实验细管以恒定流流出,并通过调节阀11调节其出水流量。通过布置在实验管四个截面上的四组测压孔及测压管,可以测量到相应截面上的各种水头的大小,从而可以分析管路中恒定流动的各种能量形式、大小及相互转化关系。各个测量截面上的一组测压管都相当于一组毕托管,所以也可以用来测管中某点的流速。 电测流量装置由回水箱、计量水箱和电测流量装置(由浮子、光栅计量尺和光电子

数据结构实验报告 - 答案汇总

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序 的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"stdio.h" #include"string.h" #include"stdlib.h" #include"ctype.h" typedef struct node //定义结点 { char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode; typedef ListNode * LinkList; // 自定义LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表 LinkList CreatList(void); //函数,用头插入法建立带头结点的单链表 ListNode *LocateNode(); //函数,按值查找结点 void DeleteList(); //函数,删除指定值的结点 void printlist(); //函数,打印链表中的所有值 void DeleteAll(); //函数,删除所有结点,释放内存

《现代控制理论基础》考试题B卷及答案

一.(本题满分10分) 请写出如图所示电路当开关闭合后系统的状态方程和输出方程。其中状态变量的设置如图所示,系统的输出变量为流经电感2L 的电流强度。 【解答】根据基尔霍夫定律得: 1113222332 1L x Rx x u L x Rx x Cx x x ++=?? +=??+=? 改写为1 13111 22 322 312 11111R x x x u L L L R x x x L L x x x C C ? =--+?? ?=-+???=-?? ,输出方程为2y x = 写成矩阵形式为

[]11 111222 2 331231011000110010R L L x x L R x x u L L x x C C x y x x ??? --???????????????? ???????=-+???? ??????? ??????????????? ? ???-?????? ? ? ??? ?? ?=??? ?????? 二.(本题满分10分) 单输入单输出离散时间系统的差分方程为 (2)5(1)3()(1)2()y k y k y k r k r k ++++=++ 回答下列问题: (1)求系统的脉冲传递函数; (2)分析系统的稳定性; (3)取状态变量为1()()x k y k =,21()(1)()x k x k r k =+-,求系统的状态空间表达式; (4)分析系统的状态能观性。 【解答】 (1)在零初始条件下进行z 变换有: ()()253()2()z z Y z z R z ++=+ 系统的脉冲传递函数: 2()2 ()53 Y z z R z z z +=++ (2)系统的特征方程为 2()530D z z z =++= 特征根为1 4.3z =-,20.7z =-,11z >,所以离散系统不稳定。 (3)由1()()x k y k =,21()(1)()x k x k r k =+-,可以得到 21(1)(2)(1)(2)(1)x k x k r k y k r k +=+-+=+-+ 由已知得 (2)(1)2()5(1)3()y k r k r k y k y k +-+=-+-112()5(1)3()r k x k x k =-+- []212()5()()3()r k x k r k x k =-+-123()5()3()x k x k r k =--- 于是有: 212(1)3()5()3()x k x k x k r k +=--- 又因为 12(1)()()x k x k r k +=+ 所以状态空间表达式为

电磁场实验指导书及实验报告

CENTRAL SOUTH UNIVERSITY 题目利用Matlab模拟点电荷电场的分布姓名xxxx 学号xxxxxxxxxx 班级电气xxxx班 任课老师xxxx 实验日期2010-10

电磁场理论 实验一 ——利用Matlab 模拟点电荷电场的分布 一.实验目的: 1.熟悉单个点电荷及一对点电荷的电场分布情况; 2.学会使用Matlab 进行数值计算,并绘出相应的图形; 二.实验原理: 根据库伦定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸力,它们之间的力F 满足: R R Q Q k F ? 212 = (式1) 由电场强度E 的定义可知: R R kQ E ? 2 = (式2) 对于点电荷,根据场论基础中的定义,有势场E 的势函数为 R kQ U = (式3) 而 U E -?= (式4) 在Matlab 中,由以上公式算出各点的电势U ,电场强度E 后,可以用Matlab 自带的库函数绘出相应电荷的电场分布情况。 三.实验内容: 1. 单个点电荷 点电荷的平面电力线和等势线 真空中点电荷的场强大小是E=kq /r^2 ,其中k 为静电力恒量, q 为电量, r 为点电荷到场点P(x,y)的距离。电场呈球对称分布, 取电量q> 0, 电力线是以电荷为起点的射线簇。以无穷远处为零势点, 点电荷的电势为U=kq /r,当U 取

常数时, 此式就是等势面方程.等势面是以电荷为中心以r 为半径的球面。 平面电力线的画法 在平面上, 电力线是等角分布的射线簇, 用MATLAB 画射线簇很简单。取射线的半径为( 都取国际制单位) r0=, 不同的角度用向量表示( 单位为弧度) th=linspace(0,2*pi,13)。射线簇的终点的直角坐标为: [x,y]=pol2cart(th,r0)。插入x 的起始坐标x=[x; *x].同样插入y 的起始坐标, y=[y; *y], x 和y 都是二维数组, 每一列是一条射线的起始和终止坐标。用二维画线命令plot(x,y)就画出所有电力线。 平面等势线的画法 在过电荷的截面上, 等势线就是以电荷为中心的圆簇, 用MATLAB 画等势 线更加简单。静电力常量为k=9e9, 电量可取为q=1e- 9; 最大的等势线的半径应该比射线的半径小一点 r0=。其电势为u0=k8q /r0。如果从外到里取7 条等势线, 最里面的等势线的电势是最外面的3 倍, 那么各条线的电势用向量表示为: u=linspace(1,3,7)*u0。从- r0 到r0 取偶数个点, 例如100 个点, 使最中心点的坐标绕过0, 各点的坐标可用向量表示: x=linspace(- r0,r0,100), 在直角坐标系中可形成网格坐标: [X,Y]=meshgrid(x)。各点到原点的距离为: r=sqrt(X.^2+Y.^2), 在乘方时, 乘方号前面要加点, 表示对变量中的元素进行乘方计算。各点的电势为U=k8q. /r, 在进行除法运算时, 除号前面也要加点, 同样表示对变量中的元素进行除法运算。用等高线命令即可画出等势线 contour(X,Y,U,u), 在画等势线后一般会把电力线擦除, 在画等势线之前插入如下命令hold on 就行了。平面电力线和等势线如图1, 其中插入了标题等等。越靠近点电荷的中心, 电势越高, 电场强度越大, 电力线和等势线也越密。

C语言链表实验报告

链表实验报告 一、实验名称 链表操作的实现--学生信息库的构建 二、实验目的 (1)理解单链表的存储结构及基本操作的定义 (2)掌握单链表存储基本操作 (3)学会设计实验数据验证程序 【实验仪器及环境】计算机 Window XP操作系统 三、实验内容 1、建立一个学生成绩信息(学号,姓名,成绩)的单链表,按学号排序 2、对链表进行插入、删除、遍历、修改操作。 3、对链表进行读取(读文件)、存储(写文件) 四、实验要求 (1)给出终结报告(包括设计过程,程序)-打印版 (2)对程序进行答辩

五、实验过程、详细内容 1、概念及过程中需要调用的函数 (1)链表的概念结点定义 结构的递归定义 struct stud_node{ int num; char name[20]; int score; struct stud_node *next; }; (2)链表的建立 1、手动输入 struct stud_node*Create_Stu_Doc() { struct stud_node *head,*p; int num,score; char name[20]; int size=sizeof(struct stud_node); 【链表建立流程图】

2、从文件中直接获取 先建立一个 (3)链表的遍历 (4 )插入结点 (5)删除结点 (6)动态储存分配函数malloc () void *malloc(unsigned size) ①在内存的动态存储区中分配一连续空间,其长度为size ②若申请成功,则返回一个指向所分配内存空间的起始地址的指针 ③若申请不成功,则返回NULL (值为0) ④返回值类型:(void *) ·通用指针的一个重要用途 ·将malloc 的返回值转换到特定指针类型,赋给一个指针 【链表建立流程图】 ptr ptr ptr->num ptr->score ptr=ptr->next head pt r s s->next = ptr->next ptr->next = s 先连后断 ptr2=ptr1->next ptr1->next=ptr2->next free (ptr2)

相关主题
文本预览
相关文档 最新文档