matlab作业题3

对于第一个传递函数方块,有两种方式可以实现,第一种用simulink-user-defined functions 中的matlab function模块,双击该模块可以对该模块进行编程。
第二种,用simulink-Loodup Tables-- 1-D Lookup Table模块,设置输入输出查表值。in=input('请输入1或2');
if in==1
   num=[10 4];
   den=[1 4 4 0];
   y=zichengxu(num,den);
else if in==2
    num=[10 4];
   den=[1 4 4];
   y=zichengxu(num,den);
    else
        disp('输入错误,请重新输入');
    end
end

 

function y1=zichengxu(num,den)

y1=step(num,den);
plot(y1)


end

clear all;clc;
t=0:0.01:5;
for K=50:-1:2
    for a=2:-0.05:0.05
        num=[K 2*K*a K*a^2];
        den=[1 6 5+K 2*K*a K*a^2];
        y=step(num,den,t);
        m=max(y);
        s=501;
        sys=tf(num,den);
        ys=dcgain(sys);
        while y(s)>ys*0.98 & y(s)<ys*1.02;
            s=s-1;
        end
        ts=(s-1)*0.01;
        if m<ys*1.1 & m>ys*1.02 & ts<3.0
            break;
        end
    end
    if m<1.10 & m>1.02 & ts<3.0
        break;
    end
end
plot(t,y)
grid
title('Unit-Step Response')
xlabel('t sec')
ylabel('Output')
solution=[K;a;m;ts]
t=0:0.01:10;
u=0.5*t.^2;
sys=tf([1],[1 3 5]);
[y,t]=lsim(sys,u,t);
plot(t,y,'--',t,u,'-')
grid
title('Plot of Solution Curve for Differential Equation')
xlabel('t Sec')
ylabel('Output y(t)')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值