激励编辑器使用指南

第6章 激励编辑器

章节大纲

6.1. 激励编辑器瞬态源
6.1.1 指数型(Exp)源
6.1.2 脉冲源
6.1.3 VPWL
6.1.4 SIN(正弦波)
6.1.5 SSFM(单频调频)
6.2. 用户生成的时变电压波形
6.3. 仿真配置文件
6.4. 练习

激励编辑器是一种图形化工具,可帮助您定义瞬态模拟和数字源。sourcestm库包含三个源部件,如图6.1所示,每个部件都提供了与激励编辑器中定义的激励的接口。

首次从 sourcestm 库中放置源时,原理图中将显示 implementation 属性。此属性指的是在激励编辑器中定义的激励名称。您可以在原理图中直接输入激励名称开始操作,或者在启动激励编辑器时,系统会提示您输入激励名称。

要启动激励编辑器,请选中一个sourcestm源,右键单击 > 编辑PSpice激励。

启动激励编辑器时,将出现新激励窗口,如图6.2所示。请注意,在 16.3 版本中,激励文件的名称已采用 PSpice 仿真配置文件的名称,本例中为 transient.stl。在早期版本中,激励名称则采用项目名称。

示意图0

新建激励窗口允许您定义模拟和数字信号,并在Capture中尚未定义激励名称时提示您输入激励名称。

6.1 激励编辑器瞬态源

6.1.1 指数(Exp)源

图6.3和图6.4 显示了两种可能的指数波形,这些波形可以分别使用VSTIM或ISTIM源为电压或电流定义。

两种指数波形均在时间延迟(td1)后开始,然后在电压V1和V2之间以时间常数(tc1)呈指数上升或下降,持续至时间td2。之后,波形在td2后以时间常数(tc2)衰减或上升。

例如,在 图6.3中,电压在 td1(10 μs)之前为 低电压 (0伏特);然后电压以时间常数 tc1(10 μs)按指数规律上升至 高电压 (10 伏特)。该指数上升的时间由td2−td1定义,为 30 μs(40−10μs),之后电压以时间常数tc2(5 μs)呈指数下降,逐渐回到V1。

示意图1

示意图2

现在,指数电压由以下公式定义:

$$
v(t) = (V2 - V1)\left(1 - e^{-\frac{time}{time\ constant}}\right)
$$

因此在 0 秒和 td1 之间,电压是恒定的:

$$
v(t) = V1
$$

在td1和td2之间:

$$
v(t) = V1 + (V2 - V1)\left(1 - e^{-\frac{t - td1}{tc1}}\right)
$$

在td2与停止时间之间的时间段内,电压由以下公式给出:

$$
v(t) = V1 + (V2 - V1)\left(1 - e^{-\frac{t - td1}{tc1}}\right)\left(1 - e^{-\frac{t - td2}{tc2}}\right)
$$

6.1.2 脉冲源

图6.6 显示了电压脉冲波形的定义,其中:
V1—低电压
V2—高电压
TD—脉冲开始前的时间延迟
TR—以秒为单位指定的上升时间,定义为V1与V2之间的时间差
TF—以秒为单位的下降时间,定义为V1与V2之间的时间差;
PW—脉冲的脉冲宽度;
PER—脉冲周期,即脉冲频率。

类似地,电流脉冲可使用 ISTIM 元件定义,如图6.7所示。

示意图3

首次放置VSTIM、ISTIM或DigSTIM元件时,会显示实现属性的名称和值。您只需显示激励的名称,因此双击Implementation5,将打开显示属性对话框,并选择仅值(图6.8)。

示意图4

示意图5

示意图6

图6.9 显示了ISTIM元件及其定义的电流激励Ipulse。与之前相同,要启动激励编辑器,右键单击并选择 激励编辑器 ,然后为新建激励选择脉冲。图6.10 显示了使用ISTIM元件为电流脉冲定义的脉冲属性。生成的电流波形如图6.11所示。

示意图7

示意图8

示意图9 图6.11 使用 图6.10 中的属性生成的电流脉冲波形。)

6.1.3 分段线性电压源(VPWL)

分段线性(PWL)是指实际绘制电压或电流波形的方法。您需要定义时间和电压(或电流)轴,然后使用光标来绘制波形。本章节末尾的练习中给出了一个示例。

6.1.4 正弦(SIN)源

图6.12 显示了正弦波的属性。完整的定义包括阻尼正弦波的属性,以及相位角和偏移值。偏移值是时间0秒时的初始电压或电流,幅值是最大电压或电流,频率(赫兹)是每秒周期数,时间延迟(秒)是启动延迟,阻尼因子(1/秒)是指数衰减,相位角(度)是相位角(图6.13)。

示意图10

6.1.5 单频调频(SSFM)源

该源产生如图6.14所示的频率调制正弦波,其中显示了载波频率的调制。正弦波由以下公式给出:

$$
v(t) = V_{off} + V_{ampl} \cdot \sin\left[2\pi f_c t + mod \cdot \sin(2\pi f_m \cdot time)\right]
$$

其中 $V_{off}$ 为偏移电压,$V_{ampl}$ 为电压最大值,$mod$ 为调制指数,$f_c$ 为载波频率,$f_m$ 为调制频率。

示意图11

示意图12 图6.14 单频FM属性。)

6.2 用户生成的时变电压波形

您还可以在探针中将瞬态分析生成的波形用作时间−电压源。在探针中,选择文件 > 导出,将显示图6.15所示的选项。

示意图13

在探针中选择迹线名称,复制并粘贴数据到文本文件,这是创建时间−电压文本文件的另一种方法。

6.3 仿真配置文件

在版本16.3之前,当你启动激励编辑器时,会创建一个与项目名称相同的激励文件;例如,名为stimulus的项目将创建一个stimulus.stl文件。你创建的所有激励都将保存在stimulus.stl文件中,因此在原理图中只需更改VSTIM、ISTIM或DigSTIM源上显示的名称,即可选择不同的激励。

从版本16.3开始,激励文件与当前活动的仿真配置文件相关联,并可通过配置文件选项卡下的仿真配置文件进行访问。在早期版本中,激励、库和包含选项分别有独立的选项卡。

在已配置的文件下,您将看到stimulus.stl文件(参见图6.23)。如果未看到激励文件,则可浏览查找文件名。然后,您可以将激励文件添加到配置文件中(添加到配置文件)。但还有其他选项:

  • 添加为全局:所有设计都将可以访问该激励文件。
  • 添加到设计:只有当前设计可以访问。

将激励文件添加为全局文件,对于创建标准激励集以测试所有电路非常有用。您可以添加多个激励文件,并通过点击上下箭头来调整顺序。红色叉号用于删除所选文件。

6.4 练习

注意
从版本 16.3 开始,与早期版本存在一些差异。当您在任何版本中首次创建新项目时,默认会创建一个 PSpice 偏置仿真配置文件。您可以在项目管理器中的 PSpice 资源 > 仿真配置文件 下看到该文件。为了保持版本间的兼容性,请在项目管理器中删除偏置仿真配置文件。

  1. 创建一个名为 stimulus 的项目。
  2. 在项目管理器中,展开 PSpice 资源 > 仿真配置文件,如图6.16 所示,并删除 SCHEMATIC1‐偏置配置文件。
  3. 绘制图6.17中的电路图。VSTIM 电源(低电压)来自 sourcestm 库。

示意图14

示意图15

  1. 选中VSTIM并右键单击 > 编辑PSpice激励。在新激励窗口中,将源命名为 sin100Hz,并选择一个正弦波源(图6.18)。

示意图16

  1. 创建一个无偏移、幅值为1伏特的100赫兹正弦波。其余所有值保持其默认值0(图 6.19)。单击确定,保存激励源并在提示时更新原理图,然后退出激励编辑器。

  2. 在Capture中,激励名称现在显示在V1上。双击实现¼ sin100Hz并选择 仅值(图6.20)。

仅显示激励名称,如图6.21所示。

示意图17

示意图18

示意图19

  1. 创建一个 PSpice 仿真配置文件 (PSpice > 新建仿真配置文件),并将其命名为瞬态。在分析类型:下拉菜单中选择时域(瞬态),并将运行至时间:设置为 20毫秒(图6.22)。单击应用,但不要退出该配置文件。

  2. 选择 配置文件 > 类别 > 激励,您应该会看到 stimulus.stl 文件已列出(图 6.23)。

示意图20

突出显示 stimulus.stl 文件,然后单击 编辑。激励编辑器 将启动并显示 sin100Hz 激励。这是一种快速查看 激励文件 中可用激励的方法。关闭 仿真配置文件。

  1. 在节点 输出(图6.24)放置一个电压标记,运行仿真(PSpice > 运行),并确认电阻两端出现正弦波电压。

注意
如果在探针窗口中看到一条平坦的电压线,则可能尚未删除默认的bias.stl文件。请参阅练习开始处的说明。此时激励编辑器会以默认的bias.stl作为活动的仿真配置文件启动。如果在仿真配置文件中看不到激励文件(图6.23),则 浏览 该文件,文件位于bias文件夹中,然后选择 添加到设计。

  1. 在项目管理器中,展开PSpice > 资源 > 激励文件,您应该可以看到 transient.stl 激励文件,如 图6.25 所示。您可以在此处双击该文件以打开激励编辑器来检查激励。

  2. 在 Capture 中高亮 VSTIM 并启动激励编辑器。在激励编辑器中将显示之前的正弦属性。点击取消。

  3. 创建一个名为 Vpulse(激励源 > 新建)的脉冲源,其初始值为 0伏特,幅值为 1伏特,无初始延迟,上升时间为 500 μ秒,下降时间为 1毫秒,脉冲宽度为 2毫秒,周期为 10毫秒(图6.26)。单击“确定”并保存激励源,但在提示时不要选择“更新原理图”。退出激励编辑器。

注意
输入属性值时,请按键盘上的TAB键移动到下一个属性框。

注意
该激励在Capture中已命名为sin100Hz,无法从激励编辑器中更新。在之前的软件版本中,如果对更新原理图选择是,光标将变为沙漏并一直停留。您需要切换到Capture,此时您将看到图6.27中的对话框。只需单击确定即可。

  1. 在Capture中,双击激励名称sin100Hz,并将其更改为Vpulse,如图6.28所示。

  2. 运行仿真。在PSpice中选择 > 运行,或单击蓝色播放按钮。

  3. 确认电阻两端出现电压脉冲波形。
  4. 在Capture中选中VSTIM,右键单击 > 编辑激励编辑器。在激励编辑器中将显示先前的PULSE属性。单击取消。
  5. 创建一个新激励,激励 > 新建。将激励命名为Vin,并选择PWL(分段线性)。

注意
您可能会被询问是否要更改轴设置。

  1. 从顶部工具栏中选择绘图 > 坐标轴设置。将波形绘制分辨率设置为图 6.29 所示。

  2. 将出现一个笔形光标。绘制一个相应的分段线性图,以近似 图 6.30 中所示的分段线性电压。第一个点 (0,0) 已经被选中。只要定义了三个峰值,精度无关紧要。此激励将在第7章的瞬态分析中使用。按 ESC 键以退出绘图模式。

  3. 如果要删除或移动一个点,请先按 ESC 键退出绘图模式,将光标放在某个点上,该点会变为红色,然后删除或移动该点。要返回绘图模式,请选择编辑 > 添加,或选择图标。

注意
在版本 16.3 之前,您只能向前放置点;无法向后移动。如果要删除或移动某个点,请按 ESC 键退出绘图模式,将光标放在一个点上(该点会变为红色),然后删除或移动该点。

  1. 保存激励文件并退出激励编辑器,但不要更新原理图。
  2. 将激励名称从 Vpulse 更改为 Vin 并进行仿真,确认分段电压波形出现在电阻两端。

注意
Vin 源将在 第7章 中使用。

Modelsim的使用以及设计、激励文件testbench的说明 阅读详情

相关推荐

uniapp激励广告

html代码 <view @click="adClick">看视频</view> js代码 // 在onReady函数加上下面代码 // #ifdef APP-PLUS this._isLoaded = false this._rewardedVideoAd = uni.createRewardedVideoAd({ adpid:'' // 自己的广告id }) // 仅用于HBuilder基座调试 adpid: '1507000689' this._reward

m0_54009761的博客 3317

Maxwell电磁仿真:电流激励设置全攻略

Maxwell电磁仿真中的电流激励设置方法主要包括三种:1)直接设置法,适用于简单正弦波电流激励;2)外电路设置法,通过CircuitEditor构建复杂电路,适合模拟开关时序等工况;3)基于ECE模型的设置法,可快速生成电机等效电路模型,适用于控制算法验证。选型建议指出:电流源计算效率高,电压源更接近实际电源但耗时长;外电路适合复杂驱动逻辑和故障模拟。参数扫描能优化内功率因数角以获得最大转矩输出。

梦兮丫丫的博客 4160

Godot游戏AdMob广告集成实战:从插件配置到激励视频实现

移动应用变现是游戏开发的核心环节,其中广告SDK集成是关键。Google AdMob作为全球主流的移动广告平台,通过其SDK为开发者提供了横幅、插页、激励视频等多种广告格式的接入能力。其技术原理是通过网络请求获取广告内容,并在应用界面中动态展示,实现流量变现。对于使用Godot引擎的开发者而言,由于引擎未内置广告支持,需通过第三方插件桥接AdMob SDK。这不仅能大幅降低Android平台原生集成的复杂度,还能通过GDScript API便捷控制广告生命周期,提升开发效率。在实际应用场景中,合理配置广告单

weixin_29708043的博客 272

给串口接收文件写激励文件,要求发送多个字节

用Verilog HDL语言,写串口接收文件,想要用激励文件代替串口助手。想要在激励文件中给发送多个字节,但现在只能实现一个字节的发送,想了很久也不知道该怎么弄,现在来问问各位大佬。 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下

weixin_44920245的博客 719

【UG\NX二次开发】操作记录编辑器不允许使用中文怎么办

NX二次开发-群精选」专栏收录了那些曾散落在聊天对话框里的精彩的知识分享,这都是被遗落的宝贵财富。让我们一起向大佬学习,充满激情地进步,不断超越自己。底部联系方式,欢迎您加入一起交流。操作记录编辑器不允许使用中文怎么办。

王牌飞行员_里海的博客 269

AG16K MCU ARM Cortex M3

其中,Input文件为Keil生成的mcu程序文件,输出为合成后的存储格式Bin文件,Program address 为上方表格中“程序运行 RAM 地址(4bytes)”,即 Keil 中设置的程序运行地址。其中 MCU 程序的地址,根据 mcu.ip 中设置的 FLASH_BIAS 进行设置。AG16K MCU 的 FPGA 工程中,需调用 alta_mcu_m3 的硬核 IP,包含在 alta_sim.v 的库文。Quartus II。//MCU 程序在 FLASH 中存放的首地址。

Embeded_FPGA的博客 1805

AI配送团队激励视频智能生成系统

最近我尝试用AI技术开发了一个激励视频自动生成系统,整个过程非常有趣且实用,下面分享我的实践心得。特别是部署环节,一键就能将demo变成可用的web应用,不用操心服务器配置这些技术细节。根据输入的关键词,系统会调用文生图模型生成5-8张匹配的励志图片。比如输入"拼搏"可能生成晨跑者的剪影,"高效"则对应快速行驶的车辆等意象。为确保多样性,我设置了不同的风格模板可供选择。我采用分步处理的设计思路,让每个环节可以独立优化。- 激励关键词:3-5个能代表团队精神的核心词汇。- 不同站点的视频风格可以差异化。

TopazHawk54的博客 586

【STM32】H743的25MHZ外部晶振下480MHz时钟的CubeMX配置图

备忘 有时候临时调一个外设做实验需要快速搭建工程的时候,老忘记配置的数据 再补一段代码格式的 void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; /** Supply configuration up

一只爱做笔记的码农 3395

CocosCreator接入穿山甲SDK(IOS)--激励视屏

参考 有关CocosCreator与Object-C如何交互的问题,参考文章: https://blog.youkuaiyun.com/ZFSR05255134/article/details/105587509 cocos creator 文档介绍 https://docs.cocos.com/creator/manual/zh/advanced-topics/oc-reflection.html ...

iDaDi的博客 2万+

【MMDetection3.0实战】从零构建自定义数据集训练流程

本文详细介绍了使用MMDetection3.0框架从零开始构建自定义目标检测数据集的完整训练流程。内容涵盖环境配置、COCO格式数据准备、核心代码改造、模型配置与训练策略调优,以及最终的模型测试与验证,帮助开发者快速上手并训练自己的检测模型。

l6m7n8的博客 314

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

SocketRocket 快速集成指南:5 分钟为 App 接入标准 WebSocket 客户端

SocketRocket 是 Facebook 开源的 Objective-C WebSocket(RFC 6455)客户端库,支持 iOS、macOS、tvOS 与 visionOS,纯异步设计,一条 CocoaPods 依赖即可接入。 ## 为什么需要它 App 里要做实时聊天、行情推送、设备控制时,HTTP 轮询要么延迟高要么耗电,而原生 WebSocket 的握手、分帧、掩码处理自己写

gitblog_00116的博客 345

零基础入门simulink1000例--第112例:在 Simulink 中构建一个基本的相控阵雷达波束形成系统仿真模型

摘要:本文详细介绍了使用Simulink实现相控阵雷达波束形成技术的完整流程。从创建Simulink模型、设计天线阵列、信号生成,到波束形成算法实现和结果可视化,涵盖了关键步骤。文章重点讲解了均匀线性阵列的设计、线性调频信号生成、相位偏移计算等核心技术,并提供了MATLAB代码示例。通过Scope或ArrayPlot模块进行结果分析,最终可导出为嵌入式代码部署。该系统展现了电子扫描波束的技术优势,为雷达系统设计提供了有效的仿真方法。

amy_mhd的博客 210

性感编辑器:让你的代码界面焕然一新

性感编辑器:让你的代码界面焕然一新 项目介绍 性感编辑器(sexyeditor),一款专为JetBrains IDE设计的插件,旨在打破传统编辑器单一的背景色彩,为你的编程环境增添无穷个性与活力。它不仅仅是一款编辑器背景美化工具,更是一种激发灵感的创意助手。 项目技术分析 性感编辑器的核心基于JetBrains Plugin SDK开发,它允许开发者自定义和扩展JetBrains IDE的功能。通...

gitblog_00776的博客 728

蓝牙芯片驱动开发-第11章第1题-WiFi蓝牙共存的关键策略有哪些

蓝牙芯片驱动开发-第11章第1题-WiFi蓝牙共存的关键策略有哪些

weixin_42162924的博客 30

Amesim应用篇-电芯等效电路模型标定

为了使计算模型更加准确,在有电芯实验测试数据的情况下,依据现有的实验数据对Amesim中的电池等效电路模型进行标定。标定的目的是为了获得更加符合项目实际情况的电芯等效电路模型,标定完的电芯可以用于搭建PACK模型,也可以用于其他虚拟实验。本文以充电标定为例,进行介绍。放电标定与充电一致。

2201_75375391的博客 1213

Wakatime CLI 使用指南

Wakatime CLI 使用指南 项目介绍 Wakatime CLI(命令行界面)是支持所有WakaTime文本编辑器插件的核心组件。它致力于自动化追踪编程时间,提供生产力分析、指标统计以及自我量化的时间跟踪功能。通过与各类编辑器和IDE集成,Wakatime CLI能够无缝收集你在编码时的数据,帮助开发者了解自己的编码习惯和效率。访问Wakatime官网来获取更多关于如何提高开发效率的洞见。 ...

gitblog_00357的博客 570

ENVI_基于无人机数据的果树提取与相对健康监测

一、数据处理 1.计算植被指数VDVI或GDVI:Band Math / Spectral Indices 2.制作掩膜:ROI——Threshold——Subset 二、单地块果树提取 1.绘制感兴趣区shp 2.确定果树提取参数:Count Crops 3.输出果树矢量文件:Convert Crops To Shapefile 4.果树相对健康程度分析:Calculate Crop Me...

提供技术服务、资源分享 429690771 1399

wordpress编辑器_如何通过WordPress中的字数更改编辑器背景颜色

wordpress编辑器Do you want to write longer articles on your blog? Sometimes it can be hard without having any visual motivation. We found a solution that can help. In this article, we will show you how t...

304

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

milkdown贡献者激励计划:社区贡献的认可与奖励机制

开源项目的生命力源于社区的积极参与。据[Open Source Survey](https://opensourcesurvey.org/2017/)数据显示,**78%的贡献者认为"社区认可"是持续贡献的核心动力**。milkdown作为插件驱动的Markdown编辑器框架,自2020年首次发布以来,已吸引全球150+贡献者参与开发。为进一步繁荣生态,我们正式推出贡献者激励计划,构建透明、可持续...

gitblog_00946的博客 1068

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

《虚幻引擎开发者社区终极使用指南》- EDC有奖激励计划

它可不是一个简单的聊天机器人,把它看作是学习了虚幻引擎知识、记忆力超群、永不疲倦的技术导师吧,你需要学会如何与它高效协作。要成为高效的学习者,你必须学会使用它强大的检索系统。在“学习”版块页面的右上角,点击蓝色的 “新建” 按钮,在社区里创建一篇图文/视频教程。当你想要学习某一个具体的功能时,请使用目录树顶部的“按标题筛选”,它将帮助你快速定位你想要学习的部分。如果你没有在标题中找到自己想要的关键词,那么请点击【文档】下拉中的查看所有Epic Games文档,即可进入Epic开发者社区的【文档】全局搜索。

Jerish的博客 477

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

AI志愿者情感激励语音生成系统

他们的在线编辑器直接集成AI能力,调试TTS参数时可以实时试听效果,最省心的是不需要自己部署服务器,做完就能生成分享链接给团队测试。设计管理员后台时,我们把输入项分为客观数据(服务时长、参与项目数)和主观描述(志愿者让人印象深刻的瞬间)。:用大语言模型分析事迹亮点,生成有人情味的文案(比如"张阿姨说您带的红枣糕让她想起孙女"这类细节)典型输出类似:"王大哥,您这半年风雨无阻的32次社区义诊,李奶奶说您的按摩手法比亲儿子还专业呢!最意外的是,有位大学生志愿者说AI念出他照顾流浪狗的细节时"差点哭出来"

AmberTiger47的博客 419

AI环保会员碳足迹3D动态追踪与个性化激励系统

最近参与了一个环保组织的会员管理系统开发项目,核心目标是利用AI技术实现会员碳足迹的追踪与个性化激励方案生成。这个系统听起来高大上,但实际开发过程发现,合理利用现有工具可以大大降低实现难度。上开发特别顺畅,它的在线编辑器支持实时协作,内置的AI辅助能快速解决技术问题。最惊喜的是部署功能,点击按钮就能把demo变成可访问的线上服务,省去了配置服务器的麻烦。实际使用中发现,平台的环境预配置和自动化部署流程,让开发效率提升了不少。同时开发了隐私计算模块,实现"可用不可见"的数据分析。碳排放计算的实现要点。

TopazHawk41的博客 728

Odyssey.js 使用指南

--- ## 项目介绍 Odyssey.js 是一个由 CartoDB 开发并得到 Knight 基金会资助的开源项目,旨在提供一个简单的方法让记者、设计师和创作者编织交互式故事。它结合了强大的地图功能与叙述性内容,允许用户通过 Markdown 编辑器轻松地探索现有动作和行为,并创建出美观且富于互动性的地图导向故事。Odyssey 提供基于滚动、滑块和时间线等不同展示方式的模板,让用户能够灵...

gitblog_01136的博客 413

AI公益志愿者激励画像生成与语音感谢系统

于是尝试用AI技术搭建了一套个性化激励系统,记录下实现过程中的关键要点和经验。这套系统证明,适当的技术赋能可以让公益组织的运营更加人性化。未来计划加入志愿者互动反馈模块,让激励方案能持续优化迭代。实践时,发现其内置的AI模型能快速验证文本生成效果,部署测试环境的过程比本地开发节省至少60%时间。内置10套奖励模板库,根据画像分数自动匹配证书等级和权益礼包。- 方言语音功能让老年志愿者倍感亲切。

IronwoodEagle56的博客 405
上一篇: 51、立体匹配与3D重建技术解析
下一篇: 75、基于云认证系统的NFC支付安全
http9protocoller
博客等级 码龄1天 0粉丝 1782原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值