首页 文章

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

提问于
浏览
0

我有以下Simulink模型:DC / AC半桥逆变器,它使用 PWM block (在绿色框架内)生成到IGBT的开关信号, From block (在红色框架内)接受来自PWM的信号使用转到块,然后将其作为输出传递给IGBT .

Schema

我正在尝试使用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]);

这是情节的结果:

enter image description here

My Question :

我知道 t 包含时间值而且 pwm 包含pwm值,所以我想知道如何 "somehow" 将这些数据从Matlab代码重新定向,通过From Block进入IGBT,这样我就可以将它们用作切换信号?

1 回答

  • 1

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

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

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

    pwm = (m >= s);
    

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

    pwm = double(m >= s);
    

相关问题