声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1559|回复: 6

[共享资源] 如何实现对符号函数的运算

[复制链接]
发表于 2010-5-10 20:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
matlab7.0里面没有symmul等函数,直接加减乘除也不行。该怎么实现符号函数的运算呢?

符号运算

符号运算
回复
分享到:

使用道具 举报

发表于 2010-5-11 01:03 | 显示全部楼层
clc; clear; syms L R C s
G1=1/(L*s+R); G2=1/(C*s); G=G1*G2;
H=sym(1); GH=G*H; T=GH/(1+GH); simple(T)

但好奇干嘛用到符号运算!? Control System Toolbox中不就有许多现成函数!?
还有请LZ以后直接将程序打上来, 方便别人省时间:loveliness:
 楼主| 发表于 2010-5-11 10:08 | 显示全部楼层
谢谢,我在看着《自动控制习题精解》那本书学,照著书上面打:
syms L R C s;
s=tf('s'); G1='1/(Ls+R)'; G2='1/Cs';
G=G1*G2;
??? Error using ==> mtimes
Inner matrix dimensions must agree.
我想多问一句是不是字符串不能直接运算的?

[ 本帖最后由 ChaChing 于 2010-5-11 13:31 编辑 ]
发表于 2010-5-11 13:41 | 显示全部楼层

LZ这个问法, 有点说不定
原则上LZ使用符号运算, G1/G2应为sym object, 加上引号即是char array!
但不是说"字符串不能直接运算", 那错误是因G1/G2矩阵大小不符合矩阵运算!
试试下式, 并建议常whos看看矩阵大小
G1='1/(Ls+R)'; G2='1/(Cs+H)'; G=G1*G2'
 楼主| 发表于 2010-5-11 22:33 | 显示全部楼层
是可以,G1是1*8的矩阵,G2‘是8*1的矩阵,可以相乘,但是相乘以后是一个数值解,不可以变成符号表达式吗?
发表于 2010-5-11 23:33 | 显示全部楼层
为何大小符合的文字矩阵, 可以相乘, 说来话长!
G=G1*G2'的运算等同double(G1)*double(G2)', 有兴趣LZ可以看看double(G1), double(G2)的值, 并help double & char ..., 总之符号与文字不能混用!

其实可以不用符号运算(若L/R/C已知)
clc; clear
L=2; R=3; C=4; s=tf('s');
G1=1/(L*s+R); G2=1/(C*s); G=G1*G2
H=1; GH=G*H; T=GH/(1+GH)
 楼主| 发表于 2010-5-12 10:23 | 显示全部楼层
总算有点明白了,谢谢版主的辛勤劳动
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 08:22 , Processed in 0.097352 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表