求助下多项式变量的定义问题
mathcad吧
全部回复
仅看楼主
level 12
我是宅银 楼主
大家好,最近在学凸轮的轨迹方程,就是那个f(z),根据边界条件来求得A1-A7的值,最后把这个方程解出来,现在的问题卡在最开始了。。。就是我的目的就是求A1-A7,现在提示我变量未定义,我该怎么定义这个A呢? 希望好心人在百忙之中抽空帮我解答一下,谢谢!
2016年01月26日 16点01分 1
level 15
您这是循环定义。f(x):=g(x) ,g(x):=k(f(x))= k(g(x)),我是没见过这样定义函数的。
应该预先根据边界条件算出A[1…A[7的数值,然后再定义函数f(z) 。
图片最下面,隐约可见书中已经给出了f'(0)等的值。用这些值算出A[1…A[7的数值,然后再定义f(z) 。
2016年01月27日 03点01分 3
应该是文本下标A.1…A.7
2016年01月27日 03点01分
您好 由于字数限制我把题目的补充回复到楼下了,有空的话请看一下,谢谢。[哈哈]
2016年01月27日 09点01分
level 12
我是宅银 楼主
我第一张图中的f'(0)那些值并没有给全的,这道题需要对f(z)求三次导数,求到f```(z), 这样可以得到f`(0),f``(0),f```(0),f`(1),f,``(1),f```(,1)等6个未知数,然后根据边界条件可以知道第二张图Given里一些未知数的值和未知数的关系,然后再代入到前面多项式或者多项式的导数形成的多项式里[f1``(1)=-f2``(0)以及f1```(1)=f2```(0)],求得剩余的未知数的,然后A1到A7这些值才能最终确定,然后得出f1(z)和f2(z)的函数
2016年01月27日 09点01分 4
level 12
我是宅银 楼主
这个是书上的例题,是用5阶的多项式做的,7阶的我用笔算有点问题,所以想用软件算,结果懵逼了。。。
2016年01月27日 09点01分 5
level 8
为得到想要的求解方法,希望提问者设计简单的算例,尽量不要把复杂的原题搬上来。
2016年01月27日 15点01分 8
您好 我弄了个简单的算例,麻烦您抽空看下谢谢。
2016年01月27日 21点01分
level 15
您上传的第3页图片中的函数似乎是计算矩阵A用的。函数里面的省略号使人看不出其中的规律来。
2016年01月29日 14点01分 12
f2(z)的系数正好是图片2中的算式的系数。
2016年01月29日 14点01分
@月城翁 那个省略号没什么意义,下一行的6+f1``(1)/2 也是f1(z)中的,本来应该是a1-a5一共五项,a1 .a2=0 省略了
2016年01月29日 18点01分
level 12
我是宅银 楼主
您好,您已经把A这个系数的矩阵算出来了 a3=10,a4=-15,a5=6。答案直接是f(z)=10*z^3-15*z^4+6*z^5,您写的是C=A的转置乘B,
但是f(z)只需要A的转置乘B的第一列,
f`(z)是A的转置乘B的第二列,以此类推
@月城公寓寓公
2016年01月29日 18点01分 13
我想用A这个矩阵乘以B的矩阵列,这样应该能达到我的要求,但是系统提示我“该值必须为矩阵“,然后我就弄不好了 [泪]
2016年01月29日 18点01分
按您的意思计算出来的结果就是C向量。对应矩阵b的第二列。问题是b的第一列如何求?特别是其中的t值怎么来的?临时设定?
2016年01月30日 01点01分
似乎有点循环调用?
2016年01月30日 01点01分
回复 月城公寓寓公 :b矩阵的第一行都是1啊,b的第二行是函数求了一次导得到的,比如f(z)=2x∧3,那a1就是2,b矩阵第一行对应a1的值是1,求一次导之后,得到6x∧2,这时候用的是b的第二行对应a1的值,在这里就是3,c=2*3
2016年01月30日 01点01分
level 15
变化:
在矩阵A定义时,就改成了行向量
把矩阵b 改名成矩阵V
如果能知道矩阵V的各列是如何计算出来的,就可以全部编程一个程序,一次计算出来。
2016年01月30日 01点01分 14
level 15
边界值矩阵的计算方法一直没闹明白。
不过,全过程的程序写出来了。是哪里有问题,您自己纠正吧。
[无效] http://pan.baidu.com/s/1skeLRgL
2016年01月30日 09点01分 15
没有用上矩阵B的系数。
2016年01月30日 09点01分
level 12
我是宅银 楼主
@月城公寓寓公 您好,我把文件下载下来看了一下,边界值矩阵您没弄明白的原因可能是您把题目条件弄错了,请看下图
图1
在RR3P_Matrix3.xmcd这个文件中,我看到了您刚开始就定义了f1(z)和f2(z),我想您大概是把题目条件弄混了。
我给您解释下这题目的意思,图1表示了凸轮凸杆某一段运动状态,由停歇状态-换向状态-停歇,这个图曲线我们要分两段来看,分别列出两条曲线方程,左边呈上升趋势的曲线我们叫它f1(z),右边那条叫f2(z)。f1(z),f2(z)在横坐标上的定义域都是0-1,纵坐标的定义域也是0-1.
那么当f1(0)的时候,可以写出它以及它下面多次导数的关系式,f1(0)=f1`(0)=f1``(0)=0
同理,f2(0)=f2`(0)=f2``(0)=0
而在换向状态下,就是中心线(U)这个地方,可以让f1(1)和f2(0)这两个等式产生关系
f1(1)=f2(0)=1
f1`(1)=f2`(0)=0
f1``(1)=-f2``(0)
f1```(1)=-f2```(0) (有个符号是因为方向改变了)
通过这些边界条件,我们求得了f1(z)和f2(z)的方程
所以这个方程是通过边界条件求出来的,而不是已知的。
然后再回到我们昨天讨论的那个方程 ,就是您10和11楼上传的程序,这个程序里求的方程跟我前面图1中的不是同一个方程,见下图。
这个方程我们只需要求一段曲线就行了,这个曲线的状态是停歇-停歇,中间发生了什么是我们自己去设计的,多项式的阶数越高,或者我在前面上传的word文档里也说过,可以用傅里叶级数来做,也就是傅里叶级数展开的项越多,这个曲线就越平滑,那这个凸轮在配合别的机构运动的时候运动也就越流畅,越平稳,振动少,对运动控制和工件寿命都是有好处的。
我们设定这个曲线是个5阶方程,根据边界条件:
f(0)=f`(0)=f``(0)=f`(1)=f``(1)=0
f(1)=1
即可求得f(z)=10z^3-15z^4+5z^5
我估计您是把两个题弄混了,我之前是想求这种停歇-换向-停歇的,但是8楼的小吧主说让我弄个简单的算例,我就上传了一个停歇-停歇的3阶问题,就是想先搞明白怎么用mathcad根据边界条件来求得a1a2a3这些系数的值,没有说明白,耽误了您很多的时间,真的是非常抱歉。。。
2016年01月30日 10点01分 16
那就是说,只要得出7阶的边界条件,就可以用昨天的方法计算。而7阶和5阶的边界条件对这一方程来说,是一样的。
2016年01月30日 11点01分
@月城翁 昨天的方法是用来算停歇-停歇的运动,是用来算一条曲线的。只要边界条件给足,几阶的都可以,7阶还需要补充f```(0)=f```(1)=0
2016年01月30日 11点01分
那么矩阵A还少两行。其计算式,大概是从傅里叶那儿来。
2016年01月30日 11点01分
@我是宅银 那么7阶的边界条件昨天已经给够了的。就是矩阵A缺少两行算式。再有就是矩阵B仍然用不上。用昨天的方法,您已经可以计算7阶了吧?如果是,我就不再多嘴了。毕竟没有接触这个东西。不得要领。您今天说的,使我知道了一个总体的轮廓。细节还是不好说。反正我也用不上,我就不深入了解了。
2016年01月30日 11点01分
level 12
我是宅银 楼主
@月城公寓寓公 ,如图,式子5.38和5.40分别对应了5和7阶的A矩阵,而停歇运动由于f(0)和f(1)的多次求导都是0,所以对应这种运动,我们只要看红框里的常数项就可以了,最后可以写出通项公式,而对于别的情况的运动,就需要列出每个边界条件才能求出方程
2016年01月30日 11点01分 17
level 15
根据我的理解,做了本题的7阶的,请您看看对不对。不过对与否,对我来说都用不上。
[无效] http://pan.baidu.com/s/1c1jqtxe
2016年01月30日 13点01分 18
月城公寓寓公 :纠正:题页中:因为向量V的后4行均为 0 所以本题其实只用了A7b的第一列
2016年01月30日 13点01分
@月城翁 我看了下,您是把边界条件列成了V这个矩阵,然后跟A7b,也就是系数 A4-A7这个矩阵相乘,只要把边界条件的数值输入进V,就可以得到结果了。非常正确!
2016年01月30日 13点01分
@月城翁 若是我想联立f1``(1)和f2``(0)的关系式,比如f1``(1)=x,而f2``(0)=-x,这个我觉得应该还是要在V里改,但是V矩阵里面是不是只能输入常数?
2016年01月30日 14点01分
@我是宅银 只要是矩阵或向量,其中的元素可以是常量,变量甚至函数。不过最好不要带物理单位。因为同一矩阵中的所有元素都只能有同一单位。因而许多矩阵的技巧运算就不能用。
2016年01月30日 14点01分
level 15
两个错误:
1.我昨天已经提到,矩阵中对函数名很挑剔,并非任何情况都可接受函数形式的变量,遇到这种情况,改用变量名输入,就行了。不能把f'(0)等形式写进矩阵。要用变量名。
A7c中就是我用的变量名,V[0,1就是0阶导数(没求导,原函数)自变量值为1,就是f(0) ;
V[2,0就是二阶导数,自变量值为1,就是f''(1)。很好记,又不容易出错。V是您采用的“边界”?的德文?的第一个字母。换个变量名带入就好了。比如,第一行第二列,用了变量 t ,就不报错了。
2.如果要把变量写进矩阵,A7c及后面的矩阵乘法计算就是多余的了,要删去。之所以单独写出A7c ,就是嫌同样的变量重复输入太麻烦,这样输入,要省事省时些。
2016年01月31日 10点01分 19
见我前两天做的5阶的矩阵A的写法。本帖14楼也有。
2016年01月31日 12点01分
@月城翁 我试了下用t代入V[3,0, 但是t这个变量是未定义的啊,如果要定义,我就得定义t是一个常数,这样的话还是不能跟另外一个f2(z)的函数联立啊。。。
2016年01月31日 13点01分
@月城翁 还有请问您那个“粘贴拷贝文本”是怎么出来的?如果t未定义,我根据t组成的A矩阵也是未定义的,会报错
2016年01月31日 13点01分
@月城翁 如果给t定义了常量,那出来的肯定就是常量,不带t了[泪]
2016年01月31日 13点01分
level 15
我的意思,直接用步进电机的步进量转化成直线运动来控制相应机构的位移,省去凸轮。不知有这种方法否?使用机械机构是传统的古老的方法(没有贬低的意思),现在科技发展太快,也许会有什么新的方法出现。在飞机上,有很多机械的东西被电子的东西取代了。出于好奇,所以向您请教。
2016年01月31日 10点01分 20
见21楼
2016年01月31日 11点01分
level 12
我是宅银 楼主
@月城公寓寓公, 哦,原来您是这个意思,那自然是可以的。
您原本要用凸轮模拟一个想要的运动轨迹,
假如这个曲线是平面的,例如一个偏心圆,那就可以用一个xy工作台来模拟这段曲线,
加入只是想让凸轮控制一个顶针上下运动,如下图
拿只需要一个电机来控制这个从动件的上下就好了
很多机构都可以相互转化,但是一个凸轮就可以搞定的事情,用电机的话成本就太高了对吧?
一般都曲柄摇杆和凸轮是等效的
2016年01月31日 10点01分 21
多谢。我也知道有个成本问题。但是,多一种方法总是好的。前几天看报道,已经有用离子和光子直接驱动的电机了。
2016年01月31日 11点01分
@月城翁 您好,新年快乐,上次的5阶我已经弄出来了,虽然有些地方需要手动复制粘贴才能继续运行,不过也能算出来了,我现在有个问题就是得出的解是个小数,我怎么才能用分数去表示呢?http://pan.baidu.com/s/1qXd5zrQ
2016年02月08日 20点02分
1 2 尾页