.


:




:

































 

 

 

 


Matr_peredat_funkc(n, m, k, phase_koord, control, vyhod, a, b, c, q);




9. ( ):

q[3][n+1],

/ q[3][n+1],

/ q[3][n+1],

: :

dx/dt = ax(t) + bu(t);

y(t) = cx(t);

x(t) - ,

u(t) - ,

y(t) - ,

a = -2 -1 b = 1 0 c = 2 0

2 -5 0 -2 0 2,5

, ( ) ().

:

#include <stdio.h>

#include <math.h>

#include <conio.h>

void matr_peredat_funkc(int n, int m, int k, int phase_koord, int control, int vyhod, float a[n][n], float b[n][m], float c[k][n], float q[3][n+1]);

int main(int argc, char **argv)

{

int n; //

int m; //

int k; // ();

// , =0

int phase_koord; //

int control; //

int vyhod; // ();

// , vyhod=0

int i, j; //

Char c0;

printf("\n Kol-vo fazov. koordinat n= ");

scanf("%d", &n);

printf("\n Kol-vo upravlen. m= ");

scanf("%d", &m);

printf("\n Kol-vo izmeren. k =");

scanf("%d", &k);

printf("\n");

float a[n][n]; //

float b[n][m]; //

float c[k][n]; //

// ( )

float q[3][n+1]; //

// :

// - ,

// -

// " /",

// -

// " /",

printf("\nVvedite matricu dinamiki postrochno (%d znashenij v stroke):\n", n);

for (i=0; i<n; i++)

{

printf("\n%d stroka:\n", i);

for (j=0; j<n; j++)

scanf("%f", &a[i][j]);

}

printf("\n");

printf("\nVvedite matricu upravlenija postrochno (%d znashenij v stroke):\n", m);

for (i=0; i<n; i++)

{

printf("\n%d stroka:\n", i);

for (j=0; j<m; j++)

scanf("%f", &b[i][j]);

}

printf("\n");

if (k!=0) //

{

printf("\nVvedite matricu izmerenij postrochno (%d znashenij v stroke):\n", n);

for (i=0; i<k; i++)

{

printf("\n%d stroka:\n", i);

for (j=0; j<n; j++)

scanf("%f", &c[i][j]);

}

printf("\n");

}

printf("\n Nomer fasovoj koordinaty (ne bolee %d) phase_koord= ", n);

scanf("%d", &phase_koord);

printf("\n Nomer upravlenija (ne bolee %d) control= ", m);

scanf("%d", &control);

if (k!=0) //

{

printf("\n Nomer vyhodnoj koordinaty (ne bolee %d) vyhod= ", k);

scanf("%d", &vyhod);

}

Matr_peredat_funkc(n, m, k, phase_koord, control, vyhod, a, b, c, q);

printf("\nKoeff. znamenat. peredat. funkcii:\n");

for (i=0; i<n+1; i++)

printf("%15.6e ", q[0][i]);

printf("\n");

printf("\nKoeff. chislit. peredat. funkcii 'phase_koord / control':\n");

for (i=0; i<n+1; i++)

printf("%15.6e ", q[1][i]);

printf("\n");

printf("\nKoeff. chislit. peredat. funkcii 'vyhod / control':\n");

for (i=0; i<n+1; i++)

printf("%15.6e ", q[2][i]);

printf("\n");

c0=getch();

Return 0;

}

:

, 2- /1- :

W(p) = 2/(p2 + 7p + 12)

2- /1- :

W(p) = (-5p 10)/(p2 + 7p + 12)

 

:

1. :

void diskret_analog(int n, int m, float h0, float a[n][n], float b[n][m], float p[2][n], float f[n][n], float c[n][m]);

2. n ,

3. m ,

4. h0 ,

5. :

a[n][n] ,

b[n][m] ,

p[2][n] - :

, ,

f[n][n] - ,

c[n][m] - ,

h0,

6. a[n][n], b[n][m] p[2][n], , .

7. :





:


: 2017-03-11; !; : 254 |


:

:

.
==> ...

1724 - | 1513 -


© 2015-2024 lektsii.org - -

: 0.012 .