- Verify if your FEA angle is electrical or mechanical and convert.
- Extend or interpolate your data to cover 0-120° electrical (or 0-30° mechanical for N=4) and ensure endpoints match.
- Provide at least 4 angle points in that range.
- If you cannot regenerate data, consider using the A‑phase flux linkage format in the block.
Why does the FEM-Parameterized PMSM require rotor angle vector between 0 to 120/N degrees
25 次查看(过去 30 天)
显示 更早的评论
Toolboxes:
Simscape Electrical
Block:
FEM-Parameterized PMSM
Modeling Option:
3-D flux linkage data
Flux linkage data format:
D and Q axes flux linkage as a function of D-axis current (iD), Q-axis current (iQ), and rotor angle (theta)
Documentation states: If Flux linkage data format is D and Q axes flux linkages as a function of D-axis current (iD), Q-axis current (iQ), and rotor angle (theta) or D and Q axes flux linkages as a function of peak current magnitude (I), current advance angle (B), and rotor angle (theta) (that is, if you tabulate D and Q flux linkage data), then the rotor angle vector must have four or more points and a range from 0 to 120/N degrees, where N is the number of pole pairs.
Problem:
4 pole-pair PMSM
My FEA software solves the flux linkages over 1 electrical period and outputs the table with a rotor angle dependency from 0 to 90 degrees. The data I have is cyclic over this range. For this particular solver the flux is calculated for each of these rotor angle working points 20 in total:
0.00000000 4.73684200 9.47368400 14.21053000 18.94737000 23.68421000 28.42105000 33.15789000 37.89474000 42.63158000 47.36842000 52.10526000 56.84211000 61.57895000 66.31579000 71.05263000 75.78947000 80.52632000 85.26316000 90.00000000
On the other hand the FEM-Parameterized PMSM block is asking for 0 to 120/N = 0 to 120/4 = 0 to 30 degrees. When simply doing a brute force method where I simply only enter in flux linkage data that is within 0 to 30 degrees I get the error that the data must be cyclic between the first and last point. As in the table at 0 degrees must be equal to the table at the last point which in my case would be at 28.42105 degrees. They obviously don't match and now I am trying to reason through why.
The data I have from my FEA solver is cyclic but around 90 degrees wheareas here it is asking for 0 to 30 degrees.
- Why should it be from 0 to 120/N?
- My FEA solver dosen't let me specify solving between 0 to 30 degrees. I have no control over the angle it solves for. I can only specify the number of computations over an electrical period. In this case I specified 20 computations for an electrical period.
- I am confident the FEA solver and the motor model is accurate based on actual test data and correlation between the two.
- Is it valid to simply take my 0 to 90 and translate it down to 0 to 30 degrees? This feels wrong without fundamentally understanding how the PMSM block uses the angle.
- Is there any thoughts from anyone where my confusion may come from so I can read more into and try to understand the root of my issue?
Context: I am using this block in order to quickly run simulations in tandem with my motor control block and I need a motor model to do it. Running this level of simulation with my actual motor control block and generated C code is not possible with my FEA software so I must do it here in Simulink/Simscape instead.
Thanks for any response.
0 个评论
回答(1 个)
Satyam
2025-11-19,3:18
Hi Jordan,
The FEM‑Parameterized PMSM block requires the rotor angle vector to span 0 to 120/N mechanical degrees because the machine’s flux linkage is periodic every 120° electrical due to three‑phase symmetry. For a 4‑pole‑pair motor, this means 0–30° mechanical. The block replicates this sector to model the full electrical period, so the first and last angle points must match for cyclic continuity. You can try out a few troubleshooting steps:
I hope it helps.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Choose and Parameterize Blocks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!