1

我的脚本中有一组三个相当简单的方程,但它们使用 sin 和 cos 值,因此我要对它们设置限制。以下是这些方程式:

y1 = 23/200 - cos(q1)*((67*cos(q2 + q3))/100 - (17*sin(q2))/25 + 13/50)

y2 = - sin(q1)*((67*cos(q2 + q3))/100 - (17*sin(q2))/25 + 13/50) - 47/50

y3 = 67/100 - (17*cos(q2))/25 - (67*sin(q2 + q3))/100

在使用“解决”功能之前,我显然尝试了“限制”来设置个人限制,如下所示:

y1 = Pax - eq1;
y2 = Pay - eq2;
y3 = Paz - eq3;

limit(y1,q1,-1);
limit(y1,q1,1);
limit(y1,q2,-1);
limit(y1,q2,1);
limit(y1,q3,-1);
limit(y1,q3,1);

limit(y2,q1,-1);
limit(y2,q1,1);
limit(y2,q2,-1);
limit(y2,q2,1);
limit(y2,q3,-1);
limit(y2,q3,1);

limit(y3,q1,-1);
limit(y3,q1,1);
limit(y3,q2,-1);
limit(y3,q2,1);
limit(y3,q3,-1);
limit(y3,q3,1);

rozw=solve(y1,y2,y3,'q1,q2,q3');
q1_1 = rozw.q1
q2_1 = rozw.q2
q3_1 = rozw.q3

我还尝试了使用“左”和“右”限制,但是,我最终不仅得到了错误的值,而且值超出了我的限制。

您能否提出一些解决方案?

4

1 回答 1

0

我推断您正在使用符号工具箱,然后您可以使用assume()

syms q1 q2 q3
assume([q1 >= -1 & q1 <= 1
        q2 >= -1 & q2 <= 1
        q3 >= -1 & q3 <= 1])
于 2013-04-29T18:07:17.717 回答