void AC_PosControl::update_z_controller()
    // check time since last cast
    uint32_t now = hal.scheduler->millis();
    if (now - _last_update_z_ms > POSCONTROL_ACTIVE_TIMEOUT_MS) {
        _flags.reset_rate_to_accel_z = true;
        _flags.reset_accel_to_throttle = true;
    _last_update_z_ms = now;

    // check if leash lengths need to be recalculated

    // call position controller
/// set_alt_target_from_climb_rate - adjusts target up or down using a climb rate in cm/s
///     should be called continuously (with dt set to be the expected time between calls)
///     actual position target will be moved no faster than the speed_down and speed_up
///     target will also be stopped if the motors hit their limits or leash length is exceeded
void AC_PosControl::set_alt_target_from_climb_rate(float climb_rate_cms, float dt)
    // adjust desired alt if motors have not hit their limits
    // To-Do: add check of _limit.pos_up and _limit.pos_down?
    if ((climb_rate_cms<0 && !_motors.limit.throttle_lower) || (climb_rate_cms>0 && !_motors.limit.throttle_upper)) {
        _pos_target.z += climb_rate_cms * dt;

this is part of position control code
I don’t know what is it doing

I don't know what is it doing

It's more important to know whether or not it works. Do you need to understand how a TV works in order to watch a ball game?

/// -*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-

 * control_althold.pde - init and run calls for althold, flight mode

// althold_init - initialise althold controller
static bool althold_init(bool ignore_checks)
    // initialize vertical speeds and leash lengths
    pos_control.set_speed_z(-g.pilot_velocity_z_max, g.pilot_velocity_z_max);

    // initialise altitude target to stopping point

    return true;

// althold_run - runs the althold controller
// should be called at 100hz or more
static void althold_run()
    int16_t target_roll, target_pitch;
    float target_yaw_rate;
    int16_t target_climb_rate;

    // if not auto armed set throttle to zero and exit immediately
    if(!ap.auto_armed) {
        // To-Do: reset altitude target if we're somehow not landed?
        attitude_control.set_throttle_out(0, false);

    // apply SIMPLE mode transform to pilot inputs

    // get pilot desired lean angles
    // To-Do: convert get_pilot_desired_lean_angles to return angles as floats
    get_pilot_desired_lean_angles(g.rc_1.control_in, g.rc_2.control_in, target_roll, target_pitch);

    // get pilot's desired yaw rate
    target_yaw_rate = get_pilot_desired_yaw_rate(g.rc_4.control_in);

    // get pilot desired climb rate
    target_climb_rate = get_pilot_desired_climb_rate(g.rc_3.control_in);

    // check for pilot requested take-off
    if (ap.land_complete && target_climb_rate > 0) {
        // indicate we are taking off
        // clear i term when we're taking off

    // reset target lean angles and heading while landed
    if (ap.land_complete) {
        // move throttle to between minimum and non-takeoff-throttle to keep us on the ground
        attitude_control.set_throttle_out(get_throttle_pre_takeoff(g.rc_3.control_in), false);
        // call attitude controller
        attitude_control.angle_ef_roll_pitch_rate_ef_yaw_smooth(target_roll, target_pitch, target_yaw_rate, get_smoothing_gain());
        // body-frame rate controller is run directly from 100hz loop

        // call throttle controller
        if (sonar_alt_health >= SONAR_ALT_HEALTH_MAX) {
            // if sonar is ok, use surface tracking
            target_climb_rate = get_throttle_surface_tracking(target_climb_rate, pos_control.get_alt_target(), G_Dt);

        // call position controller
        pos_control.set_alt_target_from_climb_rate(target_climb_rate, G_Dt);

I don't know althold code procedure what is auto armed what is

what is auto armed

A member of the class/struct that ap is an instance of.

what is

Another member of the same object.

what is p_thr_alt_p doing? what is limit 250 mean? what is limit 0.5g to 1.5g mean? what is earth to body frame translation mean? what is limit throttle_max mean?

Some guesses and inferences from the context

what is p_thr_alt_p (actually p - thr_alt_p) doing? Calculates the error between the p value for the altitude and the target altitude

what is limit 250 mean? Limits the value calculated above to 250

what is limit 0.5g to 1.5g mean? Limits the rate of change to between 0.5G and .5G

what is earth to body frame translation mean? Don't know

what is limit throttle_max mean? Limits the maximum throttle applied to accomplish the change in altitude

Do some reading on PIDs if you haven't already.