>dt=0.01;
>>t=-10:dt:10;
>>ut=1*(t>=0);
>>cost=cos(t);
>>y=cost.*ut;
>>plot(t,y)
直接用rotx函数,
【Syntax】
R=rotx(ang)
【Description】
R=rotx(ang)createsa3-by-3matrixusedtorotateda3-by-1vectoror3-by-Nmatrixofvectorsaroundthex-axisbyangdegrees.Whenactingonamatrix,eachcolumnofthematrixrepresentsadifferentvector.FortherotationmatrixRandvectorv,therotatedvectorisgivenbyR*v.
位置:
Fcn模块对它的输入进行指定的表达式运算。使用的表达式可由下面的一个或多个部分组成。
u
---
模块的输入。
如果u是一个向量,u(i)表示此向量的第i个元素;u(1)或者u表示第一个元素
数值常数
(例如表达式5.2*u)
算术运算符(+
-
*
/
^
例如表达式
u^2+5.2)
关系运算符(==
!=
>
<
>=
<=)
--表达式返回1,如果关系为真;
否则返回0
逻辑运算符(&&
||
!)
表达式返回1,如果关系为真;
否则返回0
括号
数学函数
(abs,
acos,
asin,
atan,
atan2,
ceil,
cos,
cosh,
exp,
fabs,
floor,
hypot,
ln,
log,
log10,
pow,
power,
rem,
sgn,
sin,
sinh,
sqrt,
tan,
tanh.)
Workspace中定义的变量
–
如果变量名字不是Matlab
保留字符(比如
sin),变量名字会被传递给Matab,从而在Maltab
Workspace中获取相应给定的值。矩阵或者向量必须具体到其对应的元素。(比如
A(1,1))
注意:Fcn模块中使用的表达式不支持矩阵运算,同样不支持
(:)
符。模块输入可以是标量或者向量,但输出总是标量数值。
MATLAB
Fcn
模块
MATLAB
Fcn模块对它的输入进行指定的Matlab函数或者表达式运算。输出尺寸必须和模块中定义的尺寸相符,否则报错。
下面是MATLAB
Fcn模块中可以使用的有效表达式
sin
atan2(u(1),u(2))
u(1)^u(2)
注意:
同Fcn模块相比,在仿真中MATLAB
Fcn模块速度要慢,因为它需要在每个积分步骤中调用Maltab编译器。因此建议使用Fcn模块或者
Math
Function模块代替MATLAB
Fcn模块,或者编写M文件或者MEX文件S
函数代替它。
S
Function
(System
Function)
S函数,即系统函数,用来扩展Simulink模块库。一个S函数,相当于一个Simulink模块,只不过这个模块不是在Simulink
Library中已经存在的,用户需要根据自己对Simulink的功能需求,使用指定的编程语言来定制自己的Simulink模块。
S
函数
支持Matlab,
C,
C++,
Ada,
or
Fortran等语言,编写S函数需要按照一定的格式,具体如何编写S函数,参考Matlab自带文档。
如果能用现有的Simulink
模块库中的模块满足需求,不建议使用S函数编写。
比如要拟合一组数据(x,y)知道其对应的函数形式为a*cos(k*t)
symst
x=[已知数据列向量];
y=[已知数据列向量];
fittype('a*cos(k*t)','independent','t','coefficients',{'a','k'});
cfun=fit(x,y,f)%显示拟合函数
xi=0:0.1:10;%比如
yi=cfun(xi);
plot(x,y,'r*',xi,yi,'b-');