我有以下的Simulink模型: DC/AC半桥逆变器,它使用脉宽调制块(在绿帧内)来产生IGBT的开关信号,来自块的(在红色帧内)使用Goto块接收来自的信号,然后将它作为输出传递给IGBT。

我正在尝试使用Matlab代码构建一个自定义PWM:
clc;
close all;
clear all;
t=0:0.001:1;
s=sawtooth(2*pi*10*t+pi);
m=0.75*sin(2*pi*1*t);
n=length(s);
for i=1:n
if (m(i)>=s(i))
pwm(i)=1;
elseif (m(i)<=s(i))
pwm(i)=0;
end
end
plot(t,pwm,'-g',t,m,'--r',t,s,'--b');
grid on;
ylabel('Amplitude');
xlabel('Time index');
title('PWM Wave');
axis([0 1 -1.5 1.5]);下面是这个阴谋的结果:

我的问题:
我知道t包含时间值, pwm 包含脉宽调制值,所以我想知道如何从Matlab代码中“以某种方式”将数据重定向到IGBT中,这样我就可以将它们作为开关信号使用。
发布于 2016-01-24 23:25:01
这样做有多种方法,但最简单的方法是只使用来自工作空间块作为PWM Generator (2 Pulses)块的直接替代。
运行MATLAB代码来定义MATLAB中的变量,并且(假设您的G1_1和G2_1信号是相互否定的)使用[t(:) pwm(:) ~pwm(:)]作为块的数据参数。
还要注意,您不需要代码中的循环:
pwm = (m >= s);或者,如果您需要它们是双倍而不是逻辑,那么
pwm = double(m >= s);https://stackoverflow.com/questions/34982495
复制相似问题