算法分析与复杂性理论-实验报告-求最近点对的问题

算法分析与复杂性理论-实验报告-求最近点对的问题
算法分析与复杂性理论-实验报告-求最近点对的问题

深圳大学实验报告

教务部制

1.对于平面上给定的N个点,给出所有点对的最短距离,即,输入是平面上的N个点,

输出是N点中具有最短距离的两点。

2.要求随机生成N个点的平面坐标,应用蛮力法编程计算出所有点对的最短距离。

3.要求随机生成N个点的平面坐标,应用分治法编程计算出所有点对的最短距离。

4.分别对N=100,1000,10000,100000 ,统计算法运行时间,比较理论效率与实测效率

的差异,同时对蛮力法和分治法的算法效率进行分析和比较。

5.利用Unity3D输出分治算法中间每个步骤的计算结果,并增设help按钮,详细解释

算法思想。

算法思想提示

1.预处理:根据输入点集S中的x轴和y轴坐标进行排序,得到X和Y,很显然此时X和Y 中的点就

是S中的点。

2.点数较少时的情形

直接计菊

只有三个疽

3.点数|S|>3时,将平面点集S分割成为大小大致相等的两个子集S L和S R,选取一个垂直

线L作为分割直线,考虑X L和X R,Y L和Y R,这里还需要排序吗?

4.两个递归调用,分别求出S L和S R中的最短距离为d i和d r。

5.取d=min(dl, dr),在直线L两边分别扩展d,得到边界区域Y, Y'是区域Y中的点按照y

坐标值排序后得到的点集,Y'又可分为左右两个集合Y 'L和Y 'R

L.一

L

L+d

6.对于Y'L中的每一点,检查Y'R中的点与它的距离,更新所获得的最近距离

实验过程及内容:

(实验代码已作为附件提交,名为“算法实验二.cpp)

当点的数量小丁3时,直接计算,当点的个数大丁3时,采用分治法当N=1时

当N=2时

只有两个点,最近点对就是这两个点

测试数据为(1,1 ) (2,2)

预期结果为d=1.414

使用蛮力法求最近点对,核心代码如下

〃求距离平方的函数

double Distinyuish2(Node a t Node b)

return ((d.x-b.x)*(a.x-b.x)) + ((a.y-tj.y)*(a.y-b.y));

〃蛮力法求最近对

uoid BriiteForce(const HList & L,CloseHode & cnode,int begin v int end)

For(int i=t)egin;i<=end;i*+)

Forfinit j<-end;j + + )

double space = Di stinguish2(L.data[i],L.data[j]); iF

cnode_a=L.data[l]; cnade.b=L.data[j]; cnode .space=space;

(计算两点之间的距离,分别将每个点与其它点的距离求出来,找出最近点距离)

当N>3时,使用分治法的情况核心代码如下:

;15E 〃当n》3时进行分治

<

APOIHT *SL-nev fi_POINT[(high-low)/2+1];

■[POINT *SR-nev A>0IHT[ (hi^i-low)/2];

n)= (high-low)/2; /成曦(组以缺)界划分为茜半

j=k=t);

for(i=B;i<=high-lou;i*+)

if(V[i]*indeK<=n)

{SL[ ji ] T [i];〃收集左边子集中的最近点对pise

{

SR[kt+]=Y[i];〃收集右边子集中的最近点对

>

)

closest (K.SL,low,■,al,bl,dl);//i+ 算左边子集的最近点对

closes t (X,Sft,m+1,tiigh,ar.br,dr 算右边子靠的最近点对

if(dl

;b=bl;d=dl;

}

else

(

a=ar;b=tjr ;d=dr;

POIlfT *2=new POI NT[higti-low+1 ];

k=o;

For(i=B;i<=t*igh-lcw;i*+)//收集距离中线?寤小于U的元素,保存S懒组?中(

iF(f=abstX[n] .x-V[l] .x)

2(k].x=V[i],x;

£[k^+].y=V[i]^:

for(i-l;l

< far(j=i>1;(-y-Z[i] j++)

dl=aist(Z[i]^[j]);

{

a = 2[iJ;

b - Z[j];

ri = d) ■

当N=6时,给定一组测试数据

下面随机生成N个点的平面坐标,求解最近点对。并计算时间

产生随机数代码:

srand((unsigned)tine(NULL));

i nt n;

cout

cin>>n;

//cout?-Sf输入各个点的坐标,'?^dl:

POINT *X=new P0iHT[n];

for(int i=0;i

<

X[i] .x=rand()^100;

K[i] .j|^rand()^1BO;

计算时间代码

timet timel,time2; //

tinel-time(NULL); //方法调用前设置一个tinel

“TimUNULL);〃弦样得到的就是妙

〃―痕_t t2-GetTickCount();〃这样得到的就是毫秒

tineZ-tine(NULL);//方法调用前设置一个tineZ //cout?,,tine2:,,?double(tine2)?endl;

cout<<"耗时为!"《《douhleUtimN-timel)) V"^l)"?endl;//统计时间为time?-timel

数据处理分析:

由以上数据可知,随着N的增大,分治法效率比蛮力法效率越来越高。

蛮力法求解最近对问题的过程是:分别计算每一对点之间的距离,然后找出距离最

小的那一对,为了避免对同一对点计算两次距离,只考虑i vj的那些点对(Pi, Pj)。其实也就是组合的问题,即从n个点中选取两个点的所有组合情况的问题,共有(n*(n-1))种情况。因此时间复杂度为:

T(n)=£Z 2 = 2L(n-i)=n(n-1) = O(n2) i 注j =i 1 i 1

治法求解含有n个点的最近对问题,其时间复杂性可由下面的递推式表示:

T(n) =2T(n 2) f(n)

合并子问题的解的时间f(n) = O(n),根据通用分治递推式可得T(n)=O(n log2 n)。

实验结论与体会:

分治法的思想就是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各个子问题解合并得到原问

题的解。

通过本次试验我对分治法有了更深的了解。利用分治法可以将问题简化,这有助于我们在实际中解决一些复杂性较大的问题,提高程序的运行效率。

指导教师批阅意见:

成绩评定:

指导教师签字: 备注:

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

Welcome To Download !!!

欢迎您的下载,资料仅供参考!

现代控制理论实验报告

实验报告 ( 2016-2017年度第二学期) 名称:《现代控制理论基础》 题目:状态空间模型分析 院系:控制科学与工程学院 班级: ___ 学号: __ 学生姓名: ______ 指导教师: _______ 成绩: 日期: 2017年 4月 15日

线控实验报告 一、实验目的: l.加强对现代控制理论相关知识的理解; 2.掌握用 matlab 进行系统李雅普诺夫稳定性分析、能控能观性分析; 二、实验内容 1 第一题:已知某系统的传递函数为G (s) S23S2 求解下列问题: (1)用 matlab 表示系统传递函数 num=[1]; den=[1 3 2]; sys=tf(num,den); sys1=zpk([],[-1 -2],1); 结果: sys = 1 ------------- s^2 + 3 s + 2 sys1 = 1 ----------- (s+1) (s+2) (2)求该系统状态空间表达式: [A1,B1,C1,D1]=tf2ss(num,den); A = -3-2 10 B = 1 C = 0 1

第二题:已知某系统的状态空间表达式为: 321 A ,B,C 01:10 求解下列问题: (1)求该系统的传递函数矩阵: (2)该系统的能观性和能空性: (3)求该系统的对角标准型: (4)求该系统能控标准型: (5)求该系统能观标准型: (6)求该系统的单位阶跃状态响应以及零输入响应:解题过程: 程序: A=[-3 -2;1 0];B=[1 0]';C=[0 1];D=0; [num,den]=ss2tf(A,B,C,D); co=ctrb(A,B); t1=rank(co); ob=obsv(A,C); t2=rank(ob); [At,Bt,Ct,Dt,T]=canon(A,B,C,D, 'modal' ); [Ac,Bc,Cc,Dc,Tc]=canon(A,B,C,D, 'companion' ); Ao=Ac'; Bo=Cc'; Co=Bc'; 结果: (1) num = 0 01 den = 1 32 (2)能控判别矩阵为: co = 1-3 0 1 能控判别矩阵的秩为: t1 = 2 故系统能控。 (3)能观判别矩阵为: ob = 0 1

自动控制原理实验报告

《自动控制原理》 实验报告 姓名: 学号: 专业: 班级: 时段: 成绩: 工学院自动化系

实验一 典型环节的MATLAB 仿真 一、实验目的 1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、实验原理 1.比例环节的传递函数为 K R K R R R Z Z s G 200,1002)(211 212==-=-=- = 其对应的模拟电路及SIMULINK 图形如图1-3所示。 三、实验内容 按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 ① 比例环节1)(1=s G 和2)(1=s G ; ② 惯性环节11)(1+= s s G 和1 5.01 )(2+=s s G ③ 积分环节s s G 1)(1= ④ 微分环节s s G =)(1 ⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G ⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+= 四、实验结果及分析 图1-3 比例环节的模拟电路及SIMULINK 图形

① 仿真模型及波形图1)(1=s G 和2)(1=s G ② 仿真模型及波形图11)(1+= s s G 和1 5.01)(2+=s s G 11)(1+= s s G 1 5.01 )(2+=s s G ③ 积分环节s s G 1)(1= ④ 微分环节

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

理论力学实验报告

实验一求不规则物体的重心 一、实验目的:用悬吊法和称重法求出不规则物体的重心的位置。 二、实验设备仪器:ZME-1型理论力学多功能实验台,直尺、积木、磅秤、胶带、白纸等。 三、实验原理方法简述 (一)悬吊法求不规则物体的重心 适用于薄板形状的物体,先将纸贴于板上,再在纸上描出物体轮廓,把物体悬挂于任意一点A,如图1-1(a)所示,根据二力平衡公理,重心必然在过悬吊点的铅直线上,于是可在与板贴在一起的纸上画出此线。然后将板悬挂于另外一点B,同样可以画出另外一条直线。两直线的交点C就是重心,如图1-1(b)所示。 A (a) 图1-1 (二)称重法求轴对称物体的重心 对于由纵向对称面且纵向对称面内有对称轴的均质物体,其重心必在对称轴上。

图1-2 首先将物体支于纵向对称面内的两点,测出两个支点间的距离l ,其中一点置于磅秤上,由此可测得B 处的支反力N1F 的大小,再将连杆旋转180O ,仍然保持中轴线水平,可测得N2F 的大小。重心距离连杆大头端支点的距离C x 。根据平面平行力系,可以得到下面的两个方程: C 1N N21N =?-?=+x W l F W F F 根据上面的方程,可以求出重心的位置: N2 N11N F F l F x C +?= 四、实验数据及处理 (一)悬吊法求不规则物体的重心 (二)称重法求对称连杆的重心。 a.将磅秤和支架放置于多功能台面上。将连杆的一断放于支架上,另一端放于支架上,使连杆的曲轴中心对准磅秤的中心位置。并利用积木块调节连杆的中心位置使它成水平。记录此时磅秤的读数 F N1=1375g b.取下连杆,记录磅秤上积木的重量F J1=385g c.将连杆转?180,重复a 步骤,测出此时磅秤读数F N2=1560g d.取下连杆,记录磅秤上积木的重量F J1=0g

现代控制理论实验

华北电力大学 实验报告| | 实验名称状态空间模型分析 课程名称现代控制理论 | | 专业班级:自动化1201 学生姓名:马铭远 学号:2 成绩: 指导教师:刘鑫屏实验日期:4月25日

状态空间模型分析 一、实验目的 1.加强对现代控制理论相关知识的理解; 2.掌握用 matlab 进行系统李雅普诺夫稳定性分析、能控能观性分析; 二、实验仪器与软件 1. MATLAB7.6 环境 三、实验内容 1 、模型转换 图 1、模型转换示意图及所用命令 传递函数一般形式: MATLAB 表示为: G=tf(num,den),,其中 num,den 分别是上式中分子,分母系数矩阵。 零极点形式: MATLAB 表示为:G=zpk(Z,P,K) ,其中 Z,P ,K 分别表示上式中的零点矩阵,极点矩阵和增益。 传递函数向状态空间转换:[A,B,C,D] = TF2SS(NUM,DEN); 状态空间转换向传递函数:[NUM,DEN] = SS2TF(A,B,C,D,iu)---iu 表示对系统的第 iu 个输入量求传递函数;对单输入 iu 为 1。

例1:已知系统的传递函数为G(S)= 2 2 3 24 11611 s s s s s ++ +++ ,利用matlab将传递函数 和状态空间相互转换。 解:1.传递函数转换为状态空间模型: NUM=[1 2 4];DEN=[1 11 6 11]; [A,B,C,D] = tf2ss(NUM,DEN) 2.状态空间模型转换为传递函数: A=[-11 -6 -11;1 0 0;0 1 0];B=[1;0;0];C=[1 2 4];D=[0];iu=1; [NUM,DEN] = ss2tf(A,B,C,D,iu); G=tf(NUM,DEN) 2 、状态方程状态解和输出解 单位阶跃输入作用下的状态响应: G=ss(A,B,C,D);[y,t,x]=step(G);plot(t,x). 零输入响应 [y,t,x]=initial(G,x0)其中,x0 为状态初值。

自动化控制实验报告(DOC 43页)

自动化控制实验报告(DOC 43页)

本科生实验报告 实验课程自动控制原理 学院名称 专业名称电气工程及其自动化 学生姓名 学生学号2013 指导教师 实验地点6C901 实验成绩 二〇一五年四月——二〇一五年五月

线性系统的时域分析 实验一(3.1.1)典型环节的模拟研究 一. 实验目的 1. 了解和掌握各典型环节模拟电路的构成方法、传递函数表达式及输出时域函数表达式 2. 观察和分析各典型环节的阶跃响应曲线,了解各项电路参数对典型环节动态特性的影响 二.典型环节的结构图及传递函数 方 框 图 传递函数 比例 (P ) K (S) U (S) U (S)G i O == 积分 (I ) TS 1 (S)U (S)U (S)G i O == 比例积分 (PI ) )TS 1 1(K (S)U (S)U (S)G i O +== 比例微分 (PD ) )TS 1(K (S) U (S) U (S)G i O +== 惯性 TS 1K (S)U (S)U (S)G i O += =

环节 (T) 比例 积分 微分 (PI D) S T K S T K K (S) U (S) U (S) G d p i p p i O + + = = 三.实验内容及步骤 观察和分析各典型环节的阶跃响应曲线,了解各项电路参数对典型环节动态特性的影响.。 改变被测环节的各项电路参数,画出模拟电路图,阶跃响应曲线,观测结果,填入实验报告 运行LABACT程序,选择自动控制菜单下的线性系统的时域分析下的典型环节的模拟研究中的相应实验项目,就会弹出虚拟示波器的界面,点击开始即可使用本实验机配套的虚拟示波器(B3)单元的CH1测孔测量波形。具体用法参见用户手册中的示波器部分。1).观察比例环节的阶跃响应曲线 典型比例环节模拟电路如图3-1-1所示。 图3-1-1 典型比例环节模拟电路 传递函数: 1 (S) (S) (S) R R K K U U G i O= = = ;单位阶跃响应:

算法分析_实验报告3

兰州交通大学 《算法设计与分析》 实验报告3 题目03-动态规划 专业计算机科学与技术 班级计算机科学与技术2016-02班学号201610333 姓名石博洋

第3章动态规划 1. 实验题目与环境 1.1实验题目及要求 (1) 用代码实现矩阵连乘问题。 给定n个矩阵{A1,A2,…,A n},其中A i与A i+1是可乘的,i=1,2,…,n-1。考察这n 个矩阵的连乘积A1A2…A n。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序,这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,则可以依此次序反复调用2个矩阵相乘的标准算法(有改进的方法,这里不考虑)计算出矩阵连乘积。 确定一个计算顺序,使得需要的乘的次数最少。 (2) 用代码实现最长公共子序列问题。 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= < x1, x2,…, xm>,则另一序列Z= < z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列< i1, i2,…, ik>,使得对于所有j=1,2,…,k有Xij=Zj 。例如,序列Z=是序列X=的子序列,相应的递增下标序列为<2,3,5,7>。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X= < A, B, C, B, D, A, B>和Y= < B, D, C, A, B, A>,则序列是X和Y的一个公共子序列,序列也是X和Y的一个公共子序列。而且,后者是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。 (3) 0-1背包问题。 现有n种物品,对1<=i<=n,已知第i种物品的重量为正整数W i,价值为正整数V i,背包能承受的最大载重量为正整数W,现要求找出这n种物品的一个子集,使得子集中物品的总重量不超过W且总价值尽量大。(注意:这里对每种物品或者全取或者一点都不取,不允许只取一部分) 使用动态规划使得装入背包的物品价值之和最大。 1.2实验环境: CPU:Intel(R) Core(TM) i3-2120 3.3GHZ 内存:12GB 操作系统:Windows 7.1 X64 编译环境:Mircosoft Visual C++ 6 2. 问题分析 (1) 分析。

ZME-1型理论力学

理论力学实验报告 实验名称:ZME-I型理论力学 多功能试验台实验 指导教师: 学院:建筑工程学院 班级:工力131 学号: 姓名: 时间:2016.12.29 昆明理工大学

ZME-I型理论力学多功能试验台实验报告 实验设备名称: ZME-I型理论力学多功能试验台 实验日期: 2016.12.27 试验一:测试单自由度振动系统的变形,计算刚度系数与固有频率 一、实验目的 1.了解并掌握单自由度振动系统的刚度系数k的测定; ; 2.求取单自由度振动系统的固有频率f 二、实验设备和仪器 1.ZME—1理论力学多功能实验装置; 2.质量为0.138kg的高压输电线模型; 3.100g砝码2个,200g砝码2个; 三、实验原理 弹簧质量组成的单自由度振动系统,在弹簧的线性变形范围内,系统的变形和所受到的外力的大小成线性关系。据此,施加不同的力,产生不同的变形,可以得到系统的刚度系数。 四、实验方法与步骤: 1.将砝码托盘挂在弹簧质量系统塑料质量模型下的小孔内,记录此时塑料质量模型上指针的位置; 2.首先把一个200g的砝码放在砝码托盘上,稳定后读取并记录指针的偏移位置; 3.逐步增加砝码质量至600g,并记录相应的指针偏移位置; 4.在坐标上画出系统变形与砝码重量之间的关系曲线; 5.计算振动系统的刚度系数和固有频率。 图1 加200g砝码图2 加至600g砝码

五、数据记录及处理: 表一: 5.88 75 48 122.5 图3 振体竖向变形图 1.单自由度系统的等效刚度: l k eq ?=W =125.33N/m 2.单自由度系统的固有振动频率: m k 21f eq n π = =4.8Hz 实验二:物体重心的测试 一、实验目的: 1.用悬吊法测取不规则物体的重心位置; 2.用称量法测取连杆的重心位置,并计算其重量。 二、实验设备和仪器: 1.ZME —1理论力学多功能实验台; 2.不规则物体(各种型钢组合体); 3.连杆1个; 4.台秤1台。 三、实验原理: 物体重心的位置是固定不变的,利用柔软细绳的受力特点和二力平衡原理,我们可以用悬挂的方法决定重心的位置;再利用平面一般力系的平衡条件,可以测取连杆的重心位置和物体的重量。

现代控制理论实验报告

现代控制理论实验报告

实验一系统能控性与能观性分析 一、实验目的 1.理解系统的能控和可观性。 二、实验设备 1.THBCC-1型信号与系统·控制理论及计算机控制技术实验平台; 三、实验容 二阶系统能控性和能观性的分析 四、实验原理 系统的能控性是指输入信号u对各状态变量x的控制能力,如果对于系统任意的初始状态,可以找到一个容许的输入量,在有限的时间把系统所有的状态引向状态空间的坐标原点,则称系统是能控的。 对于图21-1所示的电路系统,设iL和uc分别为系统的两个状态变量,如果电桥中 则输入电压ur能控制iL和uc状态变量的变化,此时,状态是能控的。反之,当 时,电桥中的A点和B点的电位始终相等,因而uc不受输入ur的控制,ur只能改变iL的大小,故系统不能控。 系统的能观性是指由系统的输出量确定所有初始状态的能力,如果在有限的时间根据系统的输出能唯一地确定系统的初始状态,则称系统能观。为了说明图21-1所示电路的能观性,分别列出电桥不平衡和平衡时的状态空间表达式: 平衡时:

由式(2)可知,状态变量iL和uc没有耦合关系,外施信号u只能控制iL的变化,不会改变uc的大小,所以uc不能控。基于输出是uc,而uc与iL无关连,即输出uc中不含有iL的信息,因此对uc的检测不能确定iL。反之式(1)中iL与uc有耦合关系,即ur的改变将同时控制iL和uc的大小。由于iL与uc的耦合关系,因而输出uc的检测,能得到iL 的信息,即根据uc的观测能确定iL(ω) 五、实验步骤 1.用2号导线将该单元中的一端接到阶跃信号发生器中输出2上,另一端接到地上。将阶跃信号发生器选择负输出。 2.将短路帽接到2K处,调节RP2,将Uab和Ucd的数据填在下面的表格中。然后将阶跃信号发生器选择正输出使调节RP1,记录Uab和Ucd。此时为非能控系统,Uab和Ucd没有关系(Ucd始终为0)。 3.将短路帽分别接到1K、3K处,重复上面的实验。 六、实验结果 表20-1Uab与Ucd的关系 Uab Ucd

自动控制原理实验报告

实验报告 课程名称:自动控制原理 实验项目:典型环节的时域相应 实验地点:自动控制实验室 实验日期:2017 年 3 月22 日 指导教师:乔学工 实验一典型环节的时域特性 一、实验目的 1.熟悉并掌握TDN-ACC+设备的使用方法及各典型环节模拟电路的构成方法。

2.熟悉各种典型环节的理想阶跃相应曲线和实际阶跃响应曲线。对比差异,分析原因。 3.了解参数变化对典型环节动态特性的影响。 二、实验设备 PC 机一台,TD-ACC+(或TD-ACS)实验系统一套。 三、实验原理及内容 下面列出各典型环节的方框图、传递函数、模拟电路图、阶跃响应,实验前应熟悉了解。 1.比例环节 (P) (1)方框图 (2)传递函数: K S Ui S Uo =) () ( (3)阶跃响应:) 0()(≥=t K t U O 其中 01/R R K = (4)模拟电路图: (5) 理想与实际阶跃响应对照曲线: ① 取R0 = 200K ;R1 = 100K 。 ② 取R0 = 200K ;R1 = 200K 。

2.积分环节 (I) (1)方框图 (2)传递函数: TS S Ui S Uo 1 )()(= (3)阶跃响应: ) 0(1)(≥= t t T t Uo 其中 C R T 0= (4)模拟电路图 (5) 理想与实际阶跃响应曲线对照: ① 取R0 = 200K ;C = 1uF 。 ② 取R0 = 200K ;C = 2uF 。

1 Uo 0t Ui(t) Uo(t) 理想阶跃响应曲线 0.4s 1 Uo 0t Ui(t) Uo(t) 实测阶跃响应曲线 0.4s 10V 无穷 3.比例积分环节 (PI) (1)方框图: (2)传递函数: (3)阶跃响应: (4)模拟电路图: (5)理想与实际阶跃响应曲线对照: ①取 R0 = R1 = 200K;C = 1uF。 理想阶跃响应曲线实测阶跃响应曲线 ②取 R0=R1=200K;C=2uF。 K 1 + U i(S)+ U o(S) + Uo 10V U o(t) 2 U i(t ) 0 0 .2s t Uo 无穷 U o(t) 2 U i(t ) 0 0 .2s t

算法分析实验报告--分治策略

《算法设计与分析》实验报告 分治策略 姓名:XXX 专业班级:XXX 学号:XXX 指导教师:XXX 完成日期:XXX

一、试验名称:分治策略 (1)写出源程序,并编译运行 (2)详细记录程序调试及运行结果 二、实验目的 (1)了解分治策略算法思想 (2)掌握快速排序、归并排序算法 (3)了解其他分治问题典型算法 三、实验内容 (1)编写一个简单的程序,实现归并排序。 (2)编写一段程序,实现快速排序。 (3)编写程序实现循环赛日程表。设有n=2k个运动员要进行网球循环赛。现 要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其它n-1个选手各赛一次(2)每个选手一天只能赛一场(3)循环赛进行n-1天 四、算法思想分析 (1)编写一个简单的程序,实现归并排序。 将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行 排序,最终将排好序的子集合合并成为所要求的排好序的集合。 (2)编写一段程序,实现快速排序。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有 数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数 据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据 变成有序序列。 (3)编写程序实现循环日赛表。 按分治策略,将所有的选手分为两组,n个选手的比赛日程表就可以通

过为n/2个选手设计的比赛日程表来决定。递归地用对选手进行分割, 直到只剩下2个选手时,比赛日程表的制定就变得很简单。这时只要让 这2个选手进行比赛就可以了。 五、算法源代码及用户程序 (1)编写一个简单的程序,实现归并排序。 #include #include #define MAX 10 using namespace std; void merge(int array[],int p,int q,int r) { int i,k; int begin1,end1,begin2,end2; int* temp = new int[r-p+1]; begin1 = p; end1 = q; begin2 = q+1; end2 = r; k = 0; while((begin1 <= end1)&&(begin2 <= end2)) { if(array[begin1] < array[begin2]) { temp[k] = array[begin1]; begin1++; } else { temp[k] = array[begin2]; begin2++; } k++; } while(begin1 <= end1) {

20XX190201班理论力学实验报告数据已填写

20XX190201班理论力学实验报告数据已填 写 实验一求不规则物体的重心 一、实验目的:用悬吊法和称重法求出不规则物体的重心的位置。 二、实验设备仪器:ZME-1型理论力学多功能实验台,直尺、积木、磅秤、胶带、白纸等。三、实验原理方法简述 (一)悬吊法求不规则物体的重心 适用于薄板形状的物体,先将纸贴于板上,再在纸上描出物体轮廓,把物体悬挂于任意一点A,如图1-1(a)所示,根据二力平衡公理,重心必然在过悬吊点的铅直线上,于是可在与板贴在一起的纸上画出此线。然后将板悬挂于另外一点B,同样可以画出另外一条直线。两直线的交点C就是重心,如图1-1(b)所示。 FFABCWW(a)A(b) 图1-1 (二)称重法求轴对称物体的重心 对于由纵向对称面且纵向对称面内有对称轴的均质物体,其重心必在对称轴上。 AxCAWBFN1lWBxCFN2l(a)(b)

图1-2 首先将物体支于纵向对称面内的两点,测出两个支点间的距离l,其中一点置于磅秤上,由此可测得B处的支反力FN1的大小,再将连杆旋转180O,仍然保持中轴线水平,可测得FN2的大小。重心距离连杆大头端支点的距离xC。根据平面平行力系,可以得到下面的两个方程: FN1?FN2?WFN1?l?W?xC?0 根据上面的方程,可以求出重心的位置: xC?FN1?l FN1?FN2四、实验数据及处理 (一)悬吊法求不规则物体的重心 A C B (二)称重法求对称连杆的重心。 a.将磅秤和支架放置于多功能台面上。将连杆的一断放于支架上,另一端放于支架上,使连杆的曲轴中心对准磅秤的中心位置。并利用积木块调节连杆的中心位置使它成水平。记录此时磅秤的读数FN1=1375g b.取下连杆,记录磅秤上积木的重量FJ1=385g c.将连杆转180?,重复a步骤,测出此时磅秤读数 FN2=1560g d.取下连杆,记录磅秤上积木的重量FJ1=0g e.测定连杆两支点间的距离l=221mm f.计算连杆的重心位置

北航自动控制原理实验报告(完整版)

自动控制原理实验报告 一、实验名称:一、二阶系统的电子模拟及时域响应的动态测试 二、实验目的 1、了解一、二阶系统阶跃响应及其性能指标与系统参数之间的关系 2、学习在电子模拟机上建立典型环节系统模型的方法 3、学习阶跃响应的测试方法 三、实验内容 1、建立一阶系统的电子模型,观测并记录在不同时间常数T时的响应曲线,测定过渡过程时间T s 2、建立二阶系统电子模型,观测并记录不同阻尼比的响应曲线,并测定超调量及过渡过程时间T s 四、实验原理及实验数据 一阶系统 系统传递函数: 由电路图可得,取则K=1,T分别取:0.25, 0.5, 1 T 0.25 0.50 1.00 R2 0.25MΩ0.5M Ω1MΩ C 1μ1μ1μ T S 实测0.7930 1.5160 3.1050 T S 理论0.7473 1.4962 2.9927 阶跃响应曲线图1.1 图1.2 图1.3 误差计算与分析 (1)当T=0.25时,误差==6.12%; (2)当T=0.5时,误差==1.32%; (3)当T=1时,误差==3.58% 误差分析:由于T决定响应参数,而,在实验中R、C的取值上可能存在一定误差,另外,导线的连接上也存在一些误差以及干扰,使实验结果与理论值之间存在一定误差。但是本实验误差在较小范围内,响应曲线也反映了预期要求,所以本实验基本得到了预期结果。 实验结果说明 由本实验结果可看出,一阶系统阶跃响应是单调上升的指数曲线,特征有T确定,T越小,过度过程进行得越快,系统的快速性越好。 二阶系统 图1.1 图1.2 图1.3

系统传递函数: 令 二阶系统模拟线路 0.25 0.50 1.00 R4 210.5 C2 111 实测45.8% 16.9% 0.6% 理论44.5% 16.3% 0% T S实测13.9860 5.4895 4.8480 T S理论14.0065 5.3066 4.8243 阶跃响应曲线图2.1 图2.2 图2.3 注:T s理论根据matlab命令[os,ts,tr]=stepspecs(time,output,output(end),5)得出,否则误差较大。 误差计算及分析 1)当ξ=0.25时,超调量的相对误差= 调节时间的相对误差= 2)当ξ=0.5时,超调量的相对误差==3.7% 调节时间的相对误差==3.4% 4)当ξ=1时,超调量的绝对误差= 调节时间的相对误差==3.46% 误差分析:由于本试验中,用的参量比较多,有R1,R2,R3,R4;C1,C2;在它们的取值的实际调节中不免出现一些误差,误差再累加,导致最终结果出现了比较大的误差,另外,此实验用的导线要多一点,干扰和导线的传到误差也给实验结果造成了一定误差。但是在观察响应曲线方面,这些误差并不影响,这些曲线仍旧体现了它们本身应具有的特点,通过比较它们完全能够了解阶跃响应及其性能指标与系统参数之间的关系,不影响预期的效果。 实验结果说明 由本实验可以看出,当ωn一定时,超调量随着ξ的增加而减小,直到ξ达到某个值时没有了超调;而调节时间随ξ的增大,先减小,直到ξ达到某个值后又增大了。 经理论计算可知,当ξ=0.707时,调节时间最短,而此时的超调量也小于5%,此时的ξ为最佳阻尼比。此实验的ξ分布在0.707两侧,体现了超调量和调节时间随ξ的变化而变化的过程,达到了预期的效果。 图2.2 图2.1 图2.3

理论力学转动惯量实验报告

理论力学转动惯量 实验报告

【实验概述】 转动惯量是描述刚体转动中惯性大小的物理量,它与刚体的质量分布及转轴位置有关。 正确测定物体的转动惯量,~对于了解物体转动规律,~机械设计制造有着非常重要的意义。 然 而在实际工作中,大多数物体的几何形状都是不规则的, 难以直接用理论公式算出其转动惯~ 量,只能借助于实验的方法来实现。 因此,在工程技术中,用实验的方法来测定物体的转动 ’ 惯量就有着十分重要的意义。 IM-2刚体转动惯量实验仪,应用霍尔开关传感器结合计数计 ’ 时多功能毫秒仪自动记录刚体在一定转矩作用下, 的角加速度和刚体的转动惯量。 因此本实验提供了一种测量刚体转动惯量的新方法, 实验思 路新颖、科学,测量数据精确,仪器结构合理,维护简单方便,是开展研究型实验教学的新 仪器。 【实验目的】 1. 了解多功能计数计时毫秒仪实时测量(时间)的基本方法 2. 用刚体转动法测定物体的转动惯量 3. 验证刚体转动的平行轴定理 4. 验证刚体的转动惯量与外力矩无关 【实验原理】 1. 转动力矩、转动惯量和角加速度关系系统在外力矩作用下的运动方程 即绳子的张力T=m(g-r p 2) 砝码与系统脱离后的运动方程 (2) 由方程(1) (2)可得 J=mr(g-r p 2)/( p 2- p 1) 2. 角加速度的测量 0=3 o t+? p t2 若在t 1 、t 2时刻测得角位移0 1、B 2 则 0 1 = 3 0 t 1+? p t2 0 2=3 0 t 2+? p t2 所以,由方程(5)、(6)可得 p =2 (0 2 t 1- 0 1 t 2) / t 1 t 2 (t 2- t 1) 【实验仪器】 转过n 角位移的时刻,测定刚体转动时 T X 叶M 严J p 2 (1) 由牛顿第二定律可知,砝码下落时的运动方程为: mg-T=ma (5)

现代控制理论实验报告河南工业大学

河南工业大学 现代控制理论实验报告姓名:朱建勇 班级:自动1306 学号:201323020601

现代控制理论 实验报告 专业: 自动化 班级: 自动1306 姓名: 朱建勇 学号: 201323020601 成绩评定: 一、实验题目: 线性系统状态空间表达式的建立以及线性变换 二、实验目的 1. 掌握线性定常系统的状态空间表达式。学会在MATLAB 中建立状态空间模型的方法。 2. 掌握传递函数与状态空间表达式之间相互转换的方法。学会用MATLAB 实现不同模型之 间的相互转换。 3. 熟悉系统的连接。学会用MATLAB 确定整个系统的状态空间表达式和传递函数。 4. 掌握状态空间表达式的相似变换。掌握将状态空间表达式转换为对角标准型、约当标准 型、能控标准型和能观测标准型的方法。学会用MATLAB 进行线性变换。 三、实验仪器 个人笔记本电脑 Matlab R2014a 软件 四、实验内容 1. 已知系统的传递函数 (a) ) 3()1(4)(2++=s s s s G

(b) 3486)(22++++=s s s s s G

(c) 6 1161)(232+++++=z z z z z z G (1)建立系统的TF 或ZPK 模型。 (2)将给定传递函数用函数ss( )转换为状态空间表达式。再将得到的状态空间表达式用函 数tf( )转换为传递函数,并与原传递函数进行比较。 (3)将给定传递函数用函数jordants( )转换为对角标准型或约当标准型。再将得到的对角 标准型或约当标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。 (4)将给定传递函数用函数ctrlts( )转换为能控标准型和能观测标准型。再将得到的能控标 准型和能观测标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。

西安交大自动控制原理实验报告

自动控制原理实验报告 学院: 班级: 姓名: 学号:

西安交通大学实验报告 课程自动控制原理实验日期2014 年12月22 日专业班号交报告日期 2014 年 12月27日姓名学号 实验五直流电机转速控制系统设计 一、实验设备 1.硬件平台——NI ELVIS 2.软件工具——LabVIEW 二、实验任务 1.使用NI ELVIS可变电源提供的电源能力,驱动直流马达旋转,并通过改变电压改变 其运行速度; 2.通过光电开关测量马达转速; 3.通过编程将可变电源所控制的马达和转速计整合在一起,基于计算机实现一个转速自 动控制系统。 三、实验步骤 任务一:通过可变电源控制马达旋转 任务二:通过光电开关测量马达转速 任务三:通过程序自动调整电源电压,从而逼近设定转速

编程思路:PID控制器输入SP为期望转速输出,PV为实际测量得到的电机转速,MV为PID输出控制电压。其中SP由前面板输入;PV通过光电开关测量马达转速得到;将PID 的输出控制电压接到“可变电源控制马达旋转”模块的电压输入控制端,控制可变电源产生所需的直流电机控制电压。通过不断地检测马达转速与期望值对比产生偏差,通过PID控制器产生控制信号,达到直流电机转速的负反馈控制。 PID参数:比例增益:0.0023 积分时间:0.010 微分时间:0.006 采样率和待读取采样:采样率:500kS/s 待读取采样:500 启动死区:电机刚上电时,速度为0,脉冲周期测量为0,脉冲频率测量为无限大。通过设定转速的“虚拟下限”解决。本实验电机转速最大为600r/min。故可将其上限值设为600r/min,超过上限时,转速的虚拟下限设为200r/min。 改进:利用LabVIEW中的移位寄存器对转速测量值取滑动平均。

武汉理工大学算法分析实验报告

学生实验报告书 实验课程名称算法设计与分析开课学院计算机科学与技术学院 指导教师姓名李晓红 学生姓名 学生专业班级软件工程zy1302班2015-- 2016学年第一学期

实验课程名称:算法设计与分析 同组者实验日期2015年10月20日第一部分:实验分析与设计 一.实验内容描述(问题域描述) 1、利用分治法,写一个快速排序的递归算法,并利用任何一种语言,在计算机上实现,同时 进行时间复杂性分析; 2、要求用递归的方法实现。 二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 本次的解法使用的是“三向切分的快速排序”,它是快速排序的一种优化版本。不仅利用了分治法和递归实现,而且对于存在大量重复元素的数组,它的效率比快速排序基本版高得多。 它从左到右遍历数组一次,维护一个指针lt使得a[lo..lt-1]中的元素都小于v,一个指针gt 使得a[gt+1..hi]中的元素都大于v,一个指针i使得a[lt..i-1]中的元素都等于v,a[i..gt]中的元素都还未确定,如下图所示: public class Quick3way { public static void sort(Comparable[] a, int lo, int hi) { if (lo >= hi) return; int lt = lo, i = lo + 1, gt = hi; Comparable pivot = a[lo];

第二部分:实验调试与结果分析 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1、调试方法描述: 对程序入口进行断点,随着程序的运行,一步一步的调试,得到运行轨迹; 2、实验数据: "R", "B", "W", "W", "R", "W", "B", "R", "R", "W", "B", "R"; 3、实验现象: 4、实验过程中发现的问题: (1)边界问题: 在设计快速排序的代码时要非常小心,因为其中包含非常关键的边界问题,例如: 什么时候跳出while循环,递归什么时候结束,是对指针的左半部分还是右半部分 排序等等; (2)程序的调试跳转: 在调试过程中要时刻记住程序是对那一部分进行排序,当完成了这部分的排序后, 会跳到哪里又去对另外的那一部分进行排序,这些都是要了然于心的,这样才能准 确的定位程序。 二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1、实验结果:

理论力学组合实验

理论力学组合实验报告 使用设备名称与型号 同组人员 实验时间 一、实验目的 理论力学是一门理论性较强的技术基础课,是现代工程技术基础理论之一,在日常生 活、工程技术各领域都有着广泛的应用。这门学科的理论比较抽象,真正掌握也较困难。 本实验指导书介绍理论力学的六个小实验,让学生在做实验过程中既动手又动脑,培养 学生的创新思维和科学实验能力。 二、实验设备与仪器 理论力学多功能实验台ZME-1型 三、实验原理 四、实验操作步骤 实验(1):求弹簧质量系统的固有频率 在高压输电线模型的砝码盘上,分四次挂上不同重量的砝码,观察并记录弹簧的变 形。 实验(2):求重心的实验方法 (A)悬吊法 将求重心的型钢片状试件,用细绳将其挂吊在上顶板前端的螺钉上,再换一个位置 挂吊,通过两次挂吊便可求出重心位置。 (B)称量法 使用连杆、积木、台称,利用已学力学知识,用称量法求连杆的重量及重心位置。 实验(3):验证均质圆盘转动惯量的理论公式 转动实验台右边手轮,使圆盘三线摆摆长下降为60cm,左手给三线摆一初始角(一般小于60),释放圆盘后,三线摆发生扭转振动。右手拿秒表,记录扭转十次或以上的时 间,并算出周期,比较实验与理论计算两种方法求得的转动惯量,确定误差,还可以求

摆长(四种长度)对误差的影响。 由弹簧的变形计算该系统的等效刚度和固有频率。 实验(4):用等效方法求非均质物体转动惯量 分别转动左边两个三线摆的手轮,让有非均质摇臂的圆盘三线摆下降至摆长约60cm,也使配重相同的带有强磁铁的两个圆柱铁三线摆下降到相同的高度进行转动惯量等效实 验,测出扭转振动的周期,再与两个圆柱的三线摆计算周期进行等效,从而求出非均质 摇臂的转动惯量。 五、实验结果及分析计算 1、弹簧质量系统的固有频率 砝码重量(N) 弹簧变形量(mm) 2、连杆的重心 连杆两圆心距离(cm) 支撑力F1(N) 支撑力F2(N)

现代控制理论课程报告

现代控制理论课程总结 学习心得 从经典控制论发展到现代控制论,是人类对控制技术认识上的一次飞跃。现代控制论是用状态空间方法表示,概念抽象,不易掌握。对于《现代控制理论》这门课程,在刚拿到课本的时候,没上张老师的课之前,咋一看,会认为开课的内容会是上学期学的控制理论基础的累赘或者简单的重复,更甚至我还以为是线性代数的复现呢!根本没有和现代控制论联系到一起。但后面随着老师讲课的风格的深入浅出,循循善诱,发现和自己想象的恰恰相反,张老师以她特有的讲课风格,精心准备的ppt 课件,向我们展示了现代控制理论发展过程,以及该掌握内容的方方面面,个人觉得,我们不仅掌握了现代控制理论的理论知识,更重要的是学会了掌握这门知识的严谨的逻辑思维和科学的学习方法,对以后学习其他知识及在工作上的需要大有裨益,总之学习了这门课让我受益匪浅。 由于我们学习这门课的课时不是很多,并结合我们学生学习的需求及所要掌握的课程深入程度,张老师根据我们教学安排需要,我们这学期学习的内容主要有:1.绪论;2.控制系统的状态表达式;3.控制系统状态表达式的解;4.线性系统的能空性和能观性;5.线性定常系统的综合。而状态变量和状态空间表达式、状态转移矩阵、系统的能控性与能观性以及线性定常系统的综合是本门课程的主要学习内容。当然学习的内容还包括老师根据多年教学经验及对该学科的研究的一些深入见解。 在现代科学技术飞速发展中,伴随着学科的高度分化和高度综合,各学科之间相互交叉、相互渗透,出现了横向科学。作为跨接于自然科学和社会科学的具有横向科学特点的现代控制理论已成为我国理工科大学高年级的必修课。 经典控制理论的特点 经典控制理论以拉氏变换为数学工具,以单输入-单输出的线性定常系统为主要的研究对象。将描述系统的微分方程或差分方程变换到复数域中,得到系统的传递函数,并以此作为基础在频率域中对系统进行分析和设计,确定控制器的结构和参数。通常是采用反馈控制,构成所谓闭环控制系统。经典控制理论具有明显的局限性,突出的是难以有效地应用于时变系统、多变量系统,也难以揭示系统更为深刻的特性。当把这种理论推广到更为复杂的系统时,经典控制理论就显得无能为力了,这是因为它的以下几个特点所决定。 1.经典控制理论只限于研究线性定常系统,即使对最简单的非线性系统也是无法处理的;这就从本质上忽略了系统结构的内在特性,也不能处理输入和输出皆大于1的系统。实际上,大多数工程对象都是多输入-多输出系统,尽管人们做了很多尝试,但是,用经典控制理论设计这类系统都没有得到满意的结果;2.经典控制理论采用试探法设计系统。即根据经验选用合适的、简单的、工程上易于实现的控制器,然后对系统进行分析,直至找到满意的结果为止。虽然这种设计方法具有实用等很多完整,从而促使现代控制理论的发展:对经典理论的精确化、数学化及理论化。优点,但是,在推理上却是不能令人满意的,效果也

算法设计与分析实验报告

本科实验报告 课程名称:算法设计与分析 实验项目:递归与分治算法 实验地点:计算机系实验楼110 专业班级:物联网1601 学号:2016002105 学生:俞梦真 指导教师:郝晓丽 2018年05月04 日

实验一递归与分治算法 1.1 实验目的与要求 1.进一步熟悉C/C++语言的集成开发环境; 2.通过本实验加深对递归与分治策略的理解和运用。 1.2 实验课时 2学时 1.3 实验原理 分治(Divide-and-Conquer)的思想:一个规模为n的复杂问题的求解,可以划分成若干个规模小于n的子问题,再将子问题的解合并成原问题的解。 需要注意的是,分治法使用递归的思想。划分后的每一个子问题与原问题的性质相同,可用相同的求解方法。最后,当子问题规模足够小时,可以直接求解,然后逆求原问题的解。 1.4 实验题目 1.上机题目:格雷码构造问题 Gray码是一个长度为2n的序列。序列无相同元素,每个元素都是长度为n的串,相邻元素恰好只有一位不同。试设计一个算法对任意n构造相应的Gray码(分治、减治、变治皆可)。 对于给定的正整数n,格雷码为满足如下条件的一个编码序列。 (1)序列由2n个编码组成,每个编码都是长度为n的二进制位串。 (2)序列中无相同的编码。 (3)序列中位置相邻的两个编码恰有一位不同。 2.设计思想: 根据格雷码的性质,找到他的规律,可发现,1位是0 1。两位是00 01 11 10。三位是000 001 011

010 110 111 101 100。n位是前n-1位的2倍个。N-1个位前面加0,N-2为倒转再前面再加1。 3.代码设计:

相关文档
最新文档