Simulink From 块接受来自 matlab 代码的值

Simulink From block accepting values from matlab code

我有以下 Simulink 模型:DC/AC 半桥逆变器,它使用 PWM 块(在绿框内)生成开关信号到IGBT,From 块(在红框内)使用 Goto 块从 PWM 接收信号,然后将其作为输出传递给 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包含pwm值,所以我想知道如何"somehow" 将来自 Matlab 代码的数据通过 From Block 重定向到 IGBT,这样我就可以将它们用作开关信号?

有多种方法可以做到这一点,但最简单的方法是使用 From Workspace 块直接替换 PWM Generator (2 Pulses) 块。

运行 你的 MATLAB 代码来定义 MATLAB 工作区中的变量,并且(假设你的 G1_1G2_1 信号是彼此的否定)使用 [t(:) pwm(:) ~pwm(:)] 作为块的数据参数。

另请注意,您的代码中不需要循环:

pwm = (m >= s);

或者如果你需要它们是双打而不是合乎逻辑的那么

pwm = double(m >= s);