![]() |
矩阵离散控制画图
% +++++++++++++++++++++++++++++++++++++++++++++++++++++++
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的变化画出图,但一直不对。请高手给帮个忙,谢谢。 |
所有时间均为北京时间。现在的时间是 12:53。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.