《matlab编程训练》
作业。实训一 matlab语言介绍和数值计算。
1.先求下列表达式的值,然后显示matlab工作空间的使用情况并保存变量。
2. 已知,求下列表达式的值:
1) a+6*b和a-b+i(其中i为单位矩阵)
a+6*b:
a-b+i:
2) a*b和a.*b
a*b程序:
a=[12 34 -4;34 7 87;3 65 7]
b=[1 3 -1;2 0 3;3 -2 7]
c=a*b结果:
a.*b程序:
a=[12 34 -4;34 7 87;3 65 7]
b=[1 3 -1;2 0 3;3 -2 7]
d=a.*b
结果:3) a^3和a.^3
a^3程序:
a=[12 34 -4;34 7 87;3 65 7]
e=a^3结果:
a.^3程序:
a=[12 34 -4;34 7 87;3 65 7]
c=a.^3
4) a/b及b\a
a/b程序:
a=[12 34 -4;34 7 87;3 65 7]
b=[1 3 -1;2 0 3;3 -2 7]
c=a/b结果:
b\a程序:
a=[12 34 -4;34 7 87;3 65 7]
b=[1 3 -1;2 0 3;3 -2 7]
d=b\a结果:
5) 将矩阵c=b\a的右下角2*2子矩阵赋给d, 并(3)保存变量(mat文件)
程序:a=[12 34 -4;34 7 87;3 65 7];
b=[1 3 -1;2 0 3;3 -2 7];
c=b*inv(a);
d=c(2:3,2:3)
结果:3. 求得矩阵的每行最大元素所在的位置?(至少两种方法)
第一种:a=[5 14 33;45 43 3;65 4 6;78 15 34]
rowmax order]=max(a')
结果:第二种:a=[5 14 33;45 43 3;65 4 6;78 15 34]
max_num,index]=max(a,2)
结果:实训二 matlab编程基础。
1. 求[25,1258]之间能被15整除的数的个数。
程序:a=25:1258;
length(a(mod(a,15)==0))
结果:2. 根据,求的近似值。当n分别取时,结果是多少?
程序:n=1:100;
test=sqrt(6*sum(1./(n.*n)))
结果:程序:
n=1:1000;
test=sqrt(6*sum(1./(n.*n)))
结果:程序:
n=1:10000;
test=sqrt(6*sum(1./(n.*n)))
结果:3. 有三个多项式p1(x)=x4+2x3+4x2+5,p2(x)=x+2,p3(x)=x2+2x+3,试进行下列操作:
1)求p(x)=p1(x)+p2(x)p3(x);
程序:p2=[1 2]
p3=[1 2 3]
q=conv(p2,p3)
结果:程序:
p1=[1 2 4 0 5]
q1=[0 1 4 7 6]
b=p1+q1
结果:2)求p(x)的根;
程序:c=roots(b)
结果:3)当x取矩阵a的每一元素时,求p(x)的值,其中。
程序:a=[-1 1.2 -1.4;0.75 2 3.5;0 5 2.5]
y=polyval(b,a)
结果:4)当以矩阵a为自变量时,求p(x)的值,其中a的值与(3)题相同。
程序:a=[-1 1.2 -1.4;0.75 2 3.5;0 5 2.5]
y1=polyvalm(b,a)
结果:实训三 matlab图形系统。
1. 设,在x=0~2π区间取120点,绘制函数曲线。
程序:x=(0:2*pi/119:2*pi)
y=(0.1+10*cos(x)/(5+x.^3))*sin(x);
plot(x,y)
结果:2. 已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作(x∈(0,10)):
1)在同一坐标系下用不同的颜色和线型绘制三条曲线;
2)在不同的图形窗中分别用条形图、阶梯图、杆图绘制三条曲线。
如下图所示:
3. 微分方程求解:其中, ,初始值。
实训四 simulink**环境。
1. 利用simulink**来实现摄氏温度到华氏温度的转化:(范围在-10℃~100℃)
2. 单位负反馈系统的开环传递函数为:,应用simulink**系统构建阶跃响应曲线。
3. 分析pid调节器各参数的作用。
pid的数学模型为。
1)、分析pid调节作用,考查当。
1)kp=8.5,ki=5.3,kd=3.4(2)kp=6.7,ki=2,kd=2.5(3)kp=4.2,ki=1.8,kd=1.7
时对系统阶跃响应的影响。 (三条线在一个图里)
2)、以kp=8.5,ki=5.3,kd=3.4这组数据为基础,改变其中一个参数,固定其余两个,以此来分别讨论kp,ki,kd的作用 (三条线在一个图里):
1 分析pid的比例作用:只改变kp,当kp=8.5,kp=6.7,kp=4.2时候系统输出曲线截图标注;
2 分析pid的积分作用:只改变ki,当ki=5.3,ki=2,ki=1.8时候系统输出曲线截图标注;
3 分析pid的微分作用:只改变kd,当kd=3.4,kd=2.5,kd=1.7时候系统输出曲线截图标注。
3)、分析不同调节器下该系统的阶跃响应曲线 (四条线在一个图里)
1)p调节kp=8
2)pi调节kp=5,ki=2
3)pd调节kp=8.5,kd=2.5
4)pid调节kp=7.5,ki=5,kd=3
实训五综合题。
1. 某控制系统的被控过程的传递函数是:,基于matlab simulink设计pid控制器,满足以下要求:
pid控制器封装子系统,写出具体步骤,并附图。)
1)封装子系统。
2)设置参数。
3)整定pid参数(稳定边界法采用4:1)?
设置初始参数为 kp = 1,ki = 0,kd = 0(即纯比例控制),启动** ,得到系统的阶跃响应曲线 ,如图(a)所示。由图 (a)可知 ,系统虽然能够稳定运行 ,但却是有静差的 ,而且快速性也较差 ,因此需要引入积分和微分环节。根据临界比例度法的整定法则 ,需要逐步增大 kp,获取系统的等幅振荡曲线 ,求出临界增益 ku 和临界振荡周期 tu。
通过调整参数求得临界振荡时的临界增益为 ku ≈12.5 ,临界振荡周期大致为 tu ≈15.12 s
图(a)4)整定pid参数(稳定边界法采用等幅振荡)?
根据表一选取相应的pid参数值应为:kp=0.6ku=7.
5,ti=0.5tu=7.56,td=0.
125,tu=1.89所以积分项系数 ki=kp/ti=0.992,微分项系数为kd=kp*td=14.
175。最后求得按照临界比例度法整定 pid 参数后系统的阶跃响应曲线如图 (b)所示。由图 (b)知 ,系统阶跃响应的超调量 ,调节时间约为 35s,稳定性和快速性还有待改善 ,此时可以对整定的 pid 参数适当调整。
通过减小积分系数 ki 来减小超调量。取 ki= 0.4,kp,kd 仍用临界比例度法整定的数据 ,进而得到系统新的单位阶跃响应曲线 ,如图 (c)所示。
从图 (c)可以看出系统的过渡过程时间 ,超调量都有所降低。
图(b图(c)
3) 结果分析比较?
使用稳态边界法得到的相应曲线调节可以消除余差,但是它的超调量较大。我们可以把ki适当减少,即增大积分时间常数,减弱积分作用来改善响应曲线过渡过程动态偏差过大的问题。
2.已知两子系统传递函数分别为:
试求:1) 两系统并联连接的等效传递函数,观察其单位阶跃响应;
2)两系统串联连接的等效传递函数,观察其单位阶跃响应;
3)以g2(s)为前向通道函数,以g1(s)为反馈通道函数,观察其单位阶跃响应。(要求:分别采用编程和simulink两种方法完成)
1)simulink法:
2)编程法:
个人总结。为期一个星期的matlab实训已经结束,虽然时间很短,但我还是从中学到了很多,对matlab有了一定的了解。
matlab是一个基于矩阵运算的软件,它的运算功能非常强大,编程效率高,强大而智能化的作业图功能,可扩展性强,simulink动态**功能,主要用于**、验证、算法思想是否正确。在这段时间里,我们主要学习matlab的工具的使用,熟悉其最基础的功能,锻炼了我的实际动手能力。help是matlab中最有效的命令。
遇到问题,通常都可以借助help解决问题。
就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以。
最后我再次也希望通过这篇总结来表达自己对知道老师的感谢之情,谢谢您的不懈努力和耐心指导,才使得我再这次的实验过程中收获的这么多,也正式您的不吝教诲才使得我们在这次实验中学习和收获了许多的有用的知识和技巧,我相信在以后的学习或者工作中一定有其用武之地。
MATLAB编程
电力系统基础课程设计报告。电力系统潮流计算的matlab编程。程序流程图 源程序 disp电力系统潮流计算的matlab编程。disp 请输入电力系统参数!n input 请输入节点数 n nl input 请输入支路数 nl isb input 请输入平衡节点号 isb pr input 请输入误...
数学建模培训作业 MATLAB编程部分
数学建模培训作业。matlab编程部分 1 请使用switch语句将百分制的学生成绩转换为五级制的成绩输出。2 猜数游戏 首先由计算机随机产生一个 1,100 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 high 小于则显示 lo...
MATLAB编程基础 习题
1.1请分别用直接构造法 增量构造法 冒号表达式 和linspace函数创建数组 1,3,5,7,9,11 体会以上创建方法有何区别和联系。若数组b为在0 2 之间均匀分布的22个数据,c 1.3,2.5,7.6,2,3 d 23,20,17,14,11,8,5,2 各用何种方法输入较为简单?写出源...