PID控制MATLAB仿真.rar
function [sys,x0,str,ts] = spacemodel(t,x,u,flag) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); case 3, sys=mdlOutputs(t,x,u); case {2,4,9} sys=[]; otherwise error(['Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 2; sizes.NumDiscStates = 0; sizes.NumOutputs = 1; sizes.NumInputs = 3; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; % At least one sample time is needed sys = simsizes(sizes); x0 = [0;0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u) %Time-varying model kp=10; ki=2; kd=1; ut=kp*u(1)+ki*u(2)+kd*u(3); J=20+10*sin(6*pi*t); K=400+300*sin(2*pi*t); sys(1)=x(2); sys(2)=-J*x(2)+K*ut; function sys=mdlOutputs(t,x,u) sys(1)=x(1);
- 1
- 2
- 粉丝: 3
- 资源: 28
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助