matlab仿真大作业
matlab仿真作业
MATLAB仿真院(系)专业班级姓名学号时间Matlab作业1、一个50Hz的简单电力系统如下图所示,试在Simulink中建立仿真模型研究该系统性能。
k1系统建模要求如下:(1)发电机G采用“Synchronous Machine pu Fundamental”模型,变压器T采用“Three-Phase Transformer (Two Windings)”模型,输电线路L采用“Three-Phase Series RLC Branch”模型,负荷LD1、LD2采用“Three-Phase Parelell RLC Load”模型。
(2)发电机模型参数:采用预设模型,其中学号末位数字为1的同学使用编号为01的模型参数,学号末位数字为2的同学使用编号为02的模型参数,……,学号末位数字为0的同学使用编号为10的模型参数。
(3)变压器模型采用默认参数,副边电压10kV,但需要注意与发电机模型相匹配参数的设置(原边电压、频率等),变压器容量设置为发电机额定功率的1.2倍;(4)线路参数的设置原则:忽略电容,X/R=3,线路通过发电机额定功率时首末端压降约为0.05p.u.;(5)负荷模型采用默认参数,但需要注意与整个系统模型相匹配参数的设置(电压、频率等),负荷LD1容量设置为发电机额定功率的5%,LD2容量为发电机额定功率的30%,功率因数0.95。
(6)其他模块(如短路模拟、测量、示波、powergui等)的使用根据研究要求自行确定。
性能研究要求:(1)利用powergui计算该系统的稳态潮流情况;(2)利用powergui将系统设置为零初始状态,仿真系统达到稳态的过程;(3)利用powergui将系统设置为稳态,仿真k点发生三相短路、持续0.15秒后切除的系统过渡过程,要求输出短路电流的波形。
作业形式要求:(1)根据题目要求进行理论分析,计算出发电机稳态时转速,短路电流周期分量以及冲击电流的大小。
matlab机电系统仿真大作业
一曲柄滑块机构运动学仿真1、设计任务描述通过分析求解曲柄滑块机构动力学方程,编写matlab程序并建立Simulink 模型,由已知的连杆长度和曲柄输入角速度或角加速度求解滑块位移与时间的关系,滑块速度和时间的关系,连杆转角和时间的关系以及滑块位移和滑块速度与加速度之间的关系,从而实现运动学仿真目的。
2、系统结构简图与矢量模型下图所示是只有一个自由度的曲柄滑块机构,连杆r2与r3长度已知。
图2-1 曲柄滑块机构简图设每一连杆(包括固定杆件)均由一位移矢量表示,下图给出了该机构各个杆件之间的矢量关系图2-2 曲柄滑块机构的矢量环3.匀角速度输入时系统仿真3.1 系统动力学方程系统为匀角速度输入的时候,其输入为ω2=θ2,输出为ω3=θ3,θ3;v 1=r 1,r 1。
(1) 曲柄滑块机构闭环位移矢量方程为:R 2+R 3=R 1(2) 曲柄滑块机构的位置方程{r 2cos θ2+r 3cos θ3=r 1r 2sin θ2+r 3sin θ3=0(3) 曲柄滑块机构的运动学方程通过对位置方程进行求导,可得{−r 2ω2sin θ2−r 3ω3sin θ3=r 1r 2ω2cos θ2+r 3ω3cos θ3=0由于系统的输出是ω3与v 1,为了便于建立A*x=B 形式的矩阵,使x=[ω3v 1],将运动学方程两边进行整理,得到{v 1+r 3ω3sin θ3=−r 2ω2sin θ2−r 3ω3cos θ3=r 2ω2cos θ2将上述方程的v1与w3提取出来,即可建立运动学方程的矩阵形式(r 3sin θ31−r 3cos θ30)(ω3v 1)=(−r 2ω2sin θ2r 2ω2cos θ2) 3.2 M 函数编写与Simulink 仿真模型建立3.2.1 滑块速度与时间的变化情况以及滑块位移与时间的变化情况仿真的基本思路:已知输入w2与θ2,由运动学方程求出w3和v1,再通过积分,即可求出θ3与r1。
matlab大作业
直流调速系统仿真——Matlab 仿真技术大作业姓名:谷苗 学号:12291247 班级:1211班一、电机开环特性1. 实验电路:永磁直流电动机使用直流电源供电,不加闭环反馈。
2. 仿真波形:电机开环下,输出转速波形,在1.5s 后加入负载静差率: s =n 0−n n 0=1000− 933.33331000=6.667% ,加入负载后转速降低,故需要加入闭环控制。
二、电机闭环特性1. 实验电路:实际输出转速与理想转速的差值经过PI 控制器做负反馈,再输入到电压源受控端。
2. 仿真波形:经调试,选用P=0.09, I=10的比例积分控制器输出转速n电枢电流I输出转速n : 超调量 M p =0.129% ,调节时间 t p =0.126s 。
加入PI 控制器后,系统动态、静态响应明显改善。
启动时转速超调量很小,可以快速达到目标转速。
加入负载后,转速也不会下降,保证了电机的稳定运行。
但是,启动时电枢电流有较大冲击,峰值为102A 。
为减小冲击电流,保护电机正常运行,故加入改善电机起动特性装置。
三、改善电机起动特性1. 实验电路:转速指令值用斜坡函数给定的方法,限制电机的起动电流。
2. 仿真波形:令slope=5000,在0.2s 时,转速指令值上升至理想转速。
输出转速n 电枢电流I调整转速指令在启动时斜坡上升后,电枢冲击电流明显减小,避免了电机和线路因过电流而引起的发热、机械应力等问题。
但是,加入该调整后,电机输出转速的快速性稍稍变差。
四、采用H 桥直流可逆PWM 变换电路A. 研究H 桥直流可逆PWM 变换电路脉宽调制方式1. 实验电路:采用三角波与 const 比较的方式,搭建双极性PWM 调制电路。
如果三角波值大于 const ,输出正信号,占空比为D ,送到全桥电路1、4管触发;如果三角波值小于 const ,输出负信号,经过非门,得到的正信号与前一个正信号互补,占空比为 (1−D),送到全桥电路2、3管触发。
MATLAB期末大作业
学号:姓名:《Matlab/Simulink在数学计算与仿真中的应用》大作业1.假设地球和火星绕太阳运转的半径分别为r和2r,利用comet指令动画显示从地球到火星的转移轨迹(r可以任意取值,要求实时显示探测器、太阳、地球和火星的位置)。
解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的比动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏心率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的一半及飞行时间是周期的一半(开普勒第三定律)w=pi/TOF;%椭圆轨迹的角速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显示运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利用两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径一:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1');disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径二:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态方程表示为⎪⎩⎪⎨⎧-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ 其中,设28,10,3/8===σρβ。
MATLAB与控制系统仿真大作业
>> G1=tf(num,den);
>> G1=zpk(G1)
G1 =
5 (s+0.6) ----------------(s+3) (s+2) (s+1)
>> num=[2 1]; den=[1 2.9 1]; G2=tf(num,den); >> G2=zpk(G2)
G2 =
2 (s+0.5)
>> xlabel('x') ylabel('exp(-2.*x)')
三、simulink 建模(每题 10 分,共 20 分)
1、已知单位负反馈的开环传递函数为 G(s) =
2 s2 + 4s
,试利用
simulink
建立系在单位阶跃输入作用下的模型。
要求答案包括:(1)simulink 建模结构图;
(2)在同一个坐标中的阶跃信号和响应曲线图。
2、已知系统的开环传递函数为
G1(s)
=
2s2 + 5s + 6 s2 + 2s + 3
、G2 (s)
=
s2
s+6 + 7s +1
,H
(s)
=
5(s + 2) s +10
求:建立 Simulink 仿真模型,并求出其系统在单位阶跃响应;
要求答案包括:(1)simulink 建模结构图;
x=
-2.9709
0.5491
3.6000
0.0509
2. 已知下列矩阵
2 3 1
−1 3 5
A
=
电机学matlab仿真大作业报告
.基于MATLAB的电机学计算机辅助分析与仿真实验报告一、实验内容及目的1.1 单相变压器的效率和外特性曲线1.1.1 实验内容一台单相变压器,N S =2000kVA, kV kV U U N N 11/127/21=,50Hz ,变压器的参数和损耗为008.0*)75(=C k o R ,0725.0*=k X ,kW P 470=,kW P C KN o 160)75(=。
(1)求此变压器带上额定负载、)(8.0cos 2滞后=ϕ时的额定电压调整率和额定效率。
(2)分别求出当0.1,8.0,6.0,4.0,2.0cos 2=ϕ时变压器的效率曲线,并确定最大效率和达到负载效率时的负载电流。
(3)分析不同性质的负载(),(8.0cos 0.1cos ),(8.0cos 222超前,滞后===ϕϕϕ)对变压器输出特性的影响。
1.1.2 实验目的(1)计算此变压器在已知负载下的额定电压调整率和额定效率 (2)了解变压器效率曲线的变化规律 (3)了解负载功率因数对效率曲线的影响 (4)了解变压器电压变化率的变化规律 (5)了解负载性质对电压变化率特性的影响1.1.3 实验用到的基本知识和理论(1)标幺值、效率区间、空载损耗、短路损耗等概念 (2)效率和效率特性的知识 (3)电压调整率的相关知识1.2串励直流电动机的运行特性1.2.1实验内容一台16kw 、220V 的串励直流电动机,串励绕组电阻为0.12Ω,电枢总电阻为0.2Ω。
电动势常数为.电机的磁化曲线近似的为直线。
其中为比例常数。
假设电枢电流85A 时,磁路饱和(为比较不同饱和电流对应的效果,饱和电流可以自己改变)。
试分析该电动机的工作特性和机械特性。
1.2.2实验目的(1)了解并掌握串励电动机的工作特性和机械特性(2)了解磁路饱和对电动机特性的影响1.2.3实验用到的基本知识和理论(1)电动机转速、电磁转矩、电枢电流、磁化曲线等(2)串励电动机的工作特性和机械特性,电动机磁化曲线的近似处理二、实验要求及要点描述2.1 单相变压器的效率和外特性曲线(1)采用屏幕图形的方式直观显示;(2)利用MATLAB编程方法或SIMULINK建模的方法实现;cos 的效率曲线;(3)要画出对应不同2(4)要画出对应阻性、感性、容性三种负载性质的特性曲线,且通过额定点;(5)要给出特征性的结论。
电机学matlab仿真大作业报告材料
基于MATLAB的电机学计算机辅助分析与仿真实验报告一、实验内容及目的1.1 单相变压器的效率和外特性曲线1.1.1 实验内容一台单相变压器,N S =2000kVA, kV kV U U N N 11/127/21=,50Hz ,变压器的参数和损耗为008.0*)75(=C k o R ,0725.0*=k X ,kW P 470=,kW P C KN o 160)75(=。
(1)求此变压器带上额定负载、)(8.0cos 2滞后=ϕ时的额定电压调整率和额定效率。
(2)分别求出当0.1,8.0,6.0,4.0,2.0cos 2=ϕ时变压器的效率曲线,并确定最大效率和达到负载效率时的负载电流。
(3)分析不同性质的负载(),(8.0cos 0.1cos ),(8.0cos 222超前,滞后===ϕϕϕ)对变压器输出特性的影响。
1.1.2 实验目的(1)计算此变压器在已知负载下的额定电压调整率和额定效率 (2)了解变压器效率曲线的变化规律 (3)了解负载功率因数对效率曲线的影响 (4)了解变压器电压变化率的变化规律 (5)了解负载性质对电压变化率特性的影响1.1.3 实验用到的基本知识和理论(1)标幺值、效率区间、空载损耗、短路损耗等概念 (2)效率和效率特性的知识 (3)电压调整率的相关知识1.2串励直流电动机的运行特性1.2.1实验内容一台16kw 、220V 的串励直流电动机,串励绕组电阻为0.12Ω,电枢总电阻为0.2Ω。
电动势常数为.电机的磁化曲线近似的为直线。
其中为比例常数。
假设电枢电流85A 时,磁路饱和(为比较不同饱和电流对应的效果,饱和电流可以自己改变)。
试分析该电动机的工作特性和机械特性。
1.2.2实验目的(1)了解并掌握串励电动机的工作特性和机械特性(2)了解磁路饱和对电动机特性的影响1.2.3实验用到的基本知识和理论(1)电动机转速、电磁转矩、电枢电流、磁化曲线等(2)串励电动机的工作特性和机械特性,电动机磁化曲线的近似处理二、实验要求及要点描述2.1 单相变压器的效率和外特性曲线(1)采用屏幕图形的方式直观显示;(2)利用MATLAB编程方法或SIMULINK建模的方法实现;cos 的效率曲线;(3)要画出对应不同2(4)要画出对应阻性、感性、容性三种负载性质的特性曲线,且通过额定点;(5)要给出特征性的结论。
matlab大作业
Matlab第三次作业陈致远14291132题目:H桥逆变器SPWM仿真单相逆变器(H桥)。
直流电压450V,使用直流电压源模块;逆变器用Universal Bridge 模块,器件选IGBT。
负载用电阻电感串联,电阻0.1 ,电感2mH。
使用三角波作为载波,载波频率1050Hz,调制度0.7,基波频率50Hz。
仿真时间0.2秒,使用ode23tb求解器。
本次仿真关注稳态时的情况。
分析谐波成分时,取0.18~0.20秒之间的1个工频周期的波形进行分析,基波频率50Hz,最大频率3500Hz。
1、双极性SPWM仿真采用双极性SPWM,完成以下内容:(1) 在同一副图中,画出载波与调制波的波形;(2)记录逆变器2个桥臂中点对直流负母线的电压波形,并分别进行谐波分析;(3)记录逆变器的输出电压(即负载两端的电压)波形,并进行谐波分析;(4) 记录负载电流的波形,并进行谐波分析。
2、单极性SPWM仿真采用单极性SPWM,重复上述仿真,即,完成以下内容:(1) 在同一副图中,画出载波与调制波的波形;(2)记录逆变器2个桥臂中点对直流负母线的电压波形,并分别进行谐波分析;(3)记录逆变器的输出电压(即负载两端的电压)波形,并进行谐波分析;(4) 记录负载电流的波形,并进行谐波分析。
3、三相逆变器仿真将三个上述H桥按照星形联接在一起,即每个H桥的B端连接在一起,A端对外联接负载。
阻感负载参数同上,也按照星形联接。
每个H桥各自都采用单极性SPWM调制,参数同上。
需要注意的是,三个H桥共用同一载波,调制波相位互差120º。
完成以下内容:(1) 在同一副图中,画出载波与三相调制波的波形;(2)记录每个H桥的输出电压波形,并分别进行谐波分析;(3)记录逆变器的输出电压(线电压)波形,并进行谐波分析;(4) 记录负载电流的波形,并进行谐波分析。
MATLAB仿真技术大作业
直流调速系统仿真--MATLAB仿真技术大作业1、电机开环特性电机电枢联接500V直流电源。
画出转速n的波形,根据仿真结果求出空载和负载时的转速n以及静差率s。
空载转速:2500 rad/s 负载转速:2300rad/s 静差率:0.082、转速闭环控制为了改善电机调速性能,对该直流电机加入转速闭环控制。
将电机电枢联接至受控电压源。
转速控制器使用比例-积分控制器,转速指令为2500rpm。
调节控制器的比例和积分环节参数以实现较好的动、静态性能。
调节PI分别为0.43,10时响应最好,①画出转速n的波形,这时超调量:3.84%,动态响应时间:0.09s②画出电机电枢电流波形,起动时的最大电枢电流为:2094A,负载时的稳态电枢电流为:100A3、改善电机起动特性电机起动时有很大的冲击电流。
通过将转速指令值用斜坡函数给定的方法,限制电机的起动电流,斜坡函数的斜率为5000,画出转速n和电枢电流的波形。
4、降压斩波器供电画出转速n和电枢电流的波形,并与使用理想受控电源的情况进行比较。
左下图为参考转速与实际转速的差波形。
①从转速图中看,在1.5s加入负载时,3中出现了一个较明显的凹陷,这是因为突然加入负载,使得转速下降,但经过闭环调节又恢复了原速。
在4中,其实放大看也是有凹陷的,但是因为4中通过PWM控制使得在转速不大时便能回到稳态值。
②从电枢电流波形看,4中在条件变化时都出现了振荡,这也是因为电压受开关控制造成的。
而且在0~0.5s,起动阶段由于波速差由大振荡衰减小,经过闭环调节,电枢电流振荡减小;之后因为参考波速一直以恒定斜率增大,波速差固定,电枢电流稳定在一个值下,但并不是10A。
在0.5s,参考波速不再增大,在经过闭环调节后,波速差稳定为0,因为在空载状态,所以电枢电流也为0。
而调节过程因为波速忽大忽小,所以电枢电流振荡衰减。
同样的,在1.5s加入负载时,波速突然减小,波速差振荡衰减,到最后,波速差恢复为0,此时电枢电流为100A。
matlab仿真实例100题
matlab仿真实例100题Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程仿真等领域。
在学习和使用Matlab的过程中,通过实例的方式进行仿真练习是一种非常有效的学习方法。
下面将给出100个Matlab仿真实例题目,帮助读者更好地掌握Matlab的使用。
1. 编写一个程序,计算并输出1到100之间所有奇数的和。
2. 编写一个程序,计算并输出1到100之间所有偶数的乘积。
3. 编写一个程序,计算并输出1到100之间所有素数的个数。
4. 编写一个程序,计算并输出1到100之间所有整数的平方和。
5. 编写一个程序,计算并输出1到100之间所有整数的立方和。
6. 编写一个程序,计算并输出1到100之间所有整数的阶乘和。
7. 编写一个程序,计算并输出1到100之间所有整数的倒数和。
8. 编写一个程序,计算并输出1到100之间所有整数的平均值。
9. 编写一个程序,计算并输出1到100之间所有整数的中位数。
10. 编写一个程序,计算并输出1到100之间所有整数的标准差。
11. 编写一个程序,计算并输出1到100之间所有整数的方差。
12. 编写一个程序,计算并输出1到100之间所有整数的最大值。
13. 编写一个程序,计算并输出1到100之间所有整数的最小值。
15. 编写一个程序,计算并输出1到100之间所有整数的平方根和。
16. 编写一个程序,计算并输出1到100之间所有整数的立方根和。
17. 编写一个程序,计算并输出1到100之间所有整数的对数和。
18. 编写一个程序,计算并输出1到100之间所有整数的指数和。
19. 编写一个程序,计算并输出1到100之间所有整数的正弦和。
20. 编写一个程序,计算并输出1到100之间所有整数的余弦和。
21. 编写一个程序,计算并输出1到100之间所有整数的正切和。
22. 编写一个程序,计算并输出1到100之间所有整数的双曲正弦和。
23. 编写一个程序,计算并输出1到100之间所有整数的双曲余弦和。
matlab仿真作业
matlab仿真作业实验报告(MATLAB课后作业练习题)学院电⼦信息学院班级学号姓名任课教师⽬录实验作业1 (3)第⼀题、⼀阶电路 (3)实验作业2 (7)第⼀题Waterfall Scope(瀑布显⽰图) (7)Chirp Signal扫频信号源 (7)Uniform Random Number信号源下 (8)Band-Limited White Noise信号源 (8)第⼆题:设计⼀个编程开关仿真系统框图 (9)仿真实验作业3 (10)第⼀题 (10)第⼆题 (13)仿真实验作业4 (14)第⼀题 (14)第⼆题 (16)仿真实验作业5 (19)仿真实验作业6 (21)仿真实验作业7 (23)仿真实验作业8 (26)实验作业1第⼀题、⼀阶电路(1)、电路图如下,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流为零,电容电压为0.5V ,t=0时刻接⼊1V 的电压,求0 function xdot=funcforexl23(t,x,~,R,L,C)xdot=zeros(2,1); %矩阵初始化 xdot(1)=-R/L*x(1)-1/L*x(2)+1/L* f(t); %⽅程1 xdot(2)=1/C * x(1); %⽅程2 function in=f(t) %输⼊信号 in=(t>0)*1; %阶跃信号%filename ex123.mL=2; %电感值 C=0.32; %电容值for R=[1.4 5 9] %仿真电阻值分别为1.5, 3, 5欧姆的情况[t,x]=ode45('funcforexl23',[0,15],[0;0.5],[],R,L,C); %也可采⽤ode23, ode15s 等求解figure(1);plot(t,x(:,1));hold on ; xlabel('time sec'); text(2,0.07,'\leftarrow i_L(t)');grid;figure(2);plot(t,x(:,2));hold on ;xlabel('time sec'); text(2.1,0.75,'\leftarrow u_C(t)');grid; End输⼊输出的传递函数:11)()()(2++==RCs LCss F s U s H c±Vs=1V t=0R L C +-)(t i )(t v o① R=1.4时:1448.064.01)(2++=s s s H② R=5时:16.164.01)(2++=s s s H ③ R=9时:188.264.01)(2++=s s sH连续系统的传递函数如下:借助多项式乘法函数conv 来处理:两个向量分别⽤num 和den 表⽰。
matlab大作业(控制系统仿真)
河南工业大学控制系统仿真姓名:宋伯伦班级:自动化1501学号:201523020128成绩:2017年6月16 日设计题目基于MATLAB的皮带配料控制系统的仿真设计内容和要求阐述皮带配料控制系统的工作原理、物料流量特点,建立系统模型,通过Matlab进行控制系统仿真,达到适应系统工作过程各参数变化的目的。
报告主要章节第一章概述与引言随着科学技术的不断发展,电子皮带秤配料系统已在煤炭、化工、烟草、冶金、建材等行业中广泛应用。
目前大多数皮带秤配料系统仍然是采用传统的PID控制算法,灵敏度较高,可以说在理论上调节是能做到无误差的,或者说在误差较小的范围内的确很有优势,但是出现较大误差时,其动态特性并不是很理想,超调量一般较大。
所以,本课题设计了一套更为合理高效的电子皮带秤配料系统,本设计主要针对皮带秤配料系统中配料这一环节,采用模糊PID和传统PID控制相结合的方法。
本课题主要内容包括皮带秤的原理与组成,系统的总体设计,模糊控制算法结合本系统的分析以及采用MATILAB进行模糊PID控制仿真。
第二章各部分设计方案及工作原理皮带秤配料系统中配料皮带秤作为在线测量的动态称量衡器,有着重要的作用,目前已广泛用于冶金、煤炭、烟草、化工、建材等行业中,是集输送、称量、配料于一体的设备。
皮带秤仪表除了显示瞬时流量和累积流量外,还能根据由接线盒传过来的数据与给定值的偏差来控制给料机的给料,从而保证瞬时流量的恒定。
这样就构成了一个闭环控制系统。
2.1皮带秤配料系统组成及工作原理2.1.1皮带秤配料系统组成配料皮带秤系统结构如图2.1所示,由三大部分组成,分别是料斗、给料设备和皮带秤。
图2.1中:A-称重传感器;B-测速传感器;C-称重托辊;D-接线盒;E-称重仪表。
2.1.2皮带秤工作原理皮带秤的计量对象是连续流动的物料,可以显示物料的瞬时流量和在某一段时间内的累计流量。
皮带秤是在皮带运行中进行测量,所以测量的稳定性很重要。
matlab大作业例子
Matlab作业题目1:(1)程序部分:>> x=0:pi/50:2*pi;>> y=cos(0.5+((3*sin(x))./(1+x.^2))); >> plot(x,y)>> xlabel('x');>> ylabel('y');>> title('x-y');(2)运行结果截图:(1)程序部分:>> clear>> clc>> x=0:pi/100:4*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,'r-',x,y2,'g:') >> hold on>> y3=x(find(abs(y1-y2)<0.001)); >> plot(y3,sin(y3),'*')(2)运行结果截图:(1)程序部分:>> t=(0:2*pi/100:2*pi)'; >> y1=sin(t)*[1,-1]; >> y2=sin(t).*sin(9*t); >> subplot(2,1,1);>> plot(t,[y1,y2]);>> subplot(2,1,2);>> plot(t,[y1,y2]) (2)运行结果截图:题目4(1)程序部分:>> t=0:pi/50:4*pi;>> y=exp(-t/3);>> y0=exp(-t/3).*sin(3*t); >> plot(t,y,'r-',t,y0,'b:') >> xlabel('\bf\it t')>> ylabel('\bf\it y')>> grid on;(2)运行结果截图:题目5(1)程序部分:>> n=0;>> sum=0;>> while sum<2000n=n+1;sum=sum+n;end>> n(2)运行结果截图:题目6(1)程序部分:for j=1:3n=input('n='); sum=0;for i=1:na=1/(i.^2);sum=sum+a;endPI=sqrt(6*sum) end(2)运行结果截图:题目7(1)程序部分:n0=0;y0=0;while 3*y0<5n0=n0+1;y0=y0+1/(2*n0-1);y=y0-1/(2*n0-1);n=n0-1;endn(2)运行结果截图:题目8(1)程序部分:for i=1:7x=input('put x:');if x<0&x~-3y=x^2+x-6;elseif x>=0&x<5&x~=3&x~=2 y=x*x-5*x+6;elsey=x*x-x-1;endend(2)运行结果截图:题目9①switch语句(1)程序部分:>> score=input('请输入成绩'); switch fix(score/10)case {9,10}disp('A');case {8}disp('B');case {7}disp('C');case {6}disp('D');case {0,5}disp('E');otherwisedisp('error');end(2)运行结果截图:如右图②if语句(1)程序部分:score=input('请输入成绩:') n=score/10;if n>=9&n<10disp Aelseif n>=8&n<9disp Belseif n>=7&n<8disp Celseif n>=6&n<7disp Delseif n>=0&n<6disp Eelsedisp errorend(2)运行结果截图:题目10(1)程序部分:t=input('员工的工作时间:')if t<60m=84*t-700;elseif t>120m=84*(t-120)*1.15+84*120;elsem=84*t;endm2)运行结果截图:题目11(1)程序部分:a=round(20*rand(5,6))n=input('请输入n的值:') tryb=a(n,:);catchb=a(5,:);endblasterr(2)运行结果截图:。
MATLAB大作业
运用matlab对水塔问题进行仿真研究一、问题背景:美国某州的各用水管理机构要求各社区提供以每小时多少加仑(UK gal)计的用水率以及每天总的用水量,但许多社区并没有测量水流入或流出当地水塔的水量的设备,只能代之以每小时测量水塔的水位,精度在0.5%以内。
更重要的是,无论什么时候,只要水塔中的水位下降到某一最低水位L时,水泵就会启动向水塔重新充水至某一最高水位H,但也没法得到水泵的供水量的测量数据。
因此,在水泵工作时,人们容易建立水塔中的水位与水泵工作时的用水量之间的关系。
水泵每天向水塔充水一次或者两次,每次约两个小时。
试估计在任何时刻,甚至包括在水泵正在工作期间内,水从水塔流出的流量f(t),并估计一天的用水量,表1.0中给出的某个真实小镇某一天的真实数据。
表1.0中给出了从第一次测量开始的以秒为单位的时刻,以及该时刻的高度单位为1%英尺的水塔中水位的测量值。
水塔是一个垂直圆形柱体,高位40ft,直径为57ft,通常当水塔的水位降至27.00ft时水泵开始向水塔中充水,而党水塔的水位升至35.50ft时水泵停止工作。
二、分析与解答1.水塔充水时间的确定(1)第一次充水时间的确定。
当时间t=32284 s时,水位为26.97 ft,约低于最低水位27 ft,因此可作为第一次冲水时间。
当t=39435 s时,水塔水位为35.5 ft,恰为最高水位,因此可作为第一次充水的结束时间。
充水时间为dt=(39435—32284)/3600=1.9864 h,也接近充水时间2 h。
(2)第二次充水时间的确定。
当时间t=75021 s时,水位为26.97 ft,约低于最低水位27 ft,因此可作为第二次冲水时间。
当t=82649 s时,水泵在工作,但充水时间达到dt=(82649—75021)/3600=2.1189 h;但下一时刻t=85968 s时,水塔水位为34.75 ft,低于最高水位35.50 ft。
大作业-基于matlab的PID控制算法仿真-深圳大学
基于matlab的PID控制算法仿真要求:(1)用Matlab的仿真工具Simulink分别做出数字PID控制器的两种算法(位置式和增量式)进行仿真(2)被控对象为一阶惯性环节D(s) = 1 / (5s+1)(3)采样周期T = 1 s(4)仿真结果:确定PID相关参数,使得系统的输出能够很快的跟随给定值的变化,给出例证,输入输出波形,程序清单及必要的分析。
首先,D(s) = 1 / (5s+1)建立Simulink模型如下:准备工作:(1)双击step,将sample time设置为1以符合采样周期T = 1 s 的要求(2)选定仿真时间为500图中" Integrator" 为积分器,"Derivative" 为微分器, "Kp" 为比例系数。
"T i"为积分时间常数, " Td" 为积分时间常数。
进行P控制器参数整定时,微分器和积分器的输出与系统断开,在Smulink中,吧微分器与积分器的输出连线断开即可。
同理,进行PI控制器参数整定的时候,断开微分器的输出连线即可。
第一步是先获取开环系统的单位阶跃响应,在Simulink中,把反馈连线、微分器、积分器的输出连线都断开,并将’Kp’的值置为1,连线如下图(下载后,图片可调节变大)仿真运行完毕,双击“scope”得到下图将Kp的值置为2,并连上反馈连线,得下图:上图即为P控制时系统的单仲阶跃响应。
接下来对PI控制整定,比例放大系数仍为Kp=2,经多次输入Ti的值,发现Ti=2,即1/Ti=0.5时,系统的输出最理想,如下图(下载后,图片可调节变大)选定仿真时间,仿真运行,运行元毕后. 双击" Scope " 得到以下结果当响应曲线有一定超调量,当由于积分时间太长导致系统响应无法平稳的时候,应该减小积分的时间。
反之如果超调量过大,则应该增大积分时间,最后选定Ti=2.最后,连上微分器,经多次输入调试,Td的值置为2时,系统能最快地趋向稳定。
MATLAB大作业
M A T L A B大作业(总15页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--MATLAB大作业作业要求:(1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。
(2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果分析、本课程学习体会、列出主要的参考文献。
打印稿不要求MATLAB程序,但电子稿要包含MATLAB程序。
(3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话则长,无话则短。
不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。
(4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。
(5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。
第一类:绘制图形。
(B级)问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。
斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契螺旋线,如图所示。
问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。
其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三角形,然后去掉中间的那一个小三角形。
接下来对其余三个小三角形重复上述操作,如图所示。
问题三:其他分形曲线或图形。
分形曲线还有很多,教材介绍了科赫曲线,其他还有皮亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。
数字信号处理大作业(matlab仿真)
《动态数据处理》综合作业2019.1.20目录1 差分方程求解 (3)1.1 基本原理 (3)1.2 测试程序 (4)1.3 运行结果 (4)2 线性卷积 (5)2.1 基本原理 (5)2.2 测试程序 (7)2.3 运行结果 (8)3 DFT与IDFT程序设计 (9)3.1 基本原理 (9)3.2 测试程序 (11)3.3 运行结果 (13)4 基于Hilbert变换的信号包络提取 (14)4.1 基本原理 (14)4.2 测试程序 (15)4.3 运行结果 (17)5 基于窗函数法的FIR滤波器设计 (17)5.1 基本原理 (17)5.2 测试程序 (19)5.3 运行结果 (21)6 相关函数估计 (23)6.1 基本原理 (23)6.2 测试程序 (24)6.3 运行结果 (25)7 基于分段平均的功率谱估计 (25)7.1 基本原理 (25)7.2 测试程序 (27)7.3 运行结果 (28)8 源程序 (29)8.1 差分方程 (29)8.2 线性卷积 (29)8.3 离散傅里叶变换 (30)8.4 基于窗函数的FIR滤波器 (31)8.5 自相关函数 (34)8.6 welch法功率谱估计 (34)1 差分方程求解1.1 基本原理一个线性移不变离散系统可以用一个常系数线性差分方程来描述:其中,、为方程的系数(k=1,…,N;r=0,…,M)。
若给定输入信号及系统的初始条件,则可求出系统的输出,即方程的解。
利用Z变换求解差分方程,在初始条件为零的情况下:1.2 测试程序已知离散系统的差分方程为,输入信号为,求系统响应。
测试程序如下:clc;clear alla=[1,-3/4,1/8];b=[1,1/3,0]; %输入差分方程系数向量,不足补零对齐n=0:0.1:15;xn=(3/4).^n; %输入激励信号yn=filterRe(b,a,xn); %调用filterRe函数plot(n,xn,'-',n,yn,'k-');xlabel('n');ylabel('x(n),y(n)');title('差分方程');1.3 运行结果运行后得到如下信号图,其中下方为输入信号,上方为输出信号,即系统响应。
MATLAB大作业
=
46 7S+100
编程代码:num=46;
den=[7100]; plant= tf(num,den); 2)Proportional control:
1
P=300; contr=P; sys_cl=feedback(contr*plant,1);
Proportional-Derivative Control: P=300; D=10; contr=tf([DP],1); sys_cl=feedback(contr*plant,1);
8)编程代码: P=10; I=80; D=0; contr=tf([DPI],[1 0]); sys_cl5=feedback(contr*plant,1); step(sys_cl5); title('Closed-Loop step response:P=10,I=80,D=0'); 带 PID 控制器的闭环阶跃响应图如下:
14
一端安装于一铰支上,周期力矩 T(t)作用于 L 连杆的铰支端,铰安 装于滑块 Bm 上,一弹簧 k 沿方向支撑着滑块 Bm,一交变力 y(t)沿 y 方向作用于该滑块上,沿 y 方向的线性阻尼为 C1,摆动方向的转 动阻尼为 C2。写出摆锤 M 的运动方程,并用 Simulink 求摆锤 M 在 0<=t<=20s 时间段内,其轨迹沿 y 方向的变化曲线。已知, M = 2 kg, L = 0.8 m,k = 5 N/m,C1 = 0.25 N/m/s,C2 = 0.15N/m/s, T(t)= 1.2sin(t) y(t)= 0.85sin(0.8t) Φ (0)=0,y(0)=0 滑块 BM 和连杆 L 的质量不计,滑块 Bm 与侧壁的摩擦力不计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《MATLAB与系统仿真》大作业系别:电子信息工程系班级;09机械1班姓名:潘家辉学号:200900606106指导教师:姚金邮箱:334044940@2012年7月4日第一题建立M文件,内容如下。
for m=100:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);if m==m1^3+m2^3+m3^3disp(m)endend运行后结果如下图所示第二题新建Model文件命名pan,建立仿真模型如下仿真模型使用模块的提取与参数设置如下图Integrator设置Saturation设置Transfer Fcn设置Transport Delay设置运行结果如下建立pan2文件模型如图Transfer Fcn1设置如下其他元件设置和前面一样建立pan3文件如下Subsystem如下图其他设置与前面一样建立pan4文件如下Subsystem设置如下其他设置与前面一样第三题建立两个M文件内容如下Panjiahui.m文件function y=panjiahui(x)y=2*pi/4*(x(2)^2*x(3)^2-x(5)^2)*x(1)+pi/4*(100*x(2)^2*x(3)^2-x(6)^2)... *x(1)-pi/4*((x(2)*x(3)-10*x(3))^2-1.6*x(6))*0.8*x(1)-0.4*x(1)*pi/4*(x(2 )...*x(3)-10*x(3)-1.6*x(6))+pi/4*x(6)^2*(x(4)+x(8))+pi/4*(x(6)^2-x(7)^2)... *(x(4)+x(8));Panjiahuib.m文件function [c1,c2]=panjiahui(x)g(1)=17-x(2);g(2)=x(1)/x(3)-25;g(3)=8-x(1)/x(3);g(4)=2-x(3);g(5)=x(1)-x(4)+0.25*x(6)+20;g(6)=20-x(5);g(7)=x(5)-35;g(8)=150-x(6);g(9)=x(6)-200;g(10)=443168.7749/x(2)/x(3)/sqrt(x(1))-690;g(11)=3579919.2/x(1)/x(2)/x(3)^2-427.4;g(12)=3135363.4/x(1)/x(2)/x(3)^2-427.4;g(13)=sqrt((305*1000*x(4)/(2*x(2)*x(3)*cos(20)))^2/4+(0.58*305*1000)^2) .../(0.1*x(5)^3)-70;g(14)=sqrt((305*1000*x(4)/(2*x(2)*x(3)*cos(20)))^2/4+(0.58*10*305*1000) ...^2)/(0.1*x(6)^3-x(7)^3)-70;g(15)=sqrt((305*1000*x(4)/(2*x(2)*x(3)*cos(20)))^2/4+(0.58*305*1000)^2) .../(0.1*x(6)^3)-70;g(16)=3.233624*0.0000001*30000/48*x(8)^2*(x(4)+x(8))/(x(6)^4-x(7)^4)-0. 005;g(17)=1-x(4)/x(7);g(18)=50-x(2)*x(3);g(19)=x(7)/x(6)-0.6;g(20)=1-x(8)/650;c1=[g(2);g(3);g(10);g(11);g(12);g(13);g(14);g(15);g(16);g(17);g(18);g(1 9)];c2=0;输入一下内容x0=[48 17 2 105 20 150 105 650];A=[0 -1 0 0 0 0 0 0;0 0 -1 0 0 0 0 0;1 0 0 -4 0 0.25 0 0;...0 0 0 0 -1 0 0 0;0 0 0 0 1 0 0 0;0 0 0 0 0 -1 0 0;0 0 0 0 0 1 0 0;...0 0 0 0 0 0 0 -1/650];b=[-17 -2 -20 -20 35 -150 200 -1];[x,f]=fmincon(@panjiahui,x0,A,b,[],[],[],[],@panjiahuib)运行结果如下第四题模型的建立建立的模型由一个机架模块、一个旋转铰模块、一个刚体模块、一个环境模块、一个铰传感器模块、一个示波器模块、一个混路器模块以及一个XY相图模块构成。
从它们各自的库中添加至panjiahui4.mbl的模型窗口中Ground模块Revolute设置Body模块设置Joint Sensor模块设置机械环境模块:打开机械环境模块参数对话框,保持默认值如图示:打开XY相图模块参数设置对话框,设定参数如图。
运行结果左图为系统相图,右图为单摆的角位移和角速度时程曲线第五题建立如下的模型文件UA,UB,UC设置如下Ua 设置phase为0 Ub设置phase为-120 Uc 设置phase为120 Universal Bridge设置Diode设置Selector设置电感L设置如下Saturation设置如下Transfer Fcn设置如下运行后结果如下第六题建立GUI文件建立17个静态文本框,4个动态文本框,一个滚动条和两个按钮M文件修改如下function pushbutton2_Callback(hObject, eventdata, handles)Close;function pushbutton1_Callback(hObject, eventdata, handles)A=get(findobj(gcf,'Tag','Edit_a'),'string');la=str2num(A);B=get(findobj(gcf,'Tag','Edit_b'),'string');lb=str2num(B);C=get(findobj(gcf,'Tag','Edit_c'),'string');lc=str2num(C);D=get(findobj(gcf,'Tag','Edit_d'),'string');ld=str2num(D);lmax=max([la,lb,lc,ld]);lmin=min([la,lb,lc,ld]);lo=2*(lmax+lmin)-(la+lb+lc+ld);ll=2*lmax-(la+lb+lc+ld);w0=get(findobj(gcf,'Tag','Text_w'),'string');w=str2num(w0);if (lo>0)&(ll<0)set(findobj(gcf,'Tag','Type'),'String',{'Ë«Ò¡¸Ë»ú¹¹!²»ÔÚÄ£ÄⷶΧ!'},'Fo regroundColor',[1,0,0]);elseif(lo<=0)&(ll<0)switch lmincase ldset(findobj(gcf,'Tag','Type'),'String',{'Ë«Çú±ú»ú¹¹!²»ÔÚÄ£ÄⷶΧ!'},'ForegroundColor',[1,0,0]);crankrocker.mcase laset(findobj(gcf,'Tag','Type'),'String',{'Çú±úÒ¡¸Ë»ú¹¹!'});crankrocker(la,lb,lc,ld,w);case lcset(findobj(gcf,'Tag','Type'),'String',{'Ë«Çú±ú»ú¹¹!µ«Ö÷¶¯¼þΪҡ¸Ë£¬²»ÔÚÄ£ÄⷶΧ!'},'ForegroundColor',[1,0,0],'Position',[0.75,0.26,0.25,0.1]) ;otherwise lbset(findobj(gcf,'Tag','Type'),'String',{'Ë«Ò¡¸Ë»ú¹¹!²»ÔÚÄ£ÄⷶΧ!'},'Fo regroundColor',[1,0,0]);endelseif ll>=0set(findobj(gcf,'Tag','Type'),'String',{'²»Âú×ã¸Ë³¤Ìõ¼þ!ÎÞ·¨½øÐÐÄ£Äâ!!' },'ForegroundColor',[1,0,0]);end;编写crankrocker.m文件内容如下function crankrocker(la,lb,lc,ld,w)L=[la,lb,lc,ld];sum=la+lb+lc+ld;la=la/sum*200;lb=lb/sum*200;lc=lc/sum*200;ld=ld/sum*200;L=[la,lb,lc,ld];a2=line([0,-3],[0,-6],'color','k','linestyle','-','linewidth',2);a3=line([0,3],[0,-6],'color','k','linestyle','-','linewidth',2);a4=line([-6,+6],[-6,-6],'color','k','linestyle','-','linewidth',2);a41=line([-1,-4],[-6,-9],'color','k','linestyle','-','linewidth',1);a42=line([-4,-7],[-6,-9],'color','k','linestyle','-','linewidth',1);a43=line([2,-1],[-6,-9],'color','k','linestyle','-','linewidth',1);a44=line([5,2],[-6,-9],'color','k','linestyle','-','linewidth',1);d2=line([ld,-3+ld],[0,-6],'color','k','linestyle','-','linewidth',2);d3=line([ld,3+ld],[0,-6],'color','k','linestyle','-','linewidth',2);d4=line([-6+ld,6+ld],[-6,-6],'color','k','linestyle','-','linewidth',2) ;d41=line([-1+ld,-4+ld],[-6,-9],'color','k','linestyle','-','linewidth', 1);d42=line([-4+ld,-7+ld],[-6,-9],'color','k','linestyle','-','linewidth', 1);d43=line([2+ld,-1+ld],[-6,-9],'color','k','linestyle','-','linewidth',1 );d44=line([5+ld,2+ld],[-6,-9],'color','k','linestyle','-','linewidth',1) ;theta_1=acos(((la+lb)*(la+lb)+ld*ld-lc*lc)/(2*(la+lb)*ld));theta_2=acos(((-la+lb)*(-la+lb)+ld*ld-lc*lc)/(2*(-la+lb)*ld));theta_0=theta_2-theta_1;theta0=theta_0/pi*180;set(findobj(gcf,'Tag','theta_0'),'String',num2str(theta0));K=(pi+theta_0)/(pi-theta_0);set(findobj(gcf,'Tag','K'),'String',num2str(K));gama_1=acos((lb*lb+lc*lc-(ld-la)*(ld-la))/(2*lb*lc));gama_2=acos((lb*lb+lc*lc-(ld+la)*(ld+la))/(2*lb*lc));if gama_2>=pi/2gama_2=pi-gama_2;endgama_0=min(gama_1,gama_2);gama0=gama_0/pi*180;set(findobj(gcf,'Tag','gama_0'),'String',num2str(gama0));ad=line([0,ld],[0,0],'color','k','marker','o','markersize',5,'linewidth ',1,'linestyle','-.');ax0=0;ay0=0;Va=complex(ax0,ay0);dx0=ld;dy0=0;Vd=complex(dx0,dy0);mm=90;for i=1:1:mmtheta(i)=2*i*pi/mm;bx0=la*cos(theta(i));by0=la*sin(theta(i));Vb(i)=complex(bx0,by0);theta_a(i)=angle(Vb(i));Vbd(i)=Vb(i)-Vd;theta_bda(i)=pi-angle(Vbd(i));lbd(i)=abs(Vbd(i));theta_cdb(i)=acos((lc*lc+lbd(i)*lbd(i)-lb*lb)/(2*lc*lbd(i)));theta_d(i)=theta_bda(i)+theta_cdb(i);cx0=ld-lc*cos(theta_d(i));cy0=lc*sin(theta_d(i));Vc(i)=complex(cx0,cy0);Vbc(i)=Vc(i)-Vb(i);theta_2(i)=angle(Vb(i));theta_3(i)=angle(Vbc(i));theta_4(i)=pi-theta_d(i);w2=w;R1=[-lb*sin(theta_3(i)) lc*sin(theta_4(i));lb*cos(theta_3(i))-lc*sin(theta_4(i))];R2=[w2*la*sin(theta_2(i)); w2*la*sin(theta_2(i))];Result_w=inv(R1)*R2;w3(i)=Result_w(1,1);w4(i)=Result_w(2,1);Ra=[-lb*sin(theta_3(i)) lc*sin(theta_4(i));-lb*cos(theta_3(i))-lc*sin(theta_4(i))];Ras=[w2*w2*la*cos(theta_2(i))+w3(i)*w3(i)*lb*cos(theta_3(i))-w4(i)*w4(i )*lc*cos(theta_4(i));w2*w2*la*sin(theta_2(i))+w3(i)*w3(i)*lb*sin(theta_ 3(i))-w4(i)*w4(i)*lc*sin(theta_4(i))];Result_a=inv(Ra)*Ras;a3(i)=Result_a(1,1);a4(i)=Result_a(2,1);endab=line([real(Va),real(Vb(i))],[imag(Va),imag(Vb(i))],'color','k','mark er','o','markersize',5,'linewidth',2,'linestyle','-');cd=line([real(Vd),real(Vc(i))],[imag(Vd),imag(Vc(i))],'color','k','mark er','o','markersize',5,'linewidth',2,'linestyle','-');bc=line([real(Vc(i)),real(Vb(i))],[imag(Vc(i)),imag(Vb(i))],'color','k' ,'marker','o','markersize',5,'linewidth',2,'linestyle','-');j=1;m=0;while m<100set(ab,'xdata',[real(Va),real(Vb(j))],'ydata',[imag(Va),imag(Vb(j))]); set(cd,'xdata',[real(Vd),real(Vc(j))],'ydata',[imag(Vd),imag(Vc(j))]); set(bc,'xdata',[real(Vc(j)),real(Vb(j))],'ydata',[imag(Vc(j)),imag(Vb(j ))]);set(findobj(gcf,'Tag','Text_Wc'),'String',num2str(w4(j)));set(findobj(gcf,'Tag','Text_Ac'),'String',num2str(a4(j)));drawnowj=j+1;if j>mmj=1;m=m+1;endend把3个文件放在同一个文件夹下,指派路径要改成所放文件的文件夹路径,更改如下,例如我所放文件在桌面\6下必须改成下面的路径点击开始模拟按钮结果如下第七题建立UGI文件如下建立23个按钮,1个静态文本框,和1动态文本框M内容文件如下function varargout = panjiahui7(varargin)global gloval1;global gloval2;global locaval;handles.flagnum=0;format longgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jisuanqi_OpeningFcn, ...'gui_OutputFcn', @jisuanqi_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});endfunction jisuanqi_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;guidata(hObject, handles);function varargout = jisuanqi_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')) ;endfunction pushbutton1_Callback(hObject, eventdata, handles)textString = get(handles.edit1,'String');if(strcmp(textString,'0.')==1)set(handles.edit1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);if((l-1)==0)set(handles.edit1,'String','0.')elseset(handles.edit1,'String',textString)endendglobal gloval1;global gloval2;global locaval;locaval= textString; %••__•¨¨backspace____••_••____________¡§•gloval2=locaval; %guidata(hObject,handles)function pushbutton2_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.edit1,'String','0.');guidata(hObject,handles)function pushbutton3_Callback(hObject, eventdata, handles)global locavalglobal gloval1global gloval2locaval=' ';gloval1=' ';gloval2=' ';set(handles.edit1,'String','0.');guidata(hObject,handles)function pushbutton4_Callback(hObject, eventdata, handles)global locaval;global gloval1;a = get(handles.pushbutton4,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton5_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton5,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton6_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton6,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton7_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton7,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton8_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton8,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton9_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton9,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton10_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton10,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton11_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton11,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton12_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton12,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton13_Callback(hObject, eventdata, handles) global locaval;global gloval1;a = get(handles.pushbutton13,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton14_Callback(hObject, eventdata, handles) global locaval;textString = get(handles.edit1,'String');textString=str2num(textString);textString=0-textString;textString=num2str(textString);set(handles.edit1,'String',textString);global gloval2gloval2=textString;guidata(hObject, handles);function pushbutton15_Callback(hObject, eventdata, handles) global locavala = get(handles.pushbutton15,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=a;guidata(hObject, handles);function pushbutton15_ButtonDownFcn(hObject, eventdata, handles) global locavala = get(handles.pushbutton15,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);function pushbutton16_Callback(hObject, eventdata, handles)a = get(handles.pushbutton16,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);% global flagnumglobal gloval1global locavallocaval=' ';% flagnum=1handles.flagnum=1;gloval1=b;guidata(hObject, handles);function pushbutton17_Callback(hObject, eventdata, handles)a = get(handles.pushbutton17,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global gloval1global locavallocaval=' ';handles.flagnum=2;gloval1=b;guidata(hObject, handles);function pushbutton18_Callback(hObject, eventdata, handles)a = get(handles.pushbutton18,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global gloval1global locavalhandles.flagnum=3;gloval1=b;guidata(hObject, handles);function pushbutton19_Callback(hObject, eventdata, handles)a = get(handles.pushbutton19,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global gloval1global locavallocaval=' ';handles.flagnum=4;gloval1=b;guidata(hObject, handles);function pushbutton20_Callback(hObject, eventdata, handles) global locavaltextString = get(handles.edit1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.edit1,'String',textString);locaval=' ';handles.flagnum=0;guidata(hObject,handles)function pushbutton21_Callback(hObject, eventdata, handles) global locavaltextString = get(handles.edit1,'String');textString=str2num(textString);textString=textString*textString;textString=num2str(textString);set(handles.edit1,'String',textString);locaval=' ';handles.flagnum=0;guidata(hObject,handles)function pushbutton22_Callback(hObject, eventdata, handles) global locavaltextString = get(handles.edit1,'String');textString=str2num(textString);textString=1/textString;textString=num2str(textString);set(handles.edit1,'String',textString);locaval=' ';handles.flagnum=0;guidata(hObject,handles)function pushbutton23_Callback(hObject, eventdata, handles) global gloval1global gloval2global locavallocaval=' ';%flagnumif(strcmp(gloval1,' ')==1)return;elsegloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;temp1=case1;%••__•¨¨___________•¨¬temp2=case2;temp3=case3;temp4=case4;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch (handles.flagnum);case 1set(handles.edit1,'String',case1);gloval1=num2str(temp1);gloval2=num2str(gloval2);case 2set(handles.edit1,'String',case2);gloval1=num2str(temp2);gloval2=num2str(gloval2);case 3set(handles.edit1,'String',case3);gloval1=num2str(temp3);gloval2=num2str(gloval2);case 4set(handles.edit1,'String',case4);gloval1=num2str(temp4);gloval2=num2str(gloval2);endendguidata(hObject,handles)function figure1_KeyPressFcn(hObject, eventdata, handles) if get(gcf,'CurrentCharacter')==13 %enterpushbutton23_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==48 %numpad0pushbutton13_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==49 %numpad1pushbutton10_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==50 %numpad2pushbutton11_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==51 %numpad3pushbutton12_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==52 %numpad4pushbutton7_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==53 %numpad5pushbutton8_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==54 %numpad6pushbutton9_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==55 %numpad7pushbutton4_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==56 %numpad8pushbutton5_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==57 %numpad9pushbutton6_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==46 %.pushbutton15_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==47 %/pushbutton16_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==42 %*pushbutton17_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==45 %-pushbutton18_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==43 %+pushbutton19_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==8 %backspacepushbutton1_Callback(hObject, eventdata, handles);% guidata(hObject,handles);elseif get(gcf,'CurrentCharacter')==27 %deletepushbutton3_Callback(hObject, eventdata, handles); % guidata(hObject,handles);end%=============================================运行后结果图下。