控制系统数字仿真-基于MATLAB实现四阶龙格库塔法

系统结构图如图

则先画根轨迹图:

den=[1 10 25 0]
num=[0 0 0 1]
rlocus(num,den)


用四阶龙格库塔法进行仿真,分别求超调量为5%,25%和50%时的K值

y=[0 0];
k=1;
while max(y)<=1.5 %%1.05(5%超调),1.25(25%超调),1.5(50%超调)
num1=[k];
den1=[1 10 25 0];
[num,den]=feedback(num1,den1,1,1);
[A,B,C,D]=tf2ss(num,den);
x0=[0;0;0];
v=1;
tf=15;
t0=0;
h=0.1;
r=1;
x=x0;
    y=0;
    t=t0;
for i=1:tf/h
    K1=A*x+B*r;
    K2=A*(x+h*K1/2)+B*r;
    K3=A*(x+h*K2/2)+B*r;
    K4=A*(x+h*K3)+B*r;
    x=x+h*(K1+2*K2+2*K3+K4)/6;
    y=[y;C*x];
    t=[t;t(i)+h]; 
end
k=k+1;
end
%stepvalue=1 [OSValue, OSIndex] = max(y); OverShoot = (OSValue - stepvalue)/stepvalue*100;PeakTime = t(OSIndex);text(PeakTime, (1 + OverShoot/100 + 0.05)*stepvalue, sprintf('超调量%.2f%%',OverShoot))
plot(t,y)
k
mp=max(y); %峰值时间
tp=spline(y, t, mp)
cs=length(t);%稳态值
yss=y(cs)%超调量
ct=(mp - yss)/yss % 超调量和峰值时间
最后可以在命令行窗口看到输出的K值、稳态值、超调量和峰值时间,并画出阶跃响应的图形





评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值