• c++学习【23】matlab实现FOC算法


    1. % 创建Figure窗口和滑块
    2. figure;
    3. Id_slider = uicontrol('Style', 'slider', 'Position', [100 50 120 20], ...
    4. 'Min', -5, 'Max', 5, 'Value', 1.5, 'Callback', @updateVoltage);
    5. Id_text = uicontrol('Style', 'text', 'Position', [100 80 120 20], 'String', 'd轴电流: 1.5');
    6. Iq_slider = uicontrol('Style', 'slider', 'Position', [300 50 120 20], ...
    7. 'Min', -5, 'Max', 5, 'Value', 0.8, 'Callback', @updateVoltage);
    8. Iq_text = uicontrol('Style', 'text', 'Position', [300 80 120 20], 'String', 'q轴电流: 0.8');
    9. % 创建绘图区域
    10. axes_handle = axes('Units', 'pixels', 'Position', [100 120 500 300]);
    11. % 初始绘制电压波形
    12. while true
    13. Id = get(Id_slider, 'Value');
    14. Iq = get(Iq_slider, 'Value');
    15. % 更新文本显示
    16. set(Id_text, 'String', sprintf('d轴电流: %.2f', Id));
    17. set(Iq_text, 'String', sprintf('q轴电流: %.2f', Iq));
    18. % 控制器输出三相电压
    19. Udc = 400; % 直流电压
    20. Ualpha = Id; % α轴电压等于d轴电流
    21. Ubeta = Iq; % β轴电压等于q轴电流
    22. % 计算空间矢量调制(Space Vector Modulation,SVM)
    23. Us_alpha = Ualpha - 0.5 * Ubeta;
    24. Us_beta = Ubeta;
    25. % 逆变器输出的三相电压
    26. Ua = sqrt(2/3)*Us_alpha + sqrt(1/3)*Us_beta;
    27. Ub = -sqrt(1/6)*Us_alpha + sqrt(5/6)*Us_beta;
    28. Uc = -sqrt(1/6)*Us_alpha - sqrt(5/6)*Us_beta;
    29. % 绘制波形
    30. t = linspace(0, 1, 1000); % 时间范围
    31. ua = Ua * sin(2*pi*50*t); % 相电压波形
    32. ub = Ub * sin(2*pi*50*t - (2*pi/3));
    33. uc = Uc * sin(2*pi*50*t + (2*pi/3));
    34. plot(axes_handle, t, ua, 'r', t, ub, 'g', t, uc, 'b');
    35. xlabel('时间');
    36. ylabel('电压');
    37. title('三相电压波形');
    38. legend('Ua', 'Ub', 'Uc');
    39. % 暂停一段时间,以便观察更新效果
    40. pause(0.1);
    41. end

    三目运算符

    定义引脚对应

    定义一些变量

    在setup中配置设置

    1)电角度求解函数

    2)角度归一化函数

    3)计算电压需要多大占空比函数

    4)计算目标电压和电角度需要什么三相电的函数

    5)开环速度控制函数(开环表示不知角度变化,没有编码器,只能强行加入一个人为设定的随时间变化的角度变化)(由输入的弧度每秒得到三相电压)

    在loop中运行开环速度控制函数

  • 相关阅读:
    从0开始的ios自动化测试
    python中的Frame对象初探
    使用 Docker 部署 TailChat 开源即时通讯平台
    COSO流动性协议和跨链协议,能否解决流动性难题?
    详解MySQL事务日志——undo log
    【2015】【论文笔记】等离子光混合器THz辐射的光谱——
    【第一部分 | HTML】1:揭露HTML的神秘面纱
    qnx 工程目录创建工具 addvariant
    Map集合
    C++设计模式(1)-- 单例模式
  • 原文地址:https://blog.csdn.net/m0_46973820/article/details/132763926