现代控制理论实验报告3

现代控制理论实验报告3
现代控制理论实验报告3

实验三 利用MATLAB 导出连续状态空间模型的离散化模型

实验目的:

1、基于对象的一个连续时间状态空间模型,导出其相应的离散化状态空间模型;

2、通过编程、上机调试,掌握离散系统运动分析方法。

实验原理:

给定一个连续时间系统的状态空间模型:

()()()()()()

x t Ax t Bu t y t Cx t Du t =+=+ (3.1) 状态空间模型(3.1)的输入信号()u t 具有以下特性:

()(),u t u kT kT t kT T

=≤≤+ (3.2) 已知第k 个采样时刻的状态()x kT 和第k 个采样时刻到第1k +个采样时刻间的输入()()u t u kT =,可得第1k +个采样时刻(1)k T +处的状态

(1)((1))((1))()((1))()k T kT x k T k T kT x kT k T Bu d τττ++=Φ+-+Φ+-?

(3.3)

其中: ((1))((1))A k T kT AT k T kT e e +-Φ+-==

((1))((1))A k T k T e ττ+-Φ+-=

由于输入信号在两个采样时刻之间都取常值,故对式(3.3)中的积分式进行一个时间变量替换(1)k T στ=+-后,可得

0((1))()()()AT

A x k T e x kT e d Bu kT τ

σσ+=+? (3.4) 另一方面,以周期T 对输出方程进行采样,得到

()()()y kT Cx kT Du kT =+

在周期采样的情况下,用k 来表示第k 个采样时刻kT 。因此,连续时间状态空间模型

(3.1)的离散化方程可以写成

(1)()()()()()()()

x k G T x k H T u k y k Cx k Du k +=+=+ (3.5) 其中:

0()()()AT

A G T e H T e d

B τσσ==? (3.6)

已知系统的连续时间状态空间模型,MATLAB 提供了计算离散化状态空间模型中状态矩阵和输入矩阵的函数:

[G ,H]=c2d(A,B,T)

其中的T 是离散化模型的采样周期。

实验步骤

1、导出连续状态空间模型的离散化模型,采用MA TLAB 的m-文件编程;

2、在MA TLAB 界面下调试程序,并检查是否运行正确。

例3.1 已知一个连续系统的状态方程是

010()()()2541x t x t u t ????=+????--????

若取采样周期0.05T =秒,试求相应的离散化状态空间模型。

编写和执行以下的m-文件:

A=[0 1;-25 –4];

B=[0;1];

[G ,H]=c2d(A,B,0.05)

得到

G=

0.9709 0.0448

-1.1212 0.7915

H=

0.0012

0.0448

因此,所求的离散化状态空间模型是

0.97090.04480.0012(1)()()1.12120.79150.0448x k x k u k ????+=+????-????

实验要求

1、 在运行以上程序的基础上,针对线性定常连续系统的状态空间模型

[]100()()(),10021x t x t u t y x -????=+=????-????

设采样周期1T

=秒,试求离散化状态空间模型。

源代码:

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

B=[0;1];

[G ,H]=c2d(A,B,1)

运行结果:

G =

0.3679 0

0 0.1353

H =

0.4323

2、分析不同采样周期下,离散化状态空间模型的结果。

T=1S :

G =

0.3679 0

0 0.1353

H =

0.4323

T=0.5S:

G =

0.6065 0

0 0.3679

H =

0.3161

T=0.1S:

G =

0.9048 0

0 0.8187

H =

0.0906

因此得出结论,采样周期越大,求得的采样|G|越大,H越小

江苏大学-计算机图形学第三次实验报告-二维图形变换

计算机科学与通信工程学院 实验报告 课程计算机图形学 实验题目二维图形变换 学生姓名 学号 专业班级 指导教师 日期

成绩评定表

二维图形变换 1. 实验内容 完成对北极星图案的缩放、平移、旋转、对称等二维变换。 首先要建好图示的北极星图案的数据模型(顶点表、边表)。另外,可重复调用“清屏”和“暂停”等函数,使整个变换过程具有动态效果。 2. 实验环境 操作系统:Windows XP 开发工具:visual studio 2008 3. 问题分析 为了建立北极星图形,首先在二维空间中根据坐标绘制出北极星图形。并且在此坐标系中确定好走笔顺序以便于进行连线操作。 同时需要好好的使用清屏函数以使得显示正常。 1. 放大缩小变换 放大缩小变换公式为:x’=x.a, y’=y.d; 其中a,d分别为x,y方向的放缩比例系数。 可通过不同的比例系数来显示程序运行结果。当a=d时为等比例放缩操作。可令变换矩阵为T。 2. 对称变换 包括以x轴对称、y轴对称和原点O对称三种。由于屏幕坐标只有第一象限,我们可以将原点平移到(500,240)处。在第一象限画出一个三角形,然后分别求出三个对称图形。 3. 旋转变换 将图形上的点(x,y)旋转θ角度,得到新的坐标(x’,y’)为: x’=xcosθ-ysinθ, y’=xsinθ+ycosθ; 旋转矩阵T为

4.平移变换 4. 算法设计 5. 源代码 //北极星 void hzbjx(CDC* pDC,long x[18],long y[18]) { CPen newPen1,*oldPen; newPen1.CreatePen(PS_SOLID,2,RGB(255,0,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex1[11]={{x[1],y[1]},{x[2],y[2]},{x[3],y[3]},{x[4],y[4]},{x[5],y[5]},{x[3],y[3]},{x[1],y[1]},{x[6],y[6]},{ x[3],y[3]},{x[7],y[7]},{x[5],y[5]}}; pDC->Polyline(vertex1, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,255,0)); oldPen = pDC->SelectObject(&newPen1); POINT vertex2[5]={{x[6],y[6]},{x[8],y[8]},{x[9],y[9]},{x[3],y[3]},{x[8],y[8]}}; pDC->Polyline(vertex2, 5); POINT vertex3[5]={{x[4],y[4]},{x[10],y[10]},{x[11],y[11]},{x[3],y[3]},{x[10],y[10]}}; pDC->Polyline(vertex3, 5); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(255,0,90)); oldPen = pDC->SelectObject(&newPen1); POINT vertex4[11]={{x[12],y[12]},{x[13],y[13]},{x[3],y[3]},{x[9],y[9]},{x[14],y[14]},{x[15],y[15]},{x[3],y[3]},{x[ 11],y[11]},{x[12],y[12]},{x[3],y[3]},{x[14],y[14]}}; pDC->Polyline(vertex4, 11); newPen1.DeleteObject(); newPen1.CreatePen(PS_SOLID, 2, RGB(0,100,255)); oldPen = pDC->SelectObject(&newPen1); POINT vertex5[5]={{x[15],y[15]},{x[16],y[16]},{x[3],y[3]},{x[16],y[16]},{x[7],y[7]}};

现代控制理论实验报告

实验报告 ( 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

现代控制理论实验

华北电力大学 实验报告| | 实验名称状态空间模型分析 课程名称现代控制理论 | | 专业班级:自动化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 为状态初值。

操作系统实验报告三

课程实验报告 课程名称姓名实验名称实验目的及要求 实验3进程并发与同步 1、加深对进程概念的理解,区分进程并发执行与串行执行; 2、掌握进程并发执行的原理,理解进程并发执行的特点; 3、了解fork()系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用; 4、能利用相应的系统调用实现进程树与进程间的同 步。 实 验操作系统:linux Un bu ntu 11.10 环 境实验工具:Vmware 实验内容 1、编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father ”,儿子进 程执行时屏幕显示“ I am son ",女儿进程执行时屏幕显示“ I am daughter ”。 要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析 2、连续4个fork()的进程家族树,family1-1.c 程序清单如下: #in clude main () { fork(); fork(); fork(); fork(); printf( A\n ”); } 请根据程序运行结果,画出进程家族树,并分析原 因。

3、 修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束, 才可以输出消息。 写出相应的同 步控制,并分析运行结果。 4、 创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 写出相应的程序代码并分析程序运行结果。 1、编写一 C 语言程序,实现在程序运行时通过系统调用 fork()创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“ I am father ”, 儿子进程执行时屏幕显示“ I am son ”,女儿进程执行时屏幕显示“ I am daughter "。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 法 描 述 及 实 验 步 骤 调 试过 程及实 验结果

现代控制理论实验报告

现代控制理论实验报告

实验一系统能控性与能观性分析 一、实验目的 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

操作系统实验报告三

课程实验报告

3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制,并分析运行结果。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。写出相应的程序代码并分析程序运行结果。 算法描述及实验步骤 1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”, 儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。 调试过程及实验结果

总结 1、实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。这一点需要注意。返回结果时,由于每一次的不确定性,所以要想得到比较具有说服性的,就必须经过多次的测试。 2、连续4个fork()的进程家族树在进行实验的时候可能会出现进程输出信息一直一样的情况,需要多次执行输出才有可能会看到输出结果不一样的情况

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

软件工程实验报告第三次

实验报告 课程名称:软件工程实验名称:用PowerDesigner建模工具绘制数据流图班级:学生姓名:学号: 指导老师评定:签名: 一、实验环境 Windows 2000、Rational Software公司的Rational Rose应用软件 二、实验目的 1)了解Rational Rose工具软件的组成及功能 2)掌握用Rational Rose画用例图的具体的使用方法 三、实验内容 1)设计用例图(Use Case框图) 2)用Rational Rose在Use Case视图中创建Use Case框图。 四、实验要求 建立一个Use Case框图,并给出“预订教室”的用例描述。 1) 背景 某大学需要一个教室预订系统,将空闲的教室提供给师生做学术报告或班级活动。师生可使用该系统预订所需的教室,以便让管理员在恰当的时间开放教室、准备好多媒体设备。 2) 功能要求 2.1) 管理员可使用该系统增加用户、删除用户。 2.2) 管理员可向系统中增加或删除供预订的教室,设置任一教室可使用的时间段。 2.2) 师生可登录系统、修改密码。 2.3) 师生在登录后,可浏览给定时间段的空闲(供预订的且未被预订的)教室;选择教室和使用时间段,预订教室。 2.4) 管理员可浏览任意时间段内的教室预订情况。 3) 性能要求 3.1) 教室占用的时间段精确到“课时”。 3.2) 支持最多10000人同时在线使用系统,确保系统稳定流畅。 五、实验步骤 Use Case框图表示整个机构提供的功能,可以用来回答下列一些问题:公司是干什么的?为什么要建立这个系统?还有那些人使用这些系统。Use Case框图在业务建模活动期间大量用于设置系统情景和形成创建使用案例的基础。 1)如何使用Rational Rose画Use Case框图 S1:点击“开始”在“程序”中找到“Rational rose”点击“Rational Rose Enterprise Edition”进入该软件。

操作系统实验报告 实验三

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第二学期) 课程名称:操作系统开课实验室:信自楼445 2013 年 5 月 16 日 一、实验要求 对给定的一个页面走向序列,请分别用先进先出算法和二次机会算法,计算淘汰页面的顺序、缺页次数和缺页率,具体的页面走向可参考教材例题或习题。 二、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。通过本次实验,要求学生通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 三、实验原理及基本技术路线图(方框原理图) 用C或C++语言模拟实现请求式分页管理。要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从FIFO,LRU,NRU中任选一种)。 提示:可先用动态申请的方式申请一大块空间,然后假设该空间为内存区域,对该空间进行

流程图:

数据结构定义: 我提供定义了两个类。第一个类就是页面类,在这类里面包括一些重要的数据成员。

有页号(page_no),页框号(frame_no),页面是否在内存的标志(flag(1表示在内存,0表示不在内存)),访问次数(times)。另一个类是进程控制块类PCB。类的数据成员有id(进程编号),name(进程名),size(进程大小),*p(页类指针)。在本类中,有一些成员函数:构造函数(用来初始化本类的所有数据),displayPCB(输出函数),convert(地址映射函数),allocation(分配函数),restore(回收函数)。另外还有一些类外的函数:initMemorySpace(初始化内存空间的函数),displayMemorySpace(输出内存空间的状态1(表示占用)0(表示空))。 四、所用仪器、材料(设备名称、型号、规格等)。 计算机一台 五、实验方法、步骤 程序代码: #include #include #include using namespace std; const int frame_size=1024;//页框长度,固定为 1k const int page_size=1024;//页面长度,固定为 1k const int memory_size=102400;//内存容量,固定为 100k const int frame_number=memory_size/frame_size;// 100k/1k=100 frames int *memory;//指针变量,用来存内存的状态1还是0。 void initMemorySpace()//初始化内存空间 { int i,ran,times; time_t t;//定义time_t对象 t t=time(0); srand(t);//随机改变每秒 times=0;//变量times初始化为0,变量的功能是检查内存空间是否有一半空了没。 memory=new int[frame_number];//申请内存空间,有frame_number 这么大的空间 for(i=0;i

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

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

河南工业大学 现代控制理论实验报告姓名:朱建勇 班级:自动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( )转换为传递函数,并与原传递函数进行比较。

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

第三次实验报告

浙江大学实验报告 课程名称:Linux应用技术基础实验类型:验证型 实验项目名称:Linux shell 基本命令 学生姓名:孙禹达专业:工信学号:3120000431 电子邮件地址:bless.sunyuda.death@https://www.360docs.net/doc/3f16069132.html, 实验日期:2013年05 月22 日 1、实验目的和要求(必填) 1.学习Linux的文件访问权限,用户的类型和文件访问权限的类型 2.学习如何确定一个文件的访问权限 3.学习如何设置和改变一个文件的访问权限 4.学习如何在文件或目录的创建时设置缺省访问权限 5.学习理解硬链接、符号链接 6.学习理解链接和文件访问权限之间的关系 7.学习了解Linux进程的属性 8.学习理解Linux的前台进程、后台进程及守护进程 9.学习理解Linux命令的顺序执行和并发执行 10.学习使用挂起进程操作和终止进程操作 11.了解系统中Linux进程的层次结构 12.学习使用Linux定时作业调度 13.学习使用Linux的I/O重定向操作和管道操作 14.学习使用id、chmod、chgrp、chown、umask、ln、ps、kill、fg、bg、job、top、pstree、 crontab、at、|、<、>等命令 2、实验内容和原理(必填) 1.根据下列的要求,写出得到这些信息的会话过程: 1)你的用户名; 2)你的用户ID; 3)你的组ID和组名字; 4)在你同一组中的其它用户名。

2.系统管理员给你的主目录设置的权限是什么?使用什么命令来得到这个答案,给出你的 会话过程。 3.在你的系统中有文件或目录分别是:/ 、/etc/passwd 、/bin/df 、~ 。用长 列表格式显示这些文件或目录,并填写下列表格。 文件文件类 型存取权限 链接数所有者组文件大小 / /etc/passwd /bin/df ~ 4.在你的主目录中的temp、professional和personal三个子目录,设置使自己(owner)拥 有读、写、执行3种访问权限,设置其它用户只有读和执行权限。在~/temp目录下创建名为d1、d2和d3的目录。在d1目录下,用touch命令创建一个名为f1的空文件。给出d1、d2、d3和f1的访问权限。给出完成这些工作的会话。 5.在~/temp目录下创建名为d1、d2和d3的目录。把文件smallFile拷贝到d1目录下,长 列表格式显示文件smallFile,显示的内容包括inode号、访问权限、硬链接数、文件大小。给出完成这些工作的会话。 6.在~/temp目录下,把当前目录改变成d2。创建一个名字为newFile.hard硬链接到d1目 录下的smallFile文件。长列表格式显示newFile.hard文件,与smallFile文件的属性进行比较。你如何确定smallFile和smallFile.hard是同一文件的两个名字,是链接数吗?给出你的会话过程。 7.创建一个名字为~/temp/d2/smallFile.soft软链接到~/temp/d1/smallFile文件。长列表格式 显示smallFile.soft文件,比较这两个文件的属性。你如何确定smallFile 和smallFile.soft 是两个不同的文件?是这两个文件的大小吗?给出你的会话过程。 8.在你使用的Linux系统中,有多少进程在运行?进程init、bash、ps的PID是多少?init、 bash和ps进程的父进程是哪一个?这些父进程的ID是什么?给出你得到这些信息的会话过程。 9.有多少个sh、bash、csh和tcsh进程运行在你的系统中?给出会话过程。 10.linux系统中,进程可以在前台或后台运行。前台进程在运行结束前一直控制着终端。若 干个命令用分号(;)分隔形成一个命令行,用圆括号把多个命令挂起来,他们就在一个进程里执行。使用―&‖符作为命令分隔符,命令将并发执行。可以在命令行末尾加―&‖使之成为后台命令。 请用一行命令实现以下功能:它1小时(实验中可以用1分钟代替)分钟后在屏幕上显示文字―Time for Lunch!‖来提醒你去吃午餐。给出会话过程。 11.写一命令行,使得date 、uname –a 、who 和ps并发执行。给出会话过程。

现代控制理论课程报告

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

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

操作系统实验报告

操作系统实验报告 银行家算法 班级:计算机()班 姓名:李君益 学号:(号) 提交日期: 指导老师: 林穗 一、设计题目 加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、设计要求

内容: 编制银行家算法通用程序,并检测思考题中所给状态的安全性。 要求: (1)下列状态是否安全?(三个进程共享个同类资源) 进程已分配资源数最大需求数 (状态) (状态) (2)考虑下列系统状态 分配矩阵最大需求矩阵可用资源矩阵 问系统是否安全?若安全就给出所有的安全序列。若进程请求(),可否立即分配? 三、设计分析 一.关于操作系统的死锁 .死锁的产生 计算机系统中有许多独占资源,他们在任一时刻只能被一个进程使用,如磁带机,绘图仪等独占型外围设备,或进程表,临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据库错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一辞源的能力。一个进程需要使用独占型资源必须通过以下的次序: ●申请资源 ●使用资源 ●归还资源 若申请施资源不可用,则申请进程进入等待状态。对于不同的独占资源,进程等待的方式是有差别的,如申请打印机资源、临界区资源时,申请失败将一位这阻塞申请进程;而申请打开文件文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。只得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。 在许多应用中,一个进程需要独占访问多个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。这种现象称为“死锁”。 2.死锁的定义 一组进程处于死锁状态是指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的时间,则称一组进程或系统此时发生了死锁。 .死锁的防止 .死锁产生的条件: ●互斥条件

现代控制理论实验报告3

实验三 利用MATLAB 导出连续状态空间模型的离散化模型 实验目的: 1、基于对象的一个连续时间状态空间模型,导出其相应的离散化状态空间模型; 2、通过编程、上机调试,掌握离散系统运动分析方法。 实验原理: 给定一个连续时间系统的状态空间模型: ()()()()()() x t Ax t Bu t y t Cx t Du t =+=+ (3.1) 状态空间模型(3.1)的输入信号()u t 具有以下特性: ()(),u t u kT kT t kT T =≤≤+ (3.2) 已知第k 个采样时刻的状态()x kT 和第k 个采样时刻到第1k +个采样时刻间的输入()()u t u kT =,可得第1k +个采样时刻(1)k T +处的状态 (1)((1))((1))()((1))()k T kT x k T k T kT x kT k T Bu d τττ++=Φ+-+Φ+-? (3.3) 其中: ((1))((1))A k T kT AT k T kT e e +-Φ+-== ((1))((1))A k T k T e ττ+-Φ+-= 由于输入信号在两个采样时刻之间都取常值,故对式(3.3)中的积分式进行一个时间变量替换(1)k T στ=+-后,可得 0((1))()()()AT A x k T e x kT e d Bu kT τ σσ+=+? (3.4) 另一方面,以周期T 对输出方程进行采样,得到 ()()()y kT Cx kT Du kT =+ 在周期采样的情况下,用k 来表示第k 个采样时刻kT 。因此,连续时间状态空间模型

(3.1)的离散化方程可以写成 (1)()()()()()()() x k G T x k H T u k y k Cx k Du k +=+=+ (3.5) 其中: 0()()()AT A G T e H T e d B τσσ==? (3.6) 已知系统的连续时间状态空间模型,MATLAB 提供了计算离散化状态空间模型中状态矩阵和输入矩阵的函数: [G ,H]=c2d(A,B,T) 其中的T 是离散化模型的采样周期。 实验步骤 1、导出连续状态空间模型的离散化模型,采用MA TLAB 的m-文件编程; 2、在MA TLAB 界面下调试程序,并检查是否运行正确。 例3.1 已知一个连续系统的状态方程是 010()()()2541x t x t u t ????=+????--???? 若取采样周期0.05T =秒,试求相应的离散化状态空间模型。 编写和执行以下的m-文件: A=[0 1;-25 –4]; B=[0;1]; [G ,H]=c2d(A,B,0.05) 得到 G= 0.9709 0.0448 -1.1212 0.7915 H= 0.0012 0.0448 因此,所求的离散化状态空间模型是 0.97090.04480.0012(1)()()1.12120.79150.0448x k x k u k ????+=+????-????

相关文档
最新文档