近似模型matlab,怎样求取一阶延迟系统的近似模型

我看了薛定宇的《控制系统计算机辅助设计》这本书,参考了一下程序,但没有出结果

function [K,L,T,G1]=getfopdt(key,G)

switch key

case 1,[y,t]=step(G);

fun=@(x,t)x(1)*(1-exp(-(t-x(2))/x(3))).*(t>x(2));

x=lsqcurvefit(fun,[1 1 1],t,y);K=x(1);L=x(2);T=x(3);

case 2,[Kc,Pm,wc,wcp]=margin(G);

ikey=0;L=1.6*pi/(3*wc);K=dcgain(G);T=0.5*Kc*K*L;

if isfinite(Kc),x0=[L;T];

while ikey==0,u=wc*x0(1);v=wc*x0(2);

FF=[K*Kc*(cos(u)-v*sin(u))+1+v^2;sin(u)+v*cos(u)];

J=[-K*Kc*wc*sin(u)-K*Kc*wc*v*cos(u),-K*Kc*wc*sin(u)+2*wc*v;

wc*cos(u)- wc*v*sin(u),wc*cos(u)];x1=x0-inv(J)*FF;

if norm(x1-x0)<1e-8,ikey=1;

else,x0=x1;

end,

end

L=x0(1);T=x0(2);

end

case 3,[n1,n2] = tfderv(G.num1,G.den1);

[n1,n2] = tfderv(n1,d1);

K1=dcgain(n1,d1);

K2=dcgain(n2,d2);

K=dcgain(G);Tar=-K1/K;

T=Sqrt(K2/K-Tar^2);L=Tar-T;

case 4

Gr=opt_app(G,0,1,1); L=Gr.ioDelay;

T=Gr.den{1}(1)/Gr.den{1}(2);

K=Gr.num{1}(end)/Gr.den{1}(2);

end

G1=tf(K,[T 1],'iodelay',L);

function [e,f] =tfderv(b,a)

f=conv(a.a);na=length(a);nb=length(b);

e1=conv((nb-1:1:1).*b(1:end-1),a);

e2=conv((na-1:1:1).*a(1:end-1),b);

maxL=max(length(e1),length(e2));

e=[zeros(1,maxL-length(e1)) e1]-[zeros(1,maxL-length(e2)) e2];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值