:functiondx=rossler(t,x)dx=[-x(2)-x(3);x(1)+*x(2);+(x(1)-)*x(3)];指令:>>x0=[0;0;0];>>[t,y]=ode45('rossler',[0,100],x0);>>plot(t,y)>>figure>>plot3(y(:,1),y(:,2),y(:,3)),[c,ceq]=opt_con1(x)ceq=[];c=[4*x(1)*x(1)+x(2)*x(2)-4;-x(1);-x(2)];指令>>y=@(x)x(1)*x(1)-2*x(1)+2*x(2);>>x0=[0;0];>>xm=[0;0];>>xM=[];>>A=[];B=[];Aeq=[];Beq=[];>>[x,f_opt]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,***@opt_con1)x==-13.(a)>>s=tf('s');G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5))Transferfunction:s^3+4s+2------------------------------------------------------s^11+5s^9+9s^7+2s^6+12s^5+4s^4+12s^3(b)>>z=tf('z',);>>H=(z^2+)/(z-1)/(z^2-*z+)Transferfunction:z^2+-----------------------------z^3-^2+-:=y;x2=dx1/dt;x3=dx2/dt;dx3/dt=2*u-5*x1-4*x2-13*x3;A=[0,1,0;0,0,1;-5,-4,-13];即可得出状态方程:[dx1/dt;dx2/dt;dx3/dt]=A*[x1;x2;x3]+[0;0;2];将上述状态方程输入到MATLAB命令窗口;调用tf(G),zpk(G)指令即可得出传递函数和零极点模型>>A=[010;001;-5,-4,-13];B=[0;0;2];C=[100];D=0;>>G=ss(A,B,C,D)a=x1x2x3x1010x2001x3-5-4-13b=u1x10x20x32c=x1x2x3y1100d=u1y10Continuous-timemodel.>>tf(G)Transferfunction:2----------------------s^3+13s^2+4s+5>>zpk(G)Zero/pole/gain:2----------------------------------(s+)(s^2++)当然可以由微分方程直接得出传递函数;用拉普拉斯变换法可直接输入:>>G=tf(2,[11345])Transferfunction:2----------------------s^3+13s^2+4s+;设采样周期为1s>>z=tf('z',1);G=(z+2)/(z^2+z+)Transferfunction:z+2---------------z^2+z+:16.>>symsGJGcKpKis>>G=(s+1)/(J*s^2+2*s+5);Gc=(Kp*s+Ki)/s;>>GG=feedback(G*Gc,1)GG=(s+1)*(Kp*s+Ki)/(J*s^3+2*s^2+5*s+Kp*s^2+s*Ki+Kp*s+Ki)7.(a)>>G=tf([,],conv(conv([1,20],[1,]),[1,]));>>Gc=tf([,400],[1,4,0]);H=tf(1,[,1]);GG=feedback(G*Gc,H)Transferfunction:^3+^2++---------------------------------------------------------------------------------- s^6+^5+^4+2444s^3+^2++>>zpk(GG)Zero/pole/gain:(s+100)(s+)(s+)----------------------
neu控制系统仿真CAD作业 来自淘豆网www.taodocs.com转载请标明出处.