文档库 最新最全的文档下载
当前位置:文档库 › 实验一_系统响应及系统稳定性实验报告

实验一_系统响应及系统稳定性实验报告

实验一_系统响应及系统稳定性实验报告
实验一_系统响应及系统稳定性实验报告

一、实验目的

(1)掌握求系统响应的方法

(2)掌握时域离散系统的时域特性

(3)分析、观察及检验系统的稳定性

二、实验原理与方法

在时域中,描写系统特性的方法是差分方程和单位脉冲响应。已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLA语言的工具箱函数filter 函数。也可以用MATLA语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。

或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。系统的稳态输出是指当n-x时,系统的输出。

如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。注意在以下实验中均假设系统的初始状态为零。

二、实验内容及步骤

(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter 函数或conv函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。

程序代码

xn=[o nes(1,32)];

hn=[];

yn=con v(h n,xn);

n=0:le ngth( yn)-1;

subplot(2,2,1);stem( n,yn,'.')

(2) 给定一个低通滤波器的差分方程为

y(n) 0.05x( n) 0.05x( n 1) 0.9y( n 1)

输入信号Xi(n) R8(n)

X 2(n) u(n)

① 分别求出系统对X1( ") R8(")和X 2(n) U(门)的响应序列,并画出其波形

② 求出系统的单位冲响应,画出其波形。

%内容1:调用filter 解差分方程,由系统对 u(n)的响应判断稳定性

%========================

A=[1,];B=[,]; %系统差分方程系数向量 B 和A

x1n=[1 1 1 1 1 1 1 1 zeros(1,50)];

%产生信号 x1(n)=R8(n) x2n=ones(1,128); 沪生信号

x2(n)=u(n)

title('(a)y(n) 波形');xlabel('n');ylabel('y(n)')

hn=impz(B,A,58); %求系统单位脉冲响应h(n)

subplot(2,2,1);y='h( n)';tstem(h n,y);

title('(a) 系统单位脉冲响应h( n)');box on

yin=filter(B,A,x1 n); %求系统对x1(n)的响应y1(n)

subplot(2,2,2);y='y1( n)';tstem(y1 n, y);

title('(b) 系统对R8(n)的响应y1(n)');box on

y2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n)

subplot(2,2,4);y='y2( n)';tstem(y2 n,y);

title('(c) 系统对u(n)的响应y2(n)');box on

(a)^统单位麻冲响应(b)系銃对RB(n)的响应y1(n)

(3)给定系统的单位脉冲响应为

h i( n)尺。(n)

h2(n) (n) 2.5 (n 1) 2.5 (n 2) (n 3)

用线性卷积法分别求系统h1(n)和h2(n)对x1(n)

乓5)的输出响应,并画出波形。

%内容3 :调用conv函数计算卷积

x1 n=[1 1 1 1 1 1 1 1 ]; 沪生信号x1(n)=R8(n) h1n=[o nes(1,10) zeros(1,10)]; %调用函数tstem绘图

(「)至統对的响应刃(n)

h2n=[1 1 zeros(1,10)];

y21 n=con v(h1 n,x1n);

y22 n=co nv(h2 n,x1 n);

figure(2)

subplot(2,2,1);y='h1(n)';tstem(h1 n,y); %调用函数tstem 绘图title('(d) 系统单位脉冲响应h1( n)');box on

subplot(2,2,2);y='y21( n)';tstem(y21 n, y);

title('(e) h1(n) 与R8(n)的卷积y21(n)');box on

subplot(2,2,3);y='h2(n)';tstem(h2n,y); %调用函数tstem 绘图title('(f) 系统单位脉冲响应h2( n)');box on

subplot(2,2,4);y='y22( n)';tstem(y22 n, y);

title('(g) h2(n) 与R8(n)的卷积y22(n)');box on

(4)给定一谐振器的差分方程为

y(n)=(n-1)(n-2)+b0x(n)-b0x(n-2)

令b0 =1/100. 49 ,谐振器的谐振频率为rad 。

①实验方法检查系统是否稳定。输入信号为u(n) 时,画出系统输出波形y31(n)

②给定输入信号为x(n)=sin+sin ,求出系统的输出响应y32(n) ,并画出其波形%内容4:谐振器分析

%========================

un=ones(1,256); %产生信号u(n)

n=0:255;

xsin=sin*n)+sin*n); %产生正弦信号

A=[1,,];B=[1/,0,-1/]; %系统差分方程系数向量B 和A

y31n=filter(B,A,un); %谐振器对u(n) 的响应y31(n)

y32n=filter(B,A,xsin); %谐振器对u(n) 的响应y31(n) figure(3)

subplot(2,1,1);y='y31(n)';tstem(y31n,y);

title('(h) 谐振器对u(n) 的响应y31(n)');box on subplot(2,1,2);y='y32(n)';tstem(y32n,y);

title('(i) 谐振器对正弦信号的响应y32(n)');box on

°)谐振器对正弦信号的11向应y32(n)

四、实验结果分析

由各实验结果的截图可看出,每个图都直观地反映了我们想要求得的单位脉冲响应、给定信号作用后的输出响应,都符合预期结果。

五、思考题

(1)如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用

线性卷积法求系统的响应如何求

答:可以。把输入信号进行分段,分别进行卷积,最后将各段卷积结果相加即可。

(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化用前面第一个实验结果进行分析说明。

答:时域信号的剧烈变化将被平滑,由实验内容(1)的内容可见,经过系统的低通滤波使输入信号和输出的阶跃变化变得缓慢上升与下降。

六、实验心得及体会

通过本次实验我重新温习了MATLA这个软件的基本使用方法,运行环境。通过这款软件使我们的学习更加方便。

实验中,我学会了filter 和conv函数的基本用法,前者可计算知道输入信

号的前提下求解输出响应的序列,后者则可通过输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

操作系统实验报告一

重庆大学 学生实验报告 实验课程名称操作系统原理 开课实验室DS1501 学院软件学院年级2013专业班软件工程2 班学生姓名胡其友学号20131802 开课时间2015至2016学年第一学期 总成绩 教师签名洪明坚 软件学院制

《操作系统原理》实验报告 开课实验室:年月日学院软件学院年级、专业、班2013级软件工 程2班 姓名胡其友成绩 课程名称操作系统原理 实验项目 名称 指导教师洪明坚 教师 评语教师签名:洪明坚年月日 1.实验目的: ?进入实验环境 –双击expenv/setvars.bat ?检出(checkout)EPOS的源代码 –svn checkout https://www.wendangku.net/doc/bb14140203.html,/svn/epos ?编译及运行 –cd epos/app –make run ?清除所有的临时文件 –make clean ?调试 –make debug ?在“Bochs Enhanced Debugger”中,输入“quit”退出调试 –调试指令,请看附录A 2.实验内容: ?编写系统调用“time_t time(time_t *loc)” –功能描述 ?返回从格林尼治时间1970年1月1日午夜起所经过的秒数。如果指针loc 非NULL,则返回值也被填到loc所指向的内存位置 –数据类型time_t其实就是long ?typedef long time_t; 3.实验步骤: ?Kernel space –K1、在machdep.c中,编写系统调用的实现函数“time_t sys_time()”,计算用户秒数。需要用到 ?变量g_startup_time,它记录了EPOS启动时,距离格林尼治时间1970年1午夜的秒数 ?变量g_timer_ticks

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 (2) 组合模式 某教育机构组织结构如下图所示: 北京总部 教务办公室湖南分校行政办公室 教务办公室长沙教学点湘潭教学点行政办公室

教务办公室行政办公室教务办公室行政办公室 在该教育机构的OA系统中可以给各级办公室下发公文,现采用 组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。) (3) 外观模式 某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。参考类图如下: reader = new FileReader();EncryptFacadecipher = new CipherMachine();writer = new FileWriter();-reader: FileReader-cipher: CipherMachine-writer: FileWriter +EncryptFacade () +fileEncrypt (String fileNameSrc,: voidString plainStr=reader.read(fileNameSrc); String fileNameDes)String

一阶动态电路响应实验

一阶动态电路响应实验 一、实验目的 1. 学习示波器和函数信号发生器的使用方法。 2. 学习自拟实验方案,合理设计电路和正确选用元件、设备完成实验。 3. 研究RC电路的零输入响应和零状态响应。 4. 研究RC电路的方波响应。 二、实验环境 面包板、导线若干、示波器、100kΩ电阻、单刀双掷开关、5V电压源、10μF电容。 三、实验原理 动态电路的过渡过程是十分短暂的单次变化过程,要用普通示波器观察过渡过程和测量有关的参数,就必须使这种单次变化的过程重复出现。为此,我们利用信号发生器输出的方波来模拟阶跃激励信号,即利用方波输出的上升沿作为零状态响应的正阶跃激励信号;利用方波的下降沿作为零输入响应的负阶跃激励信号。只要选择方波的重复周期远大于电路的时间常数τ,那么电路在这样的方波序列脉冲信号的激励下,它的响应就和直流电接通与断开的过渡过程是基本相同的。 方波的前沿相当于给电路一个阶跃输入,其响应就是零状态;方

波的后沿相当于在电容具有初始值uC(0-)时把电源用短路置换,这时电路响应转换成零输入响应。 四、实验电路 五、波形图 六、数据记录 充电过程:最大充电电压Us=4.60V、充电时间△X=4.880s

Uc=0.632×Us=2.9072V、最接近该电压值时间△X=1.000s 放电过程:最大放电电压Us=4.60V、放电时间△X=4.560s Uc=0.368×Us=1.6928V、最接近该电压时间△X=3.560s 七、实验总结 更加熟悉在面包板上搭接试验电路以及示波器的使用,了解一阶电路的零状态响应和方波响应,学习在示波器上使用追踪坐标读取数据。 八、误差分析 1.可能没将光标置于波形最值点; 2.可能无法精确达到Uc值所在点,读取的△X不准确。

操作系统实验报告4

《操作系统》实验报告 实验序号: 4 实验项目名称:进程控制

Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜ 修改后: #include #include int main(VOID) { STARTUPINFO si; PROCESS_INFORMA TION pi; ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, "c:\\WINDOWS\\system32\\mspaint.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) { fprintf(stderr,"Creat Process Failed"); return -1; } WaitForSingleObject(pi.hProcess,INFINITE); printf("child Complete"); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } 在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe:C:\ >CL 4-1.cpp

实验任务:写出程序的运行结果。 4.正在运行的进程 (2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include #include

计算机体系结构实验报告二

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对CPU性能得影响。 二、实验内容: 1、用WinDLX模拟器运行程序structure_d、s 。 2、通过模拟,找出存在结构相关得指令对以及导致结构相关得部件。 3、记录由结构相关引起得暂停时钟周期数,计算暂停时钟周期数占总执行 周期数得百分比。 4、论述结构相关对CPU性能得影响,讨论解决结构相关得方法。 三、实验程序structure_d、s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; < A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit < this is a ment !! A: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 四、实验过程 打开软件,load structure_d、s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(Rstall 数据相关Stall 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面得数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关得部件:译码部件。

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

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

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

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

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 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

体系结构实验报告

中南大学软件学院 软件体系结构 设计模式实验报告 学生姓名:宋昂 所在学院:软件学院 学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟 完成日期: 2010-12-7

一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 简单工厂模式 使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。 (2) 简单工厂模式 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。 (3) 工厂方法模式 某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

一阶动态响应(电路分析)

姓名:王硕

一、实验目的 1、研究一阶动态电路的零输入响应、零状态响应及完全响应的特点和规律。掌握测量一阶电路时间常数的方法。 2、理解积分和微分电路的概念,掌握积分、微分电路的设计和条件。 3、用multisim仿真软件设计电路参数,并观察输入输出波形。 二、实验原理 1、零输入响应和零状态响应波形的观察及时间常数τ的测量。 当电路无外加激励,仅有动态元件初始储能释放所引起的响应——零输入响应;当电路中动态元件的初始储能为零,仅有外加激励作用所产生的响应——零状态响应;在外加激励和动态元件的初始储能共同作用下,电路产生的响应——完全响应。 以一阶RC动态电路为例,观察电路的零输入和零状态响应波形,其仿真电路如图1(a)所示。 ( u i ( u o (a)(b) 图1 一阶RC动态电路 方波信号作为电路的激励加在输入端,只要方波信号的周期足够长,在方波作用期间或方波间隙期间,电路的暂态响应过程基本结束(τ5 2/≥ T)。故方波的正脉宽引起零状态响应,方波的负脉宽引起零输入响应,方波激励下的) (t u i 和) (t u o 的波形如图1(b)所 示。在)2/ 0(T t, ∈的零状态响应过程中,由于T << τ,故在2/ T t=时,电路已经达到 稳定状态,即电容电压 S o U t u= )(。由零状态响应方程 ) 1( )(/τt S o e U t u- - = 可知,当2/ ) ( S o U t u=时,计算可得τ 69 .0 1 = t。如能读出 1 t的值,则能测出该电路的时间常数τ。 2、RC积分电路 由RC组成的积分电路如图2(a)所示,激励) (t u i 为方波信号如图2(b)所示,输出电压) (t u o 取自电容两端。该电路的时间常数 2 T RC>> = τ(工程上称10倍以上关系为远远大于或远远小于关系。),故电容的充放电速度缓慢,在方波的下一个下降沿(或上升沿)

操作系统实验报告

操作系统教程实验报告 专业班级 学号 姓名 指导教师

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

操作系统实验报告

操作系统实验报告 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的镜像文件,如图所示:

RC一阶电路(动态特性 频率响应)研究

9 RC 一阶电路(动态特性 频率响应) 一个电阻和一个电容串联起来的RC 电路看起来是很简单的电路。实际上其中的现象已经相当复杂,这些现象涉及到的概念和分析方法,是电子电路中随处要用到的,务必仔细领悟。 9.1 零输入响应 1.电容上电压的过渡过程 先从数学上最简单的情形来看RC 电路的特性。在图9.1 中,描述了问题的物理模型。假定RC 电路接在一个电压值为V 的直流电源上很长的时间了,电容上的电压已与电源相等(关于充电的过程在后面讲解),在某时刻t 0突然将电阻左端S 接地,此后电容上的电压会怎么变化呢?应该是进入了图中表示的放电状态。理论分析时,将时刻t 0取作时间的零点。数学上要解一个满足初值条件的微分方程。 看放电的电路图,设电容上的电压为v C ,则电路中电流 dt dv C i C =, 依据KVL 定律,建立电路方程: 0=+dt dv RC v C C 初值条件是 ()V v C =0 像上面电路方程这样右边等于零的微分方程称为齐次方程。 设其解是一个指数函数: ()t C e t v S K = K 和S 是待定常数。 代入齐次方程得 0=KS +K S S t t e RC e 约去相同部分得 0=S +1RC 于是 RC 1-=S 齐次方程通解 ()RC t C e t v -K = 还有一个待定常数K 要由初值条件来定: ()V K Ke v C ===00 最后得到: () t RC t C Ve Ve t v --==

在上式中,引入记号RC =τ,这是一个由电路元件参数决定的参数,称为时间常数。它有什么物理意义呢? 在时间t = τ 处, ()V V Ve v 0.368=e ==-1-C τττ 时间常数 τ是电容上电压下降到初始值的1/e =36.8% 经历的时间。 当t = 4 τ 时,()V v 0183.0=4C τ,已经很小,一般认为电路进入稳态。 数学上描述上述物理过程可用分段描述的方式,如图9.1 中表示的由V 到0的“阶跃波”的输入信号,取开始突变的时间作为时间的0点,可以描述为: ()()0=S ≤t V t v 对 ;()()00=S ≥t t v 对。 [练习.9.1]在仿真平台上打开本专题电路图,按图中提示作出“零输入响应”的波形图。观察电容、电阻上输出波形与输入波形的关系,由图上读出电路的时间常数值,与用电路元件值计算结果比较。 仿真分析本专题电路 得到波形图如图9.2 所示。 在0到1m 这时间内,电压源值为V ,在时刻1m 时电压源值突然变到0。仿真平台在对电路做瞬态分析之前,对电路作了直流分析,因此图中1m 以前一段波形只是表明电路已经接在电压源值为V “很长时间”后的持续状态。上面理论分析只适用于1m 以后的时间过程。时刻1m 是理论分析的时间“零”点。图上看到,电容上的电压随时间在下降,曲线的样子是指数下降曲线的典型模样。由v C 曲线找到电压值为0.368V 的地方,读出它的时刻值(=2m ),即可求到电路的时间常数是1m (1毫秒)。 图中也画出电阻上电压变化曲线。观察,发现在1m 以前,电阻电压为0,在时刻1m ,电阻电压突变到 -V ,然后逐渐升到0。怎样理解这个过程呢? 2.电阻上电压的过渡过程 虽然专题电路图中取电阻的电压时是由电阻直接落地的电路得到的,但电路元件参数是相同的,该电阻上的电压应和电容落地电路中的电阻是一样的。按照这种想法,看图9.1 ,注意电阻的电压的参考方向应是由S 点向右,即应是v(S 点)-v C ,在电源电压为V 的时间内,电容已被充电到v C =V ,那么v R = v(S 点)-v C =V -V =0。在理论分析时间0处,电压源的电压值突变到0,即v(S 点)=0,但电容上的电压不能突变(回顾电容的特性:电压有连续性)。为了区分突变时刻的前和后的状态,用0- 表示突变前,0+ 表示突变后。 即是说, v C (0+)= v C (0-)=V 那么, v R (0+)= 0-v C (0+)= -V 在随后的时间内,按KVL 定律, 电阻上的电压应为: ()()τt RC t C R Ve Ve t v t v ---=-=-=

操作系统实验一实验报告

操作系统实验一实验报告 基本信息 1.1 实验题目 进程控制实验 1.2完成人 王召德 1.3报告日期 2015-4-8 实验内容简要描述 2.1实验目标 加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和 体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过 程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux 系统中 进程创建与控制有关的系统调用的编程和调试技术。 2.2实验要求 参考以上示例程序中建立并发进程的方法,编写一个多进程并发执行程序。父进程首先创建一个执行ls命令的子进程然后再创建一个执行ps命令的子进程,并控制ps 命令总在ls 命令之前执行。 2.3实验的软硬件环境

Ubuntu14.04 intelPC 报告的主要内容 3.1实验的思路 按照上面的实例,先生成一个子进程让其等待,然后生成第二个子进程,父进程等待其执行ps命令后唤醒第一个子进程执行ls即可。 3.2实验模型的描述 无 3.3主要数据结构的分析说明 无 3.4主要算法代码的分析说明 无 3.5项目管理文件的说明 无 实验过程和结果 4.1实验投入的实际学时数 1学时 4.2调试排错过程的记录 曾尝试让第二个子进程激活第一个子进程,结果发现当运行ps后,后面的代码将不再执行,所以不可行。 4.3多种方式测试结果的记录

实验结果: 父进程启动 (12239) ls子进程启动 (12240) ps子进程启动 (12241) PID TTY TIME CMD 12239 pts/27 00:00:00 born 12240 pts/27 00:00:00 born 12241 pts/27 00:00:00 ps ps子进程结束 (12241) 唤醒ls子进程 (12240) 键盘中断信号产生... ls子进程被唤醒 (12240) . born born.c~ hello.c pctl pctl.c~ pctl.o .. born.c helelo.h~ hello.c~ pctl.c pctl.h ls子进程结束 (12240) 父进程结束 (12239) 4.4实验结果的分析综合 无 实验的总结 父进程可以通过fork()函数生成子进程,子进程会从fork()函数开始执行原来的代码,当

操作系统实验报告

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

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

二阶电路的动态响应

实验三:二阶电路的动态响应【实验目的】 1.学习用实验的方法来研究二阶动态电路的响应。 2.研究电路元件参数对二阶电路动态响应的影响。 3.研究欠阻尼时,元件参数对α和固有频率的影响。 研究RLC串联电路所对应的二阶微分方程的解与元件参数的关系。 【实验原理】 用二阶微分方程描述的动态电路称为二阶电路。图6.1所示的线性RLC串联电路是一个典型的二阶电路。可以用下述二阶线性常系数微分方程来描述: s 2 U 2 = + + c c c u dt du RC dt u d LC(1)初始值为 C I C i dt t du U u L t c c ) 0( )( ) 0( = = = - = - - 求解该微分方程,可以得到电容上的电压u c(t)。 再根据: dt du c t i c c = )(可求得i c(t),即回路电流i L(t)。 式(1)的特征方程为:0 1 p p2= + +RC LC 特征值为:

2 0222,11)2(2p ωαα-±-=-±- =LC L R L R (2) 定义:衰减系数(阻尼系数)L R 2= α 自由振荡角频率(固有频率)LC 10=ω 由式2可知,RLC 串联电路的响应类型与元件参数有关。 1.零输入响应 动态电路在没有外施激励时,由动态元件的初始储能引起的响应,称为零输入响应。 设电容已经充电,其电压为U 0,电感的初始电流为0。 (1) C L R 2 >,响应是非振荡性的,称为过阻尼情况。 电路响应为: ) () ()()()(2 1 2 1 120 121 20 t P t P t P t P C e e P P L U t i e P e P P P U t u ---=--= 整个放电过程中电流为正值, 且当2 11 2ln P P P P t m -=时,电流有极大值。 (2)C L R 2 =,响应临界振荡,称为临界阻尼情况。 电路响应为 t t c te L U t i e t U t u ααα--=+=00)()1()( t ≥0 (3) C L R 2 <,响应是振荡性的,称为欠阻尼情况。 电路响应为

操作系统实验报告 实验一 进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5));

操作系统实验报告.

学生学号0121210680225 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李安福 学生专业班级软件sy1201 2014 — 2015 学年第一学期

《操作系统》实验教学大纲 课程编号: 课程名称:操作系统/Operating System 实验总学时数:12学时 适应专业:计算机科学与技术、软件工程 承担实验室:计算机科学与技术学院实验中心 一、实验教学的目的和任务 通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。 二、实验项目及学时分配 序号实验项目名称实验学时实验类型开出要求 01 Linux键盘命令和vi 2 设计必开 02 Linux下C编程 2 设计必开 03 SHELL编程和后台批处理 2 设计必开 04 Linux系统调用(time) 2 设计必开 05 Linux进程控制(fork) 4 设计必开 三、每项实验的内容和要求: 1、Linux键盘命令和vi 要求:掌握Linux系统键盘命令的使用方法。 内容:见教材p4, p9, p40, p49-53, p89, p100 2、Linux下的C编程 要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。 内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。 3、SHELL编程和后台批处理 要求:掌握Linux系统的SHELL编程方法和后台批处理方法。 内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。 (2) 将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。 (3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键 盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容, 然后输出到屏幕。 4、Linux系统调用使用方法。

相关文档
相关文档 最新文档