2021-11-16 23:43:37 索煒達電子 718
項目編號:E2271
文件大小:3M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
無刷直流和永磁同步電機模擬器
該交互式模擬器旨在可視化無刷直流電機和永磁同步電機控制算法的內(nèi)部工作,并為更先進控制算法的原型設(shè)計提供試驗臺。可以實時調(diào)整轉(zhuǎn)子慣性、母線電壓、PWM定時器頻率等參數(shù),以查看其對控制策略的影響。
啟動
預(yù)編譯二進制文件:在64位Windows上,下載預(yù)編譯二進制文件zip。提取后,運行simulator.exe。
從源代碼處編譯:安裝bazel構(gòu)建系統(tǒng)并克隆此項目。Run bazel Run-c opt模擬器:模擬器
FOC模擬的快速啟動
第一步。在換向控制模式選項卡中,啟用FOC。
第二步。然后設(shè)置所需的扭矩。
第三步。調(diào)整步長乘數(shù)以更改模擬的速度。
現(xiàn)在轉(zhuǎn)子應(yīng)該開始旋轉(zhuǎn)了
目錄│文件列表:
└ 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