《ASCET操作简易说明》由会员分享,可在线阅读,更多相关《ASCET操作简易说明(47页珍藏版)》请在金锄头文库上搜索。
1、ASCET 操作简易说明操作简易说明操作简易说明操作简易说明 ETAS 陈炯 1.界面介绍 安装完软件,打开 ASCET,一般是空的 database。选择 file-new database.在弹出的窗口中填入名称,例如 exercise。在 database 中就会出现 exercise。如图示有 3 个区域,在 database 中列出所有建立的元素,在 comment 中可以添加对该元素的说明,在 contents 中列出该元素中建立内容。选中 database 中 exercise 点击右键,如图示建立文件夹 exercise。建立文件夹可以将不同的元素分类放置便于管理。右键点击 e
2、xercise 文件夹,可以建立需要的元素。Project:包含其它元素,是对一个系统的定义,可以进行操作系统的配置,进行仿真计算。Module:定义一定功能,可以是方框图也可以是 C 代码的,一般不设置参数和返回值。Class:对一定功能进行封装,可是设置参数和返回值,可重复调用。Continuous Time Block:针对物理模型进行建模的模块,根据数学传递函数进行模型建立。State Machine:状态机是对离散系统的描述,在有限个状态间根据条件进行跳转。Enumeration:枚举类型,在建模时可以使用。Record:将不同类型封装在一起,类似于软件编程中的结构体。以上是建立控制
3、逻辑的基本元素。Icon:用于模块的图标,用户可以创建自己的模块后,自定义图标以显示在模型中。Signal:在进行测试时,可以自定义输入信号对控制模型进行测试。Container:类似于文件夹的功能,可以将相关的元素放入 container,在进行版本控制时起作用。Hardware Configuration:在进行快速原型设置时,对硬件进行设置的模块。Hardware Description file:对硬件进行说明。提示:具体说明可以通过在线帮助进行查询。选择菜单中 help-contents,或按 F1,可以弹出帮助窗口,进行查询。2.操作练习 先建立小的功能模块,进行仿真验证,然后将所
4、需元素组建成 project,进行操作系统的设置以及代码生成的工作。Exercise 1:右键选择 exercise 文件夹,insert-module-block diagram.命名为 ex1。双击 ex1,打开方框图模块编辑界面。主要有 3 个区域,最左边显示模型中元素,中间是编辑的区域,右边是建模所需的元素。元素的简易说明:红色的元素是全局变量,在程序中不需要人为调整,测试过程中作为测量变量。L 为逻辑变量,S 为有符号变量,U 为无符号变量,C 为连续变量,E 为枚举变量。它们彼此也可以通过属性菜单进行转换。蓝色的元素也是全局变量,是标定变量,测试过程中可以进行修改。用于不同变量间进
5、行强制类型转换。提供时间任务的间隔时间,用于控制逻辑中的计算。避免不同任务对同一资源的读写,可以设定资源保护。message 是操作系统特有的全局变量,有接收和发送,以及同时可读写的三种类型。完成不同任务间的数据交互。如果不同任务对同一变量操作,系统将会自动对 message 进行备份,使得当前线程中的数据完整确定。数组和矩阵 与查表功能结合使用,计算当前数据所在的数据轴位置。二维表和三维表查表功能。数学计算和逻辑判断的运算符。进行绝对值,最大最小值,中间值,正负值的运算。条件判断的相关运算,如 switch-case,if-else,while 等等。常量。将模型封装成一个子模块。添加注释
6、引用自身模块,自调用。提示:这些元素的具体用法可以参看在线帮助。开始建立模型:点击接收 message,建立 receive message。弹出属性编辑窗口。在 name 中输入 x1。OK 后将 x1 放入中间的编辑区域。点击运算符,放置在编辑区域内。点击全局变量,在弹出的窗口中 name 输入 data1,点击 OK,将 data1 放置在编辑区域中。点击运算符,放置在编辑区域中。点击发送 message,在属性窗口中 name 输入 y1,OK 后,放置在编辑区域中。点击参数,在属性窗口中 name 输入 p1,OK 后,放置在编辑区域中。点击常数,放置在编辑区域中。最后如图示,将各个
7、元素摆置在编辑区域。在编辑区域点击右键,或者点击菜单左上角的连线按钮,鼠标变成十字,将各个元素的首尾相连,如图所示。连线完毕后,在编辑区域点一下右键,恢复到编辑状态,鼠标回到箭头。连线后有两段线是绿色。这是需要定义的计算模型属于哪个 process 线程,以及各个计算部分的执行次序。左键点击 main 下的 process,更名为 cal1。双击 data1 输入线左上角的/0/,ASCET 会自动将 cal1 指定个这个计算,在双击 y1 左上角上的/0/,如图所示。指定后,当前的计算执行顺序为:Data1=x1*p1;Y1=data1+1;也可以右键点击顺序号,选择 edit,在弹出的编辑
8、窗口中进行所属线程以及次序的修改。比如将 10 改成 1,那么在执行计算的时候,顺序就会调整如下:Y1=data1+1;Data1=x1*p1;完成了建模工作,可以进行仿真测试。点击菜单中的试验按钮,如图示。试验环境被打开,如下图示。在试验环境中可以对控制模型进行监控,给定输入,验证输出是否为期望值。注意在试验环境下,不能对模型进行编辑。点击菜单中,可以退出试验环境,返回编辑状态,从而对模型进行修改。在进行仿真验证前需要对一些基本信息进行设置。点击菜单中 event generator 按钮,弹出对话框。双击 cal1,弹出对话框。保持默认设置即可。Mode 是任务在执行模式,timeSync
9、hron 是周期性的任务,dT 就是任务周期。Prio 是指优先级,决定了不同任务的执行顺序。数值越大,优先级越高。点击 OK 确认。再双击 generateData,这是 ASCET 产生输入值的任务,不属于控制模型本身。保持默认设置,点击 OK 确认。关闭对话框。点击菜单中按钮,弹出对话框。在 data Elements 空白区域点击右键,选择 create。在弹出对话框中选择 x1,点击 OK。在弹出的对话框中,可以对 x1 进行设定。Mode 是选择类型,可以是常数或者正弦信号等等,这里就选择 constant,value 设置为 5。点击OK 确认。关闭 data generator
10、 窗口。如图示点击下拉菜单,选择新建一个示波器。然后选中 y1,按住左键,将 y1 拖进 new oscilloscope。松开鼠标后,就会建立出一个示波器。双击 y1,可以对显示参数进行设置,将纵坐标的范围从0 到 100,改成 0 到 50。点击 OK 确认。将 p1 拖入到 new calibration editor,会产生一个标定窗口。将 p1 值设置为 2。在仿真过程中也可以对标定值进行修改。可以设定开始,停止以及暂停仿真。点击,开始仿真。修改 p1 值,可以在示波器中看到 y1 变化 也可以选择 view-monitor all。就可以对模型中所有的变量进行监控,看到仿真运行过程
11、中数值的变化。由于示波器和标定窗口都是浮动在试验环境中,会被模型显示界面遮挡住,不容易找到。在进行仿真运算时,可以隐藏掉模型的显示界面,只显示标定测量的窗口。点击菜单中,可以隐藏或展开模型显示界面。验证完成后,点击菜单中,退出试验环境。ASCET 会问是否保持试验环境的设置,点击 yes,返回编辑界面。在 ASCET 中针对同一个模型可以设置不同的试验环境,以便测试。完成了第一个练习,关闭 module 的编辑界面。Exercise 2:备份 ex1。在 database 中右键点击 ex1,选择 copy,然后在空白处右击选择 paste,更名为 ex2。双击 ex2,打开编辑界面。右键点击
12、加法运算符,选择 add input。点击连续变量,命名为 data2,放置在编辑区域中,与加法符新添的输入管脚连接。接下来要加一段逻辑,在计算初始化的时候,根据逻辑值的不同设置,data2 有不同的初始值。点击逻辑变量,命名为 l1。选择放置在编辑区域中。选择常数,放置在编辑区域中,双击常数元素,修改数值为 2。在放置一个常数,修改数值为 3。在从左边的浏览区域,将 data2拖进编辑区域两次。这里要进行逻辑判断的连线,与常规连线略有不同。右键点击 data2 左上角的/0/,选择 connector。确定后 data2 会多出输入口,这个接口就是用来连接逻辑判断的接口。点击右键,进入连线模
13、式,将各个元素连接。如图所示。由于这部分计算是在初始化时进行,将建立一个独立的线程来进行判断。右键点击 main,选择 add process。命名为 init。右键点击左上角的/0/,选择 edit。将这一计算设定为 init 的线程。点击 OK 确定。可以在建模的时候设定变量的初始值。右键点击 p1,选择 data,在弹出窗口中设置数值为 2。点击 OK 确定。模型建立完成,点击试验按钮,进入试验环境。点击菜单中 event generator 按钮,双击 init,将 mode 设置为 single shot,这种模式在仿真运算过程中只在开始时运一次。在左侧浏览窗口中,右键点击 l1,选
14、择 calibrate,会新增一个逻辑量的标定窗口。如果想把同类型的标定两放在一起,现在下拉菜单中选中想要添加的窗口,然后按照前面描述的方法,将变量拖入到窗口中。开始仿真运算,监控各个变量数值变化。停止仿真,改变 l1 为 true,在运行仿真,可以看到 data2 的数值变化,y1 也随之变化。点击,打开 event tracer 的窗口,从中可以看到各个任务执行的情况。在此窗口中点击运行后,在开始运行仿真,就可以采集到任务执行信息。可以看到在仿真第一步,执行顺序为:generateData cal1 init,初始化的线程应该第一个执行。将 init 的 prio 改为 11,重新运行仿真
15、并采集,执行顺序就调整了。完成验证后,退出试验环境,关闭 ex2。Exercise 3:在 database 中加入 class。右键点击文件夹,如图示选择。命名为 ex3。双击 ex3 进入编辑界面,准备建立一个限值的功能。Class 的编辑界面与 module 的类似,只是在 main 下不是 process 而是 method,可以设置输入参数以及返回值。由于是封装的功能,所以在 class 中不能用 message 与外部交互,可以通过全局变量进行数值交互。在左侧的浏览区域,双击 main 下的 calc,弹出 method 的编辑界面。Argument 就是输入参数,点击添加按钮,新
16、建一个输入参数,命名为 input。需要返回值,点击 return,勾选 return value。点击 OK 确认。在 calc 下多了两个变量,展开 calc,将 input 和 return 拖入到编辑区域。选择 mux 元素,拖入到编辑区域,并右键点击 mux 元素,选择 add input。Mux 是用于条件判断,给予不同的输出,如图示 元素上方为条件输入有 1 和 2 两个,左侧为待输出,有 1,2,3 个情况。条件 1 成立,输出 1,否则判断条件 2 是否成立,是的话输出 2,如果都不成立,则输出 3。选择,建立两个标定量命名为 UP 和 DOWN。并右键点击标定变量设置数值分别为 5 和 0。如图所示进行连线。指定 return 左上角的执行顺序,双击即可。模型建立完成,保存后,进入试验环境。在 event generator 中使能两个任务。在 data generator 中选择 input 进行设置,设定为正弦波,如图下所示。在测量类型中选择 new oscilloscope,右键点 return 选 measure,用示波器进行观测。运行仿真,在示波器中看到