【E2271】无刷直流和永磁同步电机仿真

2021-11-16 23:43:37      索炜达电子      444     

项目编号:E2271

文件大小:3M

源码说明:带中文注释

开发环境:C编译器

简要概述:

无刷直流和永磁同步电机模拟器

该交互式模拟器旨在可视化无刷直流电机和永磁同步电机控制算法的内部工作,并为更先进控制算法的原型设计提供试验台。可以实时调整转子惯性、母线电压、PWM定时器频率等参数,以查看其对控制策略的影响。

【E2271】无刷直流和永磁同步电机仿真

启动


预编译二进制文件:在64位Windows上,下载预编译二进制文件zip。提取后,运行simulator.exe。


从源代码处编译:安装bazel构建系统并克隆此项目。Run bazel Run-c opt模拟器:模拟器


FOC模拟的快速启动


第一步。在换向控制模式选项卡中,启用FOC。

【E2271】无刷直流和永磁同步电机仿真

第二步。然后设置所需的扭矩。

【E2271】无刷直流和永磁同步电机仿真

第三步。调整步长乘数以更改模拟的速度。

【E2271】无刷直流和永磁同步电机仿真

现在转子应该开始旋转了

【E2271】无刷直流和永磁同步电机仿真

目录│文件列表:

 └ motor_sim

    │ .clang-format

    │ screenshot.PNG

    │ WORKSPACE

    ├ board

    │  │ board_state.h

    │  │ BUILD

    │  │ gate_state.h

    │  └ pwm_state.h

    ├ config

    │  │ BUILD

    │  └ scalar.h

    ├ controls

    │  │ BUILD

    │  │ foc.cpp

    │  │ foc.h

    │  │ foc_state.h

    │  │ pi_control.cpp

    │  │ pi_control.h

    │  │ pi_control_test.cpp

    │  │ six_step.cpp

    │  │ six_step.h

    │  │ space_vector_modulation.cpp

    │  │ space_vector_modulation.h

    │  └ space_vector_modulation_test.cpp

    ├ examples

    │  │ abseil_example.cpp

    │  │ benchmark_example.cpp

    │  │ BUILD

    │  │ eigen_example.cpp

    │  │ gflags_example.cpp

    │  │ gtest_example.cpp

    │  └ imgui_sdl.cpp

    ├ experiments

    │  │ BUILD

    │  └ single_phase_model.cpp

    ├ global_debug

    │  │ BUILD

    │  │ example.cpp

    │  │ global_debug.cpp

    │  └ global_debug.h

    ├ simulator

    │  │ BUILD

    │  │ gui.cpp

    │  │ gui.h

    │  │ motor.cpp

    │  │ motor.h

    │  │ motor_state.cpp

    │  │ motor_state.h

    │  │ simulator.cpp

    │  └ sim_state.h

    ├ third_party

    │  ├ eigen

    │  │  │ BUILD

    │  │  ├ Eigen

    │  │  │  │ Cholesky

    │  │  │  │ CholmodSupport

    │  │  │  │ CMakeLists.txt

    │  │  │  │ Core

    │  │  │  │ Dense

    │  │  │  │ Eigen

    │  │  │  │ Eigenvalues

    │  │  │  │ extra_typedefs.h

    │  │  │  │ Geometry

    │  │  │  │ Householder

    │  │  │  │ IterativeLinearSolvers

    │  │  │  │ Jacobi

    │  │  │  │ LU

    │  │  │  │ MetisSupport

    │  │  │  │ OrderingMethods

    │  │  │  │ PardisoSupport

    │  │  │  │ PaStiXSupport

    │  │  │  │ QR

    │  │  │  │ QtAlignedMalloc

    │  │  │  │ Sparse

    │  │  │  │ SparseCholesky

    │  │  │  │ SparseCore

    │  │  │  │ SparseLU

    │  │  │  │ SparseQR

    │  │  │  │ SPQRSupport

    │  │  │  │ StdDeque

    │  │  │  │ StdList

    │  │  │  │ StdVector

    │  │  │  │ SuperLUSupport

    │  │  │  │ SVD

    │  │  │  │ UmfPackSupport

    │  │  │  └ src

    │  │  │     ├ Cholesky

    │  │  │     │  │ LDLT.h

    │  │  │     │  │ LLT.h

    │  │  │     │  └ LLT_LAPACKE.h

    │  │  │     ├ CholmodSupport

    │  │  │     │  └ CholmodSupport.h

    │  │  │     ├ Core

    │  │  │     │  │ Array.h

    │  │  │     │  │ ArrayBase.h

    │  │  │     │  │ ArrayWrapper.h

    │  │  │     │  │ Assign.h

    │  │  │     │  │ AssignEvaluator.h

    │  │  │     │  │ Assign_MKL.h

    │  │  │     │  │ BandMatrix.h

    │  │  │     │  │ Block.h

    │  │  │     │  │ BooleanRedux.h

    │  │  │     │  │ CommaInitializer.h

    │  │  │     │  │ ConditionEstimator.h

    │  │  │     │  │ CoreEvaluators.h

    │  │  │     │  │ CoreIterators.h

    │  │  │     │  │ CwiseBinaryOp.h

    │  │  │     │  │ CwiseNullaryOp.h

    │  │  │     │  │ CwiseTernaryOp.h

    │  │  │     │  │ CwiseUnaryOp.h

    │  │  │     │  │ CwiseUnaryView.h

    │  │  │     │  │ DenseBase.h

    │  │  │     │  │ DenseCoeffsBase.h

    │  │  │     │  │ DenseStorage.h

    │  │  │     │  │ Diagonal.h

    │  │  │     │  │ DiagonalMatrix.h

    │  │  │     │  │ DiagonalProduct.h

    │  │  │     │  │ Dot.h

    │  │  │     │  │ EigenBase.h

    │  │  │     │  │ ForceAlignedAccess.h

    │  │  │     │  │ Fuzzy.h

    │  │  │     │  │ GeneralProduct.h

    │  │  │     │  │ GenericPacketMath.h

    │  │  │     │  │ GlobalFunctions.h

    │  │  │     │  │ Inverse.h

    │  │  │     │  │ IO.h

    │  │  │     │  │ Map.h

TAG电机
  • 7 次
  • 1 分