查看: 4161|回复: 3
收起左侧

力矩分配法校中轴系

[复制链接]
发表于 2008-1-13 15:19 | 显示全部楼层 |阅读模式 来自: 中国北京
/*-----------------------------------------
Description:
力矩分配法校中轴系。只是作分配用。
Environment:VC6.0
Date:10:21 2008-1-9
Email:eryar@163.com
-----------------------------------------*/
#include <math.h>
#include <conio.h>
#include <stdio.h>
#define MAX 100
/*--------函数声明------------------*/
void print(int N,float B[]);
void distribution(float B1[],float L[],int N);
void transmission(float B1[],int N);
/*----------------------------------*/

main()
{
int i,j,k;
int TIMES=0;  /*Frequence of Distribution*/
int NODE=0;   /*The number of Node*/
float FT1[MAX];  /*Save Fixed Torque*/
float FT2[MAX];  /*Total Fixed Torque*/
float Lambda[MAX]; /*Distribution ratio*/
FILE *eryar;  /*Save to the file*/
/*输入数据*/
printf("节点数:");  scanf("%d",&NODE);
printf("分配次数:"); scanf("%d",&TIMES);
printf("---分配系数---\n");
for(i=0;i<(NODE*2-2);i++) {
  printf("Lambda %d:",i+1);
  scanf("%f",&Lambda);
}
printf("---固定弯矩---\n");
for(i=0;i<(NODE*2-2);i++) {
  printf("Torque %d:",i+1);
  scanf("%f",&FT1);
  FT2=FT1;
}/*输入数据*/
k=NODE*2-2;
eryar = fopen("axis.txt","w"); /*打开文件*/
fprintf(eryar,"\t\t---轴系合理校中---\n");
for(i=0;i<k;i++) fprintf(eryar,"%.2f\t",Lambda);
fprintf(eryar,"\n");
for(i=0;i<k;i++)
  fprintf(eryar,"%.2f\t",FT1);
fprintf(eryar,"\n");
print(NODE,FT1); printf("\n");
/*分配传递*/
for(i=0;i<TIMES;i++) {
  distribution(FT1,Lambda,NODE);
  for(j=0;j<k;j++) FT2[j]+=FT1[j];
  print(NODE,FT1); printf("\n");
  for(j=0;j<k;j++) fprintf(eryar,"%.2f\t",FT1[j]);
  fprintf(eryar,"\n");
  transmission(FT1,NODE);
  for(j=0;j<k;j++) FT2[j]+=FT1[j];
  print(NODE,FT1); printf("\n");
  for(j=0;j<k;j++) fprintf(eryar,"%.2f\t",FT1[j]);
  fprintf(eryar,"\n");
}/*分配传递*/
print(NODE,FT2);
printf("\007");
for(j=0;j<k;j++) fprintf(eryar,"%.2f\t",FT2[j]);
fprintf(eryar,"\n*注:最后一行为总弯矩!");
fprintf(eryar,"\n\t\t---eryar@163.com---\n");
fclose(eryar);/*关闭文件*/
printf("\nPress any key to halt...");
getch();
}
/*力矩分配*/
void distribution(float B1[],float L[],int N)
{
int i;
int last;
float SUM[MAX];
last = N*2-3;
B1[0] = B1[0] * L[0];
B1[0] = -B1[0];
B1[last] = B1[last]*L[last];
B1[last] = -B1[last];
for(i=0;i<last-2;i+=2) {
  SUM = B1[i+1]+B1[i+2]; /*每个节点之和*/
  SUM = -SUM;   /*力矩取  负号*/
  B1[i+1] = SUM*L[i+1]; /*按各节点的  */
  B1[i+2] = SUM*L[i+2]; /*分配系数分配*/
}
}/*力矩分配*/
/*力矩按0.5传递*/
void transmission(float B1[],int N)
{
int i;
int last;
float temp[MAX];
last = N*2-3;
for(i=0;i<=last;i++)
  temp = B1;
for(i=0;i<=last;i+=2) {
  B1 = temp[i+1]/2;
  B1[i+1] = temp/2;
}
}/*力矩传递*/
void print(int N,float B[])
{
int i;
for(i=0;i<N*2-2;i++)
  printf("%.2f\t",B);
}

AXIS.rar

40.61 KB, 下载次数: 63

C语言编的小程序

评分

参与人数 1 +1 金币 +5 收起 理由
老于 + 1 + 5 感谢共享

查看全部评分

回复

使用道具 举报

龙船学院
 楼主| 发表于 2008-1-13 15:23 | 显示全部楼层 来自: 中国北京
---轴系合理校中---
0.00        0.60        0.40        0.40        0.60        1.00       
300.00        -300.00        750.00        -750.00        300.00        -300.00       
0.00        -270.00        -180.00        180.00        270.00        300.00       
-135.00        0.00        90.00        -90.00        150.00        135.00       
0.00        -54.00        -36.00        -24.00        -36.00        -135.00       
-27.00        0.00        -12.00        -18.00        -67.50        -18.00       
0.00        7.20        4.80        34.20        51.30        18.00       
3.60        0.00        17.10        2.40        9.00        25.65       
0.00        -10.26        -6.84        -4.56        -6.84        -25.65       
-5.13        0.00        -2.28        -3.42        -12.83        -3.42       
0.00        1.37        0.91        6.50        9.75        3.42       
0.68        0.00        3.25        0.46        1.71        4.87       
0.00        -1.95        -1.30        -0.87        -1.30        -4.87       
-0.97        0.00        -0.43        -0.65        -2.44        -0.65       
0.00        0.26        0.17        1.23        1.85        0.65       
0.13        0.00        0.62        0.09        0.32        0.93       
0.00        -0.37        -0.25        -0.16        -0.25        -0.93       
-0.19        0.00        -0.08        -0.12        -0.46        -0.12       
0.00        0.05        0.03        0.23        0.35        0.12       
0.02        0.00        0.12        0.02        0.06        0.18       
0.00        -0.07        -0.05        -0.03        -0.05        -0.18       
-0.04        0.00        -0.02        -0.02        -0.09        -0.02       
0.00        0.01        0.01        0.04        0.07        0.02       
0.00        0.00        0.02        0.00        0.01        0.03       
0.00        -0.01        -0.01        -0.01        -0.01        -0.03       
-0.01        0.00        -0.00        -0.00        -0.02        -0.00       
0.00        0.00        0.00        0.01        0.01        0.00       
0.00        0.00        0.00        0.00        0.00        0.01       
136.11        -627.78        627.78        -666.67        666.67        0.01       
*注:最后一行为各节点总弯矩!
                ---eryar@163.com---
回复 支持 反对

使用道具 举报

发表于 2008-1-13 16:11 | 显示全部楼层 来自: 中国湖北武汉
顶一个先!
回复 支持 反对

使用道具 举报

发表于 2008-1-18 22:58 | 显示全部楼层 来自: 中国广东广州
顶顶顶顶顶顶顶顶顶顶顶顶短短的淡淡的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|标签|免责声明|龙船社区

GMT+8, 2024-12-12 20:38

Powered by Imarine

Copyright © 2006, 龙船社区

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