Simulink入门学习笔记,欢迎批评指正!
资源:Simulink仿真及代码生成技术入门到精通(孙忠潇 编著)
3.1 Simulink信号概述
所谓信号,表示一种随着时间而变化的量,在时间轴上的采样时刻都对应有数值。
信号在Simulink中是相当重要的组成部分,有线(line)表示,在模型中穿针引线地将各模块联系起来,既能传递数据又可以明确表达模块的输入输出依赖关系,技能给自己命名以示自身的物理意义,又能绑定Simulink.Signal数据对象来表达生成代码中的变量。将Simulink信号线理解为类似网线之类的物理设备其实是不恰当的,它所表达的往往不是物理连接,而是数学上的一种关系或者说逻辑联系。
3.2 Simulink信号的操作
信号的命名
双击信号线,在信号线附近就会自动出现一个矩形可编辑区域,可输入表示信号名的字符。
命名信号还有另一个方法,右击信号线,选择Properties,在属性对话框的Signal name中输入表示信号名的字符。
信号的分支
将鼠标放在信号线上之后,同时按住Ctrl和鼠标左键拖曳,即可从原有的信号线上再新生出一个分支来。
3.3 Simulink信号的分类
Simulink使用不同的线型表示传递不同数据类型的信号线,以方便建模者掌握信号的规模和种类,增强模型的可读性。
Scalar
每个采样时刻传输1×1信号,最常见的信号,用一根细实线表示。
Vector
每个采样时刻传输一个向量数据,如Constant模块中输入一个向量数据,在其输出端口输出的信号,或者在Mux模块中将多个Scalar信号合并后输出的信号。
默认情况下Vector信号以同Scalar信号的细实线表示,若勾选Display→Signals&Ports→Signal Dimensions可以看到其维数,若勾选Display→Signals&Ports→Wide Nonscalar Lines可以显示粗实线。
Matrix
Bus
虚拟Bus
非虚拟Bus
Bus数组信号线:Bus数组信号是指信号线中传递数组规模的信号,数组中的每一个元素都是同样的Bus类型,并且必须是非虚拟Bus信号。
Function-call信号
Function-call信号是指用于进行子系统调用的控制类信号,并非实际信号。
Trigger模块及自定义S函数模块可以输出该信号。
尺寸可变信号
尺寸可变信号是指在Simulink仿真过程中,每个维数中的元素个数可以变化的信号,及仿真过程中信号所包含的元素个数和值都是不固定的。但是信号的维数是不可变的。
configuration Parameter→Data Import/Export→Format→Structure/Structure with time。
未连接信号
3.4 Simulink信号的属性
>> sys=get_param('mymodel','Handle')
sys =
2.0001
>> line_object=find_system(sys,'FindAll','on','type','line')
line_object =
23.0006
>> get(line_object)
DataLogging: 0
DataLoggingNameMode: 'Use signal name'
DataLoggingName: ''
DataLoggingDecimateData: 0
DataLoggingDecimation: '2'
DataLoggingSampleTime: '-1'
DataLoggingLimitDataPoints: 0
DataLoggingMaxPoints: '5000'
TestPoint: 0
StorageClass: 'Auto'
RTWStorageTypeQualifier: ''
MustResolveToSignalObject: 0
SourcePort: 'In1:1'
SignalObjectClass: 'Simulink.Signal'
SignalObject: []
CoderInfo: []
DocumentLink: ''
ShowPropagatedSignals: 0
TaskTransitionSpecified: 0
TaskTransitionIC: '0'
ExtrapolationMethod: 'Use global setting'
TaskTransitionType: 'Use global setting'
UserSpecifiedLogName: ''
SignalPropagation: 'off'
Path: ''
Name: ''
Tag: ''
Description: ''
Type: 'line'
Parent: 'mymodel'
Handle: 23.0006
HiliteAncestors: 'none'
RequirementInfo: ''
FontName: 'auto'
FontSize: -1
FontWeight: 'auto'
FontAngle: 'auto'
Selected: 'off'
SegmentType: 'trunk'
SrcPortHandle: 22.0006
SrcBlockHandle: 21.0006
DstPortHandle: 3.4350e+03
DstBlockHandle: 3.4340e+03
Points: [2×2 double]
LineParent: -1
LineChildren: []
SignalNameFromLabel: ''
Connected: 'on'常用
常用属性:
属性名
|
属性作用
|
TestPoint
|
设为TestPoint的数据
|
StorageClass
|
存储类型,不同存储类型表示代码生成是信号变量的不同声明及存储形式
|
MustResolveSignalObject
|
当信号线的名字与工作空间中定义的数据对象同名时,可以将此属性设为'on'以应用数据对象的特性到信号线上
|
UserSpecifiedLogName
|
用户定义的记录信号线数据用名,默认与信号线同名
|
DataLoggingName
|
记录信号线数据用名,不会因信号名删除而被删除
|
Name
|
信号线名
|
SegmentType
|
值为'trunk'或'branch',表示此信号线是主干线或分支线
|
Parent
|
父对象的句柄
|
Handle
|
信号线本身的句柄
|
Connect
|
'on'/'off'表示信号线是否连接上
|
SrcPortHandle
|
信号线的源端口句柄
|
SrcBlockHandle
|
信号线的源模块句柄
|
DsPortHandle
|
信号线的终端口句柄
|
DsBlockHandle
|
信号线的终模块句柄
|
es拼音分析器参数
关于分析器ES中默认使用的是标准分析器(standard analyzer)。如果需要对某个字段使用其他分析器,可以在映射中该字段下说明。例如:PUT /my_index
"mappings": {
"blog": {
"properties": {
"title": {
"type": "string",
grep 多个文件怎么
现象系统先给了一个文件A,后因为有新增记录,又给了一个文件B,现在要通过A、B找出这部分新增记录讲知识通过查找,主要有三个Linux命令可以使用:comm A B
diff A B
grep -f A Bcommcomm是对两个已经有序的文件进行比较,可以比较输出:仅在A中出现的、仅在B中出现的、在两个文件中都存在的。直接使用comm的话会输出三列,第一列为A独有的、第二列为B独有的、第三列为C独