当前位置:文档之家› Smith预估控制算法设计仿真实验

Smith预估控制算法设计仿真实验

Smith预估控制算法设计仿真实验
Smith预估控制算法设计仿真实验

Smith 预估控制算法设计仿真实验

实验目的

在控制算法学习的基础上,根据给定对象特性设计Smith 预估控制器算法,并利用Matlab 软件进行仿真实验,同时与PID 控制算法进行比较,加深对该控制算法的掌握和理解。

实验内容和要求

设广义被控对象为:

1011()()()1Ts s s

e e H s G s G s e s T s

ττ----==?+

控制系统框图为:

T

取T=1、τ=2、T 1=2.88,经采样(T=1s )保持后,其广义对象z 传递函数为

00.2934

()0.7066

G z z =

-, 而2s e -转换为2个单位迟延。

控制器参数:Kp=0.5,Ki=0.2,Kd=0。 实验要求:

(1) 设计Smith 预估控制算法,作给定值扰动和外部扰动响应实验,并绘制控制器输出P 和系统输出y 响应曲线。

(2)被控对象不变,采用理想PID 进行给定值扰动和外部扰动响应实验,并绘制控制器输出P 和系统输出y 响应曲线。

思考和讨论

(1)分析两类控制算法对带迟延对象的控制效果。

(2)根据实验分析Smith 预估控制算法的优点是什么,若采用PID 算法解决同

类问题效果如何?

Matlab 辅助设计软件

具体操作步骤: 1、 启动Matlab ;

2、单击工具栏中的Simulink 仿真图标 ,进入Simulink 仿真环

3、新建仿真结构图,寻找模块,拖动到新建仿真结构图中

新建

模块库

所涉及模块的位置:

加法器Sum:在Simulink/Math Operations子库中。

离散PID控制器:在SimPowerSystems/Extra Library/DiscreteControl Blocks子库中。

离散传递函数Discrete Transfer Fcn:在Simulink/Discrete子库中。

示波器Scope:在Simulink/Sinks模型库中。

阶跃信号Step:在Simulink/Sources模型库中。

4、修改模块参数。双击模块,在出现的窗口中设置参数。

5、连接模块。将光标移到一个模块的输出端(>)按下鼠标左键拖动鼠标到另一个模块的输

入端(>),松开鼠标左键就可以完成两个模块的连接。

6、设置仿真参数,进行仿真。

在Simulation下拉菜单中设置仿真参数,单击工具栏中的Start Simulation 图标),计算机开始仿真,示波器可显示出仿真曲线。

7、通过曲线,分析系统性能。

控制工程基础实验指导书(答案)

控制工程基础实验指导书 自控原理实验室编印

(内部教材)

实验项目名称: (所属课 程: 院系: 专业班级: 姓名: 学号: 实验日期: 实验地点: 合作者: 指导教师: 本实验项目成绩: 教师签字: 日期: (以下为实验报告正文) 、实验目的 简述本实验要达到的目的。目的要明确,要注明属哪一类实验(验证型、设计型、综合型、创新型)。 二、实验仪器设备 列出本实验要用到的主要仪器、仪表、实验材料等。 三、实验内容 简述要本实验主要内容,包括实验的方案、依据的原理、采用的方法等。 四、实验步骤 简述实验操作的步骤以及操作中特别注意事项。 五、实验结果

给出实验过程中得到的原始实验数据或结果,并根据需要对原始实验数据或结果进行必要的分析、整理或计算,从而得出本实验最后的结论。 六、讨论 分析实验中出现误差、偏差、异常现象甚至实验失败的原因,实验中自己发现了什么问题,产生了哪些疑问或想法,有什么心得或建议等等。 七、参考文献 列举自己在本次准备实验、进行实验和撰写实验报告过程中用到的参考文献资 料。 格式如下 作者,书名(篇名),出版社(期刊名),出版日期(刊期),页码

实验一控制系统典型环节的模拟、实验目的 、掌握比例、积分、实际微分及惯性环节的模拟方法; 、通过实验熟悉各种典型环节的传递函数和动态特性; 、了解典型环节中参数的变化对输出动态特性的影响。 二、实验仪器 、控制理论电子模拟实验箱一台; 、超低频慢扫描数字存储示波器一台; 、数字万用表一只;

、各种长度联接导线。 三、实验原理 运放反馈连接 基于图中点为电位虚地,略去流入运放的电流,则由图 由上式可以求得下列模拟电路组成的典型环节的传递函数及其单位阶跃响应。 、比例环节 实验模拟电路见图所示 U i R i U o 接示波器 以运算放大器为核心元件,由其不同的输入网络和反馈网络组成的各种典型环节,如图所示。图中和为复数阻抗,它们都是构成。 Z2 Z1 Ui ,— U o 接示波器 得:

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

算法设计与分析实验报告 贪心算法 班级: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

实验4 达林算法仿真

实验四达林算法仿真 一、实验目的 1.设计达林算法的Simulink仿真模型; 2.用S函数实现达林算法; 3.观察达林算法中的滞后时间常数和采样周期的选取对系统输出的影响。 二、实验内容 被控对象:G( S )= 2 4S+1 1.达林算法仿真模型 达林算法的SIMULINK仿真模型如图4.1所示。达林算法适用于一、二阶惯性加纯滞后环节对象,仿真模型仅对工业控制中常见的一阶惯性加纯滞后环节对象作仿真。 图 4.1达林算法仿真模型 3.达林算法的S函数实现达林算法控制器的S函数 程序darlincon.m清单如下: function[sys,x0,str,ts]=darlincon(t,x,u,flag,Ttao,T1,K,Tao,T) global umax k1 k2 k3 uk ek_1 N switch flag case 0, sizes=simsizes; sizes.NumContStates=0;sizes.NumDiscStates=0; sizes.NumOutputs=1;sizes.NumInputs=1; sizes.DirFeedthrough=1;sizes.NumSampleTimes=1; sys=simsizes(sizes);str=[]; ts=[T 0]; umax=50;N=floor(Tao/T); uk=zeros(N+2,1);ek_1=0;k1=exp(-T/Ttao); k2=exp(-T/T1);k3=(1-k1)/K/(1-k2); case 3, ek=u; uk(1)=k3*(ek-k2*ek_1)+k1*uk(2)+(1- k1)*uk(N+2); if uk(1)>umax uk(1)=umax; end

南理工控制工程基础实验报告

南理工控制工程基础实验报告 成绩:《控制工程基础》课程实验报告班级:学号:姓名:南京理工大学2015年12月《控制工程基础》课程仿真实验一、已知某单位负反馈系统的开环传递函数如下G(s)?10 s2?5s?25借助MATLAB和Simulink完成以下要求:(1) 把G(s)转换成零极点形式的传递函数,判断开环系统稳定性。>> num1=[10]; >> den1=[1 5 25]; >> sys1=tf(num1,den1) 零极点形式的传递函数:于极点都在左半平面,所以开环系统稳定。(2) 计算闭环特征根并判别系统的稳定性,并求出闭环系统在0~10秒内的脉冲响应和单位阶跃响应,分别绘出响应曲线。>> num=[10];den=[1,5,35]; >>

sys=tf(num,den); >> t=[0::10]; >> [y,t]=step(sys,t); >> plot(t,y),grid >> xlabel(‘time(s)’) >> ylabel(‘output’) >> hold on; >> [y1,x1,t]=impulse(num,den,t); >> plot(t,y1,’:’),grid (3) 当系统输入r(t)?sin5t时,运用Simulink搭建系统并仿真,用示波器观察系统的输出,绘出响应曲线。曲线:二、某单位负反馈系统的开环传递函数为:6s3?26s2?6s?20G(s)?4频率范围??[,100] s?3s3?4s2?2s?2 绘制频率响应曲线,包括Bode图和幅相曲线。>> num=[6 26 6 20]; >> den=[1 3 4 2 2]; >> sys=tf(num,den); >> bode(sys,{,100}) >> grid on >> clear; >> num=[6 26 6 20]; >> den=[1 3 4 2 2]; >> sys=tf(num,den); >> [z , p , k] = tf2zp(num, den); >> nyquist(sys) 根据Nyquist判据判定系统的稳定性。

北京理工大学《数据结构与算法设计》实验报告实验一

《数据结构与算法设计》 实验报告 ——实验一 学院: 班级: 学号: 姓名:

一、实验目的 1.通过实验实践、巩固线性表的相关操作; 2.熟悉VC环境,加强编程、调试的练习; 3.用C语言编写函数,实现循环链表的建立、插入、删除、取数据等基本操作; 4.理论知识与实际问题相结合,利用上述基本操作实现约瑟夫环。 二、实验内容 1、采用单向环表实现约瑟夫环。 请按以下要求编程实现: ①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的 结点编号依次为1,2,……,m。 ②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到 第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点 的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出 了这个环表的全部结点为止。 三、程序设计 1、概要设计 为实现上述程序功能,应用单向环表寄存编号,为此需要建立一个抽象数据类型:单向环表。 (1)、单向环表的抽象数据类型定义为: ADT Joseph{ 数据对象:D={ai|ai∈ElemSet,i=1,2,3……,n,n≥0} 数据关系:R1={ |ai∈D,i=1,2,……,n} 基本操作: create(&L,n) 操作结果:构造一个有n个结点的单向环表L。 show(L) 初始条件:单向环表L已存在。 操作结果:按顺序在屏幕上输出L的数据元素。 Josephf( L,m,s,n) 初始条件:单向环表L已存在, s>0,n>0,s

大林算法实验报告(20200623034811)

大林算法实验报告 一、实验目的 1、 掌握大林控制算法的基本概念和实现方法; 2、 进一步熟悉MATLAB 的使用方法; 3、 掌握在MATLAB 下大林算法控制器的调试方法; 4、 观察振铃现象,并且尝试消除振铃现象 二、实验原理 1■大林算法的原理及推导 大林算法是IBM 公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯 滞后对象的控制算法。其目标就是使整个闭环系统的传递函数 相当于一个带有纯滞后的一 阶惯性环节。该算法具有良好的控制效果。 大林控制算法的设计目标是使整个闭环系统所期望的传递函数 0 (s) 相当于一个延迟环节和一个惯性环节相串联,即 : 整个闭环系统的纯滞后时间和被控对象 G0(s)的纯滞后时间T 相同。 闭环系统的时间常数为 T T ,纯滞后时间T 与采样周期T 有整数倍关系, T =NT 。 其控制器形式的推导的思路是用近似方法得到系统的闭环脉冲传递函数,然后再由被 控系统的脉冲传递函数,反推系统控制器的脉冲传递函数。 由大林控制算法的设计目标,可知整个闭环系统的脉冲传递函数应 当是零阶保持器与理想的 0 (s)串联之后的Z 变换,即0 (z)如下: R(z) _ s Ts 1 1- e T z 对于被控对象为带有纯滞后的一阶惯性环节即: s NTs Ke G o (s)- 1 Tp Ke 1 「s 其与零阶保持器相串联的的脉冲传递函数为: (s)二 1 Ts 1 G (z)=z3 心 .s 1 + T 1S 」 K Z — NT T/T 1 1 _ e ; 1 ■ e z

于是相应的控制器形式为: (仁「厲)(仁/仁一1 ) K (I e TTl )1 - ―1 -(1 e TT )^N_1 2■振铃现象及其消除 按大林算法设计的控制器可能会出现一种振铃现象,即数字控制器 的输出以二分之一的采样频率大幅度衰减振荡,会造成执行机构的磨损。 在有交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳 定性。 衡量振铃现象的强烈程度的量是振铃幅度 RA (Ringing Amplitude)。 它的定义是:控制器在单位阶跃输入作用下,第零次输出幅度与第一次 输出幅度之差值。 当被控对象为纯滞后的一阶惯性环节时,数字控制器 D(z)为: D 注 ⑴e TT )(i -宀\ D(Z) T T 1 T T -1 T T N -1 K(1- e J 1- e "z - (1- e f)z ] 由此可以得到振铃幅度为: T/T T/T 1 T/T 1 -T/T RA= ( e ) -( e 1 p e - e 于是,如果选择 T T >T1,则RA W 0,无振铃现象;如果选择 T T < T1, 则有振铃现象。由此可见,当系统的时间常数 T T 大于或者等于被控对象的 时间常数T1时,即可消除振铃现象。 三、实验内容 已知某过程对象的传递函数为: 期望的闭环系统时间常数 T 0 = 0.25s ,采样周期 T =0.5s 。 要求: (1) 适用大林算法设计数字控制器; (2) 判断有无振铃现象,若有则修改控制器消除之,仿真并分析系统在单位阶跃响应下 的输出结果; (3) 利用PID 控制器控制该对象,使得系统在单位阶跃信号下的响应满足超调量不超过 20%,衰减比为4:1,调节时间不超过 4s ; ⑷分析以上两种方法的优缺点。 四、实验过程 G (s )二 3e -0.5s 0.6s 1

控制系统综合实验模板

科技学院 综合实验报告 ( -- 第1 学期) 名称: 控制系统综合实验 题目: 水位控制系统综合实验 院系: 动力工程系 班级: 自动化09K1 学号: 09191 116 学生姓名: 秦术员 指导教师: 平玉环 设计周数: 1周 成绩: 日期: 1月7日

《控制系统》综合实验 任务书 一、目的与要求 本综合实验是自动化专业的实践环节。经过本实践环节, 使学生对实际控制系统的结构、系统中各环节的关系、数字控制器的应用和控制系统的整定等建立起完整的概念。培养学生利用所学理论知识分析、解决实际问题的能力。 1. 了解单容水箱水位控制系统的实际结构及各环节之间的关 系。 2. 学会数字控制器组态方法。 3. 掌握控制系统整定方法, 熟悉工程整定的全部内容。 二、主要内容 1.熟悉紧凑型过程控制系统, 并将系统调整为水位控制状态。 2.对数字控制器组态。 3.求取对象动态特性。 4.计算调节器参数。 5.调节器参数整定。 6.做扰动实验, 验证整定结果。 7.写出实验报告。 三、进度计划

四、实验成果要求 完成实验报告, 实验报告包括: 1.实验目的 2.实验设备 3.实验内容, 必须写出参数整定过程, 并分析控制器各参数的作用, 总结出一般工程整定的步骤。 4.实验总结, 此次实验的收获。 以上内容以打印报告形式提交。 五、考核方式 根据实验时的表现、及实验报告确定成绩。 成绩评分为经过以及不经过。 学生姓名: 秦术员 指导教师: 平玉环 1月7日

一、综合实验的目的与要求 本综合实验是自动化专业的实践环节。经过本实践环节, 使学生对实际控制系统的结构、系统中各环节的关系、数字控制器的应用和控制系统的整定等建立起完整的概念。培养学生利用所学理论知识分析、解决实际问题的能力。 1. 了解单容水箱水位控制系统的实际结构及各环节之间的关 系。 2. 学会数字控制器组态方法。 3. 掌握控制系统整定方法, 熟悉工程整定的全部内容。 二、实验正文 1. 实验设备 紧凑型过程控制系统; 上位机 2. 液位控制系统 2.1 液位控制系统流程图, 如图1

算法设计与实验报告讲解

算法设计与分析实验报告 学院:信息学院 专业:物联网1101 姓名:黄振亮 学号:20113379 2013年11月

目录 作业1 0-1背包问题的动态规划算法 (7) 1.1算法应用背景 (3) 1.2算法原理 (3) 1.3算法描述 (4) 1.4程序实现及程序截图 (4) 1.4.1程序源码 (4) 1.4.2程序截图 (5) 1.5学习或程序调试心得 (6) 作业2 0-1背包问题的回溯算法 (7) 2.1算法应用背景 (3) 2.2算法原理 (3) 2.3算法描述 (4) 2.4程序实现及程序截图 (4) 2.4.1程序源码 (4) 2.4.2程序截图 (5) 2.5学习或程序调试心得 (6) 作业3循环赛日程表的分治算法 (7) 3.1算法应用背景 (3) 3.2算法原理 (3) 3.3算法描述 (4) 3.4程序实现及程序截图 (4)

3.4.1程序源码 (4) 3.4.2程序截图 (5) 3.5学习或程序调试心得 (6) 作业4活动安排的贪心算法 (7) 4.1算法应用背景 (3) 4.2算法原理 (3) 4.3算法描述 (4) 4.4程序实现及程序截图 (4) 4.4.1程序源码 (4) 4.4.2程序截图 (5) 4.5学习或程序调试心得 (6)

作业1 0-1背包问题的动态规划算法 1.1算法应用背景 从计算复杂性来看,背包问题是一个NP难解问题。半个世纪以来,该问题一直是算法与复杂性研究的热点之一。另外,背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、网络信息安全等应用中具有重要的价值。如果能够解决这个问题那么则具有很高的经济价值和决策价值,在上述领域可以获得最大的价值。本文从动态规划角度给出一种解决背包问题的算法。 1.2算法原理 1.2.1、问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c >0, wi >0, vi >0 , 1≤i≤n.要求找一n元向量(x1,x2,…,xn,), xi ∈{0,1}, ?∑ wi xi≤c,且∑ vi xi达最大.即一个特殊的整数规划问题。 1.2.2、最优性原理: 设(y1,y2,…,yn)是 (3.4.1)的一个最优解.则(y2,…,yn)是下面相应子问题的一个最优解: 证明:使用反证法。若不然,设(z2,z3,…,zn)是上述子问题的一个最优解,而(y2,y3,…,yn)不是它的最优解。显然有 ∑vizi > ∑viyi (i=2,…,n) 且 w1y1+ ∑wizi<= c 因此 v1y1+ ∑vizi (i=2,…,n) > ∑ viyi, (i=1,…,n) 说明(y1,z2, z3,…,zn)是(3.4.1)0-1背包问题的一个更优解,导出(y1,y2,…,yn)不是背包问题的最优解,矛盾。 1.2.3、递推关系:

控制工程基础实验报告

控制工程基础[英]实验 实验一.典型环节的模拟研究: 已知一个小车、倒单摆系统非线性系统方程为: ( 2.92)0.008x x u =-+ 20.004sin 36cos n n x θωθωθθ=-+- 其中假设 (0)0;(0)0.2x x ==, (0)0;(0); 6.781,n θθπω=== (1)要求绘出系统[0,10]t ∈的状态响应曲线 (2)并将上述系统在0θ≈的条件下线性化,并要求绘出线性化后系统 [0,10]t ∈的状态响应曲线,并与非线性系统状态响应曲线相比较。 (1)下面利用Simulink 对该系统进行仿真如下图所示。 图1.倒单摆系统仿真图 在图中已经对主要信号进行了标注下面给出每个未标注信号后加入放大器的增益: 008.092.2= 阶跃K 008 .01 -=一阶微分x K 98.45=二阶微分θK 通过示波器Scope 和Scope1观察x(t)和θ(t)的波形图如下所示。

图2.x(t)波形图3.θ(t)波形(2)将上述系统在0 θ≈的条件下线性化,则方程组改写成如下形式: ( 2.92)0.008 x x u =-+ 2 0.004sin36 n n x θωθωθ =-+- 在Simulink中对系统仿真如下所示。 图4.线性化后仿真系统 通过示波器模块可以观察输出信号,图形如下图所示。

图5.x(t)输出波形 图6.θ(t )输出波形 实验二.典型系统时域响应动、静态性能和稳定性研究; 已知系统的开环传递函数为 2()11G s s s = ++ (1)利用已知的知识判断该开环系统的稳定性(系统的特征方程根、系统零极点表示法)。 (2)判别系统在单位负反馈下的稳定性,并求出闭环系统在[0,10]t ∈内的脉冲响应和单位阶跃响应,分别绘制出相应响应曲线。 (1)该系统的特征方程的根、零极点表示的求解代码如下:

银行家算法设计实验报告

银行家算法设计实验报告

银行家算法设计实验报告 一.题目分析 1.银行家算法: 我们可以把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。 当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。 2.基本要求: (1)可以输入某系统的资源以及T0时刻进程对资源的占用及需求情况的表项,以及T0时刻系统的可利用资源数。 (2)对T0时刻的进行安全性检测,即检测在T0时刻该状态是否安全。

(3)进程申请资源,用银行家算法对其进行检测,分为以下三种情况: A. 所申请的资源大于其所需资源,提示分配不合理不予分配并返回 B. 所申请的资源未大于其所需资源, 但大于系统此时的可利用资源,提 示分配不合理不予分配并返回。 C. 所申请的资源未大于其所需资源, 亦未大于系统此时的可利用资源,预 分配并进行安全性检查: a. 预分配后系统是安全的,将该进 程所申请的资源予以实际分配并 打印后返回。 b. 与分配后系统进入不安全状态,提示系统不安全并返回。 (4)对输入进行检查,即若输入不符合条件,应当报错并返回重新输入。 3.目的: 根据设计题目的要求,充分地分析和理解题 目,叙述系统的要求,明确程序要求实现的功能以及限制条件。 明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。

清华控制工程基础-实验1 Matlab仿真实验

实验一 Matlab 仿真实验 基本实验 1、 对于一阶惯性系统 G s s ()= +K T 1 当分别取以下几组参数时,试画出系统单位阶跃响应曲线、频率特性乃氏图和伯德图。 1).K=1,T=10; 2).K=1,T=1; 3).K=1,T=0.1 结果:

2、 对于二阶系统 G s s s ()= ++1 2122T T ζ 分别就T=1和T=0.1,?分别取0, 0.2, 0.5, 0.7, 1, 10时,画出系统单位阶跃响应曲线、频率特性乃氏图和伯德图。 结果:

3、自构造高阶系统,试利用Matlab软件工具分析其时域、频域特性。 构造高阶系统 2 32 0.01315 () 0.00040.120100 s s G s s s s ++ = +++ 利用软件画出系统单位阶跃响应曲线、频率特性乃氏图和伯德图如下: 4、对于下列系统,试画出其伯德图,求出相角裕量和增益裕量,并判其稳定性 (1) )1 0047 .0 )( 1 03 .0( 250 ) ( ) ( + + = s s s s H s G 伯德图:

增益裕量:-0.1366dB 相角裕量:-0.3080degree 故,闭环后系统不稳定。 (2) ) 10047.0)(103.0)(110() 15.0(250)()(++++=s s s s s s H s G 伯德图: 增益裕量:25.2910dB 相角裕量:58.0765degree 故,闭环后系统稳定。 实验目的 1) 熟悉直流伺服电机控制系统各环节的传递函数模型; 2)根据给定的性能指标,设计速度环与位置环的控制器参数。 实验内容及要求 2.1 速度环仿真实验 图1-1 双环调速系统简化方框图

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

控制系统仿真实验报告

哈尔滨理工大学实验报告 控制系统仿真 专业:自动化12-1 学号:1230130101 姓名:

一.分析系统性能 课程名称控制系统仿真实验名称分析系统性能时间8.29 地点3# 姓名蔡庆刚学号1230130101 班级自动化12-1 一.实验目的及内容: 1. 熟悉MATLAB软件的操作过程; 2. 熟悉闭环系统稳定性的判断方法; 3. 熟悉闭环系统阶跃响应性能指标的求取。 二.实验用设备仪器及材料: PC, Matlab 软件平台 三、实验步骤 1. 编写MATLAB程序代码; 2. 在MATLAT中输入程序代码,运行程序; 3.分析结果。 四.实验结果分析: 1.程序截图

得到阶跃响应曲线 得到响应指标截图如下

2.求取零极点程序截图 得到零极点分布图 3.分析系统稳定性 根据稳定的充分必要条件判别线性系统的稳定性最简单的方法是求出系统所有极点,并观察是否含有实部大于0的极点,如果有系统不稳定。有零极点分布图可知系统稳定。

二.单容过程的阶跃响应 一、实验目的 1. 熟悉MATLAB软件的操作过程 2. 了解自衡单容过程的阶跃响应过程 3. 得出自衡单容过程的单位阶跃响应曲线 二、实验内容 已知两个单容过程的模型分别为 1 () 0.5 G s s =和5 1 () 51 s G s e s - = + ,试在 Simulink中建立模型,并求单位阶跃响应曲线。 三、实验步骤 1. 在Simulink中建立模型,得出实验原理图。 2. 运行模型后,双击Scope,得到的单位阶跃响应曲线。 四、实验结果 1.建立系统Simulink仿真模型图,其仿真模型为

控制工程基础实验指导书(答案) 2讲解

实验二二阶系统的瞬态响应分析 一、实验目的 1、熟悉二阶模拟系统的组成。 2、研究二阶系统分别工作在ξ=1,0<ξ<1,和ξ> 1三种状态下的单 位阶跃响应。 3、分析增益K对二阶系统单位阶跃响应的超调量σP、峰值时间tp和调 整时间ts。 4、研究系统在不同K值时对斜坡输入的稳态跟踪误差。 5、学会使用Matlab软件来仿真二阶系统,并观察结果。 二、实验仪器 1、控制理论电子模拟实验箱一台; 2、超低频慢扫描数字存储示波器一台; 3、数字万用表一只; 4、各种长度联接导线。 三、实验原理 图2-1为二阶系统的原理方框图,图2-2为其模拟电路图,它是由惯性环节、积分环节和反号器组成,图中K=R2/R1,T1=R2C1,T2=R3C2。 图2-1 二阶系统原理框图

图2-1 二阶系统的模拟电路 由图2-2求得二阶系统的闭环传递函 12 22 122112 /() (1)()/O i K TT U S K U S TT S T S K S T S K TT ==++++ :而二阶系统标准传递函数为 (1)(2), 对比式和式得 n ωξ== 12 T 0.2 , T 0.5 , n S S ωξ====若令则。调节开环增益K 值,不仅能改变系统无阻尼自然振荡频率ωn 和ξ的值,可以得到过阻尼(ξ>1)、 临界阻尼(ξ=1)和欠阻尼(ξ<1)三种情况下的阶跃响应曲线。 (1)当K >0.625, 0 < ξ < 1,系统处在欠阻尼状态,它的单位阶跃响应表达式为: 图2-3 0 < ξ < 1时的阶跃响应曲线 (2)当K =0.625时,ξ=1,系统处在临界阻尼状态,它的单位阶跃响应表达式为: 如图2-4为二阶系统工作临界阻尼时的单位响应曲线。 (2) +2+=222n n n S S )S (G ωξω ω1 ()1sin( 2-3n t o d d u t t tg ξωωωω--=+=式中图为二阶系统在欠阻尼状态下的单位阶跃响应曲线e t n o n t t u ωω-+-=)1(1)(

算法与设计实验报告

算法与分析实验报告软件工程专业 安徽工业大学 指导老师:许精明

实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 一:实验目的 1:掌握动态规划算法的基本思想,学会用其解决实际问题。 2:通过几个基本的实验,提高算法分析与设计能力,提高动手操作能力和培养良好的编程习惯。 二:实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 实验一:杨辉三角

问题分析: ①每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 ②第n行数之和为2^n。 ③下一行每个数字等于上一行的左右两个数字之和。 算法设计及相关源代码: public void yanghui(int n) { int[] a = new int[n]; if(n==1){ System.out.println(1); }else if(n==2) { System.out.print(1 + " " +1); }else{ a[1]=1; System.out.println(a[1]); a[2]=1;

System.out.println(a[1]+" "+a[2]); for(int i=3;i<=n;i++){ a[1]=a[i]=1; for(int j=i-1;j>1;j--){ a[j]=a[j]+a[j-1]; } for(int j=1;j<=i;j++){ System.out.print(a[j]+" "); } System.out.println(); } } } 实验结果:n=10 实验二:0-1背包问题 问题分析::令V(i,j)表示在前i(1<=i<=n)个物品中能够装入容量为就 j(1<=j<=C)的背包中的物品的最大价值,则可以得到如下的动态规划函数: (1) V(i,0)=V(0,j)=0 (2) V(i,j)=V(i-1,j) j

大林算法实验报告

大林算法实验报告 一、实验目的 1、掌握大林控制算法的基本概念和实现方法; 2、进一步熟悉MATLAB 的使用方法; 3、掌握在MA TLAB 下大林算法控制器的调试方法; 4、观察振铃现象,并且尝试消除振铃现象 二、实验原理 1.大林算法的原理及推导 大林算法是IBM 公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯滞后对象的控制算法。其目标就是使整个闭环系统的传递函数 相当于一个带有纯滞后的一阶惯性环节。该算法具有良好的控制效果。 大林控制算法的设计目标是使整个闭环系统所期望的传递函数φ(s ) 相当于一个延迟环节和一个惯性环节相串联,即: 整个闭环系统的纯滞后时间和被控对象G 0(s )的纯滞后时间τ相同。 闭环系统的时间常数为T τ ,纯滞后时间τ与采样周期T 有整数倍关系, τ=NT 。 其控制器形式的推导的思路是用近似方法得到系统的闭环脉冲传递函数,然后再由被控系统的脉冲传递函数,反推系统控制器的脉冲传递函数。 由大林控制算法的设计目标,可知整个闭环系统的脉冲传递函数应 当是零阶保持器与理想的φ(s )串联之后的Z 变换,即φ(z )如下: 对于被控对象为带有纯滞后的一阶惯性环节即: 其与零阶保持器相串联的的脉冲传递函数为: 1 ()1 s s e T s ττ φ-=+1/1() 1(1)()=()11T s ττ T/T s N T T -Y z e e e z z Z z R z s T s e z ττ φ------??--==?=? ? ?+-?? 011()11s NTs Ke Ke G s T s T s τ--== ++11/1/1111()11T T Ts s N T T e Ke e G z Z Kz s T s e z τ-------??--=?=? ?+-??

控制系统仿真实验报告1

昆明理工大学电力工程学院学生实验报告 实验课程名称:控制系统仿真实验 开课实验室:年月日

实验一 电路的建模与仿真 一、实验目的 1、了解KCL 、KVL 原理; 2、掌握建立矩阵并编写M 文件; 3、调试M 文件,验证KCL 、KVL ; 4、掌握用simulink 模块搭建电路并且进行仿真。 二、实验内容 电路如图1所示,该电路是一个分压电路,已知13R =Ω,27R =Ω,20S V V =。试求恒压源的电流I 和电压1V 、2V 。 I V S V 1 V 2 图1 三、列写电路方程 (1)用欧姆定律求出电流和电压 (2)通过KCL 和KVL 求解电流和电压

四、编写M文件进行电路求解(1)M文件源程序 (2)M文件求解结果 五、用simulink进行仿真建模(1)给出simulink下的电路建模图(2)给出simulink仿真的波形和数值

六、结果比较与分析

实验二数值算法编程实现 一、实验目的 掌握各种计算方法的基本原理,在计算机上利用MATLAB完成算法程序的编写拉格朗日插值算法程序,利用编写的算法程序进行实例的运算。 二、实验说明 1.给出拉格朗日插值法计算数据表; 2.利用拉格朗日插值公式,编写编程算法流程,画出程序框图,作为下述编程的依据; 3.根据MATLAB软件特点和算法流程框图,利用MATLAB软件进行上机编程; 4.调试和完善MATLAB程序; 5.由编写的程序根据实验要求得到实验计算的结果。 三、实验原始数据 上机编写拉格朗日插值算法的程序,并以下面给出的函数表为数据基础,在整个插值区间上采用拉格朗日插值法计算(0.6) f,写出程序源代码,输出计算结果: 四、拉格朗日插值算法公式及流程框图

控制工程基础仿真实验

控制工程基础仿真实验 一.实验目的 通过仿真实验,直观了解各典型环节的时间响应和频率响应,巩固课程中所学的基本概念和基本原理。 二.实验要求 学生可自由组合,1至3人一组,要求根据实验内容,完成计算机仿真实验,并对仿真结果进行分析, 撰写实验报告。 三.实验内容(课程教材所附光盘中的仿真实验) 实验1. 一阶系统的单位脉冲响应 输入5个不同的时间常数,观察一阶系统单位脉冲响应曲线的变化,分析时间常数T 对系统性能的影响。 实验2. 一阶系统的单位阶跃响应 (1) 输入3个不同的时间常数,观察一阶系统单位阶跃响应曲线的变化,将响应曲线绘 制在坐标纸上,并分析时间常数T 对系统性能的影响。 (2) 若通过实验已测得一阶系统的单位阶跃响应曲线,试说明如何通过该曲线确定系统 的时间常数T 。 实验3. 二阶系统的单位脉冲响应 保持系统的无阻尼固有频率2=n ω不变,改变系统的阻尼比ξ为0.1,0.5,0.7,1和2,观察系统的响应曲线变化情况,并分析阻尼比ξ如何影响系统的性能。 实验4. 二阶系统的单位阶跃响应 保持系统的无阻尼固有频率5=n ω不变,改变系统的阻尼比ξ为0.1,0.5,0.7,1和2,观察系统的响应曲线变化情况,将响应曲线绘制在坐标纸上,并分析阻尼比ξ如何影响二阶系统的性能。 实验5. Nyquist 图 分别绘制下列开环传递函数的Nyquist 图,并分析相应闭环系统的稳定性。 (1)1 21.006.0105.0)(2+++=s s s s G (2)s s s G 2.01)(?= (3)1029)(?=s s G 实验6. Bode 图 已知系统开环传递函数为) 5)(1()(++=s s s K s G ,当K 的取值为1,10,100和1000

算法设计实验报告(川大陈瑜)

《算法设计》课程报告 课序号: 01 学号: 2012141461134 姓名:刘佳玉 任课教师:陈瑜 评阅成绩: 评阅意见: 提交报告时间:2014年 6 月 16 日

贪心算法 1、问题描述 (这是我在soj上找的一道题,以前没做出来,现在用贪心的思想做出来了) 约翰要去钓鱼。他有h小时可用(1≤h≤16),在这个地区有n个湖泊(2≤n≤25),所有的湖泊沿着一条单行道可到达。约翰从湖泊1开始,他可以在任何湖泊结束。他只能从一个湖,到下一个,但他没有必要停在任何湖除非他想停。对于每个i = 1,……,n-1,ti 表示从湖i到湖i+1的5分钟的时间间隔(0 < ti < = 192)。例如,t3 = 4意味着它从湖3湖4需要20分钟的时间。 为了帮助他们规划自己的钓鱼旅行,约翰已经收集了一些关于湖泊信息。对于每个湖泊的i,能钓到的鱼在最初的5分钟的数量,用fi表示(fi > = 0),是已知的。每钓5分钟的鱼,能钓到的鱼在接下来的5分钟的间隔降低一个恒定的数di(di>=0)。如果能钓到的鱼在一个时间区的数量小于或等于di,将不会有更多的鱼留在湖里在下一个时间间隔。为了简化规划,约翰认为没有人会在影响他期待钓到的鱼的数量的湖里钓鱼。 写一个程序来帮助约翰计划他的最大化期望钓到的鱼的数量的钓鱼之旅。在每个湖花费的时间数必须是5的倍数。 这个问题包含多个测试案例! 一个多输入的第一行是一个整数N,然后一个空白行后的N个输入块。每个输入块由问题描述中的格式表示的。每个输入块之间有一个空行。 输出格式包含N个输出块。输出块之间要有一个空白行。 输入 在输入中,会给你一个案例输入的数量。每一种情况下,以n开始,其次是h,接下来有一行n个整数指定fi(1 < =i< = n),然后有一行n个整数di(1≤i<=n),最后,有一行n - 1的整数ti(1≤i<=n-1)。输入在n=0的情况下终止。 输出

(修改后) 系统仿真综合实验指导书(2011[1].6)

系统仿真综合实验指导书 电气与自动化工程学院 自动化系 2011年6月

前言 电气与自动化工程学院为自动化专业本科生开设了控制系统仿真课程,为了使学生深入掌握MATLAB语言基本程序设计方法,运用MATLAB语言进行控制系统仿真和综合设计,同时开设了控制系统仿真综合实验,30学时。为了配合实验教学,我们编写了综合实验指导书,主要参考控制系统仿真课程的教材《自动控制系统计算机仿真》、《控制系统数字仿真与CAD》、《反馈控制系统设计与分析——MATLAB语言应用》及《基于MATLAB/Simulink的系统仿真技术与应用》。

实验一MATLAB基本操作 实验目的 1.熟悉MATLAB实验环境,练习MATLAB命令、m文件、Simulink的基本操作。 2.利用MATLAB编写程序进行矩阵运算、图形绘制、数据处理等。 3.利用Simulink建立系统的数学模型并仿真求解。 实验原理 MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。 1.命令窗口(The Command Window) 当MATLAB启动后,出现的最大的窗口就是命令窗口。用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。 在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。因为这样的文件都是以“.m”为后缀,所以称为m-文件。 2.m-文件编辑窗口(The Edit Window) 我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。在MATLAB 主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。 3.图形窗口(The Figure Window) 图形窗口用来显示MATLAB程序产生的图形。图形可以是2维的、3维的数据图形,也可以是照片等。 MATLAB中矩阵运算、绘图、数据处理等内容参见教材《自动控制系统计算机仿真》的相关章节。 Simulink是MATLAB的一个部件,它为MATLAB用户提供了一种有效的对反馈控制系统进行建模、仿真和分析的方式。 有两种方式启动Simulink:

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