matlab模型(代码)交流直流电路

时间:2018-06-06 09:40:27

标签: matlab

我想在不使用Simulink的情况下创建一个matlab模型(通过制作代码),以便在整流后模拟交流电源的波形(考虑全波整流器)。我正在处理压电材料,它可以被建模为与电容器并联的电流源。因此,压电电流(源)的等式是:

I = alpha * du 在充电功能中它变为:dq = alpha * du

其中alfa是常数参数,du是位移的导数(被认为是正弦曲线)。因此,压电产生正弦电流(以及正弦电压)。

现在,整流电路由桥式整流器,电容器和电阻器组成。当二极管导通时以及不导通时,我必须在代码上声明。有谁能够帮我?

这是我到目前为止所编写的代码草案(也是因为我使用欧拉方法来求解微分方程)。

for ii=1:length(t)-1

    if EH(ii) == 0 %diodes are not conducting 
        %in function of the charge
        dq(ii) = alpha*du(ii);
        q(ii+1) = q(ii) + dt*dq(ii);

        %in function of voltage
        dV = (alpha/C0)*du(ii);
        V(ii+1) = V(ii) + dV*dt;


        %------capacitor in parallel with resistor (part of the circuit after the rectifier bridge)---------

        q_bin(ii) = q(ii)*(Cb/C0); %transfer of charge from the capacitor of the piezoelectric (C0) and the storing capacitor (Cb)

        dq_b = q_bin(ii)/(Cb*Rl);
        q_b(ii+1) = q_b(ii) + dq_b*dt;

        %in function of voltage
        V_bin(ii) = V(ii);

        dV_b = V_bin(ii)/(Rl*Cb);
        V_b(ii+1) = V_b(ii) + dV_b*dt;
    end

    if EH(ii) == 1  %if the diodes are conducting
        dV_b = 1/Cb*(alpha*du(ii) - Vb(ii)/Rl);
        V_b(ii+1) = V_b(ii) + dt*dV_b;

        if (du(ii)*du(ii+1))<= 0; %the diodes stop conducting when the velocity crosses zero
            EH(ii+1) = 0;  
        else
            EH(ii+1) = 1;
        end


    end


end

0 个答案:

没有答案