第一篇:《Matlab语言》实验四
实验
四、Matlab的程序设计
(一)实验目的
1.掌握利用if语句实现选择结构的方法。
2.掌握利用switch语句实现多分支选择结构的方法。3.掌握利用for语句实现循环结构的方法。4.掌握利用while语句实现循环结构的方法。5.掌握Matlab函数的编写及调试方法。
(二)实验环境
1.计算机
2.MATLAB7.0集成环境
(三)实验内容
1、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。function y=myfun1(x)sinx,y(x)x,x6,x00x3x3
选择一些数据测试你编写的函数。function [y]=myfun1(x)if x<=0
y=sin(x);elseif x>0&x<=3 y=x;elseif x>3 y=-x+6;End 结果: >> x=5;>> [y]=myfun1(x)y = 1
2、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。
function [m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root Mean Square)的计算公式为:
rms1NNi1xi2
用下面数据测试你写的函数:
function [m_x,max_x,min_x,rms_x]=myfun2(x)%求平均值
sum_x=sum(x);%向量元素求和
[m,n]=size(x);%最好用n=length(x);m_x=sum_x/n;
%求最大值 采用逐个比较方式 if x(1)>x(2)max_x=x(1);else
max_x=x(2);end for k=3:n
if max_x else max_x=max_x;%可省略 end end %求最小值 if x(1) min_x=x(2);end for k=3:n if min_x>x(k) min_x=x(k); else min_x=min_x;%可省略 end end %求均方根值 sum_x2=0;for k=1:n sum_x2=sum_x2+x(k).^2;rms_x=sqrt(sum_x2/n);end m_x;max_x; min_x; rms_x;%按照函数值行(1)x=sin(0:0.01:6*pi)运行结果:>> x=sin(0:0.01:6*pi);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x =-1.1256e-007 max_x = 1.0000 min_x =-1.0000 rms_x = 0.7071(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。>> x=rand(1,200);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x = 0.5231 max_x = 0.9994 min_x = 0.0056 rms_x = 0.5869 3、编写求解方程axbxc0的根的函数(这个方程不一定为一元二次方程,因a、b、c的不同取值而定),这里应根据a、b、c的不同取值分别处理,有输入参数提示,当a0,b0,c~0时应提示“为恒不等式!”。并输入几组典型值加以检验。2M文件: disp('关于方程ax^2+bx+c=0')a=input('请输入系数a=');b=input(' b=');c=input(' c=');if a==0&&b==0 if c==0 disp('解为全体实数'); else disp('为恒不等式!'); end else P=[a,b,c]; x=roots(P)end disp('关于方程ax^2+bx+c=0')a=input('请输入系数a=');b=input(' b=');c=input(' c=');if a==0&&b==0 if c==0 disp('解为全体实数'); else disp('为恒不等式!'); end else P=[a,b,c];x=roots(P)end 工作空间测试: 关于方程ax^2+bx+c=0 请输入系数a=2 b=4 c=6 x =-1.0000 + 1.4142i-1.0000-1.4142i 4、输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。要求:(1)用switch语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 g=input('请输入成绩'); if g<0||g>100 disp('错误,输入的成绩应为0~100间的数') else g=fix(g/10); switch g case {10} disp('A+'); case {9} disp('A'); case {8} disp('B'); case {7} disp('C'); case {6} disp('D') otherwise disp('E'); end5、利用for循环语句编写计算n!的函数程序,取n分别为-89、0、3、5、10验证其正确性(输入n为负数时输出出错信息)。n=input('请输入n='); if n<0 disp('错误,n取值必须为正数'); else y=1; for i=1:n y=y*i; end disp('n!=');disp(y) 测试: 请输入n=6 n!= 720 6、Fibonacci数组的元素满足Fibonacci规则:现要求该数组中第一个大于10000的元素。 a(1)=1;a(2)=1; k=3; a(k)=a(k-1)+a(k-2); while a(k)<10000 k=k+1; a(k)=a(k-1)+a(k-2); 测试: >> ak=a(k)ak = ak2akak1,(k1,2,);且a1a21。10946 27、根据6112122132......1n,求的近似值。 2要求:(1)分别采用for循环结构以及向量法来编程实现,比较两种方法程序运行时间;(2)当n分别取100、1000、10000时,结果是多少? n=[100 1000 10000]; for j=1:3 y=0;k=n(j); for i=1:k y=y+1/i/i; end pai=sqrt(6*y);disp('n='); disp(n(j)); disp('π的近似值为'); disp(pai);结果: n= 100 π的近似值为 3.1321 n= 1000 π的近似值为 3.1406 n= 10000 π的近似值为 3.1415 (四)实验要求 1、熟练操作MATLAB7.0运行环境; 2、自主编写程序,必要时参考相关资料; 3、实验前应写出程序大致框架或完整的程序代码; 4、完成实验报告。 (五)实验报告要求 见实验一。 思考题 1、M文件分为哪两类?这两类M文件的区别是什么? 答:分为命令文件和函数文件 1)函数文件一般都要带参数 , 都要有返回结果 , 而命令文件没有参数与返回结果 2)函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令文件的变量是全局变量 , 执 行完毕后仍被保存在内存中 3)函数文件要定义函数名 , 且保存该函数文件的文件名必须是函数名.m。M 函数文件可以有多个因变量和多 个自变量 , 当有多个因变量时用[ ] 括起来。 2、有一分数序列: 1, 3, 5, 8, 1321 22358, 13, 编写一段程序,求前16项的和。 a=2.0;b=1.0;c=a/b; for 1:16 {b=a;a=a+b; d=(a+b)/a;c=c+d;} 实 验 报 告 课程名称实验项目 学院 系别 班级/学号 学生姓名 实验日期 成绩 指导教师 程序设计基础(C语言)实验四 数组 (二) 一、实验目的 1.掌握二维数组的定义和初始化。2.掌握二维数组元素的引用及其应用。 二、实验内容 注:本次实验完成前三个题目或者仅完成第四个题目最高分为90分,完成全部四个题目最高分100分。 题目1:输入十个人的姓名,并按升序输出。(用选择法或者冒泡法排序) 流程图: 代码: #include { int i,j;char a[10][5],t[2];printf(“请输入十个人的名字:n”);for(i=0;i<10;i++){ } for(j=0;j<10;j++){ } printf(“排序输出:n”);for(i=0;i<10;i++)for(i=0;i<10-j;i++){ } if(strcmp(a[i],a[i+1])>0){ } strcpy(t,a[i]);strcpy(a[i],a[i+1]);strcpy(a[i+1],t);gets(a[i]);} puts(a[i]);return 0;} 题目2:求两个矩阵的积。如: 运算规则为: 第i行第j列相乘得到结果矩阵中r[i][j]的值。比如: r[0][0] = 1*1+2*5+3*8=35;r[0][1] = 1*5+2*3+3*1=14;r[1][0] = 4*1+5*5+6*8=77;r[1][1] = 4*5+5*3+6*1=41;要求: 1.数组的行数和列数不超过100。 2.输入第一行中,第一个正整数m,表示第一个矩阵的行数,输入第二个正整数n,表示第一个矩阵的列数,也即是第二个矩阵的行数,输入第三个正整数p,表示第二个矩阵的列数。 3.接下来的m*n个数是第一个矩阵中的数。4.再接下来的n*p个数是第二个矩阵中的数。5.输出计算结果,为一个m行,p列的矩阵。流程图: #include int a[100][100]={0},b[100][100]={0},c[100][100]={0},i,j,k,n,m,p;printf(“请输入第一个矩阵的行数m:n”);scanf(“%d”,&m);printf(“请输入正整数n(第一个矩阵的列数,也是第二个矩阵的行数):n”); for(i=0;i for(j=0;j printf(“这两个矩阵的和为:n”);for(i=0;i } for(j=0;j 题目3:求矩阵的鞍点。鞍点位置上的元素在该行中值最大,在该列中值最小。如下面矩阵的鞍点为35。 【输入】前两个数为行数和列数,其后是矩阵中的元素 【输出】如果没有鞍点,输出NO;如果有输出格式为:[值1,行下标1,列下标1],[值2,行下标2,列下标2]…… 流程图: #include int a[100][100];int m,n,i,j,t,k;printf(“请输入行数m和列数n:n”);scanf(“%d%d”,&m,&n);printf(“请输入这个%d*%d矩阵:n”,m,n);for(i=0;i for(j=0;j for(t=0,j=1;j } k=1;printf(“鞍点[%d]是%d:行下标%d,列下标%dn”,k,a[i][t],i,t);k++;} return 0;} 运行结果: 题目4:学生成绩统计 一个班共有6名学生,已知每个学生有5门课程的成绩 请输出每个学生的平均成绩 请输出每门课程的平均成绩 请输出学生的最高平均成绩和序号 请输出课程的最高平均成绩和序号 流程图: #include float a[7][6],b[7],c[6];int m,n,i;printf(“请输入6名学生的5门课程的成绩:n”);for(m=1;m<7;m++){ } for(m=1;m<7;m++){ } for(n=1;n<6;n++){ } for(m=1;m<7;m++)c[n]=0;for(m=1;m<7;m++)c[n]+=a[m][n];b[m]=0;for(n=1;n<6;n++)b[m]+=a[m][n];for(n=1;n<6;n++)scanf(“%f”,&a[m][n]);b[m]=b[m]/5;printf(“第%d名学生的平均成绩为%.1fn”,m,b[m]);c[n]=c[n]/6;printf(“第%d门课的平均成绩为%.1fn”,n,c[n]); } { } for(m=1;m<6;m++){ } return 0;i=0;for(n=1;n<6;n++){ } if(i==5)printf(“第%d门课成绩最高为%.1fn”,m,c[m]);if(c[m]>=c[n])i++;i=0;for(n=1;n<7;n++){ } if(i==6)printf(“第%d名学生成绩最高为%.1fn”,m,b[m]);if(b[m]>=b[n])i++;运行结果: 题目5:井字格游戏 程序大致的执行过程如图所示: 功能包括: 1.允许两个玩家下棋 2.允许玩家输入下棋的坐标 3.显示当前棋盘状态 4.判断玩家是否下错位置,即在已经下过棋的位置再次下棋 5.判断玩家下棋后,输赢状态 6.在屏幕提示中指导玩家交替下棋 流程图: 省列。代码: #include T[site1][site2]='X';for(i=0;i<3;i++){ printf(“-------n”);for(j=0;j<3;j++){ printf(“|”);printf(“%c”,T[i][j]);} printf(“|n”);if(i==2) } else return 99;} printf(“-------n”);} return 0;int printerB(int site1,int site2){ if(tasic[site1][site2]==0&&basic[site1][site2]==0){ tasic[site1][site2]=-1;T[site1][site2]='O';for(i=0;i<3;i++){ printf(“-------n”);for(j=0;j<3;j++) { printf(“|”);printf(“%c”,T[i][j]);} printf(“|n”);if(i==2){ printf(“-------n”);} } return 0;} else return-99;} int main(){ int m,n,a,b;while(kongzhi==1){ if((basic[0][0]+basic[0][1]+basic[0][2]==3)||(basic[1][0]+basic[1][1] do { a=0;printf(“请A下子:”);scanf(“%d%d”,&m,&n); a=printerA(m,n);if(a==99)printf(“对不起,您下错位置了!n”);} while(a==99);+basic[1][2]==3)||(basic[2][0]+basic[2][1]+basic[2][2]==3)||(basic[0][0]+basic[1][1]+basic[2][2]==3)||(basic[0][2]+basic[1][1]+basic[2][0]==3)){ printf(“A赢了!n”);return 0;} do { b=0;printf(“请B下子:”);scanf(“%d%d”,&m,&n); b=printerB(m,n);if(b==-99) printf(“对不起,您下错位置了!n”);} while(b==-99);if((tasic[0][0]+tasic[0][1]+tasic[0][2]==-3)||(tasic[1][0]+tasic[1][1]+tasic[1][2]==-3)||(tasic[2][0]+tasic[2][1]+tasic[2][2]==-3)||(tasic[0][0]+tasic[1][1]+tasic[2][2]==-3)||(tasic[0][2]+tasic[1][1]+tasic[2][0]==-3)) { printf(“B赢了!n”);return 0;} i++;if(i==9){ printf(“平局!”);return 0;} } } 运行结果: 心得体会:这几道题加深了我对数组的理解,及其相关应用。 实验四 SQL语言——数据更新操作 2007-06-16 01:12:44|分类: 课程作业 |标签:数据更新操作sql语言|字号大中小 订阅 实验四 SQL语言——数据更新操作 三、实验条件与环境 1.通用PC机 2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台 3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版) 4.最好有一台公用的SQL Server 2000 服务器 四、实验目的1.通过上机实验进一步加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌 握 2.通过上机实验掌握单个元组插入操作的实现过程 3.通过上机实验掌握多个元组插入操作的实现过程 4.通过上机实验掌握单个元组修改操作的实现过程 5.通过上机实验掌握多个元组修改操作的实现过程 6.通过上机实验掌握单个元组删除操作的实现过程 7.通过上机实验掌握多个元组删除操作的实现过程 8.通过上机实验加深对更新操作时数据库中数据一致性问题的了解 9.通过上机实验加深对约束条件在数据更新操作执行中的作用问题的了解 五、实验要求 1.本实验所有实验内容要求在规定时间(2课时)内完成2.实验内容中涉及到的各更新操作均通过SQL语言来实现 3.本实验中各操作内容的执行均会更新当前数据库,为便于下一实验内容的顺利执行,请在每成功完成一个实验内容后重新导入初始状态下的实验数据库 4.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交 六、实验内容: 1.在S表中插入元组“s6,华誉,40,广州,02085268888” 2.在J表中插入元组“j8,传感器厂” 3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库 4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60 5.将SPJ表中前4个元组的qty属性值统一修改为300 6.将S表中city属性名含有“京”或“津”的相应status属性值增加100 7.将供应商s2为“一汽”工程项目所供应的零件数量修改为2000 8.将全部红色零件的颜色修改为浅红色 9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改 10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列 上填上实验当时的日期和时间 11.删除所在城市为“广州”的供应商记录 12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录 13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数 据信息 七、实验总结: 数据更新操作(插入操作[INSERT]、修改操作[UPDATE]、删除操作[DELETE])是关系数据库系统中一种极为重要、数据更新能力强、使用灵活的数据操纵方式,此数据操作的使用不是完全独立的,而是和数据定义操作、数据查询操作有着紧密联系的。实验完成后,请同学们总结一下SQL语言在实现各种数据更新操作时与数据定义操作和数据查询操作两类操作之间的相互联系,通过深入总结,从而学会利用SQL语言实现较为复杂的数据更新任务。 实验四 SQL语言——数据更新操作 实验内容参考答案 六、实验内容 1.在S表中插入元组“s6,华誉,40,广州,02085268888” use shiyan go insert into s values('s6','华誉',40,'广州','02085268888') 2.在J表中插入元组“j8,传感器厂” use shiyan go insert into j(jno,jname) values('j8','传感器厂') 3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库 use shiyan go create table TotalQTYofS(SNO char(4)not null unique,TotalQTY int); insert into TotalQTYofS select sno,sum(qty) from spj group by sno; 4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60 use shiyan go update p set color='绿',weight=60 where pno='p6' 5.将SPJ表中前4个元组的qty属性值统一修改为300 use shiyan go update spj set qty=300 from(select top 4 * from spj order by sno)as table1 where spj.sno=table1.sno 6.将S表中city属性名含有“京”或“津”的相应status属性值增加100 use shiyan go update s set status=status+100 where city like '%京%' or city like '%津% 7.将供应商s2为“一汽”工程项目所供应的零件数量修改为2000 use shiyan go update spj set qty=2000 where sno='s2' and jno=(select jno from j where jname='一汽') 8.将全部红色零件的颜色修改为浅红色 use shiyan go update p set color='浅红' where color='红' 9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改 use shiyan go update spj set sno='s3' where sno='s5' and jno='j4' and pno='p6' 10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列 上填上实验当时的日期和时间 use shiyan go alter table spj add SDATE datetime update spj set SDATE=getdate() 11.删除所在城市为“广州”的供应商记录 use shiyan go delete from s where city='广州' 12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录 use shiyan go delete from p where pname like '螺%' delete from spj where pno in(select pno from p where pname like '螺%') 13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数据信息 use shiyan go delete from spj where(sno='s3' or sno='s4')and jno in(select jno from j where jname='三建')and pno in(select pno from p where pname='螺母' or pname='螺丝刀') 《Matlab语言》实验(报告)题库 1、TDOA信号分析类 (1)已给出一段事先采集的信号,该信号为进行TDOA定位使用的基本信号,其格式为GPS+IQ + GPS+IQ …,即每包数据由GPS头文件和IQ信号构成,GPS头文件共58B,其数据格式为 $HT,20130114,084556,N3606.82273,E10343.59311,M1538.7,11,0*,每包IQ数据共8192B,其数据格式为I0,Q0,I1,Q1,I2,Q2…,I2047,Q2047,即I数据2048点、Q数据2048点交叉出现。换言之,每包数据实际内容为:$HT,20130114,084556,N3606.82273,E10343.59311,M1538.7,11,0* I0 Q0 I1 Q1 I2 Q2 … I2047 Q2047,程序前期已实现读取IQ数据文件并进行关键信息读取分解,请根据程序提醒,完成相关功能(数据及程序见“1-实际IQ信号实验”文件夹)。 2、TDOA时差估计仿真类 (2)在TDOA定位技术中,时差估计是一个非常重要的环节。自行仿真2个具有一定时差的信号,用广义互相关法(GCC)计算该2个信号的时差,并与设定时差进行对比分析(需给出详细过程及适当的仿真图)。 (3)在TDOA定位技术中,时差估计是一个非常重要的环节。自行仿真2个具有一定时差的信号,用互模糊函数法计算该2个信号的时差,并与设定时差进行对比分析(需给出详细过程及适当的仿真图)。 (4)在TDOA定位技术中,时差估计是一个非常重要的环节。自行仿真2个具有一定时差的信号,用广义互相关(GCC)结合多项式拟合方法计算该2个信号的时差,并比较广义互相关法估计时差和广义互相关结合多项式拟合方法估计时差的结果,进行分析(需给出详细过程及适当的仿真图)。 (5)在TDOA定位技术中,时差估计是一个非常重要的环节。自行仿真2个具有一定时差的信号,自选方法计算该2个信号的时差,并与设定时差进行对比分析(需给出详细过程及适当的仿真图)。 3、TDOA时差估计实测类 下面三题使用“3-TDOA实测类-数据”。 (6)在TDOA定位技术中,时差估计是一个非常重要的环节。根据提供的TDOA数据,用广义互相关(GCC)计算该2路信号的时差,统计每包数据计算结果,并分析之(需给出详细解决过程及适当的分析图)。 (7)在TDOA定位技术中,时差估计是一个非常重要的环节。根据提供的TDOA数据,用广义互相关(GCC)结合多项式拟合方法计算该2路信号的时差,比较广义互相关法估计时差和广义互相关结合多项式拟合方法估计时差的结果,并分析之(需给出详细解决过程及适当的分析图)。 (8)在TDOA定位技术中,时差估计是一个非常重要的环节。根据提供的TDOA数据,自选方法计算该2路信号的时差,统计每包数据计算结果,并分析之(需给出详细解决过程及适当的分析图)。 4、信号频域分析类 (9)生成一个带有噪声的正弦波信号,信号的频率、幅度,噪声的幅度自行设定。(将带有噪声的正弦信号放入for循环中,利于pause,实现噪声动态变化效果,并在for循环内画出其时域图和幅频图(采样率和采样点数自行设定),观察动态变化情况),最后总结系统采样率和采样点数对仿真信号效果的影响。 (10)自行生成一段时域信号,要求在不同的时间,信号具有不同的频率(即非平稳信号),用短时傅里叶变换对其进行时频分析,并呈现时频分析结果。 (11)自行生成一段时域信号,要求在不同的时间,信号具有不同的频率(即非平稳信号),用小波变换对其进行时频分析,并呈现时频分析结果。 5、信号调制解调类 (12)自行产生正弦信号作为基带信号、载波,试合成AM信号,在AM信号上加高斯白噪声,并将AM信号解调,画出各信号(基带信号、载波、合成的AM信号、解调后的基带信号)时域图及频谱图,并对比总结解调效果。 (13)自行产生正弦信号作为基带信号、载波,试合成FM信号,在FM信号上加高斯白噪声,并将FM信号解调,画出各信号(基带信号、载波、合成的FM信号、解调后的基带信号)时域图及频谱图,并对比总结解调效果。 (14)自行产生一个正弦信号,以此为载波,生成一段2ASK信号,其中数字序列随机生成,画出数字基带序列、正弦信号、2ASK信号的时域图。 (15)自行产生两个不同频率的正弦信号,以此为载波,生成一段2FSK信号,其中数字序列随机生成,画出数字基带序列、两个正弦信号、2FSK信号的时域图。 (16)用Matlab模拟通信系统收发过程,要求:发射站发射FM调制信号,接收站接收该信号,并进行解调,系统参数及传播环境/过程参数自定。 6、信号分离类 (17)自行生成一个含有3个频率(信号频率相近,如200Hz,210Hz,300Hz)的信号,其他参数自定,直接用FFT难以将不同频率信号,尤其频率较近的信号进行分离,试用AR等高阶功率谱方法,将该信号进行分离,并绘制分离前后的频谱图(即信号的FFT图、信号的AR分离图)。 (18)自行生成一个含有不同频率或不同相位的信号,直接用FFT难以将不同频率信号,尤其频率较近或同频率不同相位的信号进行分离,试用MUSIC方法,将该信号进行分离,并绘制分离前后的频谱图(即原信号的FFT图、信号的MUSIC分离图),并总结现象。 (19)自行产生一段含有低频、高频和噪声成分的信号,尝试设计不同的滤波器,将高频信号及噪声滤掉,并绘制滤波前后的信号对比图(含时域、频域图)。 7、深度学习类 (20)设计一个神经网络(可以是任意类型的神经网络),对手写数字进行分类,要求小组内每个成员至少每人手写一个数字,然后识别,并分析识别准确率。 (21)自行找一个预训练好的网络,对日常生活物品进行识别,要求小组内每个成员拍照1~2个物品,通过网络进行识别,并分析识别效果。 学 生 实 验 报 告 课程名称: 学生学号: 所属院部: (理工类) 专业班级: 学生姓名: 指导教师: ——20 学年 第 学期 实验项目名称: MATLAB综合运用 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的和要求 1、会用MATLAB求电阻电路。(节点电压法、戴维南定理等) 2、会用MATLAB求正弦稳态电路。 3、掌握自动控制系统中模型的转换方法。 4、会用MATLAB求自动控制系统的传递函数。 二、实验仪器和设备 计算机一台 三、实验过程 1、已知条件如下图所示。求:RL为何值时,能获得最大功率.U1 U2 RL R1=6Ω R2=1Ω R3=3Ω 经过R1的电流为I1,经过R2的电流为I2,把RL用电流源代替(Ia方向从上到下),经过电路化简得:Ia=4/3+I2 列出节点方程:(1/6+1+1/3)U1-U2=I1(其中I1=12/6=2A,I2=2A)(节点电流的流入和流出) -U1+U2=I2-Ia(等效的U1,U2) 运用MATLAB计算出U1,U2的值,U2即是戴维南等效电路中的Uoc,令电压源短路,电流源断路,求得ab左边等效电阻Req,当Req=RL时,PMAX=Uoc^2/4Req 2、已知Us=100V,I1=100mA,电路吸收功率P=6W,XL1=1250,XC2=750,电路呈感性,求R3及XL3。 设电源的总阻抗为ZRjX,由图可知ZZ1UZ2*Z3,总阻抗的模为Zs IZ2Z3由于Z1,Z2为纯阻抗元件,它们不吸收有功功率,故 RP I22ZR2X2XZR2 得知电感电路呈感性,取“+”,即有ZRjX Z2,Z3的并联阻抗为Z23ZZ1ZjXL1 而Z3Z2*Z23 Z2Z23有R3real(Z3),XL3=imag(Z3) 3、求图示系统的传递函数,其中K1=10,K2=20。 4、已知系统状态空间模型为: 求其零极点模型。 5、系统的零极点增益模型如下: 求系统的传递函数模型和状态空间模型。 四、实验结果与分析 在本次实验中,初步了解了MATLAB在自动控制系统中的运用,通过从实验中得到的锻炼,提高了动手能力和自我学习能力。第二篇:C语言-实验四
第三篇:实验四SQL语言
第四篇:《Matlab语言》实验报告
第五篇:MATLAB实验4