模拟clrak 和park的纯代码

模拟电机三相  模拟clrak 和park的纯代码

% 参数设置
fs = 10000; % 采样频率
T = 1/fs; % 采样周期
L = 1; % 电感,单位亨利
R = 0.1; % 电阻,单位欧姆
omega = 2*pi*50; % 角频率,50Hz
Vm = 1; % 峰值电压,可以根据实际情况调整
time_len=0.1;%%定义时长
% 时间向量
t = 0:T:time_len; % 20ms的仿真时间

% 初始条件
ia = zeros(1, length(t));
ib = zeros(1, length(t));
ic = zeros(1, length(t));

% 模拟三相电流
for k = 2:length(t)
    % 假设负载是Y型连接,每相的电压为正弦波
    v_a = Vm*sin(omega*t(k) + 2*pi/3);
    v_b = Vm*sin(omega*t(k));
    v_c = Vm*sin(omega*t(k) - 2*pi/3);
    
    % 根据电压和负载参数计算电流
    ia(k) = (1/(R + 1j*omega*L)) * (v_a + (-1/2)*ib(k-1) + (-1/2)*ic(k-1));
    ib(k) = (1/(R + 1j*omega*L)) * (v_b + (1/2)*ia(k-1) + (-1/2)*ic(k-1));
    ic(k) = (1/(R + 1j*omega*L)) * (v_c + (1/2)*ia(k-1) + (1/2)*ib(k-1));
end

% Clarke变换
alpha = ia;
beta = (2*ib + ic) / sqrt(3);
[id1, iq1] = park_transform(ia, ib, length(t)*omega);
% 绘制结果
figure;
plot(t, ia, 'r', 'LineWidth', 2); % 红色线条表示ia
hold on; % 保持当前图形
plot(t, ib, 'g', 'LineWidth', 2); % 绿色线条表示ib
plot(t, ic, 'b', 'LineWidth', 2); % 蓝色线条表示ic
hold off; % 关闭保持状态

% 添加图例和标签
legend('ia', 'ib', 'ic');
title('Three-Phase Currents');
xlabel('Time (s)');
ylabel('Amplitude');

figure
plot(t,alpha,'r', 'LineWidth', 2);
hold on;
plot(t,beta,'g', 'LineWidth', 2);
hold off;
legend('alpha', 'beta');

figure
plot(t,id1,'r', 'LineWidth', 2);
hold on;
plot(t,iq1,'g', 'LineWidth', 2);
hold off;
legend('id1', 'iq1');




function [id, iq] = park_transform(ia, ib, theta)
    % PARK_TRANSFORM 实现Park变换(dq0变换)
    %   ia, ib: 输入的两相正交电流
    %   theta: 旋转角度,通常为电机转子的电角度
    %   id, iq: 输出的d轴和q轴电流
    
    % 计算d轴和q轴电流
    id = ia * cos(theta) + ib * sin(theta);
    iq = -ia * sin(theta) + ib * cos(theta);
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值