控制系统计算机辅助设计CAD实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制系统计算机辅助
设计实验
一、实验教学目标与基本要求
上机实验是本课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的实验手段与实践技能,掌握应用MATLAB/Simulink 求解控制问题的方法,培养学生分析问题、解决问题、应用知识的能力和创新精神,全面提高学生的综合素质。
通过对MATLAB/Simulink进行求解,基本掌握常见控制问题的求解方法与命令调用,更深入地认识和了解MATLAB语言的强大的计算功能与其在控制领域的应用优势。
二、题目及解答
第一部分:MATLAB 必备基础知识、控制系统模型与转换、线
性控制系统的计算机辅助分析:
编写rossler.m文件:
function dx=rossler(t,x)
dx=[-x(2)-x(3);x(1)+0.2*x(2);0.2+(x(1)-5.7)*x(3)];
主函数:
>> x0=[0;0;0];
[t,y]=ode45('rossler',[0,100],x0);
plot3(y(:,1),y(:,2),y(:,3)),grid
>> plot3(y(:,1),y(:,2),y(:,3)),grid
>> plot(y(:,1),y(:,2)),grid
所的图像:三维相轨迹(下图)
xoy平面投影
2.
编写c2exmobj.m文件:
function y=c2exmobj(x)
y=x(1)^2-2*x(1)+x(2);
编写c2exmcon.m文件:
function [c,ce]=c2exmcon(x)
ce=[];
c=[4*x(1)^2+x(2)^2-4];
主函数为:
A=[];B=[];Aeq=[];Beq=[];xm=[0;0];xM=[];x0=[0;0];
ff=optimset;ff.Tolx=1e-10;ff.TolFun=1e-20;
x=fmincon('c2exmobj',x0,A,B,Aeq,Beq,xm,xM,'c2exmcon',ff)
运行结果:
Warning: Trust-region-reflective method does not currently solve this type of problem, using active-set (line search) instead.
> In fmincon at 422
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
2 1
x =
1.0000
3.
(a).程序代码为:
>> s=tf('s');
G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5))
运行结果为:
Transfer function:
s^3 + 4 s + 2
------------------------------------------------------
s^11 + 5 s^9 + 9 s^7 + 2 s^6 + 12 s^5 + 4 s^4 + 12 s^3 (b). 程序代码为:
>> z=tf('z',0.1);
H=(z^2+0.568)/((z-1)*(z^2-0.2*z+0.99))
运行结果为:
Transfer function:
z^2 + 0.568
-----------------------------
z^3 - 1.2 z^2 + 1.19 z - 0.99
Sampling time: 0.1
4.
将方程两边进行拉式变换后可得传递函数,代码如下:>> tf('s');
G=2/(s^3+13*s^2+4*s+5)
Transfer function:
2
----------------------
s^3 + 13 s^2 + 4 s + 5
转换为状态空间方程为:
>> G1=ss(G)
a =
x1 x2 x3
x1 -13 -1 -1.25
x2 4 0 0
x3 0 1 0
b =
u1
x1 0.5
x2 0
x3 0
c =
x1 x2 x3
y1 0 0 1
d =
u1
y1 0
Continuous-time model.
转换为零极点模型为:
>> G2=zpk(G)
Zero/pole/gain:
2
----------------------------------
(s+12.72) (s^2 + 0.2836s + 0.3932)
5.
如题可设采样时间为0.1s,代码如下:
>> z=tf('z',0.1);
H=(z+2)/(z^2+z+0.16)
运行结果为:
Transfer function:
z + 2
--------------
z^2 + z + 0.16
Sampling time: 0.1
6.
编写feedback.m函数:
function H=feedback(G1,G2,key)
if nargin==2; key=-1; end, H=G1/(sym(1)-key*G1*G2); H=simple(H); 代码如下:
syms J Kp Ki s;
G=(s+1)/(J*s^2+2*s+5);Gc=(Kp*s+Ki)/s;
GG=feedback(G*Gc,1);G1=collect(GG,s)
运行结果为:
G1 =(s+1)*(Kp*s+Ki)/(J*s^3+(Kp+2)*s^2+(Ki+Kp+5)*s+Ki)
7.
(a):代码如下:
>> s=tf('s');G=(211.87*s+317.64)/(s+20)/(s+94.34)/(s+0.1684);
Gc=(169.6*s+400)/s/(s+4);H=1/(0.01*s+1);GG=feedback(G*Gc,H)
运行结果为:
Transfer function:
359.3 s^3 + 3.732e004 s^2 + 1.399e005 s + 127056