sxy1119 发表于 2016-5-6 11:31:26

转子抽速公式编程

求大神指教: 下面是螺杆泵的抽速公式,要怎样调用程序才能求出最后的sth
(defun qiu_acos (num);;定义arccos
(if (= num 0) (atan 1 0)
                (atan (/ (sqrt (- 1 (* num num))) num))))

(defun tan(mm) ;;定义tan
(/ (sin mm) (cos mm)))

(defun chousu (r r0 r1 R n p / s2 s4 s1 s3 c)
(setq aaa (/ r0 R))
(setq bbb (/ r1 R))
(setq cc (qiu_acos aaa))
(setq dd (qiu_acos bbb))
(setq ee (tan cc))
(setq s2 (* (/ (* R R) 2) (- pi (- (/ pi 3) (sqrt 3)) (- ee cc))))
(setq s4 (* (/ (* r r) 2) (+ pi (- (/ pi 3) (sqrt 3)) (- ee cc))))
(setq s1 (* (/ 1 6) (* r0 r0) (expt ee 3)))
(setq s3 (- (+ (* (+ (* 2 r1 r1) (* R R)) f) (* (* r1 r1) (sin (* 2 f))) (* (/ 1 4) (* R R) (sin (* 4 f)))) (+ (* 3 r1 R (sin f)) (* r1 R (sin (* 3 f))))))
(setq f dd)
(setq c (- 1 (/ (- (+ s1 s2 s4) s3) (* pi R R))))
(setq sth (* 2 n c p pi R R))
)

(setq qq 30 ww 30 tt1 60 yy 90 uu 3000 ii 35)
(chousu qq ww tt1 yy uu ii)
(princ sth)


sxy1119 发表于 2016-5-6 11:52:46

求大神啊求大神

USER2128 发表于 2016-5-6 18:45:35

1、函数chousu定义中不允许有两个R参数(r和R是相同意义的),可将R改为R3等
2、求s3算式中,f参数无值,当然不能求出S3值,

sxy1119 发表于 2016-5-7 12:13:51

USER2128 发表于 2016-5-6 18:45 static/image/common/back.gif
1、函数chousu定义中不允许有两个R参数(r和R是相同意义的),可将R改为R3等
2、求s3算式中,f参数无值,当然 ...

你好,谢谢你的回复。
程序里面是给f赋值了的
(setq dd (qiu_acos bbb))
(setq f dd)
将R改为R3之后显示参数太少

sxy1119 发表于 2016-5-7 12:15:45

USER2128 发表于 2016-5-6 18:45 static/image/common/back.gif
1、函数chousu定义中不允许有两个R参数(r和R是相同意义的),可将R改为R3等
2、求s3算式中,f参数无值,当然 ...

您好,感谢您的回复
我是给f赋值了的
(setq f dd)
我将R改为R3之后结果还是显示参数太少

USER2128 发表于 2016-5-7 17:34:01

;;; 求大神指教: 下面是螺杆泵的抽速公式,要怎样调用程序才能求出最后的sth
(defun qiu_acos (num);;定义arccos
(if (= num 0) (atan 1 0)
                (atan (/ (sqrt (- 1 (* num num))) num))))

(defun tan(mm) ;;定义tan
(/ (sin mm) (cos mm)))

(defun chousu (r r0 r1 R3 n p / s2 s4 s1 s3 c)
(setq aaa (/ r0 R3))
(setq bbb (/ r1 R3))
(setq cc (qiu_acos aaa))
(setq dd (qiu_acos bbb))
(setq ee (tan cc))
(setq s2 (* (/ (* R3 R3) 2) (- pi (- (/ pi 3) (sqrt 3)) (- ee cc))))
(setq s4 (* (/ (*rr) 2) (+ pi (- (/ pi 3) (sqrt 3)) (- ee cc))))
(setq s1 (* (/ 1 6) (* r0 r0) (expt ee 3)))
(setq f dd)
(setq s3 (- (+ (* (+ (* 2 r1 r1) (* R3 R3)) f) (* (* r1 r1) (sin (* 2 f))) (* (/ 1 4) (* R3 R3) (sin (* 4 f)))) (+ (* 3 r1 R3 (sin f)) (* r1 R3 (sin (* 3 f))))))
(setq c (- 1 (/ (- (+ s1 s2 s4) s3) (* pi R3 R3))))
(setq sth (* 2 n c p pi R3 R3))
)

(setq qq 30 ww 30 tt1 60 yy 90 uu 3000 ii 35)
(chousu qq ww tt1 yy uu ii)
(princ sth)

;;; (setq f dd)要放到(setq s3 ... 之前
;;; 现可以计算其结果= 1.23464e+025 你自己核算一下公式.

sxy1119 发表于 2016-5-8 16:10:42

感谢贵人!!!

sxy1119 发表于 2016-5-8 16:18:29

USER2128 发表于 2016-5-7 17:34 static/image/common/back.gif


感谢贵人!!!
另外还有个问题,如果已知了sth的值,怎样调用程序求R3呢?
页: [1]
查看完整版本: 转子抽速公式编程