控制系统数字仿真-基于MATLAB实现四阶龙格库塔法
生活随笔
收集整理的這篇文章主要介紹了
控制系统数字仿真-基于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/hK1=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值、穩態值、超調量和峰值時間,并畫出階躍響應的圖形
總結
以上是生活随笔為你收集整理的控制系统数字仿真-基于MATLAB实现四阶龙格库塔法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分离人声和伴奏
- 下一篇: ghost 通过docker安装