91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

使用S-Function函數實現離散PID控制器,并建立simulink仿真模型。

資源截圖

代碼片段和文件信息

function?[sysx0strts]?=?dPID(txuflagkpkikd)
%SFUNTMPL?General?M-file?S-function?template

switch?flag
??%%%%%%%%%%%%%%%%%%
??%?Initialization?%
??%%%%%%%%%%%%%%%%%%
??case?0
????[sysx0strts]=mdlInitializeSizes;
??%%%%%%%%%%%%%%%
??%?Derivatives?%
??%%%%%%%%%%%%%%%
??case?1
????sys=mdlDerivatives(txu);
??%%%%%%%%%%
??%?Update?%
??%%%%%%%%%%
??case?2
????sys=mdlUpdate(txu);
??%%%%%%%%%%%
??%?Outputs?%
??%%%%%%%%%%%
??case?3
????sys=mdlOutputs(txukpkikd);
??%%%%%%%%%%%%%%%%%%%%%%%
??%?GetTimeOfNextVarHit?%
??%%%%%%%%%%%%%%%%%%%%%%%
??case?4
????sys=mdlGetTimeOfNextVarHit(txu);
??%%%%%%%%%%%%%
??%?Terminate?%
??%%%%%%%%%%%%%
??case?9
????sys=mdlTerminate(txu);

??%%%%%%%%%%%%%%%%%%%%
??%?Unexpected?flags?%
??%%%%%%%%%%%%%%%%%%%%
??otherwise
????DAStudio.error(‘Simulink:blocks:unhandledFlag‘?num2str(flag));

end

%?end?sfuntmpl

%
%=============================================================================
%?mdlInitializeSizes
%?Return?the?sizes?initial?conditions?and?sample?times?for?the?S-function.
%=============================================================================
%
function?[sysx0strts]=mdlInitializeSizes

sizes?=?simsizes;

sizes.NumContStates??=?0;
sizes.NumDiscStates??=?4;
sizes.NumOutputs?????=?1;
sizes.NumInputs??????=?1;
sizes.DirFeedthrough?=?0;
sizes.NumSampleTimes?=?1;???%?at?least?one?sample?time?is?needed

sys?=?simsizes(sizes);

%
%?initialize?the?initial?conditions
%
x0??=?[0;0;0;0];

str?=?[];

ts??=?[-2?0];

%?end?mdlInitializeSizes

function?sys=mdlDerivatives(txu)

sys?=?[];

%?end?mdlDerivatives

%=============================================================================
%?mdlUpdate
%?Handle?discrete?state?updates?sample?time?hits?and?major?time?step
%?requirements.
%=============================================================================
%
function?sys=mdlUpdate(txu)
x(3)=x(2);
x(2)=x(1);
x(1)=u;
x(4)=u+x(4);
sys?=x;

%?end?mdlUpdate

%=============================================================================
%?mdlOutputs
%?Return?the?block?outputs.
%=============================================================================
%
function?sys=mdlOutputs(txukpkikd)
sys=kp*x(1)+ki*0.01*x(4)+kd*(x(2)-x(3))/0.01;


%?end?mdlOutputs
%
%=============================================================================
%?mdlGetTimeOfNextVarHit
%?Return?the?time?of?the?next?hit?for?this?block.??Note?that?the?result?is
%?absolute?time.??Note?that?this?function?is?only?used?when?you?specify?a
%?variable?discrete-time?sample?time?[-2?0]?in?the?sample?time?array?in
%?mdlInitializeSizes.
%=============================================================================
%
function?sys=mdlGetTimeOfNextVarHit(txu)

sampleTime?=?0.01;%??Example?set?the?next?hit?to?be?one?second?later.
sys?=?t?+?sampleTime;

%?end?mdlGetTimeOfNextVarHit

%=============================================================================
%?mdlTerminate
%?Perform?any?end?of?simulation?tasks.
%============

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????20563??2012-11-05?16:52??untitled.mdl

?????文件???????3132??2012-11-05?16:49??dPID.m

-----------?---------??----------?-----??----

????????????????23695????????????????????2


評論

共有 條評論