华科Matlab大作业_铣床控制器设计

合集下载

MATLAB中常用的控制系统设计技巧

MATLAB中常用的控制系统设计技巧

MATLAB中常用的控制系统设计技巧MATLAB是一种广泛应用于科学与工程计算的高级编程语言和环境。

在控制系统设计中,MATLAB提供了许多强大的工具和函数,可以帮助工程师进行系统建模、分析与设计。

以下是MATLAB中常用的控制系统设计技巧的介绍:1.系统建模2.系统分析3.控制器设计在MATLAB中,有多种方法可以进行控制器设计。

根据系统的需求,可以选择经典(SISO)控制器设计方法,如PID控制器,或者现代(MIMO)控制器设计方法,如线性二次调节器(LQR)。

MATLAB提供了一系列用于系统控制器设计的函数和工具箱,如pidtool、sisotool和lqr。

4.基于优化的设计MATLAB中结合了优化算法和系统设计的功能,可以实现基于优化的控制器设计。

使用MATLAB的优化工具箱,可以通过最小化目标函数来优化控制器的性能指标。

例如,可以使用fmincon函数来优化控制器的参数,以满足给定的性能要求。

5.系统仿真MATLAB中的Simulink工具可以用于系统建模和仿真。

Simulink提供了一个图形化界面,用户可以使用不同的模块来描述系统的结构和行为。

通过连接这些模块,可以构建一个完整的系统模型,并对其进行仿真。

这种图形化的建模和仿真环境使得系统设计更加直观和灵活。

6.多变量系统分析MATLAB中的控制系统工具箱提供了多变量系统分析的功能。

可以使用函数如sigma(奇异值分解)、svd(奇异值分解)等来进行系统的频域分析。

此外,MATLAB还提供了一些用于多变量控制器设计的工具,如H∞合成和μ合成。

7.稳定性分析稳定性是控制系统设计中的一个重要指标。

MATLAB中提供了一些函数和工具箱,可以帮助用户分析系统的稳定性。

例如,可以使用margin 函数来计算系统的增益裕度和相位裕度,以评估系统的稳定性。

控制工程基础matlab大作业要求及模板2019秋季-机设专业

控制工程基础matlab大作业要求及模板2019秋季-机设专业

控制工程基础大作业MATLAB软件应用2019年秋季学期专业名称:机械设计制造及其自动化专业班级:姓名:学号:成绩:授课教师:一、教学目的:使学生能够掌握现代工程工具MATLAB软件使用的基本方法,能够应用MATLAB软件对控制系统进行建模及性能分析。

二、内容要求:1.控制系统建模(1)确定所研究的闭环反馈控制系统,清晰表述系统的具体工作原理及参数条件;(同学们可以通过查阅相关的文献资料、生活或者工程实践中的实际案例确定自己所研究的闭环反馈控制系统)(2)绘制闭环反馈控制系统的职能方框图、函数方框图,并建立系统的传递函数形式的数学模型。

2.应用MATLAB软件进行控制系统性能分析针对所选定的闭环控制系统,应用MATLAB软件完成以下工作:(1)控制系统频域特性分析分别使用nyquist函数和bode函数绘制系统的开环奈奎斯特图和开环波德图,并附程序清单。

(2)控制系统稳定性分析判定控制系统的稳定性,并进行控制系统相对稳定性分析,计算稳定性裕量,并附程序清单。

(3)控制系统时域特性分析使用step函数绘制控制系统的单位阶跃响应曲线,分析控制系统响应的快速性指标,分析比较结构参数变化对系统性能的影响,并附程序清单。

三、作业书写注意事项:1.封皮格式按照此模板内容,不必更改,完整填写相应的个人信息;2.正文按照第二部分内容要求的顺序分项书写,给出运行结果并附上完整的编写程序清单(同时提交电子版程序);3.本模板及要求保留,另起一页书写正文的内容成果,A4纸双面打印,左侧装订;4.杜绝抄袭,如果雷同,按照零分计;5.抽查答辩,采用百分制记分,占期末总评成绩的10%。

《控制工程基础》MATLAB大作业评分标准控制工程基础大作业MATLAB软件应用2019年秋季学期专业名称:机械设计制造及其自动化专业班级:机设177 姓名:于子雄学号: 170456 成绩:授课教师:一、教学目的:使学生能够掌握现代工程工具MATLAB软件使用的基本方法,能够应用MATLAB软件对控制系统进行建模及性能分析。

MATLAB大作业

MATLAB大作业

偏置直动滚子推杆盘形凸轮机构设计推程运动规律:余弦加速度运动回程运动规律:正弦加速度运动凸轮机构的推杆在近休,推程,远休及回程段的凸轮转角偏置直动滚子推杆盘形凸轮机构已知参数推杆运动规律1)推程运动规律:余弦加速度运动推程运动方程式:s = h[1 - cos(πδ/δ0)]/ 2,v= πhωsin(πδ/δ0)/( 2δ0),a= π2hω2cos(πδ/δ0)/( 2δ02)2)回程运动规律:正弦加速度运动回程运动方程式:s = h [1-(δ/δ0’)+sin(2πδ/δ0’)/(2π) v = hω [cos(2πδ/δ0’-1)]/δ0’a = -2πhω2sin(2πδ/δ0’)/(δ0’2)滚子中心坐标:x=(s+s0)sinδ+ecosδy=(s+s0)cosδ-ecosδ其中s0=r02−e2实际轮廓曲线坐标:x′=x−r r cosθy′=y−r r sinθ其中sinθdxdδ(dδ)2+(dδ)2cosθ=−dydδ(dδ)2+(dδ)2计算压力角:α=tan−1dsdδ−er02−e2+s计算曲率半径:ρ=dxdδ2+dydδ2 3dδ∙2dδ2−dδ∙2dδ2计算程序符号的表示含义:r0 初选基圆半径x 理论轮廓曲线的x坐标y 理论轮廓曲线的y坐标X 实际轮廓曲线的x坐标Y 实际轮廓曲线的x坐标p 曲率半径s 推杆位移rr 滚子半径 a 压力角paamin 许用最小曲率半径pamin 实际曲率半径的最小值a1max 回程前压力角的最大值a2max 回程后压力角的最大值e 偏距h 推杆行程a1 推程许用压力角a2 回程程许用压力角dar0 每次修正r0所加的长度N 计算点数k1 近休角k2 推程角k3 远休角k4 回程角kamin 实际曲率半径最小值所对应的角度k1max 回程前压力角的最大值所对应的角度k2max 回程后压力角的最大值所对应的角度子程序1计算最大压力角:function [amax,kmax]=yalijiao1(a,N1,b)amax=0;kmax=0;amax=max(a);for i=1:N1if a(i)==amaxkmax=i*b;endendend子程序2计算最小曲率半径:function [pamin,kamin]=qulv(p,b,N)pamin=0;kamin=0;for i=1:N-1p(i)=abs(p(i));endpamin=min(p);for i=1:N-1pamin=min(p)if p(i)==paminkamin=i*b;endendend子程序3计算回程前的压力角及修正r0:function [A,r0]=haha(r0,rr,e,h,a1,dar0,N,k1,k2,k3,k4)N1=(k1+k2)/360*N;eta=pi/180;%化为弧度while(1)s0=(r0^2-e^2)^(1/2);syms k s dk ds d2k d2sn1=k1/360*N;k11=linspace(0,k1,n1);s1=k11./k11.*0;x1=e.*cos(k11.*pi/180)+(s0+s1).*sin(k11.*pi/180);y1=(s0+s1).*cos(k11.*pi/180)-e.*sin(k11.*pi/180);n2=k2/360*N;k22=linspace(k1,k1+k2,n2);s2=(h/2).*(1-cos(pi.*(k22-k1)/k2));x2=e.*cos(k22.*pi/180)+(s0+s2).*sin(k22.*pi/180);y2=(s0+s2).*cos(k22.*pi/180)-e.*sin(k22.*pi/180);x=[x1,x2];y=[y1,y2];k=[k11,k22];s=[s1,s2];dx=diff(x)./diff(k);dk=k(1:end-1);dy=diff(y)./diff(k);dk=k(1:end-1);ds=diff(s)./diff(k);dk=k(1:end-1);ds(N1)=0;for i=1:N1f(i)=(ds(i)-e)/(sqrt(r0^2-e^2)+s(i));a(i)=atan(f(i));%计算a压力角A(i)=abs(a(i))/eta;if A(i)>a1r0=r0+dar0;break;endendif i==N1break;endendend子程序4计算回程后的压力角及修正r0:function [A,r0]=hahaha(r0,rr,e,h,a2,dar0,N,k1,k2,k3,k4) N2=(k3+k4)/360*N;b=360/N;eta=pi/180;%化为弧度while(1)s0=(r0^2-e^2)^(1/2);syms k s dk ds d2k d2sn3=k3/360*N;k33=linspace(k1+k2,k1+k2+k3,n3);s3=k33./k33.*h;x3=e*cos(k33*pi/180)+(s0+h).*sin(k33*pi/180);y3=(s0+h).*cos(k33*pi/180)-e*sin(k33*pi/180);n4=k4/360*N;k44=linspace(k1+k2+k3,k1+k2+k3+k4,n4+1);s4=h.*(1-(k44-k1-k2-k3)./k4+sin(2*pi.*(k44-k1-k2-k3)./k4)/(2*pi));x4=e.*cos(k44*pi/180)+(s0+s4).*sin(k44*pi/180);y4=(s0+s4).*cos(k44*pi/180)-e*sin(k44*pi/180);x=[x3,x4];y=[y3,y4];k=[k33,k44];s=[s3,s4];dx=diff(x)./diff(k);dk=k(1:end-1);dy=diff(y)./diff(k);dk=k(1:end-1);ds=diff(s)./diff(k);dk=k(1:end-1);ds(N2)=0;for i=1:N2f(i)=(ds(i)-e)/(sqrt(r0^2-e^2)+s(i));a(i)=atan(f(i));%计算a压力角A(i)=abs(a(i))/eta;if A(i)>a2r0=r0+dar0;break;endendif i==N2break;endendend子程序5计算曲率半径,并修正r0,计算理论轮廓曲线坐标和实际轮廓曲线的坐标及曲率半径,拖杆位移:function [x,y,X,Y,p,s,r0]=qulvvv(r0,rr,e,h,paamin,dar0,N,k1,k2,k3,k4)eta=pi/180;%化为弧度i=1;while(1)s0=(r0^2-e^2)^(1/2);syms k s dk ds d2k d2sn1=k1/360*N;k11=linspace(0,k1,n1);s1=k11./k11.*0;x1=e.*cos(k11.*pi/180)+(s0+s1).*sin(k11.*pi/180);y1=(s0+s1).*cos(k11.*pi/180)-e.*sin(k11.*pi/180);n2=k2/360*N;k22=linspace(k1,k1+k2,n2);s2=(h/2).*(1-cos(pi.*(k22-k1)/k2));x2=e.*cos(k22.*pi/180)+(s0+s2).*sin(k22.*pi/180);y2=(s0+s2).*cos(k22.*pi/180)-e.*sin(k22.*pi/180);n3=k3/360*N;k33=linspace(k1+k2,k1+k2+k3,n3);s3=k33./k33.*h;x3=e*cos(k33*pi/180)+(s0+h).*sin(k33*pi/180);y3=(s0+h).*cos(k33*pi/180)-e*sin(k33*pi/180);n4=k4/360*N;k44=linspace(k1+k2+k3,k1+k2+k3+k4,n4);s4=h.*(1-(k44-k1-k2-k3)./k4+sin(2*pi.*(k44-k1-k2-k3)./k4)/(2*pi));x4=e.*cos(k44*pi/180)+(s0+s4).*sin(k44*pi/180);y4=(s0+s4).*cos(k44*pi/180)-e*sin(k44*pi/180);x=[x1,x2,x3,x4];y=[y1,y2,y3,y4];k=[k11,k22,k33,k44];s=[s1,s2,s3,s4];dx=diff(x)./diff(k);dk=k(1:end-1);dy=diff(y)./diff(k);dk=k(1:end-1);ds=diff(s)./diff(k);dk=k(1:end-1);d2x=diff(dx)./diff(dk);d2y=diff(dy)./diff(dk);d2y(N)=0;dy(N)=0;dx(N)=0;d2x(N)=0;while(1)p(i)=(dx(i)^2+dy(i)^2)^(3/2)/(dx(i)*d2y(i)-dy(i)*d2x(i));%计算曲率半径pp(i)=abs(p(i))if pp(i)-rr<paaminr0=r0+dar0;i=1;break;elsefor ii=1:Nsino(ii)=dx(ii)/(dx(ii)^2+dy(ii)^2)^0.5;coso(ii)=(-1)*dy(ii)/(dx(ii)^2+dy(ii)^2)^0.5;X(ii)=x(ii)-rr*coso(ii); %定义实际轮廓线的X座标Y(ii)=y(ii)-rr*sino(ii); %定义实际轮廓线的Y座endendi=i+1;if i==Nbreak;endendif i==Nbreak;endendend主程序function[r0,x,y,X,Y,p,s,a,pamin,kamin,a1max,k1max,a2max,k2max]=zuizhong(r0,rr,e,h,a1,a2,paamin,dar0 ,N,k1,k2,k3,k4)N1=(k1+k2)/360*N;N2=(k3+k4)/360*N;b=360/N;eta=pi/180;%化为弧度a11=0;a22=0;s=0;pamin=0;kamin=0;a1max=0;k1max=0;a2max=0; k2max=0;while(1)while(1)[a11,r0]=haha(r0,rr,e,h,a1,dar0,N,k1,k2,k3,k4);%计算符合推程许可压力角的修正的r0r1=r0;[a22,r0]=hahaha(r0,rr,e,h,a2,dar0,N,k1,k2,k3,k4);%计算符合回程许可压力角的修正的r0r2=r0;if r0~=r1break;else[x,y,X,Y,p,s,r0]=qulvvv(r0,rr,e,h,paamin,dar0,N,k1,k2,k3,k4);%计算满足最小许可曲率半径条件的修正的r0,计算实际轮廓曲线坐标和理论轮廓曲线坐标,及曲率半径r3=r0;if r0~=r2break;endendif r0==r3break;endendif r0==r3break;endend[paminkamin]=qulv(p,b,N);[a1max k1max]=yalijiao1(a11,N1,b);[a2max k2max]=yalijiao1(a22,N2,b);a=[a11 a22];figure(1);plot(x,y);hold on;t=linspace(0,2*pi,N);x=r0*cos(t);y=r0*sin(t);plot(0,0,'*',x,y,X,Y);title('凸轮的理论轮廓曲线');axis([-70,70,-70,70]);axis square;end只需输入[r0,x,y,X,Y,p,s,a,pamin,kamin,a1max,k1max,a2max,k2max]=zuizhong(20,14,10,30,40,70,4.2,1,72 ,45,165,50,100)即可得到所需图形和数据。

华科电气matlab第一次作业

华科电气matlab第一次作业

第一次作业(2015.10.27)目的:熟悉MA TLAB 的基本应用要求:用editor 对程序进行编辑和调试,形成相应的脚本文件(*.m )。

1.1若已知某电路参数,输入电压,绘制其输出电压的波形如图1,已知:R1=3Ω,R3=6Ω,C=1uF ;us=18V ,is=3A 。

在零初始条件下,开关s 开路,当t=0时,开关S 闭合,求uc ,并画出波形;图1下列程序仅供参考(注:本例中的RC 电路非图1所示的电路):已知一阶RC 电路的端电压的表达式为 10s ~0 ,62==-t e u t ,试绘制电压波形u 。

t=0:0.1:10;u=6*exp(-2*t);plot(t,u);title('RC response');xlabel('t/s');ylabel('V/V')grid解得u = -12+12/exp(t/(2*(e - 6)))t=0:1e-8:1e-5; %以10-8为间隔,在0到10-5区间内取点u=12*exp(-2e 6*t)-12; %算出t 时刻对应的电压值plot(t,u); %以t 为横坐标,u 为纵坐标画图title('RC response'); %以RC response 为标题xlabel('t/s'); %以t/s 为横坐标ylabel('V/V') %以V/V 为纵坐标grid2. 已有两组测试数据不等的曲线,对其进行拟合和插值处理。

2.1给例程2.1加入注释,说明程序的用途和调试结果,尝试修改x,y,或polyfit的不同设置。

熟悉fitting工具例程2.1:clear;clc;close;%删除工作空间的所有变量,删除命令窗口的所有变量,关掉图形x=0:0.1:2*pi; %在0到2pi范围内,以0.1为步长,随机生成样本点y = sin(x)+0.5*rand(size(x)); %随机矩阵生成yp = polyfit(x,y,4) %拟合成4阶多项式y1= polyval(p,x); %求多项式y1的值plot(x,y, '+',x,y1, '-r') %绘制y与x的函数关系曲线title('fitting')%曲线命名为fitting2.2 给例程2.2加入注释,说明程序的用途和调试结果,尝试修改xs,ys,或xi,或interp1的不同设置,熟悉插值的用法。

基于MATLAB的PID控制器设计

基于MATLAB的PID控制器设计

基于MATLAB的PID控制器设计PID控制器是一种常见的反馈控制器,广泛应用于工业控制系统中。

它通过测量被控变量与目标值之间的差异,根据比例、积分和微分三个参数对控制输入进行调整,以实现对系统的稳定性、精度和响应速度的控制。

MATLAB是一个功能强大的数学计算软件,提供了丰富的工具和功能,可以方便地进行PID控制器设计。

下面将介绍基于MATLAB的PID控制器设计步骤和方法。

1.确定被控对象:首先需要确定需要控制的对象,即被控变量。

可以是温度、速度、位置等物理变量。

2.建立数学模型:在进行PID控制器设计之前,需要建立被控对象的数学模型。

可以使用系统辨识方法或根据物理原理进行建模。

3.设计PID控制器:PID控制器由比例(P)、积分(I)和微分(D)三个参数组成。

这些参数的合理选择对于控制器性能的好坏至关重要。

a.比例参数P:控制器输出的比例与误差的关系决定了控制器的灵敏度。

通过调整P参数的大小可以实现控制系统的稳定性和响应速度之间的折衷。

b.积分参数I:控制器积分误差的能力可以用来补偿系统误差和消除静态误差。

但是过大的积分参数可能导致系统震荡。

c.微分参数D:微分参数用来预测系统的变化趋势,通过减小过度调整和减少超调现象。

PID控制器的输出可以表示为:u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt其中,u(t)为控制器的输出信号,e(t)为目标值与被控变量之间的差异,Kp、Ki、Kd为比例、积分和微分参数。

4. 参数调整:PID控制器的性能取决于参数的选择和调整。

在MATLAB中,可以使用PID Tuner工具进行参数调整。

该工具可以自动化地对PID参数进行优化,以达到系统的最佳稳定性和性能。

5.控制器实现:设计好PID控制器后,需要将其应用于实际控制系统中。

在MATLAB中,可以使用控制系统工具箱提供的函数和命令来实现控制器的设计和实现。

总结而言,基于MATLAB的PID控制器设计可以通过确定被控对象、建立数学模型、设计PID控制器、参数调整和控制器实现等步骤来完成。

matlab练习题和答案

matlab练习题和答案

matlab练习题和答案控制系统仿真实验Matlab部分实验结果目录实验一 MATLAB基本操作 ............................................................................................ 1 实验二 Matlab编程 .................................................................................................... 5 实验三Matlab底层图形控制 ..........................................................................................6 实验四控制系统古典分析.............................................................................................12 实验五控制系统现代分析 . (15)实验六 PID控制器的设计 ...........................................................................................19 实验七系统状态空间设计.............................................................................................23 实验九直流双闭环调速系统仿真 (25)实验一 MATLAB基本操作1 用MATLAB可以识别的格式输入下面两个矩阵1233,,1443678,i,,,,2357,,,,2335542,i,,,, A,1357B,,,2675342,i,,3239,,,,189543,,,,1894,,再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。

MATLAB大作业

MATLAB大作业

MATLAB大作业一、作业说明MATLAB,即matrix laboratory,作为强大的数学处理软件,在化学化工领域中也有着极为广泛的应用。

而作为化工专业的学生,我认为本课学习MATLAB最直接和有效的意义在于,学生能够利用MATLAB处理实验数据和图形。

而对于MATLAB本身数学逻辑与语言的理解和掌握相信在之前所上交的“高斯消元法”和“二分法改进”两次小作业中得到体现。

因此,本次大作业我选择利用MATLAB处理化工原理实验中已经做过的离心泵实验来进行数据处理和图形制作。

其中实验原始数据皆由本人进行化工原理实验时所记录,水的密度和粘度表由文献查得。

二、编程思路整个M文件的目标是,利用现有的实验做得数据,进行实验数据的处理以及图形绘制,主要分为三个步骤完成:第一部分利用插值和拟合求实验温度下水的密度和粘度值;第二部分利用公式和矩阵变换计算离心泵的扬程He和轴功率Pzhou;第三部分作图:离心泵的扬程和轴功率随流量变化的曲线(双y轴)。

具体思路已在主程序文件中进行注释。

三、MATLAB主程序clearclose allformat compact,format shortecho off% 处理化工原理实验数据及图形制作% 第一部分求水的密度和粘度%已知条件:(1)实验温度为23.1℃% (2)网上查得15℃-30℃下水的密度和粘度表,记录为excel表% (3)此部分数据存放在原始数据表的sheet1和sheet2中%%主要方法:(1)MATLAB数据读入% (2)矩阵初等变换% (3)函数拟合% (4)函数插值%[num1]=xlsread('原始数据表');%读取excel表格中sheet1的数据x0=[num1(:,1)];%x0x表示温度值,sheet1的第1列y0=[num1(:,2)];%y0表示密度值,sheet1的第2列x1=x0';%进行转置,将列向量转换为相应的行向量y=y0';%进行转置,将列向量转换为相应的行向量%下面开始拟合密度随温度的变化函数n = length(y);ss = '';for k = 1:n;yy = num2str(y(k));ss = strcat(ss,['+''(' yy ')''*''x''^' num2str(n+1-k)]);%将数值转换为字符串格式,在MATLAB内将密度与温度的关系拟合为n次多项式endpause,ss%输出密度随温度变化函数式%%进行图像表示%x轴为温度,y轴为密度,表示在figure窗口的上半部分pause,subplot(2,1,1),line(x1,y,'linewidth',2),title('T-density'),xlabel('温度T/℃'),ylabel('密度/(kg?m^-3)')axis([15,30,995,1000])pause, x2=23.1,y1=interp1(x1,y,x2,'spline');%读取excel表格中sheet2的数据,接下来步骤与密度处理方法相同[num2]=xlsread('原始数据表',2);t0=[num2(:,1)];z0=[num2(:,2)];t1=t0';z=z0';n = length(z);rr= '';for k = 1:n;zz = num2str(z(k));rr = strcat(rr,['+''(' zz ')''*''t''^' num2str(n+1-k)]);endpause,rr%x轴为温度,y轴为粘度,表示在figure窗口的下半部分pause,subplot(2,1,2),line(t1,z,'linewidth',2),title('T-viscosity'), xlabel('温度T/℃'),ylabel('粘度/(Pa?s)')axis([15,30,0.0008 0.0012])pause,t2=23.1,z1=interp1(t1,z,t2,'spline');y1,z1%显示实验温度下流体的密度与粘度值,y1为密度,z1为粘度pause,close all%关闭图像窗口pause,clc% 第二部分计算离心泵的扬程He和轴功率Pzhou%%已知条件:(1)所需数据存放在原始数据表的sheet3中% (2)从左至右分别为“入口压强、出口压强、入口速度、出口速度、流量、电机功率”% (3)计算公式:He=pout-pin+0.2+(uout.^2-uin.^2)./(9.81*2);% Pzhou=P.*0.9;%%主要方法:(1)MATLAB数据读入% (2)矩阵初等运算与变换% (3)利用MATLAB进行实验数据处理%读取excel表格中sheet3的数据%“pin、pout、uin、uout、qv、P、He、Pzhou”分别表示为%“入口压强、出口压强、入口速度、出口速度、流量、电机功率、扬程和轴功率”[num3]=xlsread('原始数据表',3);pout0=[num3(:,2)];pin0=[num3(:,1)];uout0=[num3(:,4)];uin0=[num3(:,3)];qv0=[num3(:,5)];pout=pout0';pin=pin0';uout=uout0';uin=uin0';qv=qv0';He=pout-pin+0.2+(uout.^2-uin.^2)./(9.81*2);P0=[num3(:,6)];P=P0';Pzhou=P.*0.9;pause,clc%输出计算结果pause,HePzhouclose allpause,clcpause,%第三部分作图:离心泵的扬程和轴功率随流量变化的曲线(双y轴)%%pause,s1=He;s2=Pzhou;x5=qv;yWidth = 60;%设置两个y轴的间隔(像素)axesPosition = [110 40 200 200];%设置图像生成位置x5Limit = [min(x5) max(x5)];%设定自变量范围x5Offset=-yWidth*diff(x5Limit)/axesPosition(3);%建立图像,设置双变量与双坐标轴h1 = axes('Units','pixels','Position',axesPosition,...'Color','w','XColor','k','YColor','r',...'XLim',x5Limit,'YLim',[10 22],'NextPlot','add');h2 = axes('Units','pixels','Position',axesPosition+yWidth.*[-1 0 1 0],...'Color','none','XColor','k','YColor','m',...'XLim',x5Limit+[x5Offset 0],'YLim',[0.3 0.7],...'XTick',[],'XTickLabel',[],'NextPlot','add');xlabel(h1,'qv');ylabel(h2,'Pzhou');%给坐标轴命名pause,plot(h2,x5,s2,'*m');pause,plot(h1,x5,s1,'^r');四、工作日志density_viscosity(密度_粘度)clearclose allformat compact,format shortecho offss =+(999.126)*x^31+(999.05)*x^30+(998.97)*x^29+(998.888)*x^28+(998.802)* x^27+(998.714)*x^26+(998.623)*x^25+(998.53)*x^24+(998.433)*x^23+(998. 334)*x^22+(998.232)*x^21+(998.128)*x^20+(998.021)*x^19+(997.911)*x^18 +(997.799)*x^17+(997.685)*x^16+(997.567)*x^15+(997.448)*x^14+(997.327 )*x^13+(997.201)*x^12+(997.074)*x^11+(996.944)*x^10+(996.813)*x^9+(99 6.679)*x^8+(996.542)*x^7+(996.403)*x^6+(996.262)*x^5+(996.119)*x^4+(9 95.974)*x^3+(995.826)*x^2+(995.676)*x^1x2 =23.1000rr =+(0.0011404)*t^16+(0.0011111)*t^15+(0.0010828)*t^14+(0.0010559)*t^13+ (0.0010299)*t^12+(0.001005)*t^11+(0.000981)*t^10+(0.0009579)*t^9+(0.0009358)*t^8+(0.0009142)*t^7+(0.0008937)*t^6+(0.0008737)*t^5+(0.000854 5)*t^4+(0.000836)*t^3+(0.000818)*t^2+(0.0008007)*t^1t2 =23.1000y1 =997.5432z1 =9.3361e-04He =Columns 1 through 1021.7000 20.9069 19.9348 19.1688 18.7950 18.3412 17.9656 17.1311 16.2075 15.6581Columns 11 through 1415.1075 14.2847 13.4611 12.6543Pzhou =Columns 1 through 100.3240 0.3600 0.4050 0.4500 0.4770 0.5040 0.5310 0.5670 0.5940 0.6120Columns 11 through 140.6300 0.6390 0.6570 0.6750diary off五、附录附录1. 温度在15-30℃时,水的密度表附录2. 温度在15-30℃时,水的粘度表附录3. 离心泵实验原始数据记录表附录4. 生成图像。

利用Matlab进行电机控制和驱动系统设计

利用Matlab进行电机控制和驱动系统设计

利用Matlab进行电机控制和驱动系统设计电机控制和驱动是现代工业中非常重要的一环。

对于电机的控制和驱动系统设计,好的方法和工具可以提高控制系统的性能和效率。

在这方面,Matlab是一种被广泛使用且功能强大的工具。

本文将探讨如何利用Matlab进行电机控制和驱动系统设计。

1. 电机控制基础知识在开始讨论Matlab的应用之前,我们先来简要介绍一些电机控制的基础知识。

电机控制系统的目标是控制电机的速度、位置或者转矩等参数,以满足特定的要求。

最常见的电机控制方法包括电阻性、矢量控制、磁场定向控制等。

此外,电机控制还需要考虑诸如速度和位置传感器、控制器硬件等外部环境因素。

2. Matlab在电机控制中的应用Matlab作为一种功能强大的数学计算工具和编程环境,可以帮助工程师完成电机控制和驱动系统的设计和仿真。

在电机控制中,Matlab的应用主要分为以下几个方面:2.1 仿真建模Matlab提供了丰富的仿真工具和函数,可以对不同类型的电机进行仿真建模。

用户可以根据电机的参数和特性,利用Matlab构建电机控制系统的模型,并进行仿真分析。

仿真结果可以帮助工程师评估不同控制策略的性能,并优化系统设计。

2.2 控制算法设计Matlab中的控制系统工具箱提供了多种控制算法的设计和调试功能。

用户可以利用这些工具箱设计电机控制系统的控制算法,包括传统的PID控制、模型预测控制、自适应控制等。

Matlab还提供了控制系统分析的函数和工具,以评估设计算法的稳定性和鲁棒性。

2.3 码中断和实时控制对于一些实时控制应用,例如电机控制系统中的编码器中断等,Matlab提供了相应的函数和工具箱来处理这些实时数据。

用户可以通过Matlab编写程序,实现电机控制系统的实时数据采集和处理,并实时调整控制参数。

2.4 驱动系统设计除了控制系统的设计,Matlab还可用于电机驱动系统的设计。

通过Matlab的仿真和建模功能,用户可以评估不同的驱动系统设计方案,包括不同的功放电路、驱动器拓扑结构等。

华科专业选修课简介

华科专业选修课简介

专业选修课简介——陈天健《计算机辅助制造技术基础》:金老师上课,很严格,上课不允许说话,不用PPT,全部靠板书。

内容主要是把高等数学中的曲线论深入地学了一遍,外加一些数控加工的知识。

内容还是很有用的。

开卷考试,考试里面要算计算题,偏微分叉乘之类的。

《数控加工工艺与编程技术》彭芳瑜老师上课,讲得不错。

主要内容是讲两轴三轴五轴数控加工的基本知识,有UG数控编程的大作业。

感觉属于科普性的,总体不难。

开卷考试。

《计算机控制系统》老师上课比较无趣,管理也不严。

内容是在工程控制基础那门课(连续系统)的基础上,再讲离散控制系统。

同时讲一点硬件。

没有考试,靠交大作业打分。

大作业是一个计算机控制系统的软硬件整体设计。

《机电产品数字化设计制造与管理》易传云老师上课,很不错,上课讲解得很好很有意思。

内容覆盖面很广,把CAD/CAM/CAE/PDM都讲了一遍,属于科普型,不深入,不难。

没有考试,交大作业。

大作业要求设计一个机电产品,从概念设计与市场分析开始,到详细设计,到有限元分析校核。

《仿生机器人学概论》老师不记得叫什么了,上课水平很一般,经常念PPT。

内容都是飘过,不是很系统。

从生物力学到仿生到机器人都讲了一点。

没有考试,最后靠做一个相关领域分析报告以及上台答辩打分,感觉比较酱油。

《机器人技术基础》老师是个博后,讲课水平一般,感觉像自娱自乐,大家都没听懂。

主要内容是机器人基本数学描述、运动学、动力学、轨迹规划等等。

这门课确实很难,全是矩阵,数学功底一定要好。

但是如果啃下来的话非常有用,研究生很多科研都会用到里面的内容。

开卷考试,考试都是原题,可以找历年试卷(如果不是原题估计没几个人能够做出来)。

《柔性制造自动化概论》老师讲课还不错,有时候扯一点人生大道理。

内容是柔性制造系统,关注于系统层次。

有现场课,可以去看老师实验室开发的设备。

没有考试,有大作业,就是设计一个柔性制造系统。

《机器视觉自动检测技术》老师讲话有点点口吃,不过老师人很好,课程内容的组织还是蛮好的。

华中科技大学现代控制理论 7.7 Matlab问题

华中科技大学现代控制理论 7.7 Matlab问题

(1) 函数 函数care()
函数care()的主要调用格式为 [P,L,K] = care(A,B,Q,R) [P,L,K] = care(A,B,Q) 其中,输入格式中的矩阵A和B分别为线性定常连续系统状态空 间模型的系统矩阵和输入矩阵, Q和R分别二次型目标函数的加权矩阵。 第2种调用格式的矩阵R缺省为单位矩阵。
连续时间线性定常系统的二次型最优控制(3/6) 连续时间线性定常系统的二次型最优控制
输出格式的P为连续黎卡提矩阵代数方程 AτP+PA-PBR-1BτP=-Q 的对称矩阵解,K为线性二次型最优控制的状态反馈矩阵R-1BτP, L为闭环系统的极点。 (2) 函数 函数lqr() 函数lqr()的主要调用格式为: [K,P,L] = lqr(A,B,Q,R) 其中,输入输出格式中各矩阵的意义与函数care()一致。
J =∫

0
τ x
2 0 2 0 1 x + 2u dt
下的最优控制律并仿真闭环控制系统的状态响应。
连续时间线性定常系统的二次型最优控制(5/6) 连续时间线性定常系统的二次型最优控制
Matlab程序 程序m7-1如下。 如下。 程序 如下
A=[-1 -2; -1 3]; B=[2; 1]; Q=[2 0; 0 1]; R=2; x0=[2; -3]; K=lqr(A,B,Q,R) csys=ss(A-B*K,B,[],[]); [y,t,x]=initial(csys,x0); plot(t,x); % 赋值状态方程各矩阵 % 赋值二次型目标函数的权矩阵 % 赋值初始状态 % 求线性二次型最优控制的状态反馈矩阵K % 建立闭环系统模型 % 求闭环系统的状态响应 % 绘制状态响应曲线

Matlab在机械设计中的应用大作业

Matlab在机械设计中的应用大作业

Matlab在机械设计中的应⽤⼤作业Matlab在机械设计中的应⽤⼤作业1、试⽤解析综合法设计⼀个曲柄摇杆机构。

已知机构⾏程速度变化系数 1.25k=,摇杆CD的长度3250mml=,摆⾓30ψ=,要求机构的最⼩传动⾓minγ≥40。

确定曲柄摇杆机构各构件杆长调⽤函数的编制:function f=funct(x)k=1.25;theta=pi*(k-1)/(k+1);yg=250;pis=pi/6gamin=2*pi/9f1=(x(2)+x(1))^2+(x(2)-x(1))^2-2*(x(2)+x(1))*(x(2)-x(1))*cos(theta)-(2*yg*sin(pis/2))^2; f2=yg^2+x(3)^2-2*yg*x(3)*cos(x(4))-(x(2)-x(1))^2;f3=yg^2 +x(3)^2-2*yg*x(3)*cos(x(4)+pis)-(x(2)+x(1))^2;f4=yg^2+x(2)^2-2*yg*x(2)*cos(gamin)-(x(3)-x(1))^2;f=[f1;f2;f3;f4];主函数:>> x0=[50 120 200 0.5];>> k=1.25;>> theta=pi*(k-1)/(k+1);>> yg=250;>> gamin=2*pi/9;>> x=fsolve(@funct,x0)求解结果:Equation solved.fsolve completed because the vector of funct values is near zeroas measured by the default value of the funct tolerance, andthe problem appears regular as measured by the gradient.x =62.9934 105.9045 245.0702 0.17242、四连杆机构如图1 所⽰,已知各构件的尺⼨L1, L2, L3, L4及原动件1的⾓位移θ1和等⾓速度ω1,求构件2和3的⾓位移θ 2 ,θ3,⾓速度ω2,ω3,⾓加速度ε2,ε3。

华科matlab大作业铣床(themillingmachine)的系统设计资料

华科matlab大作业铣床(themillingmachine)的系统设计资料

铣床(the milling machine)的系统设计一、引言本学期开始学习《MATLAB语言、控制系统分析与设计》,其实最早接触matlab是在学习概率论时。

在老师的讲解与自己平时的练习中,不断地使用和学习matlab软件。

其实一开始学习的目标就不局限于控制系统领域,希望了解该软件的各种用途。

当然了,最基本的用途是绘图。

经过半个学期的汲取,觉得它用途广泛,功能强大。

我最喜欢的就是它的仿真(simulink),也许是对于初学者来说最简单的操作。

学习matlab的同时,也同时加深了对控制系统知识的掌握。

自控中的绘图可以在matlab下的响应分析的图形用户界面(ltiview)中建立。

此外还有sisotool等自控方面的超强工具箱。

图10.1铣床模型图10.2铣床系统方框图铣床系统的开环传递函数2()(1)(5)G s s s s =++ (10.1)设计要求:重新设计滞后校正器参数1)对于斜坡输入2()aR s s =,稳态误差小于8a2)使校正后系统的阶跃响应超调量..20%P O ≤对于(1)参数a 不影响系统的设计,在以下分析中作为‘1’处理本章的核心是滞后校正系统,但之所以对铣床系统采用滞后校正,理由见(四)深入探讨中频域下的分析。

另外我们超前校正器、超前-滞后校正器、PI 校正器、PD 校正器、PID 校正器。

二、设计方法以运用matlab 编程为主,其他各种工具箱为辅助根据极点、零点、增益输入原系统开环传递函数,并加入单位负反馈构成闭环系统 程序1G=zpk([],[0,-1,-5],2);%原系统开环传递函数 sys=feedback(G,1);%单位负反馈,构成闭环 得到2()(1)(5)G s s s s =++ (10.2)22( 5.096)(0.90420.3925)sys s s s =+++ (10.3)第一个要求稳态误差小于a/8 程序2 tf1=10; a=1;t=[0:0.1:tf1];u=a*t;%斜坡输入y_t=lsim(sys,u,t);plot(t,y_t,'b-',t,u,'r:') yss=y_t(length(t));y_deta=t(length(t))-yssif y_deta<(a/8)%稳态误差小于a/8disp('yes')elsedisp('no')end图10.3原系统单位斜坡输入的稳态误差得到原系统E(s)=2.500 no根据闭环传递函数求原系统性能程序3step(sys);%加阶跃响应Step ResponseTime (sec)A m p l i t u d e051015图10.4原系统阶跃响应第二个要求超调量小于20%,则根据阻尼比与超调量的函数关系..100*P O = (10.4)程序4sigmaN=0.2;%要求超调上限 A=log(1/sigmaN);zeta=sqrt((A^2)/(pi^2+A^2)); 得到阻尼比0.4559ξ= 引入滞后校正系统(),c K s z G s p z s p α+=<+,zp α=(10.5) 先考虑要求(1)lim ()lim ()()8s c s a asE s sG s G s →→=<(10.6)lim ()()8c sG s G s ⇒> (10.7)22855vcomp K z z K K p p α⎛⎫⎛⎫⎛⎫⎛⎫⇒==> ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭ (10.8)210(1)(5)Ks s s ⇒+=++ (10.9)画出其根轨迹并且找到满足0.4559ξ>的点,程序5n=[2];d=[1 6 5 0]; rlocus(n,d),hold on gridz=0.4559; hs=12*z;hc=12*sqrt(1-z^2);plot([0 -hs],[0 hc],'--',[0 -hs],[0 -hc],'--') text(-9.5,1,'Desired performance region')会显示Select a point in the graphics window 之后在图上找符合条件的点Root LocusReal AxisI m a g i n a r y A x i s图10.5原系统的根轨迹来求取K 的临界值为了精确性采用Data Cursor ,得到闭环极点p=-0.401+0.782i2.02K =Root LocusReal AxisI m a g i n a r y A x i s图10.6找寻K 临界值仅当引入增益K 下,系统的阶跃响应程序6G=zpk([],[0,-1,-5],2);%原系统开环传递函数 G2=2.02*G;%引入K/alphasys2=feedback(G2,1);%单位负反馈,构成闭环 step(sys2)Step ResponseTime (sec)A m p l i t u d e0510150.20.40.60.811.21.4图10.7引入增益2.02下的阶跃响应要满足要求一则:22855vcomp K z z K K p p α⎛⎫⎛⎫⎛⎫⎛⎫⇒==> ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭ (10.10)根据K ,并取10vcomp K =程序7Kvc=10;%Kvcopm>8 Kgang=2.02;%K/alpha Kvu=2*Kgang/5;alpha=Kvc/Kvu %alpha 即z/p 得到零点与极点的倍数12.3762α=得到了校正后系统开环传递函数0.012382() 4.04(1)(5)(0.001)s G s s s s s +=+++ (10.11)看系统是否符合要求(1)程序8G=zpk([],[0,-1,-5],2);%原系统开环传递函数p=0.001;z=alpha*p;nc=[1 z];dc=[1,p];Gc=2.02*tf(nc,dc);G2=G*Gc;%引入K/alphasys2=feedback(G2,1);%单位负反馈,构成闭环系统建立后,输入斜坡信号程序9tf1=10000;a=1;t=[0:0.1:tf1];u=a*t;%斜坡输入y_t=lsim(sys2,u,t);plot(t,y_t,'b-',t,u,'r:')yss=y_t(length(t));y_deta=u(length(t))-yssif y_deta<(a/8)%稳态误差小于a/8disp('yes')%符合要求(1)elsedisp('no')%不符合end得到==yesE s y a()_det0.100图10.8第一次校正后系统斜坡响应接着检验其阶跃响应程序10G=zpk([],[0,-1,-5],2);%原系统开环传递函数p=0.001;z=alpha*p;nc=[1 z];dc=[1,p]; Gc=2.02*tf(nc,dc);G2=G*Gc;%引入K/alphasys2=feedback(G2,1);%单位负反馈,构成闭环 step(sys2)Step ResponseTime (sec)A m p l i t u d e01020304050600.20.40.60.811.21.4图10.9第一次校正后的系统阶跃响应超调21.2%,需要继续调整令参数稍微改变, 2.02,1.90,2.1K程序11G=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p]; Gca=2.02*tf(nc,dc); Gcb=1.90*tf(nc,dc);Gcc=2.1*tf(nc,dc);%引入K/alpha G2a=G*Gca; G2b=G*Gcb; G2c=G*Gcc;sys2a=feedback(G2a,1);%单位负反馈,构成闭环 sys2b=feedback(G2b,1); sys2c=feedback(G2c,1); step(sys2a,'b--') hold onstep(sys2b,'r:') step(sys2c,'y-')Step ResponseTime (sec)A m p l i t u d e0.20.40.60.811.21.4图10.10对参数稍作调整的系统阶跃响应当 1.90K 时才能使超调降低到20%以下 再次使用求K 临界值的程序验证程序12 hold off clgn=[2];d=[1 6 5 0]; rlocus(n,d),hold on gridz=0.4559; hs=12*z;hc=12*sqrt(1-z^2);plot([0 -hs],[0 hc],'--',[0 -hs],[0 -hc],'--') text(-9.5,1,'Desired performance region') rlocfind(n,d)-0.42-0.415-0.41-0.405-0.4-0.395-0.39-0.385-0.380.770.7750.780.7850.79Root LocusReal AxisI m a g i n a r y A x i s图10.11在根轨迹上调整参数探索验证可以看出 2.02K ≤的点满足要求(2) 对0.12.0K =进行探索程序13G=zpk([],[0,-1,-5],2);%原系统开环传递函数 Kvc=10;%Kvcopm>8 y=zeros(200,1);i=0;for K=0.1:0.1:2%K/alpha Kvu=2*K/5;alpha=Kvc/Kvu;%alpha 即z/p p=0.001;z=alpha*p; nc=[1 z];dc=[1,p];Gc=K*tf(nc,dc);%引入K/alpha G2=G*Gc;sys2=feedback(G2,1);%单位负反馈,构成闭环 t=[0:0.1:19.9]; i=i+1;y(:,i)=step(sys2,t); endplot(y)legend('K=0.1','K=0.2','K=0.3','K=0.4','K=0.5','K=0.6','K=0.7','K=0.00.511.5图10.12不同取值下的阶跃响应求各曲线超调量,先将时间范围扩大到200程序14G=zpk([],[0,-1,-5],2);%原系统开环传递函数 Kvc=10;%Kvcopm>8 y=zeros(200,1);i=0;for K=0.1:0.1:2%K/alpha Kvu=2*K/5;alpha=Kvc/Kvu;%alpha 即z/p p=0.001;z=alpha*p; nc=[1 z];dc=[1,p];Gc=K*tf(nc,dc);%引入K/alpha G2=G*Gc;sys2=feedback(G2,1);%单位负反馈,构成闭环 t=[0:1:199];%改变时间长度 i=i+1;y(:,i)=step(sys2,t); endplot(y)legend('K=0.1','K=0.2','K=0.3','K=0.4','K=0.5','K=0.6','K=0.7','K=0.00.20.40.60.811.21.41.61.8图10.13时间轴扩大100观察分布情况 程序15sigma=zeros(20,20);j=0;Kgan=zeros(20,20); for i=1:1:20;[mp,tf]=max(y(:,i));%求最大幅值点 yss=y(length(t));%求稳态值 tp=t(tf);%峰值时间 j=j+1;Kgan(j,1)=j/10;%K/alphasigma(j,1)=100*(mp-yss)/yss;%超调量 endplot(Kgan,sigma,[0 2],[20 20]) gridxlabel('K/alpha') ylabel('Overshoot')K/alphaO v e r s h o o t图10.14K 与..P O 的关系若找到K 的取值范围,问题就比较清晰程序16n=find(sigma(:,1)<20);%找满足要求二的K/alpha Kn=Kgan(n,1)0.5 1.9K <<再考虑0.12.0K =的情况下的单位斜坡输入的稳态误差程序17G=zpk([],[0,-1,-5],2);%原系统开环传递函数 Kvc=10;%Kvcopm>8y=zeros(200,1);i=0;y_deta=zeros(20,1);Kgan=zeros(20,1); for K=0.1:0.1:2%K/alpha Kvu=2*K/5;alpha=Kvc/Kvu;%alpha 即z/p p=0.001;z=alpha*p; nc=[1 z];dc=[1,p];Gc=K*tf(nc,dc);%引入K/alpha G2=G*Gc;sys2=feedback(G2,1);%单位负反馈,构成闭环 t=[0:1:199]; i=i+1;Kgan(i,1)=i/10;u=t;y(:,i)=lsim(sys2,u,t); yss=y(length(t),i);y_deta(i,1)=u(length(t))-yss if y_deta(i,1)<(1/8)%稳态误差小于a/8 disp('yes')%符合要求(1) elsedisp('no')%不符合 end endplot(Kgan,y_deta,[0 2],[0.125 0.125])%找到误差小于a/8的直线 gridxlabel('K/alpha') ylabel('E(s)')K/alphaE (s )图10.15K 与稳态误差的关系程序18m=find(y_deta<0.125);%找满足要求一的K/alpha Km=Kgan(m,1) 得到0.2 1.1K <<综合上述两个范围0.5 1.1K <<三、结果分析令1K=程序19Kvc=10;%Kvcopm>8Kgang=1;%K/alphaKvu=2*Kgang/5;alpha=Kvc/Kvu;%alpha即z/p将参数带入校正后系统程序20G=zpk([],[0,-1,-5],2);%原系统开环传递函数p=0.001;z=alpha*p;nc=[1 z];dc=[1,p];Gc=1*tf(nc,dc);G2=G*Gc;%引入K/alphasys2=feedback(G2,1);%单位负反馈,构成闭环求单位斜坡响应程序21tf1=1000;a=1;t=[0:0.1:tf1];u=a*t;%斜坡输入y_t=lsim(sys2,u,t);plot(t,y_t,'b-',t,u,'r:')gridyss=y_t(length(t));y_deta=u(length(t))-yss;if y_deta<(a/8)%稳态误差小于a/8disp('yes')%符合要求(1)elsedisp('no')%不符合end得到()_det0.1000.125E s y a==<,yes,校正系统为100025()10001csG ss+=+(10.12)然后求单位阶跃响应step(sys2)Step ResponseTime (sec)A m p l i t u d e0204060801001200.20.40.60.81.21.4图10.16K =1的系统阶跃响应再讨论0.5K 程序23Kvc=10;%Kvcopm>8 Kgang=0.5;%K/alpha Kvu=2*Kgang/5;alpha=Kvc/Kvu;%alpha 即z/pG=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p]; Gc=Kgang*tf(nc,dc);G2=G*Gc;%引入K/alphasys2=feedback(G2,1);%单位负反馈,构成闭环 tf1=1000; a=1;t=[0:0.1:tf1];u=a*t;%斜坡输入y_t=lsim(sys2,u,t);plot(t,y_t,'b-',t,u,'r:')yss=y_t(length(t));y_deta=u(length(t))-yss; if y_deta<(a/8)%稳态误差小于a/8 disp('yes')%符合要求(1) elsedisp('no')%不符合 end得到()_det 0.1000.125E s y a ==<,yes50025()10001c s G s s +=+ (10.13)程序24step(sys2)Step ResponseTime (sec)A m p l i t u d e01020304050607080900.20.40.60.811.21.4图10.17K =0.5的系统阶跃响应四、深入探讨从频域下分析 先做原系统的伯德图程序25G=zpk([],[0,-1,-5],2);%原系统开环传递函数bode(G);%原系统伯德图 gridFrequency (rad/sec)M a g n i t u d e (d B)1010101010P h a s e (d e g )图10.18原系统伯德图程序26G=zpk([],[0,-1,-5],2);%原系统开环传递函数 [mag,phase,w]=bode(G);%原系统伯德图 m=find(phase>=-135); w1=w(max(m))得到当0.6877/sec w rad =,相位等于45deg 频率穿越点0.374/sec w rad =系统已经满足要求二,而且有23.5dB 的增益裕度 若利用增益K 来调节系统使其满足要求:2()(1)(5)KG s s s s =++ (10.14)对于要求一:01/5()0.125lim1()2s s aess t a G s K →===+ (10.15)得到K=20程序28G=zpk([],[0,-1,-5],2);%原系统开环传递函数 bode(G);%原系统伯德图 hold onbode(20*G)%引入增益K gridlegend('K=1','K=20')Frequency (rad/sec)M a g n i t u d e (d B)P h a s e (d e g )图10.19增益校正前后系统伯德图虽然K=20满足条件一可是相位裕度为负,闭环系统不稳定 所以不能用使用单一的增益校正。

matlab加工程序代码,matlab编写铣削加工的简单程序

matlab加工程序代码,matlab编写铣削加工的简单程序

matlab编写铣削加工的简单程序铣削加工铣削加工的特点数控铣削加工数控铣削加工工艺常见的铣削加工有哪些铣削加工有哪四大参数铣削加工视频铣削加工工艺铝合金铣削加工参数
matlab加工程序代码,matlab编写铣削加工的简单程序
a=1.5; c=0.1; s=0 ; e=pi; D=19.05 ; N=4 ; P=1/6*pi ; %a轴向切深 c进给率 s切入角 e切出角 h1=0.001; h2=0.001; K1=751.576 ; K2=248.761 ; K3=21.074 ; K4=34.038 ; %D刀具直径 N螺旋槽数 P螺旋角 h1角积分高度 h2轴向积分高度 K1切向作用力系数,K2径向作用力系数,K3切向刃口力系 数,K4径向刃口力系数 r=2*pi/N ; %刀具齿间角 K=2*pi/h1 ; %角向积分步数 L=a/h2 ; %轴向积分步数 F1=zeros(1,floor(K)); F2=zeros(1,floor(K)); F3=zeros(1,floor(K)); for i=1:1:K R(i)=s+i*h1; %螺旋槽底部刃的接触角 for k=1:1:N R1=R(i)+(k-1)*r; R2=R1; for j=1:1:L alpha(j)=j*h2; R2=R1-2*tan(P)/D*alpha(j); %更新因螺旋槽引起的接触角变化 if R2>2*pi R2=R2-2*pi; end if s<=R2&&R2<=e %判断刀齿是否切削 h=c*sin(R2) ; %切削厚度
f3=h2*(K1*h+K3); f4=h2*(K2*h+K4) ; %径向力微元 f1=-f3*cos(R2)-f4*sin(R2); f2=f3*sin(R2)-f4*cos(R2); F1(i)=F1(i)+f1; F2(i)=F2(i)+f2; F3(i)=F3(i)+f3; end end end F(j)=sqrt(F1(j)^2+F2(j)^2); %切削合力 T(j)=D/2*F3(j) ; %切削力矩 end plot(R,F1)

Matlab技术在控制器设计中的应用

Matlab技术在控制器设计中的应用

Matlab技术在控制器设计中的应用控制器设计是现代自动控制领域的核心内容之一。

随着科技的不断发展,控制器设计也得到了极大的发展和应用。

Matlab作为一种功能强大的数学建模和仿真工具,在控制器设计中起着重要的作用。

本文将探讨Matlab技术在控制器设计中的应用,并介绍一些经典的控制器设计方法和案例。

一、Matlab在控制器设计中的基本功能Matlab是一种基于数值计算的软件工具,提供了丰富的数学函数库和编程语言。

在控制器设计过程中,Matlab可以用来进行系统的数学建模、信号处理、动态仿真、参数优化与辨识等一系列关键步骤,为工程师提供了全方位的技术支持。

下面将详细介绍Matlab在控制器设计中的基本功能。

1.系统建模与分析在控制器设计之前,我们需要对待控制的对象进行系统建模与分析。

Matlab 提供了丰富的系统建模工具,如系统传递函数、状态空间模型和频域模型等,可以方便地对系统进行描述和分析。

通过Matlab,我们可以使用这些模型进行系统特性分析、稳定性判断和性能评估。

2.控制算法设计与优化控制算法是控制器设计中的核心内容之一。

Matlab提供了多种常见的控制算法函数,如PID控制、模糊控制和神经网络控制等,可以方便地进行控制算法的设计和仿真。

此外,Matlab还提供了参数优化和辨识工具,可以帮助我们对控制器进行更精细的调整和优化。

3.动态仿真与实时测试在控制器设计过程中,动态仿真和实时测试是非常重要的环节。

Matlab提供了强大的仿真和测试工具,可以模拟实际工程中的场景,并进行控制系统的动态响应测试。

通过Matlab的仿真和测试功能,我们可以评估控制系统的性能、稳定性和鲁棒性,为系统调试和验证提供有力支持。

4.数据可视化与结果分析控制器设计完成后,我们需要对设计结果进行数据可视化和结果分析。

Matlab提供了丰富的绘图和分析函数,可以方便地对控制系统的输入输出信号进行可视化和分析。

通过Matlab的数据可视化和结果分析功能,我们可以直观地了解控制系统的性能和稳定性,为后续改进和调整提供参考。

MATLAB控制系统仿真实验模板新word精品文档8页

MATLAB控制系统仿真实验模板新word精品文档8页

MATLAB 仿真实验报告册姓 名:XXX班 级:030841XXX学 号:030841XXX日 期:2019-X-X实验一 MATLAB/Simulink 仿真基础及控制系统模型的建立一、 实验目的1、掌握MATLAB/Simulink 仿真的基本知识; 2、 熟练应用MATLAB 软件建立控制系统模型。

二、 实验工具电脑、MATLAB 软件三、 实验内容 已知单位负反馈控制系统开环传递函数为)1)(5()(++=As s s B s G ,其中,A 表示自己学号最后一位数(可以是零),B 表示自己学号的最后两位数。

1、 用Simulink 建立该控制系统模型,分别用单踪、双踪示波器观察模型的阶跃响应曲线;分别用“To Workspace ”和“out1”模块将响应参数导入工作空间并在命令窗口绘制该模型的阶跃响应曲线;2、 在MATLAB 命令窗口分别建立该控制系统的传递函数模型和零极点模型,并实现模型之间的相互转换。

四、实验过程其响应如下:导入命令窗口后画出的图形如下:MATLAB 命令窗口:程序:num=[8];den=[8 13 40 0];sys_tf=tf(num,den)[z,p,k]=tf2zp(num,den)sys_zpk=zpk(z,p,k)运行结果:Transfer function:88 s^3 + 13 s^2 + 40 sz =Empty matrix: 0-by-1p =-0.8125 + 2.0832i-0.8125 - 2.0832ik =1Zero/pole/gain:1s (s^2 + 1.625s + 5)五、实验结论实验二 控制系统时域分析的MATLAB 实现一、实验目的1、熟练应用MATLAB/Simulink 进行时域分析;2、能用MATLAB 软件进行时域性能指标的求取。

二、实验工具电脑、MATLAB 软件三、 实验内容 已知单位负反馈控制系统开环传递函数为)5()(+=As s B s G ,其中,A 表示自己学号最后一位数(可以是零),B 表示自己学号的最后两位数。

华中科技大学电气学院matlab选修课大作业__PI控制器

华中科技大学电气学院matlab选修课大作业__PI控制器

2008 级《MATAB语言与控制系统仿真》课程大作业姓名赖智鹏学号 u200811806所在院系电气与电子工程学院班级电气0809日期 1月16日同组人员作业评分评阅人设计报告评分表DOC.PI控制器设计与讨论1.引言本文讨论的对象是智能交通/高速公路系统IVHS(习题7.3),系统通过电子技术为驾驶者和控制系统提供实时路面情况,该系统还提供更方便服务,驾驶者可不用自己操纵驾驶,而系统自动控制车辆,且保持车相对速度,以实现交通的有序进展。

本文前半局部讨论了PI 控制器参数的设计问题,根据性能指标推导控制器参数的约束条件,通过相关算法找到问题的解,后半局部讨论系统参数变化时对系统性能的影响,通过比拟得出综合性能较优的控制器参数。

2.给定系统的控制器设计2.1性能分析:〔1〕阶跃响应零稳态误差。

由原系统为零型系统,故必须通过控制器在原点参加至少一个开环极点,可选择的由PI 控制器、PID 控制器等,而单独使用比例控制器已达不到目标。

〔2〕要求系统对爬坡响应的跟踪误差小于25%,故Kv>4,从而有:001416s s Kv sGcG sGc ->->==>∑∑。

〔3〕阶跃响应的超调量小于5%,所以如果校正后系统近似为2阶系统,要求阻尼比ξ>0.7。

〔4〕调节时间Ts=4/n ξω<1.5s 〔2%〕,所以有n ξω>4/1.5=2.67。

就目前分析,单独使用比例控制器不能满足要求,而在考虑选择PID 控制器之前我们选择相对简单的PI 控制器:iP KGc K S =+。

图 1 原系统做出根轨迹图并作出满足性能指标的区域:rlocus(G); hold on;plot([-2.66 -2.66],[-20 20]);%指定性能指标在根轨迹图中所在区域 zeta=0.7;plot([0 -20*zeta],[0 20*sqrt(1-zeta^2)],[0 -20*zeta],[0 -20*sqrt(1-zeta^2)]); %指定性能指标在根轨迹图中所在区域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
得到单位斜坡响应如图5所示:
图5原系统单位斜坡响应
ess=u(100)-u1(100)
ess =
2.5151
因为原系统为1型系统
计算结果与仿真结果基本一致。
阶跃响应如图6:
step(Gf)
图6校正前系统的阶跃响应
由以上两图知,原系统的单位斜坡响应的稳态误差为2.5,超调量为3.75%。
2
对于超前校正器,它需要两个参数α、T来描述,为了题目的稳态误差的要求,增加一个参数K,他的传递函数为:
G2=tf(num2,den2);
Gf2=feedback(G2,1)
Transfer function:
626 s + 40
--------------------------------------------
162 s^4 + 972.8 s^3 + 815.9 s^2 + 631 s + 40
2010级
《MATAB语言与控制系统仿真》课程
铣床控制器设计
一、
铣床是以各类电动机为动力的传动装置与系统的对象以实现生产过程自动化的技术装置。电气系统是其中的主干部分,在国民经济各行业中的许多部门得到广泛应用。自动铣床具有工作平稳可靠,操作维护方便,运转费用低的特点,已成为现代生产中的主要设备。自动铣床控制系统的设计是一个很传统的课题,现在随着各种先进精确的诸多控制仪器的出现,铣床控制的设计方案也越来越先进,越来越趋于完美。我们之前学习了自动控制原理,要学会把学习的知识用在现实生活的具体设计之中,才能更深的体会和理解这些知识。这次我们通过Matlab仿真工具Simulink,完成对该控制系统仿真简单建模,进行简单仿真分析和研究。
四、
1
图3Simulink对校正前系统仿真
图4Simulink仿真原系统的单位斜坡响应
在scope中只能看到比较粗略的斜坡响应,Matlab没有求斜坡响应的函数,为了计算其稳态误差,仍考虑用step函数。根据闭环传递函数的定义
对于单位阶跃信号有

对于单位斜坡信号有
由此可以看出,求系统的单位斜坡响应只需将闭环传递函数的分母多项式乘以拉氏算子“s”,再使用step函数即可。
在该处幅值为 20.3dB。
校正环节不能影响后面的相角特性,零点转折频率设置在新增益穿越频率的1/10处,即
可得
于是校正器的传递函数可以写为
从而可得进行滞后校正后,系统的开环传递函数为
滞后校正器设计完成,校正后单位斜坡响应如图12:
num2=[40*15.65 40];
den2=conv([1 6 5 0],[161.97 1]);
从图中可以看出校正前系统的增益穿越频率为2.57rad/s,相角裕度PM=-6.02 。设计要求超调量限定在20%,则要求的阻尼比大约为0.45。算出要求的相位超调角
在图7中找到对应增益为-10.32dB的点
从而得到
于是超前校正网络的传递函数便求得为
为了抵消衰减,总的开环增益提高三倍,故校正后的开环传递函数为
二、
图1铣床的基本模型
现有一个控制器的传递函数为的磨床,要对它进行校正,使它达到以下的要求:
1、对于斜坡输入R(s)= ,输出地稳态误差为 。
2、对于阶跃输入,输出的超调量要小于20%。
图2系统的抽象框图
图2系统的开环传递函数G(s):
三、
控制系统的动态性能、稳定小,但是也将减小系统的阻尼比,是系统的超调量和振荡增加;同样,增加开环积分环节可以提高系统类型,是系统跟踪输入信号的能力加强,却有可能导致系统动态性能恶化,甚至不稳定。
num3=[626 40];
den3=[162 972.8 815.9 631 40 0];
G3=tf(num3,den3);
t=[0:0.1:1000];
u=t;
u2=step(G3,t);
plot(t,u);
hold on
plot(t,u2)
图12校正后单位斜坡响应
ess=u(10000)-u2(10000)
最后,感谢老师对我们的指导!
六、
[1]飞思科技产品研发中心. MATLAB7辅助控制系统设计与仿真.北京:电子工业出版社,2005.
[2]Morris Driels.Linear Control Systems Engineering(线性控制系统工程).北京:清华大学出版社,2005
可得
于是校正器的传递函数可以写为
从而可得进行滞后校正后,系统的开环传递函数为
由于重新设计的过程中没有改变K的值,所以稳态误差不会改变,只需要验证阶跃响应的超调量。重新校正后系统的阶跃响应如图15:
num2=[40*21.645 40];den2=conv([1 6 5 0],[339.18 1]);
在图7中找到对应增益为-21.16dB的点
从而得到
于是超前校正网络的传递函数便求得为
为了抵消衰减,总的开环增益提高三倍,故校正后的开环传递函数为
用Matlab重新作出阶跃响应如图10:
num2=[40*1.592 40];
den2=conv([1 6 5 0],[0.0122 1]);
G2=tf(num2,den2);
图8校正后单位斜坡响应
求稳态误差:
u2=step(G3,t);
ess=u(100)-u2(100)
ess =
0.1250
满足第一个设计要求。
校正后系统的bode图如图8图9:
图9校正后阶跃响应
因为47.6%的超调量太大,故将进行下一步的滤波器设计。这次设法获得80 的超前相位,重复上述计算过程,可得:
num=2;
den=conv([1 0],conv([1 1],[1 5]));
G=tf(num,den);
Gf=feedback(G,1);
d=[1 6 5 2 0];
Gs=tf(num,d);
t=[0:0.1:10];
u=t;
u1=step(Gs,t);
plot(t,u);
hold on
plot(t,u1)
因此,为了使控制系统同时具有满意的动态性能和稳态性能,就需要对系统加入一些校正环节。校正的基本思想就是:低频段具有足够高的增益值,以保证稳态误差足够小;中频段具有-20dB/dec的斜率,保证系统的稳定性;高频段具有足够负的斜率,保证抑制噪声干扰能力。
本次实验采用超前校正环节改善系统性能,观察它的阶跃响应和斜坡响应,确定需要采用哪几个参数来描述这个校正器,再根据题目的各个条件,分别算出各个参数需要满足的范围,最后用Matlab对经过校正后的系统进行仿真,如果发现波形还有些不够满足题目要求,再对参数进行微小的调整,最终使得它满足题目的要求。
为了满足第一个设计要求, =1/8,所以 ,此时开环传递函数:
即超前校正器的增益为K=20。
用matlab做出校正前系统的伯德图,如图7
num1=[40];
den1=[1 6 5 0];
G1=tf(num1,den1);
Gf1=feedback(G1,1);
margin(G1)
图7校正前系统bode图
校正后单位斜坡响应如图8:
num2=[40*0.749 40];
den2=conv([1 6 5 0],[0.0696 1]);
G2=tf(num2,den2);
Gf2=feedback(G2,1)
Transfer function:
29.96 s + 40
-------------------------------------------------
本次实验是第一次需要用Matlab作为工具进行设计的实验,但是也是按部就班的按照公式来就可以了,难度不是很大。实验设计中,我先是采用了超前校正,但是经过几次尝试之后发现超前校正无法提供足够的相位超调角,导致阶跃响应超调量过大,然后我果断的选择了滞后校正器完成本次设计。使用Matlab不断地调整参数,没有得过且过,最终满足了所有要求。温故而知新,通过查找资料我对以前学过的知识有了新的认识。
另外,自己提高比较大的部分就是Matlab软件的应用。由于设计性试验不少计算和仿真都需要用Matlab来实现,通过课程学习和这次作业,我从对Matlab一窍不通,到基本熟悉Matlab在控制系统中的各种应用。看书也发现这个软件是多么的强大,自己学会的只是冰山一角。这次实验验激发了我对这个软件的兴趣,在以后的学习中要多多了解。
ess =
0.1250
step(Gf2)
图13校正后阶跃响应
稳态误差满足要求,阶跃响应如图13,可以看出超调量为27.8%,不满足第二个设计要求,需要对滞后校正器进行适当修改。取相位超调角为60 ,重新进行上述计算:
图14校正前系统bode图
由图14知,频率 =0.462rad/s时满足相位裕度要求, 。
Gf2=feedback(G2,1);
step(Gf2)
图10重新校正后阶跃响应
超调量依然不能满足设计要求,经过多次尝试发现由超前校正器去校正系统无法无法提供足够的相位超调量,所以下面选择滞后校正器。
3
为了方便阅读,重新将校正前系统bode图粘贴如下:
图11校正前系统bode图
系统单位斜坡响应稳态误差只与K的大小有关,因此K的取值依然为20不变(详细见上面相关推导)。设计要求超调量限定在20%,则要求的阻尼比大约为0.45。由上面的波特图知,频率 =0.639rad/s时满足相位裕度要求。算出要求的相位超调角
G2=tf(num2,den2);Gf2=feedback(G2,1);
step(Gf2)
图15重新校正后阶跃响应
超调量只有17.1%,满足要求,整个控制器设计完成,系统框图如图16:
图16校正后系统框图
相关文档
最新文档