系统如图所示,K>0, 输入r(t)=Acos3t 时,从示波器中观测到输入,输出的幅值相等,相位差90°。(1)确
系统如图所示,K>0, 输入r(t)=Acos3t 时,从示波器中观测到输入,输出的幅值相等,相位差90°。
(1)确定参数a,K;
(2)若输入r(t)=3cosωt.确定ω为何值时,稳态输出c(t)的幅值最大,并求出此最大幅值。
系统如图所示,K>0, 输入r(t)=Acos3t 时,从示波器中观测到输入,输出的幅值相等,相位差90°。
(1)确定参数a,K;
(2)若输入r(t)=3cosωt.确定ω为何值时,稳态输出c(t)的幅值最大,并求出此最大幅值。
某被控制对象的动态方程
①设计状态反馈向量k,使得经状态反馈u=kx+r后,闭环系统在输入r=1(t)、x(0)=0时,响应的超调量为16.3%、过渡过程为7s(取5%误差带)。
②设x(0)=0,求经上述状态反馈后闭环系统在输入信号r=1(t)作用下的响应y(t)。
控制系统的结构如图3-3所示。
(1)当输入r(t)为单位阶跃函数,n(t)=0时,试选择K和Kt,使得闭环系统的超调虽σ%=40%,调整时间;并计算稳态位置,速度和加速度误差系数Kp、Kv、Ka;
(2)设干扰n(t)=0,输入r(t)=t,试问K和Kt之值对稳态误差有何影响?
(3)设输入r(t)=0。当干扰n(t)为单位阶跃函数时,K和Kt之值对稳态误差有何影响?
某系统结构如图所示,其中
试设计校正环节Ct(s),使该系统在输入r(t)=t作用下的稳态误差为零。
系统的结构图如图2-8-20所示,采样周期T=1s, 试设计控制器的脉冲传递函数D(z),使该系统在输入为单位阶跃信号时,输出满足以下条件:c(0)=0,c(k)=1,k>0,其中k为正整数。
阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
说明
某单位举办了一场知识竞赛,参加竞赛的选手为300名,依次从1~300进行编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答
题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。
选手提交答案的情况及判定结果由专人即时录入,录入的数据如表1所示,对竞赛情况进行统计和排名的结果如表2所示。
统计和排名的规则如下:
1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间如下计算;
解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时
罚时=提交题目P错误解答的次数×20
例如=表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用时间为87分钟,由于之前的两次提交错误解答,罚时为2×20=40分钟,所以14号选手解答题目A的用时=87+40=127(分钟)。
2.已经提交正确答案的题目再次提交时不再计算。
3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。
4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为。的选手不参加排名。
函数void Statistic()的功能是:读取输入数据,进行统计、排名并输出结果。
define MAXN 300
typedef stmct{
int no; /*选手编号*/
int num; /*完成的题目数量*/
int time; /*完成题目的总用时*/
int d[8]; /*d[i]用于记录提交第i个题目错误答案的次数*/
int a[8]; /*a[i]用于记录第i个题目是否已经提交正确答案*/
}Info;
void Statistic() {
char ch,pass;
int i,j,k,h,m,t,time,Maxlndex;
Info R[MAXN+1 ];
for(i=1; i<=MAXN; i++){ /*数组R的元素置初值0*/
R[i].no = 0;R[i].num = 0; R[i].time = 0;
for(j=0; j<8; j++) {R[i].d[j] = 0; R[i].a[j] = 0;}
}/*for*/
MaxIndex = 0;
while (1){
/*录入一名选手提交答案的信息(小时:分钟,选取手编号,题目号,是否正确)*/
scanf("%d:%d,%d,%c,%c",&h,&m,&k,&ch,&pass);
if(h==0) break;
R[k].no = k; /*k为选手编号码*/
time=(1); /*计算答题时间,以分钟为单位*/
if(isupper(ch)) ch = 'a' + ch- 'A';
if(pass != 'Y' && pass != 'y') {R[k].d[ch-'a']++; continue;}
if (R[k].a[ch-'a']==1) continue;
R[k].a[ch-'a'] = 1;
R[k] .num++;
R[k].time +=(2);
if (k > MaxIndex) Maxlndex = k;
}/*while*/
for(i=l; i<MaxIndex; i++) { /*选取择排序*/
for(t=i,j=i+1; j<=Maxlndex; j++)
if(R[t].num<R[j].num|| (3))t=j;
if((4)) {R[0]=R[t];R[t]=R[i];R[i]=R[0];}
}/*for*/
k=1; R[0] = R[l];
for(i=1; i<=Maxlndex; i++) /*输出排名情况*/
if (R,[i].num > 0) {
if(R[i].num!=R[0].num||R[i].time!=R[0].time) k++;
R[0]=(5);
printf("%d:%3d %4d %5d\n",k,R[i].no,R[i].num,R[i].time);
)/*if*l<
Private Sub Commandl Click()
If Not Check(Comb01.Text)Then
MsgBox(”输入错误”)
Exit Sub
End If
For k=0 TO Comb01.ListCount一1
If Comb01.Text=Comb01.List(k)Then
MsgBox(”添加项目失败”)
Exit Sub
End If
Next k
. Comb01.AddItem Comb01.Text
MsgBox(”添加项目成功”)
End Sub
Private Function Check(ch As String)As Boolean
n=Len(ch)
For k=1 Ton
c$=UCase(Mid(ch,k,1))
If c<“A”Or c>”Z”Then
Cbeck=False
Exit Function
End If
Next k
Check—True
End Function
程序运行时,如果在组合框的编辑区中输入“Java”,则单击命令按钮后产生的结果是
A.显示“输入错误”
B.显示“添加项目失败”
C.显示“添加项目成功”
D.没有任何显示
Private Sub Command1_Click()
Dim k As Integer
Dim sum As Single, max As Single, min As Single
sum = Text1(0)
max = Text1(0)
min = ______
For k = ______ To 6
If max < Text1(k) Then
max = Text1(k)
End If
If min > Text1(k) Then
min = Text1(k)
End If
sum = sum + Text1(k)
Next k
Text2 = (______) / 5
A.7,431
B.6
C.980
D.6,980
下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数: 876 675 896 101 301 401 980 431 451 777 #include<conio.h> #include<stdio.h> int fun(int *s,int t,int *k) { int i; *k=0; for(i=0;i<t;i++) if(s[*k]<s[i])*k=i; return s[*k];} main() { int a[10]={876,675,896,101,301,401,980,431,45l,777},k; clrscr(); fun(a,10,&k); printf("%d,%d\n",k,a[k]);} 则输出结果为
A.7,431
B.6
C.980
D.6,980
某系统原始方程如下:
试绘制系统方框图,并求扰动输入n(t)=(t+2)·1(t)、给定输入r(t)=[2t+3+0.5cos(2t+15°)]+1(t)时,系统的总稳态误差em(1)。
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
如图所示的一圆圈上分布6个环,请在每个环中填一个数字,使得从任一环开始按顺时针所得的六位数与按逆时针所得的6位数都为素数。
[函数]
main ()
{
int i, j, a, b, k;
long m,m1,n,t,u,v;
for (n=100001;n<999999;n+2 ) /* n穷举所有 6位奇数*/
{
a=0;(1); /* 设 m 为一个顺转6 位数*/
for (i=1; i<=6; i++ )
{t=-m/1000000;(2);
for (v=u,m1=0,k=1;k<=5;k++ )
{b=v%10;v=v/10;m1=m1*m1* 10+b;}
(3); /*m1 为相应的逆转 6 位数*/
/* m 为顺圈数, m1 为逆圈数*/
for (j=2; j<=999;j++ )
if (m%j==0||.(4)) /* 判别 m,m1 是否为素数*/
{ a= 1; break; }
(5); /*原m 转一环得新顺转数m*/
/*原 m 转一环得新顺圈数m*/
if (a==1) break;}
if (a==0 )
{prinff ("%1d\n",n ) ;break;}
}
}