实验三 Dijkstra最短路算法的程序仿真1

实验三  Dijkstra最短路算法的程序仿真1
实验三  Dijkstra最短路算法的程序仿真1

实验三Dijkstra最短路算法的程序仿真实验目的:

●了解IP核心网中OSPF路由协议核心算法的实现原理

●掌握matlab编程,实现Dijkstra最短路算法的应用

实验要求:

●掌握Dijkstra算法

●掌握matlab语言对于最短路仿真的功能

实验场景:

实验参考程序:

function [l,z]=Dijkstra_a(W)

% Dijkstra算法

% 输入W表示连接矩阵

% 输出l表示参考点的最小距离,DD表示最短路径生成树n = size (W,1);

for i = 1 :n

l(i)=W(1,i);

z(i)=1;

end

i=1;

while i<=n

for j =1 :n

if l(i)>l(j)+W(j,i)

l(i)=l(j)+W(j,i);

z(i)=j;

if j

if j~=1

i=j-1;

else

i=1;

end

end

end

end

i=i+1;

end

任务:

(1)按网络拓扑图给出连接矩阵,例如

连接矩阵为W = [0 1 Inf 2; 1 0 2 Inf; Inf 2 0 4; 2 Inf 4 Inf];

请按照上例给出场景中的连接矩阵

(2)计算场景中R1到各路由器的最短距离;

(3)设计一个9点的网络拓扑图,计算每个路由器到其它路由器的所有最短路径。

按此文档格式编写实验报告,写出完成步骤的实现和代码,以及相应结果图,完成电子版,然后打印出来,贴到实验报告册。实验小结

通过Dijkstra最短路算法的程序仿真实验的学习,增强了我对Dijkstra最短路算法的了解,能够看懂图形,并能写出连接矩阵W,再通过MATLAB得出1和z,由z画出树状图。总之,这次实验加深了对Dijkstra最短路算法的应用的了解和运用,体验到了自己画图并计算每个路由器到其它路由器的所有最短路径的乐趣。

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

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

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

(内部教材)

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

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

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

、各种长度联接导线。 三、实验原理 运放反馈连接 基于图中点为电位虚地,略去流入运放的电流,则由图 由上式可以求得下列模拟电路组成的典型环节的传递函数及其单位阶跃响应。 、比例环节 实验模拟电路见图所示 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

贪吃蛇游戏程序设计实验报告

Windows编程大作业贪吃蛇设计与实现 学校:武汉轻工大学 院系: 班级: 姓名: 学号: 2015年12月16日

目录 一、题目介绍 二、设计目的 三、详细设计 3.1贪吃蛇本体设计 3.2贪吃蛇食物设计 3.3游戏界面设计 3.3.1游戏初始化 3.3.2游戏开始 3.3.3游戏暂停 3.3.4游戏退出 3.3.5游戏总界面 3.3.6游戏区域与背景 3.3.7关于SNAKE 3.4玩法规则设计 3.5核心设计 四、功能测试 五、总结 六、参考文献

一、题目介绍: 编写一个基于MFC的小游戏。 基本要求: 1、实现一个小游戏 2、实现基本游戏控制功能 3、具有游戏数据保存功能 4、界面布局合理、美观; 二、设计目的: 通过使用vc++6.0实现一个小游戏的课程设计,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。 三、详细设计 3.1贪吃蛇的本体设计 贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下: struct Snake { int x,y; int len; int direct; }Snake[50]; 3.2贪吃蛇食物设计 贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。 struct Food { int x; int y; int isfood; }Food; 3.3游戏界面设计 3.3.1游戏初始化 游戏初始蛇体长度为3,颜色为灰色,食物标志为1,因为此时没有显示出食物,需要随机生成后,才置为0;

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

南理工控制工程基础实验报告 成绩:《控制工程基础》课程实验报告班级:学号:姓名:南京理工大学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

控制系统综合实验模板

科技学院 综合实验报告 ( -- 第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

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

Java程序设计实验报告2(弹球游戏)[1]1

《Java语言程序设计》课程设计 实习报告 题目: 班级: 学号: 姓名: 同组人员: 指导老师:张彬

一、实验目的 1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。 2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行 线程的创建、启动等工作。 3、培养独立查找资料,并解决问题的能力。 二、实验任务 1、设计并编程实现弹球游戏: 用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。 鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。 程序需提供计时功能,并最终显示玩家能坚持多少秒。 2、程序要求: (1)具备相应界面,并通过事件编程,实现相应的GUI组件功能。 (2)使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。 (3)实现鼠标与屏幕四周,以及与小球的碰撞检测。 三、开发工具与平台 1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。 2.开发平台:JDK1.5 四、设计思路 1.界面设计 (1)制作一个简单的面板JFrame,文件保存为bollFrame.java 其中为一public的类bollFrame,其构造方法为: bollFrame(int n){ super(); setTitle("我的弹球小游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();//得到电脑屏幕大小 setSize(450,450); setLocation((dimension.width-game.getWidth())/2-250, (dimension.height-game.getHeight())/2-250);//设置面板显示基中; this.n = n; myBollPanel = new bollPanel(n);//构造一个画板; add(myBollPanel);//将画板放入JFrame createMenu();//创建菜单; setJMenuBar(bar); } (2)构造画板类,文件保存为bollPanel.java 其构造函数如下: bollPanel(int n){ this.n = n; // executorThread = Executors.newCachedThreadPool();//创建线程池; mouse = new mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程; this.setIsOver(false);//游戏开始线程条件的判断; for(int i =0 ;i

控制工程基础实验报告

控制工程基础[英]实验 实验一.典型环节的模拟研究: 已知一个小车、倒单摆系统非线性系统方程为: ( 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 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 双环调速系统简化方框图

控制系统仿真实验报告

哈尔滨理工大学实验报告 控制系统仿真 专业:自动化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仿真模型图,其仿真模型为

《程序设计课程设计》实验报告材料

《程序设计》课程设计 姓名: 学号: 班级:软件工程14 班 指导教师: 成绩:

1.消除类游戏 1.1【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 1.2【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 1.3【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 1.4【功能实现】 #include #include using namespace std;

int main() { int m, n, i ,j; int temp; cin >> n >> m; temp = m; m = n; n = temp; int * map = new int[m * n]; int * mark = new int[m * n]; int * tmap = map; int * tmark = mark; int dif = 0; //输入 for ( i = 0 ; i < m ; i++ ) for (j = 0; j < n; j++) cin >> *(tmap + i * n + j); for (i = 0; i < m; i++) for (j = 0; j < n; j++) { //横行 if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0) if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + 1) = 0; *(tmark + dif + 2) = 0; } //竖列 if (tmap + 2 * n - map < m * n || tmap + n - map < m * n) if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + n) = 0; *(tmark + dif + 2 * n) = 0; } tmap = map + (j+1) + i * n; } //输出 cout << endl; tmap = map; for (i = 0; i < m; i++)

控制工程基础实验指导书(答案) 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

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

实验一 电路的建模与仿真 一、实验目的 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,写出程序源代码,输出计算结果: 四、拉格朗日插值算法公式及流程框图

《程序设计实训》实验报告

计算机程序设计实训报告 [“拍飞虫”实验] 专业班级:装控1405,装控1406 实习时间:2015年7月11日至7月15日 实习地点:文理楼124 成员 1: 成员 2:

一、作品概述 本作品运用funcode平台所给模板,在所给源代码的基础上进行编写,对整个游戏进行美化,更换了背景,优化了空格开始键,并且添加了拍蚊子时的音效,以及开始时的欢迎界面,每次游戏结束会对积分进行排序,如果最终得分为满分,则会显示“游戏成功”。 二、功能设计 1.游戏运行,初试界面出现‘空格开始’的提示。 2.玩家按空格开始游戏,界面上出现25只小蚊子和15只大蚊子。 3.游戏开始后,用户每拍一个小蚊子,加两分 4.被淘汰的猴子会出局,加入屏幕下方的淘汰者猴子队列中。 5.站在被淘汰猴子后方的选手依次往前移,填补空白 6.用户继续按空格淘汰猴子,值到剩下唯一的猴子,就是大王!这样,一局游戏完成。 7.一局游戏完成后,屏幕重新出现“空格开始”的标志,用户按空格可以继续游戏,如此往复。 三、功能实现 含每个功能的具体实现,可以用流程图(不要贴代码)等描述。 (说明:主要写用到的各类型的全局变量、含义) 1.g_iMonkeys[6] 用一个int类型的数组来保存猴子精灵编号 2.g_flocation[6] 用一个浮点型数组存储猴子位置(因为6只猴子站成一排,y坐标值是相同的,因此该数组保存6只猴子的x坐标值)。其中g_Monkeys[i] 对应的位置 g_fLocation 3.g_iNumMokeys 当前备选猴子数量,即截图中上层队列的猴子数。 4.g_iNumLoseMonkeys 淘汰的猴子数量,即下层队列中的猴子数。 5.g_iChooseMonkey 本轮淘汰的猴子编号。 6.g_iMoveMonkey 淘汰猴子后,后面需要移动的猴子数。

控制工程基础仿真实验

控制工程基础仿真实验 一.实验目的 通过仿真实验,直观了解各典型环节的时间响应和频率响应,巩固课程中所学的基本概念和基本原理。 二.实验要求 学生可自由组合,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

(修改后) 系统仿真综合实验指导书(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:

相关文档
最新文档