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) 记录负载电流的波形,并进行谐波分析。
- 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%=============================================运行后结果图下。