找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第44期发售火热进行中
Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
楼主: 达一

[讨论] AI浪潮下,电机变压器设计师的破局之道:退场还是新生?

[复制链接]

签到天数: 34 天

连续签到: 2 天

[LV.5]常住居民I

发表于 2026-4-3 14:19 | 显示全部楼层 来自: 中国江苏常州
ai最终是工程师的使用工具吧
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 103 天

连续签到: 1 天

[LV.6]常住居民II

发表于 2026-4-3 14:57 | 显示全部楼层 来自: 中国江西九江
xinmingbo 发表于 2026-4-3 13:45
你太悲观了,灵魂了解一下。再说,你跑不过汽车可以考个**啊。顺便问一句,你们的电机AI课题落地了?不是 ...

事实上,我个人观点是,最终象人一样会学习,有思想,有情感的AI,象电影《终结者》中的“天网”会必然出现的。这与跑不过汽车可以驾驶汽车不是同一类比。
当然楼主不是这个意思,主要是我想多了,悲观了些。
至于我们的AI项目,已经在开始商业运作了。多谢关心。

下面粘一下类人脑神经系统的一个简单代码。其运行原理,和现在的AI方法完全不一样。这个原理模仿了人类婴幼儿成长的过程,没有梯度运算,方法是我提出的,代码是gemini写的。以我工科背景出身的人,都可以想到这个方法,那些专门研究AI的天才人物,更不知道研究有多深了。

所有人类能够想到的,都在一步一步实现。无论是神话传说,还是电影故事情节。。。。

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from brian2 import *
import gradio as gr

# 加载MNIST数据
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
X_train = X_train[:500] / 255.0  # 训练图像缩小为[0,1]
y_train = y_train[:500]
X_test = X_test[:100] / 255.0
y_test = y_test[:100]

# 设定参数
n_input = 784
n_neurons = 100
duration = 350 * ms


# 这段代码的作用是将一张二维的灰度图像(如 28×28 的 MNIST 图片)
# 转换为脉冲神经网络中使用的发放率(firing rates)向量,
# 供 Poisson 神经元组使用。
# 这行代码完成的是:
# 将图像像素值 → 转换为 PoissonGroup 所需的发放频率。#
# 每个像素值将被视作输入神经元的激活强度。#
# 越亮的像素(值接近 1)将被映射为较高的脉冲发放频率(接近 max_rate),暗的像素则发放频率低或为 0。
# 输出是一个长度为 784 的一维向量,值的单位为 Hz,可以直接用于 PoissonGroup 的 rates。
def encode_image(img, max_rate=100 * Hz):
    return img.flatten() * max_rate


# 构建网络
# 这段代码定义了一个类脑脉冲神经网络(Spiking Neural Network, SNN)结构,
# 它由输入层、学习层、突触连接、自组织学习机制、联想记忆机制和监视器组成。
def build_network():
    start_scope() #这是 Brian2 的函数,用于清空之前的网络模型和变量定义,确保每次构建都是“干净”的网络。
    # 输入
    # PG 是一个泊松输入神经元组(大小为n_input,通常为784),用于模拟视觉输入(如MNIST图像)。
    # 每个神经元的发放是随机的泊松过程,其发放频率rates(t, i)是一个外部定义的函数,表示第i 个神经元在时间t的发放频率。
    PG = PoissonGroup(n_input, rates='rates(t, i)')

    # LIF学习神经元
    # G 是一个Leaky Integrate-and-Fire 神经元组(大小为 n_neurons,如 100)
    # 微分方程:
    #    dv/dt = (v_rest - v) / tau:膜电位随着时间衰减向静息电位靠拢(电荷泄漏模型)
    # threshold='v > v_thresh':当膜电位超过阈值就触发脉冲
    # reset='v = v_reset':触发后将膜电位重置
    # method='exact':使用解析解提高模拟精度
    eqs = '''dv/dt = (v_rest - v) / tau : volt'''
    G = NeuronGroup(n_neurons, eqs, threshold='v>v_thresh', reset='v=v_reset', method='exact')
    G.v = -65 * mV

    # STDP突触模型(自组织学习)
    # w:突触权重
    # apre, apost:前后脉冲的“踪迹变量”(trace),用于实现脉冲时间依赖可塑性(STDP)
    # 'event-driven':表示只有当事件(脉冲)发生时才更新,节省计算资源

    syn_eqs = '''
    w : 1
    dapre/dt = -apre / tau_pre : 1 (event-driven)
    dapost/dt = -apost / tau_post : 1 (event-driven)
    '''

    # 权重更新规则(STDP)
    # on_pre:当前神经元发放时:
    #   给目标神经元一个权重加权的电压脉冲
    #   增加 apre 值(记录这次脉冲)
    #   根据前次后脉冲 apost 更新权重(LTP)
    # on_post:当目标神经元发放时:
    #   增加 apost
    #   根据 apre 更新权重(LTD)
    # 这正是 Hebbian 学习:“前放后随则增强,后放前随则削弱”
    #
    on_pre = '''
    v_post += w * mV
    apre += A_pre
    w = clip(w + apost, 0, 1)
    '''
    on_post = '''
    apost += A_post
    w = clip(w + apre, 0, 1)
    '''
    # 创建输入连接(PG → G)
    # 创建突触对象 S,应用上述模型和规则
    # connect(p=0.3):30% 稠密连接(稀疏随机连接)
    # 初始权重设置为 0~0.2 随机值

    S = Synapses(PG, G, model=syn_eqs, on_pre=on_pre, on_post=on_post)
    S.connect(p=0.3)
    S.w = 'rand() * 0.2'

    # 内部兴奋性连接(形成细胞簇)
    # G → G:在学习层神经元内部增加突触连接
    # 作用:
    #   模拟细胞簇(Cell Assembly):代表相同模式的神经元之间的互相连接
    #   这种结构是联想记忆(pattern completion)的基础
    # 同样采用 STDP 学习规则
    R = Synapses(G, G, model=syn_eqs, on_pre=on_pre, on_post=on_post)
    R.connect(condition='i != j', p=0.1)
    R.w = 'rand() * 0.1'

    # 抑制机制:防止所有神经元同时激活(WTA)
    # 抑制连接,模拟侧向抑制(Lateral Inhibition)
    # 当某个神经元放电时,抑制其余神经元(Winner-Take-All机制)
    # 防止所有神经元学习相同的模式,提高分化能力
    I = Synapses(G, G, on_pre='v_post -= 3*mV')
    I.connect(condition='i != j', p=0.1)

    # 监视器:记录神经元活动
    # 记录 G 中所有神经元的发放时间和索引
    # 用于之后生成 Spike Raster Plot 或用于分类评估等分析
    spikes = SpikeMonitor(G)
    return PG, G, S, R, spikes


# 定义输入编码函数
def make_rates_func(image):
    vector = encode_image(image)

    def rates(t, i):
        return vector

    return rates


# 训练过程
def train_network(PG, G, S, R, images):
    for i in range(len(images)):
        PG.rates = make_rates_func(images)
        run(duration)


# 分类器:返回每张图像激活次数最多的神经元
def classify_images(PG, G, images, labels, spike_monitor):
    pred, truth = [], []
    for i in range(len(images)):
        spike_monitor.active = True
        PG.rates = make_rates_func(images)
        run(duration)
        spike_monitor.active = False
        if len(spike_monitor.i):
            hist = np.bincount(spike_monitor.i)
            pred_label = np.argmax(hist)
            pred.append(pred_label)
        else:
            pred.append(-1)
        truth.append(labels)
        spike_monitor.i[:] = []  # 清空
    return pred, truth


# 可视化感受野
def plot_receptive_fields(S):
    fig, axs = plt.subplots(10, 10, figsize=(10, 10))
    for i, ax in enumerate(axs.flat):
        if i >= n_neurons:
            break
        w = S.w[:, i].reshape((28, 28))
        ax.imshow(w, cmap='gray')
        ax.axis('off')
    plt.tight_layout()
    return fig


# 交互:上传图像后模拟大脑补全与分类
def simulate(image):
    image = np.array(image) / 255.0
    PG, G, S, R, spikes = build_network()
    train_network(PG, G, S, R, X_train)

    # 遮挡输入
    test_image = image.copy()
    test_image[:, 14:] = 0

    PG.rates = make_rates_func(test_image)
    spikes.active = True
    run(duration)

    # 可视化感受野
    fig_rf = plot_receptive_fields(S)

    # Spike Raster Plot
    fig_raster = plt.figure(figsize=(10, 4))
    plt.plot(spikes.t / ms, spikes.i, '.k')
    plt.xlabel('Time (ms)')
    plt.ylabel('Neuron Index')
    plt.title('Spike Raster Plot')

    # 预测结果
    if len(spikes.i):
        pred_label = np.argmax(np.bincount(spikes.i))
    else:
        pred_label = -1

    return fig_rf, fig_raster, str(pred_label)

def predict_fn(image):
    # 你的大脑补全 + 推理代码
    return image  # 示例:原图返回

# Gradio界面
# interface = gr.Interface(
#     fn=predict_fn,
#     inputs=gr.Image(shape=(28, 28), image_mode='L', label="上传遮挡图像(28x28)"),
#     outputs=[
#         gr.Plot(label="感受野 (Receptive Fields)"),
#         gr.Plot(label="Spike Raster Plot"),
#         gr.Textbox(label="预测类别(细胞簇响应结果)")
#     ],
#     title="类脑神经网络:感知 · 联想 · 补全",
#     description="上传一个遮挡的MNIST图像,系统通过SNN完成自组织学习与记忆补全,并输出分类结果。"
# )

interface = gr.Interface(
    fn=simulate,
    inputs=gr.Image(
        image_mode="L",
        label="上传遮挡图像(28x28)",
        sources=["upload"],
        type="numpy"
    ),
    outputs=[
        gr.Plot(label="感受野 (Receptive Fields)"),
        gr.Plot(label="Spike Raster Plot"),
        gr.Textbox(label="预测类别(细胞簇响应结果)")
    ],
    title="类脑神经网络:感知 · 联想 · 补全",
    description="上传一个遮挡的MNIST图像,系统通过SNN完成自组织学习与记忆补全,并输出分类结果。"
)

interface.launch(
    inbrowser=False,
    prevent_thread_lock=False,
    server_port=7861,
    share=False,
    show_error=True
)






西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 39 天

连续签到: 2 天

[LV.5]常住居民I

发表于 2026-4-16 15:44 | 显示全部楼层 来自: 中国黑龙江哈尔滨
版主你好请问Infolytica Magnet 为什么在赋完绕组保存后电流流入流出面有的显示有的不显示还有为什么报错145566?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 177 天

连续签到: 32 天

[LV.7]常住居民III

发表于 2026-4-28 16:59 | 显示全部楼层 来自: 中国山东青岛
katawong 发表于 2026-4-3 14:57
事实上,我个人观点是,最终象人一样会学习,有思想,有情感的AI,象电影《终结者》中的“天网”会必然出 ...

AI不会产生“自主”“意识”,就凭这一点它也不会真正替代人。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

西莫电机论坛微信公众平台欢迎您的关注!

QQ|Archiver|手机版|小黑屋|西莫电机圈 ( 浙ICP备10025899号-3|浙公网安备33010502012192号 )

GMT+8, 2026-4-28 20:10 , Processed in 0.030940 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表