Ansys Maxwell
test
Maxwell 2D
作者: n5321
1.静态分析。
纯磁铁励磁的磁路!
看B值,调整B轴坐标,不用科学计数法?
看磁力线
export plot是在ansys framework内部的数据导出,并不是image export! image export上面只有一个copy image
在field calculate上面,首先要定义一个理想的电机磁路!
目标应该是找2D分析的pattern,pattern的价值是显示电机磁路的若干信息,实现判断磁路的可能性。
磁路相当于管路设计,绕组方案相当于阀门,进水量的设计。它是两个东西。最终客户要的是水的流速,流量等等。
昨天晚上实现的东西是看气隙磁密的极坐标图。有两个问题,数据是否准确,如果增加直观程度。
闭门造车还是不行。还是需要做实际的电机项目!
换一个台词:
BLDC电机设计要解决的若干个问题:
cogging torque!
感觉这样子工作量太大了,是否存在一个现成做2D分析的pattern?!!!
目标也不只是找pattern,目标 也是make appealling
ready做一个cogging torque的动图出来!
问题
怎么导出高清图片?!
高清图片怎么生成mp4,暂时用python!
pattern出来的问题不可能。因为对象的名称不是固定的。只是可以提供一些script,来实现一些难以实现的效果!在visualization上有拓展空间。
关键是要出一些很漂亮的图。
copy出来的图片质量太差了,比屏幕截图的质量还差!
有什么好的办法可以script截图呢?
试着做了 一天,这个features的问题还是有点小小的复杂性!!!
可能不是两三天可以搞好的!操!
这个Appealling的东西可能确实要花一点时间了。
考虑用python PyAutoGUI 或 OpenCV来实现截图存储,最后用图片生成MP4
2. 使用屏幕捕获工具结合脚本
ANSYS Maxwell 本身可能不提供导出图像的脚本支持,但可以通过外部工具实现自动截图。
步骤示例(Python + PyAutoGUI 或 OpenCV):
安装必要的库:
bash
复制代码
pip install pyautogui opencv-python示例代码(模拟鼠标操作截图):
python复制代码import pyautogui
import time
# 等待 Maxwell 窗口打开
time.sleep(5)
# 截图整个屏幕
screenshot = pyautogui.screenshot()
# 保存为 PNG 文件
screenshot.save("C:\\exported_image.png")若需要指定区域截图,可以用
pyautogui
或opencv
配置截图区域。
pip install opencv-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install opencv-contrib-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install pyautogui opencv-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install pywin32 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install moviepy -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install moviepy==2.1.0 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install ffmpeg-python -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip uninstall ffmpeg-python
pip install -r global_requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
image_folder = 'd:/images/' # 图片文件夹路径
用2k的分辨率视频看上去确实还是不错了。
基本上满意,接下来的问题就是自动截图的功能了!
大量的功能直接阉割掉了。后处理的东西不好导出来,怎么搞?!!!
output_file = r"F:\pythonCode\pythonProject\images\a05.avi"
cap = cv2.VideoCapture(output_file)
一个完整功能强大的提升视频质量的script,没有完整实现过
import cv2
import numpy as np
def sharpen_frame(frame):
"""
锐化处理函数
"""
kernel = np.array([[0, -1, 0],
[-1, 5, -1],
[0, -1, 0]])
return cv2.filter2D(frame, -1, kernel)
def increase_contrast(frame, alpha=2.5, beta=50):
"""
增强图像对比度
alpha: 对比度控制
beta: 亮度控制
"""
return cv2.convertScaleAbs(frame, alpha=alpha, beta=beta)
def denoise_frame(frame):
"""
使用非局部均值去噪
"""
return cv2.fastNlMeansDenoisingColored(frame, None, 10, 10, 7, 21)
def enhance_frame(frame):
"""
综合增强:去噪、增强对比度、锐化
"""
# 1. 去噪
denoised_frame = denoise_frame(frame)
# 2. 增强对比度
contrast_frame = increase_contrast(denoised_frame, alpha=2.5, beta=50)
# 3. 锐化
sharpened_frame = sharpen_frame(contrast_frame)
return sharpened_frame
# 示例代码
output_file = r"F:\pythonCode\pythonProject\images\a05.avi" # 输入视频路径
cap = cv2.VideoCapture(output_file)
# 检查视频是否成功打开
if not cap.isOpened():
print("Error: Could not open video.")
exit()
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # 使用 mp4 编码
fps = cap.get(cv2.CAP_PROP_FPS) # 获取视频的帧率
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取视频的宽度
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取视频的高度
# 输出文件路径
out = cv2.VideoWriter('output_enhanced.mp4', fourcc, fps, (frame_width, frame_height))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# 综合增强处理
enhanced_frame = enhance_frame(frame)
# 写入增强后的视频
out.write(enhanced_frame)
# 释放资源
cap.release()
out.release()
print("Video processing complete. Enhanced video saved as 'output_enhanced.mp4'.")
https://console.cloud.tencent.com/domain/template/edit/tmpl-0iiqs2qp
ready 本周把域名DNS什么的加进去!
iframe src="https://player.bilibili.com/player.html?bvid=BV1ttk9YkEVx&t=12.4" width="100%" height="500" frameborder="0" allowfullscreen="true"></iframe> 用这个code方式把视频放在自己的web上直接挂出去。!不要切换出去了。
OK, 大概的frame可以这样子做!
可以写一个Ansys的Bug系列!
5b2b2a2fe80de1a939e678d6f1670513595ef691
git reset --hard 5b2b2a2fe80de1a939e678d6f1670513595ef691