軟體開發指導 第2章基於模型的設計

2021-09-26 04:05:49 字數 4526 閱讀 4641

2.2 建模的指令碼操作

2.3 儲存的設計 cscdesigner

2.4 模組的封裝與庫的建立

2.4.2 庫的建立

2.5 模型的自動化**

2.6 **生成技術

2.6.5.2 s-function

2.7 targrlink

2.8 常用演算法

2.9 建模規範

持續完善中。。。。。

參考

2.1.1 模組外觀

2.1.2 訊號線的快速連線2.2.1 常用函式

rtwbuild **生成

get_param 設定引數

load_system

open_system

disableimplicitsignalresolution:設定訊號線為解析

2.2.2 常用的系統常量

varible

meanings

varible

meanings

matlabroot

安裝目錄

gcs當前模型系統

bdroot

當前模型 top path

gcb當前選中的模組

gcbh

當前選中模組handle

2.2.3 matlab 註冊方式

2.2.4 常用屬性

屬性含義

範圍filepath

bdroot

name

showname

handle

attributesformatstring

自定義顯示的內容

blocktype

block

type

line block

position

[50 250 125 275] 四個點座標

portconnectivity

與之連線的模組handle

linkstatus

block

​ cscdesigner:custom storage class

structure

graph rl

csc(custom storrage class)

c(package)

c-->csc

c-->sec(section)

subgraph custom storrage class

csc-->d(data)

csc-->ini(初始化)

ini-->macro

ini-->i(初始值)

ini-->dyn(動態)

endsubgraph section

d-->sec

sec-->post(post-memory-section pragma)

sec-->pre(pre-memory-section pragma)

sec-->com(注釋:/* */)

sec-->q(修飾詞:const volite static)

end

2.4.1.1 快捷方式

ctrl + m :快速封裝

ctrl + u:快速開啟

2.4.1.2 外形設定

text(5,10, 'reena')
2.4.1.3 介面和引數設定

parameter

initialize

2.4.1.4 幫助說明 document

2.4.2 庫的建立

slblock.m

內容如下

function blkstruct = slblocks

% in the library browser

% and be cached in the browser repository

browser.library = 'mytest';

% 'mylib' is the name of the library

browser.name = 'pyb';

blkstruct.browser = browser;

2.6.1 **生成基本原理

​ s函式的使用,動態庫,tlc檔案支援**生成

2.6.2 tlc 控制

​ 常用的語法,流控制,記錄新增,函式的定義

2.6.3 rtw 檔案記錄

​ 類似json資料格式的一致結構化儲存方式

2.6.4 code generate

rtwbuild(『obsrvehmtn_m/obsrvehmtn』,『mode』,『exportfunctioncalls』)

```gui

2.6.5 s-function

user-defined module is system function for

2.6.5.1 快速利用已有的**

主要的方法

legacy_code('help')

specs = legacy_code('initialize')

legacy_code('sfcn_cmex_generate', specs)

legacy_code('compile', specs, compileroptions)

legacy_code('generate_for_sim', specs, modelname)

legacy_code('slblock_generate', specs, modelname)

legacy_code('sfcn_tlc_generate', specs)

legacy_code('rtwmakecfg_generate', specs)

legacy_code('backward_compatibility')

%  legacy_code('initialize') 返回值的結構

sfunctionname: ''

initializeconditionsfcnspec: ''

outputfcnspec: ''

startfcnspec: ''

terminatefcnspec: ''

headerfiles: {}

sourcefiles: {}

hostlibfiles: {}

targetlibfiles: {}

incpaths: {}

srcpaths: {}

libpaths: {}

sampletime: 'inherited'

options: [1x1 struct]

def = legacy_code('initialize');

def.sfunctionname = 'test_sf';

def.outputfcnspec = 'uint8 y1 = mytest(uint8 u1, uint8 u2)';

def.headerfiles = ;

def.sourcefiles = ;

legacy_code('sfcn_cmex_generate', def);% 生成c **的s-function

legacy_code('compile', def); % 編譯c **為 mex(matlab execu)

legacy_code('slblock_generate', def);

基本的控制檔案

2.7.1 基本的api

a2l的原理和api

'stylesheet', a2lstylesheetname,... % a2l的格式

'targetconfig', targetconfig,...

'file','sample.a2l'],... % 檔案的名字

'projectframe', 'on',... % a2l的 project 專案

'overwritecalproperties', 'on',...

'mergea2lmodules', 'on',...

'uselookupstructures', 'off');

2.7.2 模組的輸入輸出2.8.1 一階濾波

2.8.2 回遲滯debounce

2.8.3 平滑切換

2.8.4 二階濾波2.9.1 命名規則

2.9.2模型architecture

top layer / root level

sw-c

trigger layer

simulink的 triger,enable等

structure layer

功能進行分割:如濾波

data flow layer

2.9.3 注釋

block注釋

​ 模組的引數需要顯示出來

模組標註內容

saturation

up down的限值

sw-c的功能注釋

2.9.4 測試

軟體開發指導 第一章 C語言

1.1.2 巨集函式 1.2 預編譯 1.3 編譯相關指令 1.4 常用的gcc編譯命令 1.5 查表的應用 1.6 編譯專案管理 c語言的 入口必須為函式 int a,b int c 3,d 5 if c 0 沒有入口函式導致error error 14970 expected identifie...

基於任務模型的軟體開發

基於任務模型的軟體開發 多核心共享記憶體下的軟體開發 在2005年,herb sutter在dr.dobb s journal上發表了題為 免費午餐結束 軟體開發將轉向併發程式設計 的文章。其中他談到現在又必要在軟體開發中考慮併發了,從而充分的挖掘呈指數量級增加的微處理器的潛能獲取生產力的提高。現在...

《基於模型的軟體開發》 3 2 繼承

如果你覺得泛化非常簡單,那麼你一定會很喜歡繼承。繼承是oo概念中最簡單的乙個,同時也是分析得最多的乙個。簡單是因為繼承僅僅是用於解決泛化中物件屬性問題的一組規則。實際上,在mbd中,它是單個非常簡單的規則,我們之前已經提到過 葉子子類中物件成員的屬性是該葉子子類屬性和與該葉子子類在直線上相關的每乙個...