实验4 达林算法仿真

实验4 达林算法仿真
实验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

1

if uk(1)<-

umax uk(1)=-

umax; end

ek_1=ek;

uk(2:N+2)=uk(1:N+1);

sys=[uk(1)];

case{1,2,4,9}

sys=[];

otherwise

error(['Unhandled

flag',num2str(flag)]); end

3.参数设置及系统输出曲线程序中的斜体部分就是有关的达林算法实现所用的变量和语句。假设对象模

型为G ( S )= 2 e?3s,要求闭环系统时间常数T =4.5s ,取采样周期T=1s。先04S+1 τ

按对象的参数去设置控制器参数,然后运行仿真模型。仿真结果如图4.2所示。若欲缩短调节时间,可将闭环时间常数改为Tτ=2s,采样周期仍为T=1s,

再次仿真。仿真结果如图4.3所示。

(a)系统输出(b)控制量

图4.2闭环时间常数为4.5s时的仿真结果

(a)系统输出(b)控制量

图4.3闭环时间常数为2s时的仿真结果

从图4.2中可见,动态过程确实缩短了,请注意控制量也相应增大了,这是符合实际情况的。观察图4.2和图4.3的系统输出都没有纹波出现,说明在纯滞后时间是采样周期的整数倍时,无论闭环系统时间常数丁。是大于还是小于惯性时

2

间常数,系统输出都是没有纹波的。倘若纯滞后时间不是采样周期的整数倍时,系统输出将会发生波动。设=2s,采样周期改为T=1.3s,再次仿真,仿真结果如图4.4所示。若再缩短采样周期,系统的输出波动将更厉害,可以试做一下。

(a)系统输出(b)控制量图4.4闭环时间常数为2s

时,采样周期为 1.3s的仿真结果

三、实验预习要求

(1)掌握达林算法;(2)

设计达林算法控制器。

四、实验报告要求

(1)记录不同滞后时间常数和采样周期时系统输出曲线;(2)

分析不同滞后时间常数和采样周期时系统输出曲线的影响。

3

蒙特卡洛(Monte Carlo)模拟法

当科学家们使用计算机来试图预测复杂的趋势和事件时, 他们通常应用一类需要长串的随机数的复杂计算。设计这种用来预测复杂趋势和事件的数字模型越来越依赖于一种称为蒙特卡罗模似的统计手段, 而这种模拟进一步又要取决于可靠的无穷尽的随机数目来源。 蒙特卡罗模拟因摩纳哥著名的赌场而得名。它能够帮助人们从数学上表述物理、化学、工程、经济学以及环境动力学中一些非常复杂的相互作用。数学家们称这种表述为“模式”, 而当一种模式足够精确时, 他能产生与实际操作中对同一条件相同的反应。但蒙特卡罗模拟有一个危险的缺陷: 如果必须输入一个模式中的随机数并不像设想的那样是随机数, 而却构成一些微妙的非随机模式, 那么整个的模拟(及其预测结果)都可能是错的。 最近, 由美国佐治亚大学的费伦博格博士作出的一分报告证明了最普遍用以产生随机数串 的计算机程序中有5个在用于一个简单的模拟磁性晶体中原子行为的数学模型时出现错误。科学家们发现, 出现这些错误的根源在于这5个程序产生的数串其实并不随机, 它们实际上隐藏了一些相互关系和样式, 这一点只是在这种微小的非随机性歪曲了晶体模型的已知特 性时才表露出来。贝尔实验室的里德博士告诫人们记住伟大的诺伊曼的忠告:“任何人如果相信计算机能够产生出真正的随机的数序组都是疯子。” 蒙特卡罗方法(MC) 蒙特卡罗(Monte Carlo)方法: 蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是我们采用该方法的原因。 蒙特卡罗方法的基本原理及思想如下: 当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 蒙特卡罗解题三个主要步骤: 构造或描述概率过程: 对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。 实现从已知概率分布抽样: 构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样

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

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

(内部教材)

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

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

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

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

实验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

算法设计实验3

实验三:动态规划法 【实验目的】 应用动态规划算法思想求解矩阵连乘的顺序问题。 【实验要求】 应用动态规划算法的最优子结构性质和子问题重叠性质求解此问题。分析动态规划算法的基本思想,应用动态规划策略写出算法及相应的程序,求解此题。要读懂读透A[i,j], A[1,n]=A[1,k] ×A[k+1,n],m[i][j],s[i][j]各式所表达的含义并正确加以应用。m[i][j]的递归定义: 0 (i=j ) m[i][j]= min{m[i][k]+m[k+1][j]+n i-1n k n j (i #include class MatrixChain { public: MatrixChain(int mSize); //创建二维数组m和s,一维数组p,并初始化

蒙特卡洛方法

蒙特卡洛方法 1、蒙特卡洛方法的由来 蒙特卡罗分析法(Monte Carlo method),又称为统计模拟法,是一种采用随机抽样(Random Sampling)统计来估算结果的计算方法。由于计算结果的精确度很大程度上取决于抽取样本的数量,一般需要大量的样本数据,因此在没有计算机的时代并没有受到重视。 第二次世界大战时期,美国曼哈顿原子弹计划的主要科学家之一,匈牙利美藉数学家约翰·冯·诺伊曼(现代电子计算机创始人之一)在研究物质裂变时中子扩散的实验中采用了随机抽样统计的手法,因为当时随机数的想法来自掷色子及轮盘等赌博用具,因此他采用摩洛哥著名赌城蒙特卡罗来命名这种计算方法,为这种算法增加了一层神秘色彩。 蒙特卡罗方法提出的初衷是用于物理数值模拟问题, 后来随着计算机的快速发展, 这一方法很快在函数值极小化、计算几何、组合计数等方面得到应用, 于是它作为一种独立的方法被提出来, 并发展成为一门新兴的计算科学, 属于计算数学的一个分支。如今MC方法已是求解科学、工程和科学技术领域大量应用问题的常用数值方法。 2、蒙特卡洛方法的核心—随机数 蒙特卡洛方法的基本理论就是通过对大量的随机数样本进行统计分析,从而得到我们所需要的变量。因此蒙特卡洛方法的核心就是随机数,只有样本中的随机数具有随机性,所得到的变量值才具有可信性和科学性。

在连续型随机变量的分布中, 最基本的分布是[0, 1]区间上的均匀分布, 也称单位均匀分布。由该分布抽取的简单子样ξ1,ξ2ξ3……称为随机数序列, 其中每一个体称为随机数, 有时称为标准随机数或真随机数, 独立性和均匀性是其必备的两个特点。真随机数是数学上的抽象, 真随机数序列是不可预计的, 因而也不可能重复产生两个相同的真随机数序列。真随机数只能用某些随机物理过程来产生, 如放射性衰变、电子设备的热噪音、宇宙射线的触发时间等。 实际使用的随机数通常都是采用某些数学公式产生的,称为伪随机数。真随机数只是一种数学的理想化概念,实际中我们所接触到的和使用的都是伪随机数。要把伪随机数当成真随机数来使用, 必须要通过随机数的一系列的统计检验。 无论伪随机数用什么方法产生,它的局限性都在于这些随机数总是一个有限长的循环集合, 而且序列偏差的上确界达到最大值。所以若能产生低偏差的确定性序列是很有用的,产生的序列应该具有这样的性质, 即任意长的子序列都能均匀地填充函数空间。 人们已经产生了若干种满足这个要求的序列,如Halton序列、Faure序列、Sobol序列和Niederreiter序列等。称这些序列为拟随机数序列。伪随机序列是为了模拟随机性, 而拟随机序列更致力于均匀性。 3、蒙特卡洛方法的原理 当问题可以抽象为某个确定的数学问题时,应当首先建立一个恰当的概率模型,即确定某个随机事件A或随机变量X,使得待求的解等

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

南理工控制工程基础实验报告 成绩:《控制工程基础》课程实验报告班级:学号:姓名:南京理工大学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判据判定系统的稳定性。

大林算法实验报告(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

算法设计与分析实验报告

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

1.进一步熟悉C/C++语言的集成开发环境; 2.通过本实验加深对递归与分治策略的理解和运用。 实验课时 2学时 实验原理 分治(Divide-and-Conquer)的思想:一个规模为n的复杂问题的求解,可以划分成若干个规模小于n的子问题,再将子问题的解合并成原问题的解。 需要注意的是,分治法使用递归的思想。划分后的每一个子问题与原问题的性质相同,可用相同的求解方法。最后,当子问题规模足够小时,可以直接求解,然后逆求原问题的解。 实验题目 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.代码设计: 归式,就是如何将原问题划分成子问题。 2.递归出口,递归终止的条件,即最小子问题的求解,可以允许多个出口。 3.界函数,问题规模变化的函数,它保证递归的规模向出口条件靠拢(2)递归与非递归之间如何实现程序的转换? (3)分析二分查找和快速排序中使用的分治思想。 答: 1.一般根据是否需要回朔可以把递归分成简单递归和复杂递归,简单递归一般就是根据递归式来找出递推公式(这也就引申出分治思想和动态规划)。 2.复杂递归一般就是模拟系统处理递归的机制,使用栈或队列等数据结构保存回朔点来求解。 (4)分析二次取中法和锦标赛算法中的分治思想。 二次取中法:使用快速排序法中所采用的分划方法,以主元为基准,将一个表划分为左右两个子表,左子表中的元素均小于主元,右子表中的元素均大于主元。主元的选择是将表划分为r

实验一 简单算法设计

实验一简单算法设计 一.实验目的和要求 1. 理解算法设计与分析的基本概念,理解解决问题的算法设计与实现过程; 2. 掌握简单问题的算法设计与分析,能设计比较高效的算法; 3. 熟悉C/C++语言等的集成开发环境,掌握简单程序设计与实现的能力; 二.实验内容 (一)相等元素问题 1.问题描述先排序函数,再查找函数。 #define size 100 Typedef strat { Int Array[size] Int listlength }List List a; Main() { 1、输入 2、排序 3、查找 4、输出 } 元素唯一性问题:给出一个整数集合,假定这些整数存储在数组A[1…n]中,确定它们中是否存在两个相等的元素。请设计出一个有效算法来解决这个问题,你的算法的时间复杂性是多少? 2. 测试数据 输入: 9 71 25 64 38 52 5 31 19 45 26 35 17 92 53 24 6 57 21 12 34 2 17 86 75 33 15 87 32 7 84 35 26 45 78 96 52 22 37 65 9 43 21 3 33 91 输出:No Yes No 3. 设计与实现的提示 算法最坏情况和平均情况的时间复杂性是衡量算法优劣的重要指标,算法设计要求尽可能设计比较高效的算法。 (二) 整数集合分解(选做) 1.问题描述

设计算法把一个n个元素的整数集合(n为偶数)分成两个子集S1和S2,使得:每个新的集合中含有n/2个元素,且S1中的所有元素的和与S2中的所有元素的和的差最大。 2. 测试数据 输入: 68 25 34 16 2 37 3 95 76 57 21 13 4 78 29 6 17 39 51 20 43 12 28 3 48 59 14 32 47 51 42 61 9 24 52 78 65 2 37 78 51 73 29 7 26 95 37 2 输出: 2 3 4 6 12 13 16 17 20 21 25 29 34 37 39 43 51 57 68 76 78 95 2 2 3 7 9 1 4 24 26 28 29 32 37 37 42 47 48 51 51 52 59 61 62 65 73 78 95 3. 设计与实现的提示 本题可以有多种方法。算法时间复杂性是选取算法的重要依据。输出的两个新整数集合要求按照从小到大排序后输出。该排序步骤对算法时间复杂性的影响在此不计。

蒙特卡洛模拟方法作业及答案(附程序)

蒙特卡洛习题 1.利用蒙特卡洛计算数值积分 () ()() 1280ln 1tan x x x xe dx +++? clear all ;clc;close all ; n=1000; count=0; x=0:0.01:1; y=log((1+x).^2+(tan(x).^8)+x.*exp(x)); plot(x,y,'linewidth',2) hold on for i=1:n x1=rand; y1=rand*y(end); plot(x1,y1,'g*') pause(0.01) if y1

2.分别用理论计算和计算机模拟计算,求连续掷两颗骰子,点数之和大于6且第一次掷出的点数大于第二次掷出点数的概率。 clear all;clc;close all; count=0; n=100000; for i=1:n x=floor(rand*6+1); y=ceil(rand*6); if x+y>6&&x>y count=count+1; end end P=count/n 3.

clear all;clc;close all; count=0; n=2000; ezplot('x^2/9+y^2/36=1'); hold on ezplot('x^2/36+y^2=1'); hold on ezplot('(x-2)^2+(y+1)^2=9') for i=1:n x=rand*12-6; y=rand*12-6; plot(x,y,'gh','linewidth',2) pause(0.01) if x^2/9+y^2/36<1&&x^2/36+y^2<1&&(x-2)^2+(y+1)^2<9

蒙特卡罗也称统计模拟方法

蒙特卡罗也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·罗方法正是以概率为基础的方法。与它对应的是确定性算法。 蒙特卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 基本思想 当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。有一个例子可以使你比较直观地了解蒙特卡罗方法:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。 工作过程 在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作: 用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。 用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 计算步骤 使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的: ① 使用随机数发生器产生一个随机的分子构型。 ②对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。 ③计算新的分子构型的能量。 ④比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。 若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。

控制工程基础实验报告

控制工程基础[英]实验 实验一.典型环节的模拟研究: 已知一个小车、倒单摆系统非线性系统方程为: ( 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)该系统的特征方程的根、零极点表示的求解代码如下:

《算法设计与分析》实验一

学号1607070212 《算法设计与分析》 实验报告一 学生姓名张曾然 专业、班级16软件二班 指导教师唐国峰 成绩 计算机与信息工程学院软件工程系 2018 年9 月19 日

实验一:递归策略运用练习 一、实验目的 本次实验是针对递归算法的算法设计及应用练习,旨在加深学生对该算法原理的理解,提高学生运用该算法解决问题的能力。 二、实验步骤与要求 1.实验前复习课程所学知识以及阅读和理解指定的课外阅读材料; 2.学生独自完成实验指定内容; 3.实验结束后,用统一的实验报告模板编写实验报告。 4.提交说明: (1)电子版提交说明: a 需要提交Winrar压缩包,文件名为“《算法设计与分析》实验一_学号_姓名”, 如“《算法设计与分析》实验一_09290101_张三”。 b 压缩包内为一个“《算法设计与分析》实验一_学号_姓名”命名的顶层文件夹, 其下为两个文件夹,一个文件夹命名为“源程序”,另一个文件夹命名为“实验 报告电子版”。其下分别放置对应实验成果物。 (2)打印版提交说明: a 不可随意更改模板样式。 b 字体:中文为宋体,大小为10号字,英文为Time New Roman,大小为10号 字。 c 行间距:单倍行距。 (3)提交截止时间:2018年10月10日16:00。 三、实验项目 1.运用递归策略设计算法实现下述题目的求解过程。 题目列表如下: 【必做题】 (1)运动会开了N天,一共发出金牌M枚。第一天发金牌1枚加剩下的七分之一枚,第二天发金牌2枚加剩下的七分之一枚,第3天发金牌3枚加剩下的七分之一枚,以后每天都照此办理。到了第N天刚好还有金牌N枚,到此金牌全部发完。编程求N和M。 (2)国王分财产。某国王临终前给儿子们分财产。他把财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10;给第二个儿子两份,再加上剩余财产的1/10;……;给第i 个儿子i份,再加上剩余财产的1/10。每个儿子都窃窃自喜。以为得到了父王的偏爱,孰不知国王是“一碗水端平”的。请用程序回答,老国王共有几个儿子?财产共分成了多少份?

清华控制工程基础-实验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 双环调速系统简化方框图

控制工程基础实验指导书(答案) 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、进一步熟悉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至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

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

实验报告 (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]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

机械控制工程基础实验指导书版

河南机电高等专科学校《机械控制工程基础》

目录 实验任务和要求............................................................................................................................................. 实验模块一MATLAB基础实验............................................................................................................

实验任务和要求 一、自动控制理论实验的任务 自动控制理论实验是自动控制理论课程的一部分,它的任务是: 1、通过实验进一步了解和掌握自动控制理论的基本概念、控制系统的分析方法和设 2、按实验指导书要求进行操作;在实验中注意观察,记录有关数据和图像,并由指 导教师复查后才能结束实验。 3、实验后关闭电脑,整理实验桌子,恢复到实验前的情况。

4、认真写实验报告,按规定格式做出图表、曲线、并分析实验结果。字迹要清楚, 画曲线要用坐标纸,结论要明确。 5、爱护实验设备,遵守实验室纪律。 实验模块一MATLAB基础实验 ——MATLAB环境下控制系统数学模型的 建立 一、预备知识 1.MATLAB的简介 MATLAB为矩阵实验室(Matrix Laboratory)的简称,由美国MathWorks公司出品的商业数学软件。主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 来源:20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。 地位:和Mathematica、Maple并称为三大数学软件,在数学类科技应用软件中,在数值计算方面首屈一指。 功能:矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言

相关文档
最新文档