0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SaberRD状态机建模工具介绍(二)状态机建模工具使用示例

冬至子 来源:Saber仿真 作者:Greatalent 2023-12-05 09:53 次阅读

3、状态机建模工具使用示例

3.1. 使用状态机建立电阻模型

第一步****添加电阻端口

假设电阻阻值为r_normal,首先打开状态机建模工具,添加电阻端口,电阻端口包含贯通变量电流和跨接变量电压,使用分支型端口。

图片

第二步****添加变量

添加电阻阻值r_normal为外部静态变量

图片

添加电流变量ipn

图片

添加电压变量vpn

图片

第三步****添加状态图

电阻在整过过程中没有状态变化,双击变量vpn,设置如下

图片

设置完成后,保存模型,搭建一个简单的电路测试电阻模型是否正确。

图片

图片

3.2. 使用状态机创建可变电阻

可变电阻的电阻值由外部管脚r_var控制。

首先建立symbol端子如下,设置p和n为electrical量

图片

其中r_var是可变电阻的控制端。变量类型为

图片

添加电阻的电压变量vpn(依次点击左侧across图标、p端口、n端口)和电流变量ipn(依次点击左侧through图标、p端口、n端口)

图片

保存模型,搭建简单电路进行验证。

图片

图片

3.3. 创建基于公式的模型

如下公式是压控电机中的一部分算法,三相正弦交流电压幅值由控制电压U_control,增益gain。偏置U_offset控制。频率由f控制。

U_amp=U_control*gain+U_offset

U_a=U_ampsin(2pift)

U_b=U_ampsin(2pift+ 2*pi/3)

U_c=U_ampsin(2pift -2*pi/3)

建模时分两个状态机进行创建,vfconst和uf2abc。vfconst实现第一个公式,uf2abc实现后三个公式。

3.3.1. vfconst

建立symbol端子如下图,u_offset和f是输入,uout和fout是输出,单位都是 nunit。

图片

创建模型静态变量gain

图片

建立两个状态图S1和S2,状态关系为如果频率小于等于0时,进入state2,如果频率大于0时进入state1。、

图片

鼠标双击state1和state2设置两个输出变量的公式,保存模型。

图片

3.3.2. uf2abc建模

建立输入输出管脚,输入管脚u,f,输出管脚 ua,ub,uc。单位都是no unit。

图片

创建两个ststic 变量,pi和samolerate,pi即3.141593,samplerate用来控制模型的最大采样间隔时间。创建一个state变量,配合下文的clk模块正常运行。

图片

建立两个状态图S1和S2,状态关系为如果频率小于等于0时,进入state2,如果频率大于0时进入state1。

图片

鼠标双击state1和state2设置两个输出变量的公式

图片

添加一个时钟源clk1,时钟源的周期为samplerate,每个周期内做的事为给intst变量赋值为1,这样处理的意义是:保证saber仿真器在计算ua,ub,uc的值在一个1/f周期内有足够的采样点。因为仿真器的步长会变,如果f变大的话,可能导致一个1/f周期内采样点不够,导致波形失真。samplerate可以依据1/20*fmax来考虑。

图片

模型创建好后可以搭建一个简单电路进行验证。

图片

图片

图片

3.4. 创建IGBT信号驱动模型

IGBT驱动器模型可将逻辑数字信号转换为电压信号输出以驱动IGBT模型工作。

输入为数字逻辑信号digital_in,输出是模型信号analog_out,参考ref,高电平输出电压为vgon,低电平输出电压为vgoff,电平切换时间transition_time。

创建模型端口,digital_in输入,逻辑信号。analog_out和ref输出,电信号。

图片

创建全局变量vgon,vgoff和transition_time

图片

设置analog_out的电压输出变量vg。

图片

创建两个state,分别命名为up和down。up状态下设置vg=vgon,down状态下设置vg=vgoff。digital_in=0时切换到down模式,等于1时,切换到up。

图片

使用event_on函数判断digital_in的状态变化,使用digital_in == '0'或digital_in == '1‘判断逻辑电平是高还是低。

mast语言中,高电平使用’1’表示,低电平使用’0’表示。

状态切换时间设置为transition_time

图片

设置完成后保存模型,建立验证电路测试模型。

图片

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 可变电阻
    +关注

    关注

    0

    文章

    40

    浏览量

    15560
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27182
  • 交流电压
    +关注

    关注

    2

    文章

    160

    浏览量

    16700
  • 控制电压
    +关注

    关注

    0

    文章

    27

    浏览量

    15951
  • CLK
    CLK
    +关注

    关注

    0

    文章

    122

    浏览量

    16912
收藏 人收藏

    评论

    相关推荐

    SaberRD状态机建模工具介绍(一)什么是状态机建模

    状态机建模是使用状态图和方程式的手段,创建基于混合信号的有限状态机模型的一种建模工具
    的头像 发表于 12-05 09:51 539次阅读
    <b class='flag-5'>SaberRD</b><b class='flag-5'>状态机</b><b class='flag-5'>建模</b><b class='flag-5'>工具</b><b class='flag-5'>介绍</b>(一)什么是<b class='flag-5'>状态机</b><b class='flag-5'>建模</b>

    状态机编程

    等待一段时间后,光标的位置就会右移,表示对最后输入字符的确认。因此,按键输入接口设计和实现的核心,更多的体现在软件接口处理程序的设计中。下面将以此为例,介绍有限状态机的分析设计原理,以及基于状态机思想
    发表于 07-10 18:00

    LV 状态机工具条 8.x

    LV 状态机工具条 8.x
    发表于 07-08 10:48

    QM UML状态机建模实例之Blinky for cortex-m0

    USB,LED灯简单介绍完QP和QpNano后,下面才是我要重点推荐使用QP框架的原因。QP框架允许完全手工编程和使用自动生成代码工具QM。QM(QP™ Modeler)建模是基于QP框架和层次式
    发表于 08-15 20:17

    状态机如何暂停

    程序一运行 就开始自动运行程序 状态机各种各种状态开始执行 我这里是布尔变量 每一秒点亮一个布尔按钮。我现在想在界面增加一个暂停按钮 当点暂停时候 此时暂停按钮文字成为继续 如果 状态机执行第
    发表于 04-09 09:23

    如何在SystemVerilog中为状态机的命令序列的生成建模

     我们将展示如何在SystemVerilog中为状态机的命令序列的生成建模,并且我们将看到它是如何实现更高效的建模,以及实现更好的测试生成。​
    发表于 01-01 06:05

    状态机是什么?什么是消息触发类型的状态机

    状态机可归纳为哪几个要素?状态机可分为哪几种?什么是消息触发类型的状态机
    发表于 04-19 06:02

    什么是状态机状态机是如何编程的?

    什么是状态机状态机是如何编程的?
    发表于 10-20 07:43

    什么是状态机

    一. 什么是状态机我们以生活中的小区的停车系统为例:停车杆一般没车的是不动的(初态),有车来的时候需要抬杆(状态1),车通过需要放杆(状态2),如果在放杆的过程中突然有车,又需要抬杆(状态
    发表于 01-06 08:01

    状态机代码生成工具

    状态机代码生成工具状态机代码生成工具状态机代码生成工具状态机
    发表于 11-19 15:12 9次下载

    有限状态机建模与优化设计

    本文提出一种优秀 、高效的 Verilog HDL 描述方式来进行有限状态机设计 介绍了 有限状态机建模原则 并通过一个可综合的实例 验证了 该方法设计的有限
    发表于 03-22 15:19 1次下载

    自动生成程序状态机代码状态机建模方法

    首先运行fsme命令来启动状态机编辑器,然后单击工具栏上的“New”按钮来创建一个新的状态机。FSME中用于构建状态机的基本元素一共有五种:事件(Event)、输入(Input)、输出
    的头像 发表于 09-13 16:50 733次阅读
    自动生成程序<b class='flag-5'>状态机</b>代码<b class='flag-5'>状态机</b><b class='flag-5'>建模</b>方法

    如何生成状态机框架

    生成状态机框架 使用FSME不仅能够进行可视化的状态机建模,更重要的是它还可以根据得到的模型自动生成用C++或者Python实现的状态机框架。首先在FSME界面左边的树形列表中选择"R
    的头像 发表于 09-13 16:54 653次阅读
    如何生成<b class='flag-5'>状态机</b>框架

    什么是状态机状态机的种类与实现

    状态机,又称有限状态机(Finite State Machine,FSM)或米利状态机(Mealy Machine),是一种描述系统状态变化的模型。在芯片设计中,
    的头像 发表于 10-19 10:27 5054次阅读

    什么是有限状态机?如何解决传统有限状态机状态爆炸」问题?

    有限状态机(Finite State Machine,简称FSM)是一种用来进行对象行为建模工具,其作用主要是描述对象在它的生命周期内所经历的状态序列以及如何响应来自外界的各种事件。
    的头像 发表于 02-17 16:09 1924次阅读
    什么是有限<b class='flag-5'>状态机</b>?如何解决传统有限<b class='flag-5'>状态机</b>「<b class='flag-5'>状态</b>爆炸」问题?