end
v = v + ts*a;
if abs(v)>vmax, % 速度限幅 v = sign(v)*vmax; end vb(k)=v;
psid = psid + ts*v; psi(k)=psid;
%被控对象输出
yout=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3+xi(k); out(k)=yout; error=psid-yout;
%位置式PID控制器 kp=7; ki=0.001; kd=175;
if abs(error)>=0
x(1)=error; x(2)=v-(yout-y_1)/ts;
x(3)=x(3)+error*ts; u(k)=kp*x(1)+kd*x(2)+ki*x(3); q(k)=59.5*a+v; else
u(k)=0; end
u(k)=u(k)+ q(k);
u_dot=(u(k)-u_1)/ts;
if abs(u_dot)>=u_dotmax, % 舵角变化率限幅 u_dot = sign(u_dot)*u_dotmax; end
u(k)=u_1+ts*u_dot;
if abs(u(k))>=umax, % 舵角限幅 u(k) = sign(u(k))*umax; end
u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout;
41
error_1=error; end
figure(1)
plot(t,rin,'k:',t,psi,'b-.',t,out,'r','linewidth',2);grid xlabel('时间(s)');ylabel('艏向(deg)'); legend('设定艏向','艏向指令','实船艏向'); figure(2)
plot(t,u,'m','linewidth',2);grid
xlabel('时间(s)');ylabel('舵角(deg)');
figure(3)
plot(t,q,'m','linewidth',2);grid;
xlabel('时间(s)');ylabel('前馈舵角(deg)');
figure(4)
plot(t,vb,'m','linewidth',2);grid;
xlabel('时间(s)');ylabel('艏向变化率(deg/s)');
42
学生实验报告基本内容要求
每门课程的所有实验项目的报告必须以课程为单位装订成册,原则上使用现行“实验报告簿”(校园内有售)。
实验报告簿应事先准备好,用来做预习报告、实验记录和实验报告,要求这三个过程在一个实验报告中完成。 1.实验预习
在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。
设计性实验要求进入实验室前写出实验方案。 2.实验记录
学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。
实验记录中应有指导教师的签名。 3.实验报告
主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。
43