www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第5章/li5_5.m

     dt=0.0001; %仿真步进
T=15; %仿真时间长度
t=0:dt:T;%仿真计算时间序列
g=9.8;
L=1.5;
m=10;
k=3; %空气阻力比例系数
th0=3.1; %初始摆角设置
v0=0; %初始摆速设置
v=zeros(size(t)); %程序存储变量预先初始化,可提高执行速度
th=zeros(size(t));
v(1)=v0;
th(1)=th0;
for i=1:length(t) %仿真求解开始
    v(i+1)=v(i)+(g*sin(th(i))-k./m.*v(i)).*dt;
    th(i+1)=th(i)-1./L.*v(i).*dt;
end
%使用双坐标系统来作图,注意作图和图标标注的技巧
[AX,B1,B2]=plotyy(t,v(1:length(t)),t,th(1:length(t)),'plot');
set(B1,'LineStyle','--');  %设置图线型
set(B2,'LineStyle','p');
set(get(AX(1),'Ylabel'),'String','线速度v(t)m/s');%作标注
set(get(AX(2),'Ylabel'),'String','角位移\th(t)/rad');
xlabel('时间t/s');
legend(B1,'线速度v(t)',2);
legend(B2,'角位移\th(t)',1);