Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2012-02-21
帖子: 1
声望力: 0 ![]() |
![]()
% +++++++++++++++++++++++++++++++++++++++++++++++++++++++
clc; clear all; close all; % +++++++++++++++++++++++++++++++++++++++++++++++++++++++ % control parameters ts = 0.2; % system initial values %syms Xpfn Xpsn Xcn Xpfo Xpso Xco h delay; delay = 0.2; h = 0.2; Xpfn = 2; Xpsn = 2; Xcn = 4; Xpfo = 3; Xpso = 3; Xco = 6; u = 1; y = 1; yp = 1; %Zn = [0;0;0;0;0;0]; Z = [Xpfn;Xpsn;Xcn;Xpfo;Xpso;Xco]; T = [Xpfn,Xpsn,Xcn,Xpfo,Xpso,Xco]; Zo = Z; % simulation loop % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ for k = 1:1000 time(k) = k*ts; % system paremeters A = [exp(-0.2*h),0,5*(1-exp(-0.2*(h-delay))),0,0,5*(exp(-0.2*(h-delay))-exp(-0.2*h));5*(1-exp(-0.2*h)),1,5*(h-delay-5*(1-exp(-0.2*(h-delay)))),0,0,5*(delay-5*(exp(-0.2*(h-delay))-exp(-0.2*h)));(-h),(-h),(1-h),0,0,0;1,0,0,0,0,0;0,1,0,0,0,0;0,0,1,0,0,0]; Ar = [exp(-0.2*h),0,5*(1-exp(-0.2*(h-delay))),0,0,5*(exp(-0.2*(h-delay))-exp(-0.2*h));5*(1-exp(-0.2*h)),1,5*(h-delay-5*(1-exp(-0.2*(h-delay)))),0,0,5*(delay-5*(exp(-0.2*(h-delay))-exp(-0.2*h)));0,0,0,0,0,0;1,0,0,0,0,0;0,1,0,0,0,0;0,0,1,0,0,0]; M = T*[1;1;0;0;0;0]*[0,0,0,1,1,0]*Zo; %Z = Zn; Zo = Z; if (M <= 0) Zr = Ar*Z; Z = Zr; u = [0,0,1,0,0,0]*Z; else Za = A*Z; Z = Za; u = [0,0,1,0,0,0]*Z; end T = Z'; yp = [1,1,0,0,0,0]*Z; %Zn = Z; a(k)=Z(1); u = -u; y = yp end % +++++++++++++++++++++++++++++++++++++++++++++++++++++ % Simulation results figure(3) plot(time,u,'r','linewidth',2); xlabel('time(s)'); ylabel('u'); legend('u'); figure(4) plot(time,y,'r','linewidth',2); xlabel('time(s)'); ylabel('y'); legend('y'); 在计算u和y的值时,它们随着k值的变化而变化,现在我想把u和y随着k的变化画出图,但一直不对。请高手给帮个忙,谢谢。 |
![]() |
![]() |