資源簡介
采用matlab-s函數編寫pwm程序 ,實現脈沖信號的輸出,根據參數可任意調節占空比的大小,對matlab-s函數進行應用,可實現變周期控制,完成期望效果,若是結合PID控制,可達到脈沖燃燒效果。
代碼片段和文件信息
function[sysx0strts]=pwm(txuflagT)
switch?flag
????case?0
????????[sysx0strts]=mdlInitializeSizes(T);
????case?3
????????sys=mdlOutputs(txuT);
????case?4
????????sys=mdlGetTimeOfNextVarHit(txuT);
????case?{129}
????????sys=[];
????otherwise
????????error([‘Unhandled?flag?=‘num2str(flag)]);
end
function[sysx0strts]=mdlInitializeSizes(T)
sizes=simsizes
sizes.NumContStates?=0;
sizes.NumDiscStates?=0;
sizes.NumOutputs?=1;
sizes.NumInputs?=1;
sizes.DirFeedthrough?=1;
sizes.NumSampleTimes?=1;%at?least?one?sample?time?is?needed
sys=simsizes(sizes);
x0?=[];
str?=[];
ts?=[-2?0];
function?sys=mdlOutputs(txuT)
if?t-fix(t/T)*T==0
????sys=sign(u);
else
????sys=0;
end
function?sys=mdlGetTimeOfNextVarHit(txuT)
if?(u/1000<=0.05)?
???????{
???????????if?mod(tT)==0&abs(u)>0)
??????????????????H=0;%disp(‘b‘);
????????????
???????????else
????
評論
共有 條評論