使用 Scilab 生成 PWM

Generating PWM using Scilab

我在 Scilab 中使用以下代码使用矢量化生成脉冲宽度调制method.But我在改变周期数时得到了不希望的情节,TimePeriod,percent.Could任何人都可以帮助我解决这个问题?

percent=input("Enter the percentage:");
TimePeriod=input("Enter the time period:");
Cycles=input("Enter the number of cycles:");

x=0:Cycles*TimePeriod;
t=(percent/100)*TimePeriod;

for n=0:0.01:Cycles
    y(((n*TimePeriod)< x) & (x<(n*TimePeriod+t))) = 1;
    y(((n*TimePeriod+t)< x)& (x<((n+1)*TimePeriod))) = 0;
    plot(y,'b','LineWidth',2)
end

我修改了您的代码,现在可以使用了。由于 for 循环有很多调用,您的代码非常慢。 (Scilab和Matlab优化做矩阵运算。所以在循环中弱化。我把调用次数减少到循环次数。

percent=input("Enter the percentage:");
TimePeriod=input("Enter the time period:");
Cycles=input("Enter the number of cycles:");
ts = 0.01; // sample time

x=ts:ts:Cycles*TimePeriod;
on  = ones(1, percent/100*TimePeriod/ts);
off = zeros(1, (1 - percent/100)*TimePeriod/ts);
signal = [];
for cycle = 1:Cycles 
signal = [signal, on, off];
end

figure(1)
plot2d(x, signal);