📄 c2dt.m
字号:
function [PHI,GAMMA,H,J] = c2dt(A,B,C,T,lambda)
%C2DT Conversion of continuous state space models to discrete
% models with pure time delay in the inputs.
% [Ad,Bd,Cd,Dd] = C2DT(A,B,C,T,lambda) converts the continuous time
% system
% .
% x(t) = Ax(t) + Bu(t-lambda)
% y(t) = Cx(t) + Du(t)
%
% to the discrete system with sample time T,
%
% x(k+1) = Ad x(k) + Bd u(k)
% y(k) = Cd x(k) + Dd u(k)
%
% See also: PADE.
% G. Franklin 1-17-87
% Revised 8-23-87 JNL
% Copyright (c) 1986-93 by the MathWorks, Inc.
% From results in Franklin and Powell, Digital Control; Addison
% and Wesley; 1980 chapter 6, pages 171-177, with extension for
% multivariable controls and outputs.
[ns,nc] = size(B);
[no,ns] = size(C);
l = ceil(lambda/T);
m = l*T - lambda;
s1 = expm([A*m, B*m; zeros(nc,ns+nc)]);
s2 = expm([A*(T-m), B*(T-m); zeros(nc,ns+nc)]);
s3 = eye((l-1)*nc);
s4 = zeros(ns,(l-2)*nc);
s5 = zeros((l-1)*nc,ns+nc);
s6 = zeros(nc,ns+l*nc);
PHI1 = s1(1:ns,1:ns)*s2(1:ns,1:ns);
GAMMA1 = s1(1:ns,1:ns)*s2(1:ns,ns+1:ns+nc);
GAMMA2 = s1(1:ns,ns+1:ns+nc);
if l == 0
% This is the modified z-transform case
PHI = PHI1;
GAMMA = PHI1 * GAMMA2 + GAMMA1;
H = C;
J = C * GAMMA2;
%
% delay less than one period
%
elseif l == 1
PHI = [PHI1, GAMMA1; s6];
GAMMA = [GAMMA2;eye(nc)];
H = [C,zeros(no,nc)];
J = zeros(no,nc);
else
PHI = [PHI1,GAMMA1,GAMMA2,s4;s5,s3;s6];
GAMMA = [zeros(ns+(l-1)*nc,nc);eye(nc)];
H = [C,zeros(no,l*nc)];
J = zeros(no,nc);
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -